Как запустить Zebra в сети Akash Network
Пошаговое руководство по развертыванию полного узла Zebra Zcash с помощью Akash Console.
Что вы развертываете
Полный узел Zebra, который будет:
-> Синхронизировать весь блокчейн Zcash (100 ГБ+ для mainnet, ~40 ГБ для testnet)
-> Стоить примерно $15 в месяц в зависимости от цены токена AKT
-> Занимать от нескольких часов до нескольких дней для полной синхронизации
-> Использовать 4 vCPU, 16 ГБ RAM, 350 ГБ хранилища (mainnet) или 2 vCPU, 8 ГБ RAM, 50 ГБ (testnet)
Важно: сопоставление портов в Akash
Когда вы открываете порт в Akash (например, порт 8233 для P2P Zebra), он НЕ привязывается к этому же порту на публичном IP провайдера. Вместо этого провайдер назначает случайный высокий порт (например, 31234 или 42567) и проксирует его на порт 8233 вашего контейнера.
Так сделано намеренно: провайдеры запускают несколько развертываний, и возникли бы конфликты, если бы все пытались использовать порт 8233 напрямую.
Что это означает для вас:
-> Вы настраиваете порт 8233 в SDL (стандартный P2P-порт Zebra)
-> Akash выдает вам URI вроде provider.com:31234
-> Другие узлы Zcash подключаются к вам по адресу provider.com:31234
-> Внутри контейнера Zebra по-прежнему слушает порт 8233
Это обрабатывается автоматически. Просто используйте URI, который выдает Akash.
Предварительные требования
- Установленное расширение браузера Keplr Wallet (Chrome/Brave/Firefox)
- Токены AKT — получите 50–100 AKT на бирже (Coinbase, Kraken, Osmosis)
- 5 минут, чтобы пройти через интерфейс Console
Шаг 1: Подключите ваш кошелек
-> Перейдите на https://console.akash.network
-> Нажмите "Connect Wallet" в правом верхнем углу
-> Выберите Keplr (или ваш предпочитаемый Cosmos-кошелек)
-> Подтвердите подключение, когда появится окно Keplr
Ваш баланс AKT должен появиться в правом верхнем углу. Если там ноль, сначала пополните кошелек.
Шаг 2: Создайте развертывание
-> Нажмите кнопку "Deploy" (большая синяя кнопка в центре страницы)
-> Выберите "Build your template" (или сразу перейдите к загрузке SDL)
Вариант A: Загрузить файл SDL (рекомендуется)

