Zcash: первая по-настоящему анонимная криптовалюта


Я много работаю с криптовалютами, поэтому решил написать цикл статей по этому поводу. Сегодня я расскажу, как установить и настроить ноду Zcash, а так же сделать ее мониторинг с помощью Zabbix. Информация уникальная и в рунете практически нет ничего на эту тему, так что я решил поделиться.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом
«Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

Я настраивал и работал с нодами всех популярных и не очень криптовалют. Участвовал в запуске нескольких криптобирж. У меня накопился большой опыт работы с ними. Информация эта очень узкая и специфичная. Почитать чей-то опыт практически негде, даже в англоязычном интернете.

Я все изучал и настраивал сам. За основу брал только официальную документацию. В работе нод много нюансов, которые нужно учитывать. Постараюсь поделиться основной информацией, которая у меня есть.

Я уже писал статью про настройку нод криптовалют, а так же их мониторинг, но это все частично устарело, особенно установка. Надо все обновить. В этот раз будет по каждой ноде отдельная статья, чтобы не мешать все в кучу.

Создатели

Люди, которые создали данную криптовалюту, являются опытными представителями криптоиндустрии. Большинство из них занимаются научными разработками, и именно они создали уникальный протокол системы.

Это важно, так как за многими современными криптовалютами стоят не ученые, а маркетологи, которые проводят ICO не ради создания качественного продукта, а для собственного заработка.

Должность генерального директора занимает Zooko Wilcox – человек, который посвятил всю свою жизнь работе над блокчейн-проектами и криптовалютами. Он имеет 20-летний опыт работы в данной сфере и огромное количество успешных проектов за плечами.


Рисунок 7. Zooko Wilcox – CEO компании Zcash. Источник: официальный сайт

В штате компании также задействовано много ученых, которые изобрели протокол Zcash и продолжают заниматься его совершенствованием:

  • Илай Бен-Сасон – бывший профессор факультета информатики;
  • Алессандро Кьеза – доктор наук, работал в калифорнийском университете;
  • Кристина Гарман – аспирант университета Джонса Хопкинса;
  • Эран Тромер – бывший преподаватель Тель-Авивского университета;
  • Мадарс Вирза – аспирант массачусетского технологического университета.

Это не все люди, которые внесли вклад в развитие Zcash, однако именно данные ученые оказали наибольшую пользу при создании протокола.

Установка ноды zcash

Ставится zcash не сложно, но и не сказать, что просто, так как готовые пакеты есть только под Debian. Я обычно под ноды использую Ubuntu, поэтому собирать буду из исходников. Хотя пакет от Debian скорее всего подойдет и под Ubuntu, но я не люблю экспериментов. Из исходников точно заработает так, как надо.

Для начала установим необходимые для сборки zcash зависимости.

# apt install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget curl bsdmainutils automake

Копируем к себе репозиторий.

# git clone https://github.com/zcash/zcash.git

Выбираем ветку с последней версией.

# cd zcash/ # git checkout v2.1.0-1

Запускаем скрипт, который скачивает необходимые для сборки файлы. Качать будет много, порядка 1,7 Gb.

# ./zcutil/fetch-params.sh

После этого запускаем сборку.

# ./zcutil/build.sh -j$(nproc)

Установим скомпилированные бинарники в систему:

# cd src # install -sv zcashd zcash-cli /usr/local/bin/ # install -sv zcash-gtest zcash-tx /usr/local/bin/

Обновление ноды zcash обычно выглядит так:

  1. Скачиваем и компилируем новые исходники.
  2. Останавливаем ноду, заменяем старые исходники.
  3. Запускаем ноду.

Если не было больших изменений, приводящих к переиндексации или полному обновлению блокчейна, то все пройдет быстро. В том случае, если нода запустит индексацию блокчейна, то простой может быть значительный, на некоторых нодах до нескольких часов.

Когда нода в работе, обновление надо обязательно предварительно тестировать и смотреть, к чему оно приводит. В проде я обычно держу 2 ноды — основную и резервную. На резервной тестируется обновление. Если все ОК, она становится основной, а рабочая уходит в резерв. И так каждый раз ротируется при обновлении.

Динамика сложности

Текущий показатель сложности равен 42,2 миллиона элементарных операций на одну истинную (подписанную) транзакцию. Согласно графику на bitinfocharts.com, показатель сложности майнинга Zcash растёт пропорционально общему хешрейту сети, скорость подписания новых блоков остаётся неизменной. Курс криптовалюты ZEC в целом зависит от динамики Биткоин, поэтому наибольшая длительность нахождения блока отмечается в моменты роста стоимости обоих активов.

ЧИТАТЬ История курса Биткоина за все время

Общий хешрейт сети на текущий момент составляет 2,411 гигахеша (согласно данным bitinfochars.com), ориентировочная прибыльность майнинга Zcash — $0,202 в день за каждый килохеш. Комиссия за транзакции в сети колеблется вокруг значения 0,0016 цента. Текущий объём выпущенных на рынок монет составляет 5,314 миллиона ZEC из 21 миллиона возможных токенов.

