Как запустить ноду биткоина

Устанавливаем полную ноду биткоина с Bitcoin Core – пошаговое руководство

Децентрализация – ключевая характеристика биткоина. Благодаря децентрализации биткоин не имеет единой точки управления и отказа. Децентрализация также означает необходимость в как можно большем числе полных нод.

ForkLog составил пошаговую инструкцию по установке полной ноды биткоина при помощи наиболее популярного клиента сети Bitcoin Core.

Что такое полная нода и для чего она нужна

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

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

«Биткоин – это изощренная децентрализованная сеть доверия, которая может поддерживать мириады финансовых процессов. В то же время каждая нода в сети биткоина следует нескольким простым математическим правилам. Взаимодействие между многими нодами – вот что ведет к изощренному поведению, а не какая-то изначально заложенная сложность или доверие к одной ноде. Подобно муравьиной колонии, биткоин – это устойчивая сеть простых нод, следующих простым правилам, которые вместе могут делать удивительные вещи без какой-либо центральной координации», — пишет известный биткоин-евангелист Андреас Антонопулос в своей книге Mastering Bitcoin.

Развернуть полную ноду может любой пользователь с доступом к компьютеру с достаточными характеристиками и интернет-соединением. По состоянию на 20 мая 2020 года, сеть биткоина поддерживали более 10 тысяч нод, большая часть которых развернута в Северной Америке и Западной Европе.

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

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

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

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

Минимальные технические требования

Перед установкой полной ноды необходимо убедиться, что ваш компьютер удовлетворяет ряду минимальных технических требований. Согласно bitcoin.org, это:

  • Десктопный компьютер или ноутбук с последними версиями Windows, Mac OS X или Linux;
  • 200 Гб свободного пространства на жестком диске с минимальной скоростью чтения / записи 100 MB/s;
    2 Гб оперативной памяти (RAM);
  • Широкополосное интернет-соединение с upload-скоростью как минимум 400 Kb/s. Также важно, чтобы соединение было неограниченным и с высокими upload-лимитами.

В идеале ПО для полной ноды должно работать 24/7, но это может получиться не у всех, поэтому рекомендуемое время его работы составляет как минимум шесть часов в день.

Устанавливаем полную ноду

Реквизитом стал ноутбук Dell Inspiron 15 3584 (Core i3-7020U (2.30 GHz), DDR4 4GB, HDD 1TB) с Windows 10. Устанавливаем Bitcoin Core – наиболее популярный клиент сети, работу над которым ведет широкое сообщество разработчиков. Как будет видно ниже, это достаточно простой процесс, большая часть которого сводится к установке самого кошелька.

Заходим на https://bitcoin.org/en/download, где нас встречает Bitcoin Core 0.19.1 — последняя версия ПО, выпущенная в марте этого года.

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

Скачав установочный файл, приступаем непосредственно к установке. Мы в шаге от возможно самого главного решения в нашей жизни!

Следующим шагом необходимо выбрать диск, на который программа будет установлена. По умолчанию установщик предложит выбрать диск C. Для этого необходимо 52Мб свободного пространства, которые у нас имеются:

Начинаем процесс распаковки:

Спустя короткое время распаковка завершена, и Bitcoin Core готов к работе. Почти.

Далее идет очень важный этап — необходимо указать диск, на котором будут храниться данные блокчейна. И как видно на скрине ниже, к сегодняшнему дню его полный размер вырос до 284 Гб.

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

Читайте также:  Теория выбора портфельных инвестиций

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

Кроме того, на пути может встать файерволл, но это решается достаточно быстро и просто.

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

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

Синхронизация данных до второй половины 2015 года была выполнена весьма быстро — на это потребовалось около трех часов. Однако далее процесс существенно замедлился, что объясняется возросшим средним размером блока.

Как бы то ни было, спустя почти пять дней беспрерывной работы ноутбука и нервного ожидания, процесс синхронизации был завершен!

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

Наша задача — запустить полную ноду. Для этого необходимо осуществить еще несколько действий. В первую очередь — настроить входящие соединения через порт 8333.

Для этого через вкладку Настройки > Опции заходим в сетевые настройки, отмечаем “разрешить входящие подключения” и вручную прописываем параметры порта.

В теории этого должно быть достаточно, однако для того, чтобы изменения вступили в силу, еще необходима перезагрузка программы. К слову, выключение Bitcoin Core всегда следует производить через Файл > Закрытие программы.

