Найти в Дзене

Обзор блокчейна Waves, Часть 2: Ноды

Ноды — неотъемлемая часть экосистемы Waves. Они помогают управлять блокчейном, валидировать транзакции, генерировать новые блоки, а также, обеспечивать безопасность сети. Каждая нода Waves — это полный узел, который участвует в процессе децентрализованной генерации блоков. Ноды хранят полную базу данных блокчейна и обмениваются этими данными с другими нодами. Обзор блокчейна Waves, Часть 1: Что такое Waves Валидация подразумевает проверку блоков, правильность вычисления хешей, наличия хеша предыдущего блока в новом. Каждая транзакция в блоке должна быть проверена и подписана соответствующими сторонами. Любая нода может транслировать новые транзакции в сеть до тех пор, пока они не будут добавлены в блок. Для запуска и работы полных нод, которые помогают управлять блокчейном Waves, валидировать транзакции и генерировать новые блоки, требуется 1000 и более монет WAVES. Генерирующие ноды могут быть использованы для форджинга (чеканки) новых блоков и проверки валидности каждой транзакции. С
Оглавление

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

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

Обзор блокчейна Waves, Часть 1: Что такое Waves

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

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

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

Нода может иметь нулевой баланс, но для генерации блоков необходимо иметь минимальный баланс 1000 WAVES (включая WAVES, которые получены в лизинг).Чем больше в ноде монет WAVES, тем выше шанс собрать следующий блок и получить за него вознаграждение, в том числе комиссии за транзакции.

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

Для чего запускать ноду

Для рядового пользователя это не обязательно, но собственная развернутая в сети полная нода дает ряд преимуществ как владельцу, так и всей экосистеме Waves:

  • Генерация блоков. Полный узел имеет право генерировать новые блоки и получать вознаграждение не только за сам блок, но и комиссии за транзакции, которые содержатся в этом блоке.
  • Безопасность сети. Каждый отдельный полный узел делает блокчейн более децентрализованным и устойчивым к сетевым атакам (Сивиллы, Затмения, 51%).
Поскольку блокчейн Waves основан на алгоритме консенсуса PoS, а право генерации блоков реализовано по принципу лотереи, шанс атаки 51% на экосистему стремится к нулю. Даже при обладании более 51% эмиссии WAVES, зловредная нода не получит безусловного права генерировать каждый последующий блок в сети.
  • Поддержка своего проекта. Собственный полный узел дает возможность получать актуальные данные блокчейна, отправлять транзакции и использовать API ноды без необходимости доверять третьей стороне. Вместе с тем, своя нода позволяет настраивать расширенную функциональность для собственного проекта.

Для работающей ноды требуется база данных (блокчейн, распределенный реестр). Эту базу нода получает от других работающих в сети узлов. Кроме стандартной реализации ноды на языке Scala, существует альтернативная реализация на языке Go.

Ноды и форки

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

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

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

Обзор блокчейна Waves, Часть 3: О Ride

Полезные ресурсы