Независимо от колебания показателя сложности, средняя скорость нахождения блоков остаётся равной 2,5 минуты. Оценить прибыльность (убыточность) майнинга на текущий момент поможет калькулятор майнинга Zcash.

Настройка и удаленный доступ

Теперь создадим фай конфигурации ноды zcash в директории ~/.zcash.

# mkdir ~/.zcash # mcedit ~/.zcash/zcash.conf rpcuser=username rpcpassword=password addnode=mainnet.z.cash rpcbind=0.0.0.0 rpcallowip=0.0.0.0/0

rpcuserимя пользователя для работы через rpc
rpcpasswordпароль пользователя
addnodeвыбор блокчейна, основной mainnet.z.cash или тестовый testnet.z.cash
rpcbindip сервера, на котором будет работать сервис rpc
rpcallowipсписок разрешенных ip адресов для подключения к rpc

Я для теста разрешил слушать все ip адреса сервера и подключаться отовсюду. Чаще всего это не нужно. Ограничивайте доступ к ноде списком только своих доверенных адресов. Я всегда это делаю, если нода поддерживает такую возможность. Например, parity для ноды ethereum не имеет таких настроек. Дополнительно я всегда ограничиваю доступ к ноде на уровне iptables. Настоятельно рекомендую это делать.

В общем случае ноду лучше запускать не от пользователя root. Более того, некоторые ноды невозможно запустить под рутом, они хотят отдельного пользователя. У меня обычно нода это виртуальная машина, где кроме самой ноды ничего нет. В этом случае нет принципиальной разницы с точки зрения безопасности, от root она работает или нет.

Пулы

Вознаграждение за каждый блок получает только первый майнер, который его добыл. В одиночку добыть первым блок практически невозможно, ведь это требует огромных мощностей.

Потому майнеры объединяются в пулы. Вознаграждение разделяется между всеми участниками пула пропорционально мощностям, которые они потратили на майнинг.

Сам pool при этом взимает комиссию с пользователей. Лучшие пулы на данный момент такие:

  • Flypool;
  • Supernova;
  • Nanopool;
  • Nicehash;
  • Coinmine;
  • Dwarfpool;
  • F2pool.

перейти

Запуск и проверка работы

Мы установили и настроили ноду zcash. Теперь запускаем ее. Она поддерживает работу как в виде обычного приложения в консоли, так и в режиме демона. Первый раз можете запустить ее прямо в консоли, чтобы тут же увидеть результат работы.

# zcashd

Нода сразу же начинает качать блоки, что видно в ее интерфейсе. Вообще, zcash одна из немногих нод, где все очень наглядно и понятно. Не надо выискивать информацию о блоках, трафике где-то в логах или в запросах к ноде. Все очень наглядно.

В принципе, можно запускать ноду в этом режиме в screen, тогда можно очень быстро и просто посмотреть ее статус. В таком виде ее можно и в автозапуск добавить. Но надежнее запускать ноды zcash как демон. Она поддерживает такой режим.

# zcashd —daemon

Нода запускается в виде службы. За ее состоянием можно следить по логу — ~/zcash/debug.log. Для автозапуска достаточно добавить в cron:

# crontab -e @reboot zcashd -daemon

Состояние ноды можно проверить через консоль с помощью zcash-cli.

# zcash-cli getinfo { «version»: 2010051, «protocolversion»: 170009, «walletversion»: 60000, «balance»: 0.00000000, «blocks»: 368, «timeoffset»: 0, «connections»: 1, «proxy»: «», «difficulty»: 824.4417744689738, «testnet»: false, «keypoololdest»: 1579797402, «keypoolsize»: 101, «paytxfee»: 0.00000000, «relayfee»: 0.00000100, «errors»: «» }

Корректно остановить работу ноды zcash можно командой:

# zcash-cli stop

Теперь попробуем выполнить удаленный запрос о состоянии ноды через rpc. Для этого идем на любой другой linux сервер, где есть curl. Главное, проверить работу с сервера приложений, где будет крутиться софт для работы с нодой. В консоли выполняем команду:

# curl —data-binary ‘{«jsonrpc»:»1.0″,»id»:»curltext»,»method»:»getblockchaininfo»,»params»:[]}’ -H ‘content-type:text/plain;’ https://username:[email protected]:8232/

8232 — дефолтный порт, который слушает нода, если вы его явно не указывали в конфигурационном файле. Следите за правильностью набора пользователя или пароля. Если укажете неправильно, в ответ ничего не получите, что несколько сбивает с толку. Информация об этом будет в debug.log, но там ее так много, что трудно заметить то, что надо.

В ответ на запрос получите информацию о состоянии ноды в json формате.

Читается в консоли не очень, зато удобно парсить данные, в том числе для системы мониторинга. Об этом будет рассказано далее. Полное описание api для удаленных запросов можно посмотреть в документации — https://zcash.readthedocs.io/en/latest/rtd_pages/zig.html.

Общая информация

Криптовалюта Zcash сегодня является одной из самых технически сложных и инновационных. Ее запуска ждали почти все представители криптоиндустрии – от майнеров до инвесторов. Разработчики реализовали принципиально новую технологию шифрования, которая получила название zk-SNARK.

