Archive-ноды без мифов: за что вы платите на самом деле
Слово "archive" RPC-провайдеры используют вольно, а разница между настоящей archive-нодой и full-нодой, наряженной под archive, — это разница между запросом, который возвращает данные, и запросом, который отдаёт 404. Разберём, что означает archive на уровне хранилища и почему это важно для запросов, которые вы гоняете.
Full-нода против archive-ноды
Full-нода валидирует каждый блок и держит текущее состояние (state trie) плюс примерно последние 128 блоков исторического состояния. Она скажет вам баланс аккаунта сейчас, но спросите баланс на блоке 10,000,000 — и пересчитывать нечего: промежуточное состояние было спрунено. Archive-нода хранит каждый исторический state root, поэтому отвечает на запросы состояния на любом прошлом блоке напрямую. Эта полнота — вся ценность и вся цена.
Почему счёт за диск доминирует
Archive-состояние Ethereum — это несколько терабайт, и оно непрерывно растёт; пропорционально то же верно для высоконагруженных сетей вроде BNB Smart Chain и Polygon. Archive-ноды живут на NVMe, потому что задержка случайного чтения по многотерабайтному trie убивает пропускную способность на шпиндельных дисках. Именно этот объём NVMe — не CPU и не трафик — причина того, что доступ к archive почти везде стоит дороже обычного RPC.
Запросы, которым это нужно
Любой eth_call или eth_getBalance с историческим тегом блока, trace_block и debug_traceTransaction по старым транзакциям, реконструкция балансов токенов для учёта и большинство аналитических бэкфиллов — всё это требует archive-состояния. Если ваш продукт считает исторические позиции, сверяет реестры или переигрывает транзакции, full-нода молча провалится ровно на тех запросах, которые важны.
Как проверить, что провайдер реально отдаёт archive
Не верьте ярлыку — проверяйте. Возьмите вызов контракта, выполните его с тегом блока на несколько миллионов блоков в прошлом и убедитесь, что получаете результат, а не ошибку "missing trie node" или "state not available". Прогоните debug_traceTransaction по старому хешу. Если хоть что-то из этого падает — вы на full-ноде, что бы ни писала страница с ценами.
Частые вопросы
Мне всегда нужна archive-нода?
Нет. Если вы читаете только текущее состояние и свежие блоки, full-нода дешевле и её достаточно. Archive становится необходим в момент, когда вы запрашиваете историческое состояние, трейсите старые транзакции или делаете бэкфилл аналитики.
Archive-данные — это то же самое, что индексированные?
Нет. Archive-ноды отдают сырое историческое состояние через RPC; индексеры выводят поверх него датасеты более высокого уровня (балансы во времени, переводы токенов). Надёжная индексация опирается на archive-источник под ней.
Похожее
Пополнили, получили ключ, запустили.
Полное самообслуживание. Оплата криптой или картой. Тарификация в кредитах — тяжёлые примитивы дороже, простые дёшевы.
Получить API-ключ