Zaino Индексатор
Zaino — это индексатор на Rust для блокчейна Zcash. Он считывает данные цепочки из полного узла Zebra и предоставляет данные, необходимые кошелькам, обозревателям, кранам и другим сервисам, не возлагая на Zebra ответственность за каждый индекс, ориентированный на клиентов.
Кратко
- Zebra проверяет цепочку Zcash.
- Zaino индексирует данные цепочки Zebra и предоставляет API для клиентов.
- Zallet — компонент кошелька в стеке Z3. В конфигурации Z3 по умолчанию Zallet напрямую взаимодействует с Zebra и не требует отдельного сервиса Zaino.
- Отдельный сервис Zaino полезен, когда операторам нужна gRPC-конечная точка, совместимая с lightwalletd, 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 и добавляет:
- gRPC-конечную точку, совместимую с lightwalletd, для клиентов лёгких кошельков
- 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, прежде чем запускать зависимые сервисы в основной сети или тестовой сети.
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