- Установка, настройка и мониторинг ноды Zcash
- Цели статьи
- Введение
- Системные требования zcash
- Установка ноды zcash
- Настройка и удаленный доступ
- Запуск и проверка работы
- Мониторинг работы ноды zcash
- Заключение
- Как майнить zcash на Ubuntu
- Майнинг ZCash на CPU
- Майнинг ZCash в пуле на GPU
- Майнинг ZCash в пуле на CPU
- Выводы
Установка, настройка и мониторинг ноды Zcash
Я много работаю с криптовалютами, поэтому решил написать цикл статей по этому поводу. Сегодня я расскажу, как установить и настроить ноду Zcash, а так же сделать ее мониторинг с помощью Zabbix. Информация уникальная и в рунете практически нет ничего на эту тему, так что я решил поделиться.
Цели статьи
- Установить ноду криптовалюты zcash на свой сервер.
- Настроить удаленную работу через rpc ноды с авторизацией.
- Сделать мониторинг ноды с помощью zabbix.
Введение
Я настраивал и работал с нодами всех популярных и не очень криптовалют. Участвовал в запуске нескольких криптобирж. У меня накопился большой опыт работы с ними. Информация эта очень узкая и специфичная. Почитать чей-то опыт практически негде, даже в англоязычном интернете.
Я все изучал и настраивал сам. За основу брал только официальную документацию. В работе нод много нюансов, которые нужно учитывать. Постараюсь поделиться основной информацией, которая у меня есть.
Я уже писал статью про настройку нод криптовалют, а так же их мониторинг, но это все частично устарело, особенно установка. Надо все обновить. В этот раз будет по каждой ноде отдельная статья, чтобы не мешать все в кучу.
Системные требования zcash
Системные требования zcash, которые указаны в документации:
- 64-х битный процессор.
- 5G оперативной памяти.
- 25 Gb диск
Нода zcash нормально запускается на виртуальной машине с 2 CPU, 4 Gb памяти и ssd диском. На момент написания статьи, блокчейн занимал 25 Gb. Места под него должно быть не меньше. С учетом того, что блокчейн постоянно растет, надо делать запас.
Установка ноды zcash
Ставится zcash не сложно, но и не сказать, что просто, так как готовые пакеты есть только под Debian. Я обычно под ноды использую Ubuntu, поэтому собирать буду из исходников. Хотя пакет от Debian скорее всего подойдет и под Ubuntu, но я не люблю экспериментов. Из исходников точно заработает так, как надо.
Для начала установим необходимые для сборки zcash зависимости.
Копируем к себе репозиторий.
Выбираем ветку с последней версией.
Запускаем скрипт, который скачивает необходимые для сборки файлы. Качать будет много, порядка 1,7 Gb.
После этого запускаем сборку.
Установим скомпилированные бинарники в систему:
Обновление ноды zcash обычно выглядит так:
- Скачиваем и компилируем новые исходники.
- Останавливаем ноду, заменяем старые исходники.
- Запускаем ноду.
Если не было больших изменений, приводящих к переиндексации или полному обновлению блокчейна, то все пройдет быстро. В том случае, если нода запустит индексацию блокчейна, то простой может быть значительный, на некоторых нодах до нескольких часов.
Когда нода в работе, обновление надо обязательно предварительно тестировать и смотреть, к чему оно приводит. В проде я обычно держу 2 ноды — основную и резервную. На резервной тестируется обновление. Если все ОК, она становится основной, а рабочая уходит в резерв. И так каждый раз ротируется при обновлении.
Настройка и удаленный доступ
Теперь создадим фай конфигурации ноды zcash в директории
rpcuser | имя пользователя для работы через rpc |
rpcpassword | пароль пользователя |
addnode | выбор блокчейна, основной mainnet.z.cash или тестовый testnet.z.cash |
rpcbind | ip сервера, на котором будет работать сервис rpc |
rpcallowip | список разрешенных ip адресов для подключения к rpc |
Я для теста разрешил слушать все ip адреса сервера и подключаться отовсюду. Чаще всего это не нужно. Ограничивайте доступ к ноде списком только своих доверенных адресов. Я всегда это делаю, если нода поддерживает такую возможность. Например, parity для ноды ethereum не имеет таких настроек. Дополнительно я всегда ограничиваю доступ к ноде на уровне iptables. Настоятельно рекомендую это делать.
В общем случае ноду лучше запускать не от пользователя root. Более того, некоторые ноды невозможно запустить под рутом, они хотят отдельного пользователя. У меня обычно нода это виртуальная машина, где кроме самой ноды ничего нет. В этом случае нет принципиальной разницы с точки зрения безопасности, от root она работает или нет.
Запуск и проверка работы
Мы установили и настроили ноду zcash. Теперь запускаем ее. Она поддерживает работу как в виде обычного приложения в консоли, так и в режиме демона. Первый раз можете запустить ее прямо в консоли, чтобы тут же увидеть результат работы.
Нода сразу же начинает качать блоки, что видно в ее интерфейсе. Вообще, zcash одна из немногих нод, где все очень наглядно и понятно. Не надо выискивать информацию о блоках, трафике где-то в логах или в запросах к ноде. Все очень наглядно.
В принципе, можно запускать ноду в этом режиме в screen, тогда можно очень быстро и просто посмотреть ее статус. В таком виде ее можно и в автозапуск добавить. Но надежнее запускать ноды zcash как демон. Она поддерживает такой режим.
Нода запускается в виде службы. За ее состоянием можно следить по логу —
/zcash/debug.log. Для автозапуска достаточно добавить в cron:
Состояние ноды можно проверить через консоль с помощью zcash-cli.
Корректно остановить работу ноды zcash можно командой:
Теперь попробуем выполнить удаленный запрос о состоянии ноды через rpc. Для этого идем на любой другой linux сервер, где есть curl. Главное, проверить работу с сервера приложений, где будет крутиться софт для работы с нодой. В консоли выполняем команду:
8232 — дефолтный порт, который слушает нода, если вы его явно не указывали в конфигурационном файле. Следите за правильностью набора пользователя или пароля. Если укажете неправильно, в ответ ничего не получите, что несколько сбивает с толку. Информация об этом будет в debug.log, но там ее так много, что трудно заметить то, что надо.
В ответ на запрос получите информацию о состоянии ноды в json формате.
Читается в консоли не очень, зато удобно парсить данные, в том числе для системы мониторинга. Об этом будет рассказано далее. Полное описание api для удаленных запросов можно посмотреть в документации — https://zcash.readthedocs.io/en/latest/rtd_pages/zig.html.
Мониторинг работы ноды zcash
Расскажу, как я мониторю работу ноды. Для этого использую Zabbix.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
То же самое на Debian 10, если предпочитаете его:
Здесь я не буду останавливаться на заббиксе подробно. Для этого у меня есть отдельные статьи. Расскажу сразу суть — что и как мониторю.
В одной из недавних версий у Zabbix появились http агенты, с помощью которых можно отправлять post запросы. Это очень упростило многие задачи по мониторингу. То, что я раньше делал с помощью скриптов и curl теперь можно делать прямо в шаблоне и свободно переносить с сервера на сервер в виде экспорта и импорта шаблона.
Что я мониторю в ноде zcash:
- Работу самой службы zcashd на сервере.
- Состояние блокчена и разницу между headers и blocks. Первое это количество блоков в блокчейне, а второе — номер блока, который синхронизирован на твоей ноде.
- Состояние сети блокчейна, активна или нет.
И соответственно триггеры:
- Служба zcashd не работает.
- Нода начинает отставать, разница между headers и blocks превышает 50 или 100 блоков.
- Сеть блокчейна неактивна.
Теперь как это реализовано. В конце будет готовый шаблон.
Таймаут можно побольше ставить, часто 3 секунды не хватает. Этот итем собирает вот такие данные:
Дальше делаем зависимые элементы, для данных из headers и blocks.
И в предобработке выделяем нужный нам JSONPATH.
По аналогии то же самое делается для blocks. Потом делаем простой триггер с их сравнением.
В данном случае разница в 9 блоков была просьба программистов. Я не знаю, какая именно разница критична для работы.
Дальше берется состояние network запросом:
Делается итем по аналогии с blockchaininfo. И для него зависимый элемент и триггер на наличие слова true в данных из JSONPATH по пути $.result.networks[:1].reachable.
Вот итоговый список итемов и триггеров.
Готовый шаблон с этими элементами — zabbix-zcash.xml. Импорт делался с версии сервера 4.4 В шаблоне нет графиков. Обычно все это смотрится в Latest Data.
На этом по установке, настройке и мониторингу ноды zcash у меня все.
Заключение
Это первая статья из цикла. Я планирую пройтись по всем основным и популярным нодам — bitcoin, bitcoin cash, ethereum, litecoin, dash, cardano, destream, tron, neo, ripple xrp и др.
Если у вас есть желание каким-то образом использовать ноды, открыть криптобиржу или что-то связанное с блокчейном, можете обращаться ко мне. У меня большой практический опыт работы с ними — установка, обслуживание, обновление, мониторинг. Могу подобрать площадку для размещения, запланировать ресурсы, рассчитать затраты на размещение и т.д.
Источник
Как майнить zcash на Ubuntu
В последнее время криптовалюты набирают очень большой популярности, и хотя сейчас мейнстримом становится PoS майнинг, для которого не нужны аппаратные мощности, остались еще криптовалюты, для майнинга которых еще можно использовать видеокарты. Одна из таких криптовалют — ZCash. Она была выпущена 28 октября 2016 и ориентирована на максимальную анонимность транзакций.
Причем суммарная мощность сети не такая и большая, поэтому по прибыльности ZCash сравнивается с эфиром. В этой статье мы рассмотрим как майнить zcash на Ubuntu с помощью GPU или процессора используя официальную программу от разработчиков.
Майнинг ZCash на CPU
Сначала поговорим о майнинге на процессоре с помощью официальной программы. Это не просто майнер, а полноценный кошелек-нода, которая будет работать на вашем компьютере. Вы можете собрать ее из исходников, но в этой статье мы будем устанавливать программу из репозитория Debian. Инструкция подойдет для всех дистрибутивов, основанных на Ubuntu.
Сначала добавьте репозиторий в систему. Для этого откройте файл источников и добавьте в него строчку:
sudo vi /etc/apt/sources.list
deb [arch=amd64] https://apt.z.cash/ jessie main
Затем нужно импортировать GPG ключ репозитория в систему:
wget -qO — https://apt.z.cash/zcash.asc | sudo apt-key add —
Затем обновляем список пакетов в репозитории и устанавливаем саму ноду:
sudo apt update
$ sudo apt install zcash
Дальше нам нужно настроить основные параметры, для этого достаточно выполнить команду:
Загрузка может занять длительное время, дальше нужно установить имя пользователя и пароль для нашего кошелька:
/.zcash/zcash.conf
$ echo «rpcuser=username» >>
/.zcash/zcash.conf
$ echo «rpcpassword=`head -c 32 /dev/urandom | base64`» >>
Для включения поддержки майнинга выполните:
/.zcash/zcash.conf
$ echo «genproclimit=$(nproc)» >>
Теперь можно запустить ноду, при первом запуске будет создан кошелек и полностью загружен блокчейн:
Или в режиме сервиса:
Для остановки запустите:
Мы настроили соло майнинг, но в наше время это очень невыгодная затея, поскольку в одиночку вы будете майнить один блок очень долго если у вас нет мощной фермы из видеокарт. Поэтому в большинстве случаев применяется майнинг с помощью пулов.
Майнинг ZCash в пуле на GPU
Майнинг с помощью видеокарты NVIDIA или AMD будет намного быстрее, вы можете использовать, например, zcash miner ubuntu — EWBF’s CUDA Zcash miner для видеокарт NVIDIA. Скачать последнюю версию этого майнера можно на Google Drive. Дальше вам остается только распаковать архив, и отредактировать файл настроек:
Здесь нужно указать адрес пула в котором вы хотите майнить, имя пользователя и пароль. Найдите секцию server и установите значения для таких полей:
- server — адрес сервера пула;
- port — порт пула;
- user — ваше имя пользователя на пуле;
- pass — пароль пользователя.
Дальше можно запускать майнинг командой:
Все данные будут прочитаны из конфига.
Майнинг ZCash в пуле на CPU
Хотя на CPU производительность намного ниже, но вы тоже можете попробовать майнить ZCash. Для этого можно использовать майнер от NiceHash. Сначала нужно скачать майнер с Github и собрать из исходников:
/miner
$ cd /miner
$ git clone https://github.com/feeleep75/nheqminer.git
sudo apt-get install cmake libboost-all-dev
Запустите компиляцию исходников:
cd nheqminer/nheqminer
$ mkdir build
$ cd build
$ cmake ..
$ make
После завершения сборки вы можете выбрать пул и начинать майнить:
./nheqminer -l адрес_пула:порт -u имя_пользователя
Как видите, все достаточно просто. Майнинг zcash ubuntu возможен, но вряд ли сейчас это целесообразно делать без мощной видеокарты.
Выводы
В этой статье мы рассмотрели как майнить ZCash на Ubuntu различными способами, с помощью процессора, видеокарты и соло майнинг с помощью официального клиента.
Источник