Перезагрузив клиент, выжидаем около 15-20 минут, после чего заходим на https://bitnodes.io/, где находим поле проверки доступности ноды.

Если это сделать непосредственно после запуска программы, вас, скорее всего, встретит сообщение, что нода не отвечает:

Наша конечная цель в том, чтобы получить следующий результат:

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

Дополнительную информацию по возможным проблемам с конфигурацией можно найти в специальном разделе на Bitcoin.org, либо обратиться за помощью к специалистам.

Тем не менее при достаточных усилиях вопрос вполне разрешим, а это значит, что запуск полной ноды — процесс далеко не такой сложный, как это может показаться на первый взгляд. И по его завершении уже можно смело похвастать, что вы не просто владеете биткоинами, а что вы — и есть биткоин! Ну или как минимум его часть.

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

Подписывайтесь на новости ForkLog в Telegram: ForkLog FEED — вся лента новостей, ForkLog — самые важные новости и опросы.

Источник

Установка и настройка ноды 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

Добавляем репозиторий ethereum

Обновляем список репозиториев

Устанавливаем непосредственно ноду эфира.

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

Запуск рабочей ноды ethereum:

Запуск тестовой ноды:

В домашней директории пользователя, от которого вы запускаете ноду, будет создана папка .ethereum, в которой будет храниться вся информация по ноде, в том числе сам блокчейн. Имеет смысл создавать отдельного пользователя для этих целей.

Ноду можно запускать с параметрами, передавая их в виде ключей командной строки. Например так:

Описание ключей смотрите в официальной документации go-ethereum на гитхабе. Там же, кстати, и ссылка на оригинальное руководство по установке есть.

По-умолчанию, стандартная нода эфира работает прямо в консоли. Надо запускать ее как процесс в фоне. Можно написать service в systemd, но я не большой специалист в этом. Я пошел по самому простому и очевидному пути — запускать ноду в screen. Для того, чтобы она поднималась после загрузки сервера, добавляем в /etc/rc.local перед exit 0:

Не забудьте указать нужные вам ключи запуска. Теперь проверим, как у нас работает нода, можно ли ей управлять через json rpc запросы. Допустим, мы запустили ноду со следующими параметрами:

В соседней консоли проверяем, все ли нормально поднялось:

Все в порядке. Отправляем тестовый запрос:

В ответ должны получить что-то вроде этого:

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

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

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

Рисуем примерно такой конфиг для нее:

Приступаем к установке ноды. Подключаем репозиторий и обновляем список:

Устанавливаем службу bitcoin ноды:

Запускаем ноду с указанным ранее конфигом в режиме службы:

Здесь ничего костылить не надо для автоматического запуска ноды, как это было с ethereum. Биткоин нода из коробки умеет работать как служба. Проверим, запустилась ли она.

Порт 18333 слушает блокчейн. Это дефолтный параметр. 8332 — rpc порт для взаимодействия с нодой. Все то же самое, что и с эфиром.

Если вам надо остановить ноду, выполните в консоли:

Команда сработает только, если у вас настроен rpc. Если нет, то выключить можно только так:

Проверить работу bitcoin ноды можно, к примеру, следующей командой:

Добавим теперь ноду в автозагрузку. Для этого создадим запись в crontab.

На этом все. Биткоин нода готова к работе. Переходим к следующей криптовалюте.

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

Установим ноду криптовалюты DASH. Сначала ставим необходимые зависимости:

Скачиваем последнюю версию ноды. Для этого идем по адресу https://github.com/dashpay/dash/releases/ и смотрим номер последнего релиза. После этого копируем последний релиз к себе. На момент написания статьи последней версией ноды была v0.12.2.3.

Распаковываем и копируем бинарники в системные папки.

Создаем директорию для файлов ноды и рисуем для нее конфиг. Запускать будем с параметром testnet.

Запускаем ноду dash.

Нода работает в консоли, как служба по-умолчанию не работает. Чтобы запускать ее в фоне, необходимо воспользоваться утилитой screen. Делать все нужно по аналогии с руководством ноды эфира, что описана в самом начале. Запускаем так:

Проверить состояние ноды можно командой:

На этом все, нода криптовалюты dash установлена и работает.

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

Установка ноды для криптовалюты litecoin очень похожа на dash. Почти все шаги такие же, только версия ПО будет своя. Устанавливаем необходимые пакеты:

