Zaino Індексатор
Zaino — це індексатор на Rust для блокчейну Zcash. Він зчитує дані ланцюга з повного вузла Zebra і надає дані, необхідні гаманцям, оглядачам, кранам та іншим сервісам, не покладаючи на Zebra відповідальність за кожен індекс, орієнтований на клієнта.
Коротко
- Zebra перевіряє ланцюг Zcash.
- Zaino індексує дані ланцюга Zebra і надає API для клієнтів.
- Zallet — це компонент гаманця у стеку Z3. У стандартній конфігурації Z3 Zallet безпосередньо взаємодіє з Zebra і не потребує окремого сервісу Zaino.
- Окремий сервіс Zaino корисний, коли операторам потрібна сумісна з lightwalletd кінцева точка gRPC, проксі JSON-RPC або інфраструктура для легких гаманців, оглядачів, кранів та подібних сервісів.
- Zaino є активною інфраструктурою, проте операторам слід перевіряти офіційну документацію Zaino та Z3 щодо актуальних деталей розгортання перед запуском у виробничому середовищі.
Що робить Zaino
Zaino розташовується між Zebra та клієнтським програмним забезпеченням. Zebra — це консенсусний вузол: він завантажує, перевіряє та відстежує блокчейн Zcash. Zaino використовує Zebra як джерело даних ланцюга, а потім готує індексовані представлення, які клієнтські застосунки можуть ефективно запитувати.
Це розділення чітко визначає ролі:
| Компонент | Роль |
|---|
| Zebra | Повний вузол і валідатор |
| Zaino | Індексатор і сервіс API для клієнтів |
| Zallet | Сервіс гаманця |
| lightwalletd | Старіший сервер легких гаманців, який Zaino призначений замінити або доповнити |
Zaino надає функціональність для легких клієнтів, повних клієнтів або гаманців і оглядачів блоків. Він надає доступ до фіналізованого ланцюга, найкращого нефіналізованого ланцюга та даних мемпулу, що зберігаються у Zebra.
Як він вписується в поточний стек Zcash
Поточний стек Z3 побудовано навколо Zebra, Zallet та необов’язкового Zaino.
У стандартному розгортанні Z3 Zebra і Zallet працюють разом. Zallet безпосередньо звертається до Zebra, тому оператору, який запускає лише локальний стек гаманця, не потрібно запускати окремий сервіс Zaino.
Zaino додається, коли оператор хоче обслуговувати зовнішніх клієнтів. У Z3 він працює за профілем Compose indexer і додає:
- сумісну з lightwalletd кінцеву точку gRPC для клієнтів легких гаманців
- проксі JSON-RPC для оглядачів, кранів і серверних частин сервісів
- базу даних індексатора, окрему від стану ланцюга Zebra
Це робить Zaino особливо актуальним для серверних частин гаманців, операторів публічної інфраструктури, оглядачів, кранів і розробників, які тестують сервіси, що потребують індексованих даних ланцюга Zcash.
Zaino та lightwalletd
lightwalletd — це оригінальний сервер легких гаманців. Zaino — це шлях-наступник на Rust для цієї ролі. Його мета — надавати сумісні API там, де це можливо, щоб гаманці та сервіси могли мігрувати без необхідності одразу повністю переписуватися.
Це не означає, що кожне розгортання lightwalletd уже перейшло на Zaino. Операторам слід розглядати Zaino як частину поточного стека на основі Zebra та перевіряти найновішу документацію проєкту, релізи й панелі стану сервісів перед вибором того, що запускати.
Примітки для операторів
Найпростішим авторитетним шляхом розгортання є репозиторій Z3. Z3 містить Zaino як необов’язковий сервіс:
Code-highlight
docker compose --env-file .env.<network> --profile indexer up -d
Спочатку запустіть звичайне налаштування Z3 і зачекайте, доки Zebra синхронізується, перш ніж запускати залежні сервіси в mainnet або testnet.
Zaino надає два види мережевих сервісів. Сервіс gRPC — це API для легких гаманців. Сервіс JSON-RPC призначений для loopback або довірених приватних мереж, якщо зовнішній рівень не забезпечує захист. Не відкривайте неавтентифіковану або незашифровану кінцеву точку JSON-RPC для публічного інтернету.
Деякі діаграми, що показують, як працює Zaino
Внутрішня архітектура Zaino

Архітектура активного сервісу Zaino

Системна архітектура Zaino

Поширені помилки
Вважати Zaino повним вузлом. Zaino не є валідатором. Zebra перевіряє ланцюг; Zaino індексує дані з Zebra.
Припускати, що кожне розгортання Z3 потребує окремого Zaino. Zallet може безпосередньо звертатися до Zebra у стандартному стеку Z3. Запускайте Zaino, коли вам потрібен окремий сервіс індексатора для зовнішніх клієнтів.
Подавати заплановані функції як уже розгорнуті. Zaino активно розробляється, тому перевіряйте поточні примітки до релізів і документацію, перш ніж описувати функцію як доступну.
Необережно відкривати JSON-RPC. Інтерфейс JSON-RPC Zaino призначений для loopback або довірених приватних мереж, якщо він не захищений іншим рівнем.
Де можна дізнатися більше?
Останнє оновлення: серпень 2026