Zcash

Zcash — установка Zebra ноды + zec-snomp пул

Equihash · Ubuntu 22.04 · Zebra Docker · zec-snomp · Z15 / Z9 Mini

Zcash нода Zebra + соло пул с нуля — полный гайд

✍️ Личный опыт 🟡 Средняя 📅 Июнь 2026 ⏱ ~3 часа на всё

📋 Содержание

  1. Что такое Zebra и зачем она нужна
  2. Что скачать перед началом
  3. Установка Docker
  4. Запуск Zebra через Docker
  5. Настройка конфига Zebra
  6. Синхронизация и проверка
  7. Установка zec-snomp пула
  8. Подключение Z15 / Z9 Mini
  9. Возможные ошибки

Что такое 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, минимум 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 подключился и отправляет шары.

Порты и фаервол

Если нода не подключается к сети или майнер не видит пул — скорее всего заблокированы порты. Вот что нужно открыть:

ПортНазначениеКто подключается
8233P2P сеть ZcashДругие ноды в интернете
8232RPC порт ZebraТолько локально (пул)
3334Stratum пулТвой 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

🤔 Застрял? Задай вопрос

Опиши что пошло не так — отвечу с реального опыта. Отвечаю в течение 15 минут.

✅ Вопрос отправлен! Отвечу в течение 15 минут.
Zcash ZEC нода Zebra zec-snomp Соло майнинг Z15 Z9 Mini Docker Ubuntu 22.04