Zcash нода Zebra + соло пул с нуля — полный гайд
✍️ Личный опыт
🟡 Средняя
📅 Июнь 2026
⏱ ~3 часа на всё
Что такое Zebra и зачем она нужна
Zebra — это официальная нода Zcash от Zcash Foundation написанная на Rust. Она легче и быстрее старого zcashd, лучше работает с современными пулами и поддерживает все необходимые RPC методы для майнинга.
Для соло майнинга нам нужна Zebra + пул zec-snomp. Пул принимает шары от ASIC (Z15, Z9 Mini), и когда находится блок — всё вознаграждение 1.25 ZEC идёт тебе.
💡 Почему Zebra а не zcashd? Zebra быстрее синхронизируется, потребляет меньше RAM и официально поддерживается Zcash Foundation. Плюс — удобный Docker образ который запускается одной командой.
Что скачать перед началом
🐧
Ubuntu 22.04 LTS
Операционная система. Скачай образ и установи на сервер.
Скачать →
🦓
Zebra — GitHub репозиторий
Официальная нода Zcash на Rust. Используем Docker образ.
GitHub →
⛏️
zec-snomp — пул для ZEC
Форк s-nomp с поддержкой Zcash и Equihash. Используем для соло майнинга.
GitHub →
⚠️ Требования к серверу: Ubuntu 22.04, минимум 8 ГБ RAM, 500+ ГБ свободного места (блокчейн ~400 ГБ + пул), стабильный интернет. Открытый порт 8233 для P2P соединений.
Шаг 1 — Устанавливаем Docker
1Устанавливаем Docker и зависимости
user@ubuntu:~$
# Обновляем систему
$ sudo apt update && sudo apt upgrade -y
# Устанавливаем Docker
$ sudo apt install -y docker.io docker-compose git curl
# Добавляем себя в группу docker (без sudo)
$ sudo usermod -aG docker $USER && newgrp docker
# Проверяем что Docker работает
$ docker --version
Docker version 24.0.5, build ced0996
Шаг 2 — Запускаем Zebra через Docker
Zebra имеет готовый Docker образ — не нужно ничего компилировать. Запускается одной командой.
2Создаём конфиг и запускаем Zebra
user@ubuntu:~$
# Создаём папку для конфига
$ mkdir -p ~/.config/zebra
# Создаём файл конфигурации
$ cat > ~/.config/zebra/zebrad.toml << 'EOF'
[network]
network = "Mainnet"
[mining]
miner_address = "t1YourZcashAddressHere"
[rpc]
listen_addr = "0.0.0.0:8232"
enable_cookie_auth = false
EOF
Замени t1YourZcashAddressHere на свой прозрачный ZEC адрес (начинается с t1). Обязательно прозрачный — Zebra не поддерживает защищённые адреса для майнинга.
3Запускаем Docker контейнер Zebra
user@ubuntu:~$
$ docker run -d \
--name zebra \
--restart unless-stopped \
-p 8232:8232 \
-p 8233:8233 \
-v zebrad-cache:/home/zebra/.cache/zebra \
-v ~/.config/zebra/zebrad.toml:/home/zebra/.config/zebrad.toml \
zfnd/zebra
✓ Контейнер запущен
# Смотрим логи
$ docker logs zebra --tail 20 -f
Шаг 3 — Синхронизация и проверка
4Проверяем статус синхронизации
user@ubuntu:~$
# Смотрим прогресс синхронизации в логах
$ docker logs zebra 2>&1 | grep "sync_percent"
sync_percent=45.234% current_height=Height(1234567)
# Когда увидишь 100% — нода синхронизирована
sync_percent=100.000% finished initial sync to chain tip
5Проверяем что RPC работает
user@ubuntu:~$
# Запрашиваем шаблон блока — если ответил, всё готово
$ curl --silent \
--data-binary '{"jsonrpc":"1.0","id":"test","method":"getblocktemplate","params":[]}' \
-H 'Content-type: application/json' \
http://127.0.0.1:8232/ | python3 -m json.tool | head -10
{
"result": {
"version": 4,
"height": 2500000,
Если видишь JSON с result — нода готова к майнингу!
⚠️ Синхронизация занимает 12-48 часов в зависимости от скорости диска. Блокчейн ZEC занимает ~80 ГБ. Не запускай пул пока sync_percent не достигнет 100%.
💡 Важно про аутентификацию Zebra 2.0+: Начиная с версии 2.0.0 Zebra по умолчанию использует cookie аутентификацию. Файл cookie находится по адресу /home/zebra/.cache/zebra/.cookie внутри контейнера. Именно поэтому в конфиге мы ставим enable_cookie_auth = false — иначе пул не сможет подключиться к ноде без cookie файла.
Если хочешь использовать cookie — посмотри его содержимое командой:
docker exec zebra cat /home/zebra/.cache/zebra/.cookie
И укажи в конфиге пула вместо пустого пароля.
Шаг 4 — Устанавливаем zec-snomp пул
zec-snomp — это форк s-nomp с поддержкой Zcash и алгоритма Equihash. Устанавливается на том же сервере что и нода.
6Устанавливаем Node.js и Redis
user@ubuntu:~$
# Устанавливаем Node.js 18
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install -y nodejs redis-server
# Запускаем Redis
$ sudo systemctl enable redis-server && sudo systemctl start redis-server
✓ Redis запущен
7Клонируем и настраиваем zec-snomp
user@ubuntu:~$
$ git clone https://github.com/zone117x/node-open-mining-portal.git zec-snomp
$ cd zec-snomp
$ npm install
# Копируем конфиг
$ cp config_example.json config.json
$ cp pool_configs/example.json pool_configs/zcash.json
8Настраиваем конфиг пула
Открываем pool_configs/zcash.json и заполняем:
{
"enabled": true,
"coin": "zcash",
"address": "t1YourZcashAddress", // твой ZEC адрес
"daemons": [{
"host": "127.0.0.1",
"port": 8232, // RPC порт Zebra
"user": "", // пусто — cookie auth отключён
"password": ""
}],
"ports": {
"3334": { "diff": 8192, "varDiff": { "minDiff": 4096, "maxDiff": 1000000 } }
}
}
9Запускаем пул через PM2
user@ubuntu:~/zec-snomp$
# Устанавливаем PM2
$ sudo npm install -g pm2
# Запускаем пул
$ pm2 start init.js --name zec-snomp
$ pm2 save && pm2 startup
# Проверяем логи
$ pm2 logs zec-snomp --lines 20
Stratum server started on port 3334
Шаг 5 — Подключаем Z15 / Z9 Mini
Заходим в веб-интерфейс ASIC по его IP адресу в браузере. Переходим в Miner Configuration.
10Настройка ASIC майнера
Pool 1 URL: stratum+tcp://192.168.0.22:3334
Worker: t1YourZcashAddress.z15worker
Password: x
192.168.0.22 — IP сервера с пулом. 3334 — порт стратума. В Worker вписываешь свой ZEC адрес и через точку имя воркера.
💡 Проверка подключения: В логах пула должны появиться строки "New connection from" и "Share accepted". Это значит Z15/Z9 Mini подключился и отправляет шары.
Порты и фаервол
Если нода не подключается к сети или майнер не видит пул — скорее всего заблокированы порты. Вот что нужно открыть:
| Порт | Назначение | Кто подключается |
| 8233 | P2P сеть Zcash | Другие ноды в интернете |
| 8232 | RPC порт Zebra | Только локально (пул) |
| 3334 | Stratum пул | Твой ASIC майнер |
!Открываем порты через UFW (Ubuntu фаервол)
user@ubuntu:~$
# Включаем UFW если не включён
$ sudo ufw enable
# Открываем P2P порт Zebra
$ sudo ufw allow 8233/tcp
# Открываем порт стратума для майнера
$ sudo ufw allow 3334/tcp
# RPC порт НЕ открываем публично — только локально!
# 8232 доступен только на 127.0.0.1 — это безопасно
# Проверяем правила
$ sudo ufw status
8233/tcp ALLOW
3334/tcp ALLOW
⚠️ Роутер дома? Если сервер стоит дома за роутером — нужно пробросить порт 8233 в настройках роутера (Port Forwarding). Порт 3334 пробрасывать не нужно — майнер у тебя в той же локальной сети.
💡 Проверить открыт ли порт можно с другого компьютера командой:
nc -zv IP_СЕРВЕРА 8233
Если ответит "Connection succeeded" — порт открыт и доступен снаружи.
Возможные ошибки
❌ docker: command not found
Решение: sudo apt install docker.io
❌ Error: connect ECONNREFUSED 127.0.0.1:8232
Zebra ещё не запустилась или не синхронизирована. Проверь: docker logs zebra --tail 20
❌ miner_address must be a transparent address
Убедись что адрес начинается с t1 или t3, не с zs (защищённый адрес не подходит).
❌ Stratum rejected share / job not found
Нода не синхронизирована или пул не видит ноду. Проверь sync_percent в логах Zebra.
❌ Redis connection refused
Redis не запущен. Выполни: sudo systemctl start redis-server
❌ npm ERR! code EACCES
Проблема с правами. Выполни: sudo npm install --unsafe-perm