Серверы полной истории и Clio
Как хранится и предоставляется полная историческая запись XRP Ledger, и почему большинство узлов не хранят её всю.
Почему не каждый узел хранит всё
Как упоминалось в статье Ledger Structure and the Close Process, XRP Ledger производит новую версию леджера примерно каждые 3–5 секунд с 2012 года — накопив очень большой объём исторических данных более чем за десятилетие. Хранение полной истории вплоть до генезиса требует значительных ресурсов, поэтому большинство серверов rippled вместо этого настроены хранить лишь недавнее скользящее окно истории леджера, достаточное для нормальной работы (валидации текущих транзакций, обслуживания запросов по недавним аккаунтам и транзакциям), а не полный исторический архив.
Серверы полной истории
Сервер полной истории — это узел rippled, специально настроенный хранить полную историю леджера с момента генезиса, а не только недавнее окно. Их запускает относительно небольшое число операторов — часто специально для поддержки блок-эксплореров, исследований, инструментов комплаенса/аудита или других приложений, которым действительно нужно запрашивать сколь угодно старые транзакции и состояния аккаунтов.
Clio
Clio — это специализированная реализация сервера, отдельная от основного валидирующего ПО rippled, созданная специально для эффективного предоставления исторических данных XRPL в большом масштабе. В отличие от валидатора, который попутно хранит историю, Clio оптимизирован именно как API-сервер с высокой нагрузкой на чтение: он принимает валидированные данные леджера (часто от узла rippled с полной историей) и предоставляет их приложениям через тот же привычный интерфейс API, но с инфраструктурой, специально настроенной для высокообъёмных исторических запросов, а не для участия в консенсусе.
Почему имеет смысл разделять эти роли
Разделение «производства и валидации новых версий леджера» (основная задача валидатора) и «эффективного предоставления больших объёмов исторических данных приложениям» (специализация Clio) позволяет оптимизировать каждый элемент инфраструктуры под его реальную задачу, вместо того чтобы заставлять один программный продукт одновременно хорошо справляться и с чувствительной к задержкам ролью консенсуса, и с ролью архива, требующей интенсивного хранения и запросов.
Почему это важно для разработчиков и исследователей
Любой, кто создаёт приложение, которому нужно запрашивать старую историю транзакций — инструмент налоговой отчётности, систему комплаенса/аудита, дашборд исторической аналитики или исследовательский проект, изучающий активность леджера во времени, — как правило, будет полагаться на источник с полной историей (будь то самостоятельно развёрнутый узел с полной историей, развёртывание Clio или сторонний API исторических данных), а не на стандартный публичный узел только с недавней историей. Более широкий набор инструментов для разработки на XRPL см. в статье Developer Tools & SDKs (на английском).