Читайте также:  Инвестиции от сбербанка реально ли заработать

Дальше идем на сайт https://litecoin.org. В разделе DOWNLOAD копируем ссылку на Litecoin Core for Linux. Скачиваем исходники на сервер.

Распаковываем архив и копируем бинарники в системные папки.

Создаем директорию для файлов ноды и рисуем для нее конфиг. Запускать будем с параметром testnet.

Запускаем ноду litecoin:

Проверяем, что там запустилось:

Проверим статус самой ноды litecoin

Нода работает в консоли, как служба по-умолчанию не работает. Чтобы запускать ее в фоне, необходимо воспользоваться утилитой screen. Делать все нужно по аналогии с руководством ноды эфира, что описана в самом начале. Запускаем так:

Нода litecoin установлена и настроена. Переходим к следующей.

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

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

Сборка будет идти через некий пакетный менеджер Nix, который лично я видел впервые. Его необходимо установить, причем под непривилегированным пользователем. От root установщик nix не работает. Будет ошибка. Добавим сначала пользователя cardano.

Заходим под новым пользователем и запускаем установщик nix.

Выполняем согласно указанию инсталлятора в консоли команду.

Создадим конфиг для nix и запишем туда пару параметров.

Добавляем следующие строки:

Начинаем установку ноды Cardano. Клонируем себе репозиторий и переходим в него.

Переключаемся на master ветку.

Запускаем сборку cardano node из исходников.

Генерируем скрипт для запуска ноды:

Нода собрана и установлена. Запускаем:

Для автоматического запуска cardano node после загрузки системы, добавьте команду в /etc/rc.local перед командой exit.

Проверить работы ноду можно, выполнив локально команду:

На этом настройка ноды окончена. Полную документацию по Cardano Wallet API читайте по ссылке.

В момент моей последней установки ноды cardano я столкнулся с тем, что через несколько дней работы нода скушала все свободные inodes и перестала работать. Дефолтного значения файловой системы ext4 в 1 000 000 ей показалось мало. Пришлось добавлять отдельный диск и в момент создания файловой системы указать на создание 10 000 000 inodes. Через пару месяцев работы нода использует 2 300 000 inodes. Имейте ввиду этот момент, если будете работать с нодой.

Установка Bitcoin Cash Full Node

Установка ноды форка биткоина — Bitcoin Cash абсолютно ничем не отличается от своего родоначальника. Нам просто нужно подключить другой репозиторий.

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

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

Для работы Neo Node нужен .NET Core, который к моему удивлению есть под linux. Ставим его:

Для других версий ссылку на deb пакет можно посмотреть на отдельной странице. В дополнение ставим несколько пакетов зависимостей ноды:

Качаем со страницы https://github.com/neo-project/neo-cli/releases последнюю версию под свою систему и распаковываем.

Запускаем Neo node:

Откроется cli интерфейс. Можно ввести команду help и посмотреть актуальные команды. Как сервис из коробки эта нода работать не умеет, поэтому запускаем в screen и добавляем в /etc/rc.local для автозагрузки:

В своей работе neo node использует следующие порты:

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

Сразу скажу, что все ноды у меня работали стабильно и не падали, кроме Cardano. Из-за нее пришлось озаботиться отдельным мониторингом нод. На помощь пришел zabbix. Для мониторинга я использовал стандартную проверку доступности сервиса по tcp порту. Заббикс просто обращается на указанный адрес и порт и проверяет, что служба принимает подключения.

Покажу на примере ноды Cardano. На Zabbix server я добавил элемент данных:

Создал на основе этого элемента триггер:

Просто узнать, что нода упала мало. Нужно ее еще обратно поднять. Для этого на самой ноде я сделал простой скрипт перезапуска.

Скрипт находит pid сессии screen, в которой запущена нода и закрывает ее. После этого запускает ноду заново. Далее я создал отдельное действие в заббиксе, которое выполняло указанный скрипт на сервере в случае, если срабатывал триггер.

Конкретно с Cardano этот способ успешно работал и падения ноды перестали замечать. Она успешно перезапускалась.

Заключение

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

Сам софт для нод мне показался каким-то недоделанным что ли. Как-будто на коленке по-быстрому собрали. Никто, кроме биткоина, не умеет работать как служба. Приходится костылить на месте, чтобы нормально запускать и управлять нодами.

Источник

Оцените статью