Обзор
OrbitFlare запускает полные архивные ноды, которые сохраняют каждый блок, транзакцию и состояние аккаунта с момента запуска Solana. Стандартные RPC-провайдеры обычно усекают старые данные для экономии места, сохраняя только последние эпохи. С OrbitFlare вы можете запросить любой слот из истории Solana.Сценарии использования
Исторические данные блокчейна обеспечивают несколько важных рабочих процессов:- Восстановление событий: Подтяните пропущенные транзакции после простоя индексатора или сбоев вебхуков
- Комплаенс: Получение записей транзакций для аудитов и требований регуляторов
- Исследования: Анализ on-chain трендов, распределения токенов и метрик протоколов во времени
- Приложения-обозреватели: Создание обозревателей блоков и дашбордов с полной историей
Актуальные методы RPC
Эти методы поддерживают исторические запросы на архивных нодах OrbitFlare:Методы блоков
| Метод | Описание |
|---|---|
| getBlock | Получить полные данные блока для любого слота |
| getBlocks | Получить список подтверждённых блоков между двумя слотами |
| getBlocksWithLimit | Получить подтверждённые блоки, начиная со слота, с ограничением |
| getBlockTime | Получить ориентировочную Unix-метку времени для блока |
| getBlockHeight | Получить текущую высоту блока |
| getFirstAvailableBlock | Получить минимальный слот с доступными данными блока |
Методы транзакций
| Метод | Описание |
|---|---|
| getTransaction | Получить подтверждённую транзакцию по сигнатуре |
| getSignaturesForAddress | Получить сигнатуры транзакций для адреса |
| getSignatureStatuses | Получить статусы сигнатур транзакций |
Методы аккаунтов
| Метод | Описание |
|---|---|
| getAccountInfo | Получить данные аккаунта (только текущее состояние) |
| getMultipleAccounts | Получить данные нескольких аккаунтов в одном вызове |
| getProgramAccounts | Получить все аккаунты, принадлежащие программе |
Методы слотов
| Метод | Описание |
|---|---|
| getSlot | Получить текущий слот |
| minimumLedgerSlot | Получить минимальный слот с данными на ноде |
Примеры
Получить блок из истории
Получить данные блока для слота 100 000 000 с помощью getBlock:Получить время блока
Узнать, когда был произведён конкретный блок, с помощью getBlockTime:Получить список блоков в диапазоне
Получить все подтверждённые блоки между двумя слотами с помощью getBlocks:Получить транзакцию
Получить детали транзакции по сигнатуре с помощью getTransaction:Получить историю транзакций для адреса
Получить сигнатуры для адреса с помощью getSignaturesForAddress:Примеры на TypeScript
Получить исторические данные блока
Построить полную историю транзакций
Комбинируйте getSignaturesForAddress с getTransaction для построения полной истории:Запрос блоков в временном диапазоне
Найти блоки в определённый временной период:Советы по производительности
- Группируйте запросы: Используйте пакетные запросы JSON-RPC для получения нескольких блоков или транзакций в одном вызове
-
Пагинируйте большие запросы: Метод getSignaturesForAddress возвращает до 1000 сигнатур за вызов — используйте параметр
beforeдля пагинации - Параллелизуйте осторожно: Получайте транзакции параллельными партиями по 10–20 для баланса скорости и лимитов
- Кешируйте неизменяемые данные: Исторические блоки и транзакции никогда не меняются после подтверждения — кешируйте их локально
-
Используйте
maxSupportedTransactionVersion: Всегда включайте этот параметр для работы с версионированными транзакциями
Ограничения
История состояния аккаунтов: Ноды Solana хранят текущее состояние аккаунта, а не исторические снапшоты. Вы можете получить транзакции, изменявшие аккаунт, но не баланс или данные аккаунта в конкретный прошлый слот. Лимиты запросов: Исторические запросы могут потреблять больше ресурсов. Проверьте лимиты вашего плана и реализуйте соответствующее ограничение скорости.Более быстрая история транзакций
Для эффективных запросов истории адресов используйте getTransactionsForAddress, который объединяет поиск сигнатур и получение транзакций в один вызов с возможностями фильтрации и сортировки.Управляемое восстановление данных
Для команд, которым необходима доставка исторических данных в больших объёмах без написания собственных ETL-конвейеров, OrbitFlare предлагает услугу управляемого восстановления данных (Managed Backfills).Управляемое восстановление данных — корпоративная услуга. Свяжитесь с командой в Discord или напишите на sales@orbitflare.com, чтобы обсудить ваши требования.
Что это даёт
Инженеры OrbitFlare извлекают и доставляют структурированные исторические данные Solana напрямую в ваше хранилище:| Формат вывода | Поддерживаемые хранилища |
|---|---|
| JSON (newline-delimited) | AWS S3, Google Cloud Storage |
| Parquet | AWS S3, Google Cloud Storage |
| SQL | PostgreSQL, ClickHouse |
Что может быть доставлено
- Все транзакции для конкретной программы, кошелька или минта токена
- Полные данные блоков для любого диапазона слотов
- История переводов токенов (SPL Token / Token-2022)
- Пользовательские запросы и форматы данных под ваши требования
SLA
| Пункт | Детали |
|---|---|
| Срок доставки | 3–5 рабочих дней для стандартных заданий |
| Охват данных | С genesis (март 2020) по текущий момент |
| Формат | JSON, Parquet или SQL — на ваш выбор |
| Выделенная поддержка | Назначенный инженер на время выполнения задания |
Когда использовать
Управляемое восстановление данных лучше всего подходит для:- Начального наполнения нового индексатора или аналитической базы данных
- Разовых запросов данных для комплаенса или аудита
- Исторических наборов данных для обучения ML/AI-моделей
- Восстановления данных после длительного простоя