Главным преимуществом Zcash, которое и послужило причиной такого внимания со стороны профессионального сообщества, является новый уровень анонимности транзакций. В данной системе отследить переводы невозможно в принципе, тогда как в Биткоине и в некоторых альткоинах это достижимо за счет современных технологий.

Мониторинг работы ноды zcash

Расскажу, как я мониторю работу ноды. Для этого использую Zabbix.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

Здесь я не буду останавливаться на заббиксе подробно. Для этого у меня есть отдельные статьи. Расскажу сразу суть — что и как мониторю.

В одной из недавних версий у Zabbix появились http агенты, с помощью которых можно отправлять post запросы. Это очень упростило многие задачи по мониторингу. То, что я раньше делал с помощью скриптов и curl теперь можно делать прямо в шаблоне и свободно переносить с сервера на сервер в виде экспорта и импорта шаблона.

Что я мониторю в ноде zcash:

  1. Работу самой службы zcashd на сервере.
  2. Состояние блокчена и разницу между headers и blocks. Первое это количество блоков в блокчейне, а второе — номер блока, который синхронизирован на твоей ноде.
  3. Состояние сети блокчейна, активна или нет.

И соответственно триггеры:

  1. Служба zcashd не работает.
  2. Нода начинает отставать, разница между headers и blocks превышает 50 или 100 блоков.
  3. Сеть блокчейна неактивна.

Теперь как это реализовано. В конце будет готовый шаблон.

Таймаут можно побольше ставить, часто 3 секунды не хватает. Этот итем собирает вот такие данные:

Дальше делаем зависимые элементы, для данных из headers и blocks.

И в предобработке выделяем нужный нам JSONPATH.

По аналогии то же самое делается для blocks. Потом делаем простой триггер с их сравнением.

В данном случае разница в 9 блоков была просьба программистов. Я не знаю, какая именно разница критична для работы.

Дальше берется состояние network запросом:

# curl —data-binary ‘{«jsonrpc»:»1.0″,»id»:»curltext»,»method»:»
getnetworkinfo«,»params»:[]}’ -H ‘content-type:text/plain;’ https://username:[email protected]:8232/
Делается итем по аналогии с blockchaininfo. И для него зависимый элемент и триггер на наличие слова true в данных из JSONPATH по пути $.result.networks[:1].reachable.

Вот итоговый список итемов и триггеров.

Готовый шаблон с этими элементами — zabbix-zcash.xml. Импорт делался с версии сервера 4.4 В шаблоне нет графиков. Обычно все это смотрится в Latest Data.

На этом по установке, настройке и мониторингу ноды zcash у меня все.

Облачный майнинг ZEC

Если мощностей ПК не хватает, но майнингом заняться хочется, можно воспользоваться услугами облачных сервисов.

Принцип прост: криптоинвестор арендует мощности у компании. Аренда, конечно, не бесплатная.

Один из таких сервисов – Hashflare. За один хешрейт он берет $2. Прежде чем арендовать хешрейты придется зарегистрироваться. Переходим на веб-страницу Hashflare и нажимаем «Регистрация».

Hashflare.io попросит ввести электронный адрес, страну проживания, дату рождения и придумать пароль.

После регистрации переходим в личный кабинет, пролистываем вниз до Equihash. Для покупки облачных мощностей кликаем по тележке. Выбираем, сколько хешрейтов будем арендовать и нажимаем «Дальше».

Hashflare предоставит несколько вариантов оплаты: перевод bitcoin, банковская карта или платежная система Payeer.

После оплаты начнется облачный майнинг.

Сейчас существует множество сервисов, предоставляющих подобные услуги. С популяризацией криптовалют они в буквальном смысле разрослись, как грибы. Среди них очень много мошенников, которые берут деньги криптоэнтузиастов и пропадают бесследно. Потому прежде чем начать доверять кому-либо свои кровно заработанные, стоит почитать отзывы пользователей на тематических форумах.

перейти

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Выводы

В этой статье мы рассмотрели как майнить ZCash на Ubuntu различными способами, с помощью процессора, видеокарты и соло майнинг с помощью официального клиента.

Похожие записи:

  • Как пользоваться Bitcoin Core

    11 мая, 2017

  • Майнинг эфира на Ubuntu

    4 июля, 2017

  • Как пользоваться кошельком Electrum

    12 августа, 2017

  • Майнинг на Raspberry Pi 3

    21 сентября, 2017

FLYPOOL

  • Расположение серверов: США, Европа, Китай
  • Сбор: 1%
  • Минимальная выплата: 0.001 ZEC
  • Схема выплат: PPLNS
  • Хешрейт: 60 MH/s
  • Точная статистика скорости
  • Анонимный майнинг
  • Мгновенные выплаты
  • Эффективный движок майнинга, низкий уровень потерянных блоков
  • Подробная общая статистика и для каждого рига
  • Система оповещения по E-mail, предупреждение о неправильных шарах
  • Сайт пула: zcash.flypool.org
Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]