Вариант B: Использовать редактор SDL
Если вы хотите вручную вставить SDL:
-> Скопируйте содержимое zebra-akash.yml
-> Вставьте его в редактор SDL
-> Измените по необходимости (см. раздел конфигурации ниже)
-> Нажмите "Create Deployment"
Шаг 3: Проверьте и подтвердите депозит
Console покажет вам:
-> Депозит развертывания: ~5 AKT (вы получите его обратно, когда закроете развертывание)
-> Ориентировочную стоимость: на основе цен, указанных в вашем SDL
Нажмите "Approve" и подпишите транзакцию в Keplr.
Шаг 4: Выберите провайдера
Примерно через 30 секунд вы увидите ставки от провайдеров. В каждой ставке показаны:
-> Цена за блок (в AKT или USDC)
-> Оценочная месячная стоимость
-> Информация о провайдере (аптайм, регион и т. д.)
Не выбирайте просто самый дешевый вариант. Проверьте:
-> Процент аптайма (стремитесь к > 95%)
-> Регион (чем ближе к вам, тем лучше задержка, но для блокчейн-узлов это не так важно)
-> Статус аудита (зеленая галочка = больше доверия)
Нажмите "Accept Bid" у выбранного провайдера и подпишите в Keplr.
Шаг 5: Дождитесь развертывания
Console:
-> Создаст lease у выбранного провайдера
-> Отправит manifest (он сообщает провайдеру, что запускать)
-> Запустит ваш контейнер
Это занимает 1–2 минуты. Вы увидите обновления статуса в интерфейсе.
Шаг 6: Убедитесь, что всё работает
После развертывания вы увидите:
-> Вкладку Services: показывает ваш сервис zebra и его статус
-> Вкладку Logs: журналы контейнера в реальном времени
-> Вкладку Leases: сведения о вашем развертывании (DSEQ, провайдер, стоимость)
Проверьте журналы
Нажмите Logs, и вы должны увидеть запуск Zebra:
Code-highlight
Loading config from environment variables
Mainnet network selected
Listening for peer connections on [::]:8233
Starting initial sync...
Синхронизация займет от нескольких часов до нескольких дней в зависимости от сети. Следите за:
-> Ростом высоты блоков
-> Подключениями к пирам (должно быть 10–30 пиров)
-> Отсутствием повторяющихся ошибок
Шаг 7: Получите адрес вашего узла
Нажмите на вкладку Leases, затем URIs.
Вы увидите что-то вроде:
Code-highlight
zebra-8233: provider-hostname.com:31234
Это публичный P2P-адрес вашего узла. Другие узлы Zcash будут подключаться к вам по этому адресу.
Обратите внимание на сопоставление портов: вы настроили порт 8233 в SDL, но Akash назначил ему другой публичный порт (31234 в этом примере). Это нормально — см. раздел «Сопоставление портов в Akash» в начале, если это вас смущает. Ваш узел доступен на том порту, который здесь показывает Akash, а не обязательно на 8233.
Если вы включили RPC (по умолчанию в SDL он закомментирован), здесь также будет показан RPC-адрес с собственным сопоставленным портом.
Параметры конфигурации
Переключение на Testnet
По умолчанию SDL использует Mainnet. Чтобы использовать Testnet:
-> Закомментируйте конфигурацию Mainnet в разделе env:
Code-highlight
# - "ZEBRA_NETWORK__NETWORK=Mainnet"
# - "ZEBRA_NETWORK__LISTEN_ADDR=[::]:8233"
-> Раскомментируйте конфигурацию Testnet:
Code-highlight
- "ZEBRA_NETWORK__NETWORK=Testnet"
- "ZEBRA_NETWORK__LISTEN_ADDR=[::]:18233"
-> Обновите открываемый порт в разделе expose:
Code-highlight
# Comment out Mainnet port:
# - port: 8233
# as: 8233
# to:
# - global: true
# proto: tcp
# Uncomment Testnet port:
- port: 18233
as: 18233
to:
- global: true
proto: tcp
-> Необязательно: уменьшите ресурсы для Testnet в profiles.compute.zebra.resources:
Code-highlight
cpu:
units: 2 # Down from 4
memory:
size: 8Gi # Down from 16Gi
storage:
- size: 50Gi # Down from 150Gi
-> Необязательно: снизьте цену в profiles.placement.akash.pricing:
Code-highlight
amount: 5000 # Down from 10000
Включить доступ к RPC
RPC по умолчанию отключен из соображений безопасности. Чтобы включить его:
Для Mainnet:
-> Раскомментируйте в разделе env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:8232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> Раскомментируйте RPC-порт Mainnet в expose:
Code-highlight
- port: 8232
as: 8232
to:
- global: false # Keep internal for security
proto: tcp
Для Testnet:
-> Раскомментируйте в разделе env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:18232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> Раскомментируйте RPC-порт Testnet в expose:
Code-highlight
- port: 18232
as: 18232
to:
- global: false
proto: tcp
Предупреждение: если вы установите global: true для RPC, вы откроете его в интернет. Zebra по умолчанию использует cookie-аутентификацию, но всё же — не делайте этого, если не понимаете, что делаете.
Напоминание о сопоставлении портов: даже если вы откроете RPC глобально, Akash сопоставит его со случайным высоким портом (а не 8232/18232). Проверьте URIs в вашем развертывании, чтобы узнать фактический публичный endpoint. Для global: false (рекомендуется) RPC-endpoint доступен только внутри сети развертывания Akash, а не из публичного интернета.
Включить метрики (Prometheus)
Чтобы собирать метрики для мониторинга:
-> Раскомментируйте в env:
Code-highlight
- "ZEBRA_METRICS__ENDPOINT_ADDR=0.0.0.0:9999"
-> Раскомментируйте порт метрик в expose:
Code-highlight
- port: 9999
as: 9999
to:
- global: false
proto: tcp
Настройка ресурсов/цен
Если вы не получаете ставок или хотите оптимизировать стоимость:
Для провайдеров с более слабыми характеристиками уменьшите значения в разделе profiles.compute.zebra.resources:
-> CPU: units: 2 (минимум для приемлемой скорости синхронизации)
-> Память: size: 12Gi (минимум для стабильности)
-> Хранилище: size: 120Gi (минимум для mainnet)
Чтобы привлечь больше ставок, увеличьте значение в profiles.placement.akash.pricing:
-> Mainnet: попробуйте amount: 1000000 uakt/block
-> Testnet: попробуйте amount: 1000000 uakt/block
Обновление развертывания
Нужно изменить конфигурацию после развертывания?
-> Перейдите в My Deployments в Console
-> Найдите ваше развертывание Zebra
-> Нажмите "Update Deployment"
-> Отредактируйте SDL
-> Нажмите "Update" и подтвердите в Keplr
Примечание: обновление перезапустит ваш контейнер. Узел продолжит работу с сохраненного состояния (постоянное хранилище), но ожидайте 1–2 минуты простоя.
Мониторинг
Через Console
-> Вкладка Logs: журналы контейнера в реальном времени
-> Вкладка Shell: доступ к shell внутри контейнера (полезно для отладки)
-> Вкладка Events: события Kubernetes (в основном бесполезны, если только что-то не сломалось)
Через RPC (если включен)
Если вы включили RPC, вы можете опрашивать свой узел как обычный полный узел zebrad (потому что это он и есть!)
Закрытие развертывания
Когда закончите или захотите перестать платить:
-> Перейдите в My Deployments
-> Найдите ваше развертывание Zebra
-> Нажмите "Close Deployment"
-> Подтвердите и подпишите в Keplr
Ваш депозит 5 AKT будет возвращен. Постоянное хранилище должно быть сохранено провайдером, но не стоит на это полагаться — относитесь к этому как к любому другому облачному провайдеру.
Устранение неполадок
Ошибка "Insufficient funds"
Вам нужно больше AKT. Пополните кошелек Keplr.
Ставки не появляются
Либо:
-> Ваша цена слишком низкая (увеличьте amount в SDL)
-> Ваши требования к ресурсам слишком высоки для доступных провайдеров (уменьшите CPU/память/хранилище)
-> Подождите дольше (иногда ставки появляются через 60–90 секунд)
Развертывание зависло в состоянии "pending"
У провайдера могут быть проблемы. Закройте развертывание и попробуйте другого провайдера.
В журналах Zebra отображается "No peers connected"
Это нормально в первые несколько минут. Zebra автоматически обнаружит пиров. Если это продолжается более 10 минут, возможно, у вас проблема с сетью (на Akash это маловероятно).
В журналах ошибки "Out of memory"
Вы слишком сэкономили на RAM. Закройте развертывание и разверните заново как минимум с 12Gi памяти (рекомендуется 16Gi).
Синхронизация длится целую вечность
Давайте определим, что такое «целая вечность»:
-> Часы: нормально
-> Дни: тоже нормально для mainnet с нуля
-> Недели: что-то не так, проверьте журналы на наличие ошибок
Управление затратами
Отслеживайте расходы в Console:
-> My Deployments -> Ваше развертывание -> показывает оценку "Cost per month"
-> Баланс вашего кошелька Keplr будет постепенно уменьшаться
Когда баланс станет низким, Akash автоматически закроет ваше развертывание. Периодически пополняйте кошелек или настройте уведомления.
Снижение затрат
-> Используйте Testnet для непроизводственного тестирования (на 50% дешевле)
-> Уменьшите CPU/память, если вам не нужна быстрая синхронизация
-> Выбирайте более дешевых провайдеров (не всегда разумно — аптайм имеет значение)
Mainnet и Testnet
Code-highlight
----------------------------------------------------------------------------------
| | Mainnet (default) | Testnet |
---------------------------------------------------------------------------------|
| Purpose | Production Zcash blockchain | Testing and development |
| Network | ZEBRA_NETWORK__NETWORK=Mainnet | ZEBRA_NETWORK__NETWORK=Testnet |
| P2P Port | 8233 | 18233 |
| RPC Port | 8232 | 18232 |
| Sync time | Days | Hours |
| Storage | 350GB+ | 50GB |
| Resources | 4 CPU / 16GB RAM | 2 CPU / 8GB RAM |
| Cost | ~$15/month | ~$5/month |
----------------------------------------------------------------------------------
Начните с Testnet, если вы просто тестируете процесс развертывания. См. раздел «Переключение на Testnet» выше для настройки.
Дополнительные ресурсы
Akash Console: https://console.akash.network
Документация Akash: https://akash.network/docs/
Документация Zebra: https://zebra.zfnd.org/
Обозреватели блокчейна Zcash: https://zechub.wiki/guides/blockchain-explorers
Discord Akash: https://discord.akash.network (по вопросам, связанным с провайдерами)