что такое ноды и суперноды?
Что такое нода?
Нодой в контексте блокчейна обычно называется компьютер, который установил программное обеспечение под конкретную криптовалюту (биткоин, эфириум, монеро и др.) для участия в одноранговой сети.
Криптовалютный блокчейн структурирован как сетевая архитектура между участниками сети (peer-to-peer, или сокращенно – P2P). Термин peer-to-peer, или P2P, означает, что компьютеры, участвующие в сети, равноправны. Термин не является новым, потому что, если сделать небольшой экскурс в историю, первое массовое использование P2P-сетей было реализовано сетью для обмена музыкальными файлами – Napster.
Несмотря на то, что сеть Napster была совсем несложной (просто протокол обмена файлами), но если сравнивать ее с сегодняшними блокчейн-сетями, ее основные принципы те же самые. В этом смысле самой старой P2P-сетью, которая больше всего напоминает работу текущих блокчейнов, является сеть SETI @ HOME. SETI @ HOME – это компьютерная сеть, созданная компанией SETI для анализа данных с расположенных по всему миру радиотелескопов для поиска разумной жизни в Галактике. Люди могут участвовать в этой сети, просто скачав программное обеспечение с их официального сайта.
В этом смысле, все построено так, что в P2P-сетях каждый компьютер, который участвует в сети, получает имя – нода. В сети все ноды (или другими словами – узлы) разделяют ответственность за предоставление сетевых услуг. Это происходит потому, что взаимодействуя в сети, ноды обеспечивают целостность работы.
Таким образом, термин «блокчейн-сеть» означает набор узлов, которые исполняют условия P2P-протокола для данного блокчейна. Сеть осуществляет управление и координирование действий полностью интегрированным, децентрализованным и распределенным образом – по таким канонам действует каждый пользователь в сети. Это означает, что эта сеть компьютеров со всего мира постоянно взаимодействует, инициируя новые транзакции. Каждый компьютер в этой сети является узлом, который полностью загрузил блокчейн. При этом сеть может перегружаться, но совместная работа делает ее масштабируемой по мере расширения.
Благодаря децентрализации блокчейна, в сети может участвовать любой желающий. Для этого вам просто нужно скач
Ноды в криптовалюте: что это
Наверное, не осталось уже ни одного человека, который не интересовался бы криптовалютой, и многие рассматривают виртуальные средства, как инвестиционный актив и спешат вложить в покупку монет свои сбережения. Но в первую очередь, нужно четко понимать, что такое криптовалюта и все сопровождающие ее понятия, одним из которых является нода. Далее пойдет речь о том, что такое ноды в криптовалюте.
Определение
Углубимся немного в историю, первая в мире криптовалюта появилась в 2009 году, всем известно, что это был Bitcoin. Именно Bitcoin является наиболее перспективным и востребованным инвестиционным инструмент, он является более или менее понятным для потенциального пользователя. На самом деле виртуальная монета представляет собой пять основных составляющих:
- транзакции виртуальной валюты осуществляется с одного адреса на другой, для этого лишь нужно получить уникальный шифр и приватный ключ;
- операции с виртуальными монетами представляют собой программу сценариев, то есть скриптов, сложенных последовательно в блоке транзакции, они между адресами зашифрованы;
- все транзакции складываются в блоке, а они, в свою очередь, в блокчейн;
- блокчейн представляет собой сводный отчет, в котором сохраняются блоки операций, все они взаимосвязаны и подписаны;
- криптовалюту добывают пользователи или майнеры, которые благодаря мощности электронно-вычислительной машины решают сложные математические задачи, и отвечают за корректность информации в блокчейне, затем получают вознаграждение в виде виртуальных монет.
Каждый компьютер, который добывает виртуальную монету может обмениваться информацией с другими такими же компьютерами, и они между собой образуют большую сеть. Именно она и называется нодой. Кстати, в переводе с английского нода – это узел, постольку, поскольку система криптовалюты децентрализованная, отсюда следует, что чем больше нод в сети, тем лучше.
Мнение эксперта
Евгений Беляев
Юрист-консультант, финансовый эксперт
СпроситьОбратите внимание, максимально правильно понять, что такое нода можно в том случае, если сравнить ее с программой торрент, которая постоянно обменивается файлами среди пользователей сети.
Что касается виртуальной валюты, то ее транзакция — это часть файла, которая должна попасть в блок, а потом блокчейн. Но разница с торрентом заключается в том, что здесь сложнее алгоритм проверки корректности данных. И нельзя не сказать о том, что Bitcoin значительно отличается от программы торрент благодаря тому, что здесь протокол не ограничивается блокчейном.
И все же, ноды в криптовалюте — что это? Ноды различают полные и неполные. Полную ноду мы только что описали выше, она хранит в себе копию блокчейна и имеет возможность проверить правильность приведенных в блоках операциях. Неполная нода отличается тем, что она используется для перевода виртуальных денег в качестве клиента, для блокчейна она не имеет никакой пользы и ее легко ввести в заблуждение.
Нужно сказать, что система блокчейна сама по себе не идеальна, по той простой причине, что для проведения внутри нее транзакций нужно хранить всю цепочку блоков. Но при этом транзакции зашифрованы, и неизвестно, какой адрес биткоина, кому принадлежит. Говоря простыми словами, пользователям блока транзакции видно все операции по счету, но неизвестен лишь, кто его владелец. Например, при оплате какой-либо покупки с банковской карты видно, кому принадлежит пластик, в данном случае гарантирована полная анонимность, однако можно получить адрес пользователя и посмотреть все его операции.
Для криптовалюты это является большой проблемой, поэтому создатели попытались предпринять некоторые действия, чтобы от нее избавиться. При совершении операций пользователь должен указывать новый адрес, чтобы распределить средства на разные адреса, которых может быть сотня. Но такая мера осторожности является лишь инициативой самого пользователя.
Мнение эксперта
Евгений Беляев
Юрист-консультант, финансовый эксперт
СпроситьОбратите внимание, что вопреки мнению большинства Bitcoin не является анонимным, а лишь обезличенным, при совершении каждой транзакции пользователи оставляет свои следы в системе блокчейна, поэтому, используя каждый раз новый адрес, он сможет сохранить коммерческую тайну.
В общем в итоге хочется сказать, что для решения проблемы анонимности, были разработаны специальные Bitcoin миксеры, которые работают по определенному принципу. Например, для того чтобы совершить транзакцию анонимно, то есть, чтобы пользователи цепочки не смогли установить отправителя, нужно обратиться к одному из сервисов, перевести ему деньги и сообщить номер получателя. Схема довольно простая: сервис получает деньги от нескольких пользователей одновременно, перемешивает виртуальные монеты и получателю уже переводит нужную сумму, но только от своего имени.
Используя миксер, трудно будет определить, кто, кому и сколько перевел виртуальных монет. Хотя, с другой стороны, сервис данную информацию сохраняет. Здесь нужно сказать, что появление криптовалюты было связано с тем, что все денежные операции в реальной валюте легко отслеживаются, и могут быть установлены контролирующими органами, благодаря шифрованию, данная проблема была решена. Но вместе с тем появилось и другая проблема, криптовалюта не признается в мире, как платежное средство, хотя в некоторых государствах уже рассматривается правительством.
Что такое мастернода
Мастерноды криптовалют – это своего рода надстройки к полной ноде, они должны отвечать некоторым дополнительным условиям:
- Мастернода должна всегда находиться в сети в режиме онлайн, то есть непрерывно работать в системе, поэтому обычно ее могут обеспечить только на специальном сервере, на домашнем компьютере ее поднять довольно сложно, хотя некоторым и удается.
- На счету пользователей замораживается определенная сумма, она будет зависеть непосредственно от виртуальной валюты, например, для Даши это 1000 виртуальных монет.
Разберем оба условия более подробно, хотя, наверное, с первым из них все более или менее понятно. То есть компьютер должен непрерывно работать в сети. А вот второй момент вызывает множество вопросов у пользователей, потому что далеко не все из них имеют возможность заморозить на счету 1 тысячу монет, для того чтобы открыть мастерноду. Именно это условие уменьшает численность узлов в сети, а, как говорилось, выше многолетний опыт использования и децентрализованных систем показывает, что чем большее количество узлов, тем лучше.
Свою популярность биткоин обрел благодаря тому, что каждый пользователь мог принять свое участие в развитии децентрализованной сети. Хотя на практике все не так просто, ведь разработчики программы создали двухуровневую систему, которая является более гибкой по сравнению с мастернодой, а нужно отметить, что если мастернод будет слишком много, то такая система потеряет свою работоспособность. На то есть несколько причин, разберем на примере Дашь, в рамках которой реализованы 3 технологии:
- Первая из них является аналогом сервисов миксеров, в которых транзакции перемешиваются, что обеспечивает анонимность криптовалюты, здесь эта технология называется darksend, но ее отличие заключается в том, что в процессе перемешивания транзакций перевод осуществляется на один адрес.
- Технология мгновенных платежей instant X отсутствует в Bitcoin, здесь нужно ждать, как минимум 10 минут для того, чтобы транзакция включилась в блок, а желательно дождаться 5 блоков или существует опасность, что она пропадет. Благодаря какой технологии у криптовалют, которые используют мастерноду транзакции осуществляются несколько по-другому, они блокируют средства, указанные в транзакции так, что их использовать повторно в других операциях будет невозможно, не нужно тратить время на ожидание включения транзакции в блок. Майнеры перед тем как включить транзакцию в блок получают уведомление от мастернода для какой операции заморожен тот или иной выход.
- Последняя технология – это централизованное управление блокчейном в рамках нее мастернода имеет возможность принять участие в голосовании за то или иное предложение, правда, за определенную плату равную пяти Дашь.
Собственно, из всех вышеперечисленных технологий можно сделать определенный вывод, что все же в сети мастрнода не слишком много, они плотно контактируют между собой и чем больше их будет, тем сложнее и будет поддерживать связь. Эти все вышеперечисленные характеристики противоречат самой концепции виртуальных монет и подразумевают выполнение определенного алгоритма, а также исключает принятие решения.
Биткоин в отличие от других цифровых денег, работающей на мастернодах спроектирован таким образом, чтобы работать без перебоев даже в условиях, когда ее пытаются обрушить, отправляя некорректные данные. Здесь каждый узел действует по определенному алгоритму, все транзакции проверяются по локальному блокчейну, соответственно при передаче некорректных данных это будет видно.
Мнение эксперта
Евгений Беляев
Юрист-консультант, финансовый эксперт
СпроситьОбратите внимание, при работе в сети мастернода используется метод подтверждения транзакции, POS или proof-of-stake, что в переводе означает доказательство доли владения. Все дело в том, что при майнинге виртуальной валюты майнер может не тратить огромные мощности своей вычислительной машины, система самостоятельно выбирает пользователя на основании доли его баланса, чем больше размер счета, тем больше вероятность того, что именно он сгенерировать блок.
Если подвести итог, то обе технологии и ноды и мастерноды имеют некоторые несовершенства. На самом деле инвестиции в покупку криптовалюты мероприятие довольно рискованное, можно приобрести виртуальные монеты или оборудование для ее добычи, но здесь стоит учитывать, что и в том, и в другом варианте, гарантировать успех вам никто не сможет.
как заработать, отличия от ноды
Мастер нода – узел, включающий транзакции в блок, связанный с электронным кошельком в сети блокчейн. Он полностью синхронизированный с транзакциями в блокчейне и позволяет майнеру получать пассивный доход.
Майнеры и инвесторы криптовалют неразрывно связаны с электронными кошельками, на которые они кладут цифровую валюту и накапливают доход. Существует несколько разновидностей этих кошельков, в зависимости от уровня их синхронизации с блокчейном определенной криптовалюты. Деление происходит так: ноды, полные ноды и мастер ноды. Их можно использовать как источник пассивного дохода в блокчейне на алгоритме Proof of Stake, но и в случае гибридных PoW/PoS они также работают у некоторых криптовалют.
Отличие между нодами
Если нода – это элементарный электронный кошелек, который только частично синхронизируется с блокчейном и не обязан быть постоянно онлайн, но полная нода — это полностью синхронизированный с блокчейном кошелек, содержащий всю информацию о транзакциях. Чтобы этот кошелек работал и приносил доход, компьютер пользователя должен быть подключен к сети интернет 24 часа в сутки. Другой способ – заплатить за аренду облачного сервера и хранить на нем свои данные по кошельку.
Если выполнить все условия сети блокчейн определенной криптовалюты (у всех они свои), то полная нода может стать мастер нодой. Мастернода – это узел, который отвечает за генерацию блоков цепочки и поддерживает сетевую работоспособность, связанный с кошельком. За проведение транзакций владелец мастерноды получает комиссионные – вознаграждение, которое ложится в кошелек. Некоторые криптовалюты позволяют пользователю перевести свой кошелек полной ноды в мастерноду, если выполнить поставленные условия. Среди требований – объем первоначальных вложений и особенности настроек сервера. Настраивать ноды нужно под определенную криптовалюту, эту услугу заказывают у программистов.
Как зарабатывать на мастернодах
Чтобы начать получать доход от операций в блокчейн сети по алгоритму PoS, не нужны большие вычислительные мощности и майнинг фермы, как при технологии PoW, прибыль поступает пассивно, основываясь на доле участия каждого майнера в общей эмиссии монет.
Чтобы получать доход, пользователь проходит такие этапы:
- Обеспечение постоянного подключения компьютера к сети и интернету, получение выделенного IP адреса
- Создание кошелька криптовалюты на алгоритме PoS с внесением суммы, не менее минимальной, которую разрешает разработчик криптовалюты
- Прохождение активации и получение ключа к кошельку (его сохраняют в недоступном для хакеров месте) для форджинга – с него нельзя снимать деньги или перемещать в течении определенного срока;
- На кошелек майнера будет поступать вознаграждение за генерацию новых блоков в блокчейне других пользователей
Каждый месяц проценты будут капать на кошелек мастернода. Они постепенно увеличивают капитал инвестора, как при банковском депозитном вкладе. Выводить валюту можно через криптовалютные биржи в фиатные деньги, можно инвестировать в другие проекты или использовать для внутренних расчетов. Условия по выводу можно уточнить для каждой криптовалюты отдельно.
Сегодня многие начинающие инвесторы предпочитают этот способ зарабатывать на криптовалюте, отказываясь от вкладов в майнинг фермы. Чтобы начать зарабатывать на мастерноде, не нужно тратить много электроэнергии и покупать дорогостоящее оборудование, а также следить за курсами валют на бирже. Пассивный доход поступает на кошелек самостоятельно, без усилий со стороны пользователя. Чтобы создать себе такой способ заработка, необходим только стартовый капитал и помощь программистов для запуска мастерноды.
Что же такое нода, мастернода, супернода, харвестинг?
Каждый компьютер, подключенный к сети блокчейна, называется «нода» (от лат. nodus — узел). Для связи нодов между собой используются P2P-протоколы. Данные о блоках и транзакция хранятся на нодах. Это может быть лишь определенная часть или же вся информация конкретной блокчейн-сети.
Полной нодой — называется тот компьютер, который синхронизирован с сетью и подключен к ней круглосуточно. Такие ноды сохраняют полностью всю информацию блокчейна.
Обслуживание, загрузка и валидация блоков сети осуществляется именно полными нодами. Они руководствуются только алгоритмом консенсуса и имеют абсолютную независимость. Если какие-либо блоки, транзакции противоречат данному консенсусу, то они отвергаются полными нодами.
Как происходит установка полной биткоин-ноды?
Для запуска полной ноды может использоваться как стандартный компьютер, так и виртуальный сервер, а также необходимо наличие клиента Bitcoin Core, который доступен для скачивания на bitcoin.org. Кроме того, нужно брандмауэр (если он используется) не блокировал доступ к порту TCP 8333 должен быть окрытым, доступ к которому не должен блокироваться брандмауэром.
Зависит ли функционирование сети от количества полных нод?
От количества полных нод зависит уровень децентрализации сети. Чем их больше, тем сложнее принимать протоколы, в которых заинтересованы только конкретные группы игроков.
Облегченная нода – что это такое?
Существует ли карта полных нод?
Карта с отметками географического местонахождения действующих полных нод есть на сайте Bitnodes. Также этот сервис дает возможность проверить, корректна ли переадресация портов.
Что такое мастернода?
Мастернода – та же полная нода, но с особыми настройками. Она, как и маqнеры получает плату за обслуживание конкретной сети. Самым ярким примером использования мастернод является сеть Dash.
Главная задача мастернод – обеспечить большую анонимность. Проще говоря, данные о транзакциях хранятся на мастернодах без публичного доступа. Чтобы запустить мастерноду, необходимо внести определенный депозит в валюте сети.
Что такое супернода?
Супернода представляет собой ту же мастерноду, но только в сети NEM. Супернода — это конечная точка API криптовалюты, которая функционирует без кошелька.
Где используется технология мастернод?
Данная технология используется в блокчейнах NEM, Syscoin, Dash, PIVX и т.д.
Может ли мастернода приносить доход?
Содержание мастерноды – это своего рода пассивный майнинг. Также как и манеры, владельцы мастернод делят прибыль, которую приносит валидация и генерация блоков. Как правило, уровень дохода от мастерноды имеет обратно пропорциональную зависимость от ликвидности криптовалюты. Другими словами, увеличение капитализации и рост активности участников уменьшает доход от мастерноды.
Где можно узнать о прибыльности мастернод?
Всю необходимую информацию можно найти на Crypto-coinz.net. Здесь есть данные как по дневному, так и по годовому ROI, информацию о размере депозита, который требуется при запуске мастерноды, и сколько нод содержит данная сеть.
Что представляет собой харвестинг?
Харвестинг – один из методов вознаграждения за работу, которую осуществляют ноды в сети NEM. В основе харвестинга лежит консенсусный алгоритм POI (Proof-Of-Importance). Благодаря этому несколько аккаунтов может использовать одного клиента для харвестинга. Определяя коэффициент значимости конкретного аккаунта, POI берет во внимание 3 фактора: количество валюты, время ее нахождения на счету, активное участие в транзакциях. Коэффициент значимости показывает вероятность того, когда этот аккаунт найдет следующий блок.
Что представляет собой локальный харвестинг?
Запустить локальный харвестинг можно только с помощью локального компьютера, потому что клиенту сети NEM предоставляется приватный ключ, а это несет определенную угрозу средствам, которые находятся в данном аккаунте. Подобные проблемы безопасности не способствуют росту популярности данного вида харвестинга.
Что представляет собой делегированный харвестинг?
Это один из видов харвестинга, при котором создается аккаунт-посредник, и приватный ключ данного аккаунта передается клиенту сети. На этом аккаунте не хранятся деньги, и таким образом решена проблема с безопасностью. Официальными кошельками XEM поддерживается только опция делегированного харвестинга.
Установка и настройка ноды bitcoin, ethereum, dash, litecoin, cardano
Мне периодически приходится устанавливать и настраивать ноды различных криптовалют. Делать это не сложно, но везде есть небольшие нюансы, на которые надо обращать внимание и вспомнать, как действовать. Сегодня я расскажу, как установить и запустить ноды популярных криптовалют — bitcoin, ethereum, dash, litecoin, cardano.
Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.
Введение
В целом свое отношение к криптовалютам я описал в отдельной статье. Привожу просто для справки тем, кому будет любопытно. Сегодня мы будем рассматривать исключительно техническую сторону процесса.
Сама по себе установка ноды криптовалюты не представляет большой сложности. Нужно выполнить несколько простых команд в консоли сервера. Я поделюсь некоторыми своими мыслями на этот счет, так как много занимался этой темой и накоплен определенный опыт.
Самая большая проблема в этом вопросе — подходящее железо. Совсем бюджетные виртуалки ноды криптовалют не тянут. А такие валюты как эфир или биткоин еще и очень большой объем диска требуют — 300-600 гб. Нужен выделенный сервер нижнего или среднего ценового сегмента. Лучше всего брать в Европе, там дешевле. По моей ссылке будут сервера с русскоязычным саппортом. Если он вам не нужен, можете напрямую в hetzner брать или где-то еще, будет дешевле. Рейд контроллер там не обязателен, так как никакой уникальной информации нода хранить не будет. В случае выхода из строя она без проблем поднимается на новом железе.
Системные требования для ноды криптовалюты
Размер блокчейна
Обращаю сразу внимание на самое основное. Внимательно следите за размером блокчейна валюты, ноду которой вы будете настраивать. Покупайте сервер с большим запасом, так как блокчейн некоторых криптовалют может стремительно расти. Из недавнего примера — эфир. До нового года, если не ошибаюсь, ее блокчейн был менее 100 гб, а сейчас что-то в районе 500 гб. У меня все ноды посыпались из-за этого, пришлось срочно решать вопрос со свободным местом.
Производительность дисков
Далее нужно обращать внимание на производительность дисков. Нода криптовалюты — это огромное количество мелких, зачастую очень мелких файлов, счет которых может идти на миллионы. Далее я подробно на этом остановлюсь, когда будем cardano устанавливать. Сейчас дам универсальный совет. Если у вас обычные SATA диски, то один диск нормально тянет одну ноду. Если ставить 2-3 ноды криптовалюты, то будет плохо, со временем сервер может зависать из-за огромного iowait.
Это очень условные примеры, потому что разные ноды по разному нагружают систему. Эфир больше всех, биткоин поменьше, остальные примерно одинаково.
Процессор и память
Я поднимаю ноды в виртуальных машинах. Обычно придерживаюсь таких параметров. Для ноды Etherium выделяю 4 ядра процессора, 8 гигабайт памяти. Для bitcoin 2 ядра, 8 памяти. Для всех остальных 2 ядра, 4 гб памяти. Если память есть свободная, то лучше всем по 8 давать.
Операционная система
Я буду устанавливать криптовалютные ноды на Ubuntu 16. Хоть я и не очень люблю эту систему, но так проще всего. Обычно разработчики нод объявляют поддержку именно этой системы. Под нее всегда есть готовые сборки и скрипты установки. С другой версией линукс придется тратить больше времени.
Самый простой вариант — использовать готовые образы docker. Я не знаю, легко ли они находятся под все криптовалюты и насколько актуальны. Сам я не использую докер в данном случае, потому что установка очень простая и лишняя прослойка в виде докера не нужна. Если вам реально нужны контейнеры докер для нод криптовалют, сможете собрать их сами, если умеете работать с docker.
Установка ноды Ethereum
Обращаю внимание, что я все делаю под пользователем root. Лучше ноды запускать под отдельным пользователем, но мне не хочется перегружать статью информацией о том, как создавать пользователя, запускать от его имени приложение и т.д. Статья в любом случае не для новичков. Я даю общую информацию со ссылками. При необходимости, вы сами сможете все аккуратно настроить в боевом режиме.
Добавляем репозиторий ethereum
# add-apt-repository -y ppa:ethereum/ethereum
Обновляем список репозиториев
# apt update
Устанавливаем непосредственно ноду эфира.
# apt install ethereum
Дальше вы можете любо подключить ноду к реальной сети, либо запустить на тестовой для каких-то своих целей — тестирование, разработка и т.д.
Запуск рабочей ноды ethereum:
# geth console
Запуск тестовой ноды:
# geth --testnet console
В домашней директории пользователя, от которого вы запускаете ноду, будет создана папка .ethereum, в которой будет храниться вся информация по ноде, в том числе сам блокчейн. Имеет смысл создавать отдельного пользователя для этих целей.
Ноду можно запускать с параметрами, передавая их в виде ключей командной строки. Например так:
# geth --cache=4096 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi "web3,personal,admin,debug,db,net,eth,miner,rpc,txpool"
Описание ключей смотрите в официальной документации go-ethereum на гитхабе. Там же, кстати, и ссылка на оригинальное руководство по установке есть.
По-умолчанию, стандартная нода эфира работает прямо в консоли. Надо запускать ее как процесс в фоне. Можно написать service в systemd, но я не большой специалист в этом. Я пошел по самому простому и очевидному пути — запускать ноду в
screen -dmS geth /usr/bin/geth --verbosity 3
Не забудьте указать нужные вам ключи запуска. Теперь проверим, как у нас работает нода, можно ли ей управлять через json rpc запросы. Допустим, мы запустили ноду со следующими параметрами:
# geth --cache=4096 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpccorsdomain "*" --rpcapi "web3,personal,admin,debug,db,net,eth,miner,rpc,txpool"
В соседней консоли проверяем, все ли нормально поднялось:
# netstat -tulnp | grep geth tcp6 0 0 :::30303 :::* LISTEN 1177/geth tcp6 0 0 :::8545 :::* LISTEN 1177/geth udp6 0 0 :::30303 :::* 1177/geth
Все в порядке. Отправляем тестовый запрос:
# curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' localhost:8545
В ответ должны получить что-то вроде этого:
{"jsonrpc":"2.0","id":67,"result":"Geth/v1.8.8-stable-2688dab4/linux-amd64/go1.10"}
Все работает. Что с этим делать дальше разбирайтесь сами или отдавайте сервер разработчикам. Они будут пилить очередное приложение или биржу для криптовалюты.
Установка ноды bitcoin
Продолжим устанавливать ноды криптовалют. Переходим к настройке ноды биткоин. Выполним немного подготовительных действий, чтобы потом сразу запустить ноду с нужными параметрами. Создаем в домашней директории папку для ноды:
# mkdir ~/.bitcoin
Рисуем примерно такой конфиг для нее:
# mcedit ~/.bitcoin/bitcoin.conf printtoconsole=1 testnet=1 txindex=1 rpcuser=btcuser rpcpassword=btcpass rpcport=8332 rpcbind=0.0.0.0 rpcallowip=0.0.0.0/0 datadir=/mnt/bitcoin
Приступаем к установке ноды. Подключаем репозиторий и обновляем список:
# apt-add-repository ppa:bitcoin/bitcoin # apt update
Устанавливаем службу bitcoin ноды:
# apt install bitcoind
Запускаем ноду с указанным ранее конфигом в режиме службы:
# bitcoind -daemon
Здесь ничего костылить не надо для автоматического запуска ноды, как это было с ethereum. Биткоин нода из коробки умеет работать как служба. Проверим, запустилась ли она.
# netstat -tulnp | grep bitcoind tcp 0 0 0.0.0.0:18333 0.0.0.0:* LISTEN 5405/bitcoind tcp 0 0 127.0.0.1:8332 0.0.0.0:* LISTEN 5405/bitcoind tcp6 0 0 :::18333 :::* LISTEN 5405/bitcoind tcp6 0 0 ::1:8332 :::* LISTEN 5405/bitcoind
Порт 18333 слушает блокчейн. Это дефолтный параметр. 8332 — rpc порт для взаимодействия с нодой. Все то же самое, что и с эфиром.
Если вам надо остановить ноду, выполните в консоли:
# bitcoin-cli stop
Команда сработает только, если у вас настроен rpc. Если нет, то выключить можно только так:
# pkill -9 -f bitcoind
Проверить работу bitcoin ноды можно, к примеру, следующей командой:
# bitcoin-cli getblockchaininfo
Добавим теперь ноду в автозагрузку. Для этого создадим запись в crontab.
# crontab -e
Добавляем строку:
@reboot bitcoind -daemon
На этом все. Биткоин нода готова к работе. Переходим к следующей криптовалюте.
Установка ноды DASH
Установим ноду криптовалюты DASH. Сначала ставим необходимые зависимости:
# apt install dirmngr
Скачиваем последнюю версию ноды. Для этого идем по адресу https://github.com/dashpay/dash/releases/ и смотрим номер последнего релиза. После этого копируем последний релиз к себе. На момент написания статьи последней версией ноды была v0.12.2.3.
# wget https://github.com/dashpay/dash/releases/download/v0.12.2.3/dashcore-0.12.2.3-linux64.tar.gz --no-check-certificate
Распаковываем и копируем бинарники в системные папки.
# tar -zvxf dashcore-* # mv *-[0-9].[0-9][0-9].*/bin/* /usr/bin
Создаем директорию для файлов ноды и рисуем для нее конфиг. Запускать будем с параметром testnet.
# mkdir ~/.dashcore # cd ~/.dashcore && mcedit dash.conf
printtoconsole=1 rpcallowip=::/0 txindex=1 testnet=1 rpcuser=dashuser rpcpassword=dashpassword rpcport=8999
Запускаем ноду dash.
# dashd
Нода работает в консоли, как служба по-умолчанию не работает. Чтобы запускать ее в фоне, необходимо воспользоваться утилитой screen. Делать все нужно по аналогии с руководством ноды эфира, что описана в самом начале. Запускаем так:
# screen -dmS dash /usr/bin/dashd
Проверить состояние ноды можно командой:
# dash-cli mnsync status
На этом все, нода криптовалюты dash установлена и работает.
Установка ноды litecoin
Установка ноды для криптовалюты litecoin очень похожа на dash. Почти все шаги такие же, только версия ПО будет своя. Устанавливаем необходимые пакеты:
# apt install dirmngr
Дальше идем на сайт https://litecoin.org. В разделе DOWNLOAD копируем ссылку на Litecoin Core for Linux. Скачиваем исходники на сервер.
# wget https://download.litecoin.org/litecoin-0.16.0/linux/litecoin-0.16.0-x86_64-linux-gnu.tar.gz --no-check-certificate
Распаковываем архив и копируем бинарники в системные папки.
# tar -zvxf litecoin-* # mv litecoin-0.16.0/bin/* /usr/bin
Создаем директорию для файлов ноды и рисуем для нее конфиг. Запускать будем с параметром testnet.
# mkdir ~/.litecoin # cd ~/.litecoin && mcedit litecoin.conf
printtoconsole=1 rpcallowip=::/0 txindex=1 testnet=1 rpcuser=ltcuser rpcpassword=ltcpassword rpcport=2339
Запускаем ноду litecoin:
# litecoind
Проверяем, что там запустилось:
# netstat -tulnp | grep litecoind tcp 0 0 0.0.0.0:19335 0.0.0.0:* LISTEN 2973/litecoind tcp6 0 0 :::2339 :::* LISTEN 2973/litecoind tcp6 0 0 :::19335 :::* LISTEN 2973/litecoind
Проверим статус самой ноды litecoin
# litecoin-cli getblockchaininfo
Нода работает в консоли, как служба по-умолчанию не работает. Чтобы запускать ее в фоне, необходимо воспользоваться утилитой screen. Делать все нужно по аналогии с руководством ноды эфира, что описана в самом начале. Запускаем так:
# screen -dmS litecoin /usr/bin/litecoind
Нода litecoin установлена и настроена. Переходим к следующей.
Установка ноды Cardano
Займемся теперь настройкой ноды молодой криптовалюты Cardano. Не знаю, что в ней интересного, но запросы на ее настройку у меня были. Помучался я с ней прилично, так как руководство не очень понятное, по нему без плясок не ставится. Но в итоге я научился ее готовить. Официальное руководство по установке есть ни гитхабе. Я буду настраивать по нему, но с некоторыми изменениями. Команда на сборку будет другая, если делать по руководству, то не соберется.
Сборка будет идти через некий пакетный менеджер Nix, который лично я видел впервые. Его необходимо установить, причем под непривилегированным пользователем. От root установщик nix не работает. Будет ошибка. Добавим сначала пользователя cardano.
# useradd -d /home/cardano -s /bin/bash cardano # passwd cardano # adduser cardano sudo # mkdir /home/cardano && chown cardano. /home/cardano
Заходим под новым пользователем и запускаем установщик nix.
# su cardano # cd ~ # curl https://nixos.org/nix/install | sh
Выполняем согласно указанию инсталлятора в консоли команду.
# . /home/cardano/.nix-profile/etc/profile.d/nix.sh
Создадим конфиг для nix и запишем туда пару параметров.
# sudo mkdir -p /etc/nix # sudo mcedit /etc/nix/nix.conf
Добавляем следующие строки:
binary-caches = https://cache.nixos.org https://hydra.iohk.io binary-cache-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=
Начинаем установку ноды Cardano. Клонируем себе репозиторий и переходим в него.
# git clone https://github.com/input-output-hk/cardano-sl.git # cd cardano-sl
Переключаемся на master ветку.
# git checkout master
Запускаем сборку cardano node из исходников.
# nix-build -A cardano-sl --cores 0 --max-jobs 2 --no-build-output --out-link master
Генерируем скрипт для запуска ноды:
# nix-build -A connectScripts.mainnet.wallet -o connect-to-mainnet
Нода собрана и установлена. Запускаем:
# ./connect-to-mainnet
Для автоматического запуска cardano node после загрузки системы, добавьте команду в /etc/rc.local перед командой exit.
screen -d -m -S cardano sudo -u cardano /home/cardano/cardano-sl/connect-to-mainnet
Проверить работы ноду можно, выполнив локально команду:
# curl https://127.0.0.1:8090/api/v1/node-info --cacert /home/cardano/cardano-sl/state-wallet-mainnet/tls/server/ca.crt --cert /home/cardano/cardano-sl/state-wallet-mainnet/tls/client/client.pem
{"data":{"syncProgress":{"quantity":3,"unit":"percent"},"blockchainHeight":{"quantity":1147025,"unit":"blocks"},"localBlockchainHeight":{"quantity":35183,"unit":"blocks"},"localTimeInformation":{"differenceFromNtpServer":{"quantity":-25400,"unit":"microseconds"}}},"status":"success","meta":{"pagination":{"totalPages":1,"page":1,"perPage":1,"totalEntries":1}}}
На этом настройка ноды окончена. Полную документацию по Cardano Wallet API читайте по ссылке.
В момент моей последней установки ноды cardano я столкнулся с тем, что через несколько дней работы нода скушала все свободные inodes и перестала работать. Дефолтного значения файловой системы ext4 в 1 000 000 ей показалось мало. Пришлось добавлять отдельный диск и в момент создания файловой системы указать на создание 10 000 000 inodes. Через пару месяцев работы нода использует 2 300 000 inodes. Имейте ввиду этот момент, если будете работать с нодой.
Установка Bitcoin Cash Full Node
Установка ноды форка биткоина — Bitcoin Cash абсолютно ничем не отличается от своего родоначальника. Нам просто нужно подключить другой репозиторий.
# add-apt-repository ppa:bitcoin-abc/ppa
Все остальное полностью идентично, до каждой команды. И запуск в режиме демона, и автозагрузка, и остановка, и проверка ноды выполняются теми же командами.
Установка NEO ноды
Для работы Neo Node нужен .NET Core, который к моему удивлению есть под linux. Ставим его:
# wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb # sudo dpkg -i packages-microsoft-prod.deb # apt install apt-transport-https # apt update # apt install dotnet-sdk-2.1
Для других версий ссылку на deb пакет можно посмотреть на отдельной странице. В дополнение ставим несколько пакетов зависимостей ноды:
# apt install libleveldb-dev sqlite3 libsqlite3-dev libunwind8-dev
Качаем со страницы https://github.com/neo-project/neo-cli/releases последнюю версию под свою систему и распаковываем.
# cd ~ # wget https://github.com/neo-project/neo-cli/releases/download/v2.9.0/neo-cli-linux-x64.zip # unzip neo-cli-linux-x64.zip
Запускаем Neo node:
# dotnet /root/neo-cli/neo-cli.dll /rpc
Откроется cli интерфейс. Можно ввести команду help и посмотреть актуальные команды. Как сервис из коробки эта нода работать не умеет, поэтому запускаем в screen и добавляем в /etc/rc.local для автозагрузки:
screen -d -m -S neo dotnet /root/neo-cli/neo-cli.dll /rpc
В своей работе neo node использует следующие порты:
Мониторинг работы нод
Сразу скажу, что все ноды у меня работали стабильно и не падали, кроме Cardano. Из-за нее пришлось озаботиться отдельным мониторингом нод. На помощь пришел zabbix. Для мониторинга я использовал стандартную проверку доступности сервиса по tcp порту. Заббикс просто обращается на указанный адрес и порт и проверяет, что служба принимает подключения.
Покажу на примере ноды Cardano. На Zabbix server я добавил элемент данных:
Создал на основе этого элемента триггер:
Просто узнать, что нода упала мало. Нужно ее еще обратно поднять. Для этого на самой ноде я сделал простой скрипт перезапуска.
#!/bin/bash sc=`pidof SCREEN` kill $sc screen -d -m -S cardano sudo -u cardano /home/cardano/cardano-sl/connect-to-mainnet
Скрипт находит pid сессии screen, в которой запущена нода и закрывает ее. После этого запускает ноду заново. Далее я создал отдельное действие в заббиксе, которое выполняло указанный скрипт на сервере в случае, если срабатывал триггер.
Конкретно с Cardano этот способ успешно работал и падения ноды перестали замечать. Она успешно перезапускалась.
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
Если у кого-то есть опыт работы с нодами криптовалют, прошу поделиться. Тема не очень популярная. В рунете я вообще не видел информацию на эту тему. В глобальном интернете каких-то подробных руководств или обмена опытом тоже нет. В основном только инструкции от разработчиков по установке и настройке.
Сам софт для нод мне показался каким-то недоделанным что ли. Как-будто на коленке по-быстрому собрали. Никто, кроме биткоина, не умеет работать как служба. Приходится костылить на месте, чтобы нормально запускать и управлять нодами.