Подключение новой ноды к сети¶
Блокчейн-платформа Waves Enterprise имеет возможность подключения новых нод к блокчейн-сети в любой момент.
Практические шаги по подключению ноды описаны в статье Подключение и удаление нод.
В общем виде процесс подключения новой ноды к сети представлен на схеме:
Пользователь новой ноды передаёт публичный ключ ноды администратору сети (ноде с ролью connection-manager).
Нода с ролью connection-manager использует полученный публичный ключ при создании транзакции 111 RegisterNode с параметром «opType»: «add».
Транзакция 111 попадает в блок.
Далее информация из транзакции 111 (адрес отправителя, присвоенное новой ноде имя и ее публичный ключ) передается в стейты нод участников сети.
Если ключ новой ноды отсутствует в списке нод, зарегистрированных в genesis-блоке сети (Network Participants), производится процедура первичной синхронизации. Новая нода отправляет всем адресам из списка пиров своего конфигурационного файла сетевое сообщение PeerIdentityRequest со своей подписью. Пиры удостоверяются, что нода, отправившая PeerIdentityRequest, была зарегистрирована в сети.
При успешной проверке, в ответ на PeerIdentityRequest, пиры отправляют новой ноде свои публичные ключи. Новая нода сохраняет эти публичные ключи в своем временном хранилище адресов для первичного установления соединения с пирами. После сохранения адресов новая нода получает возможность валидировать сетевые handshake-сообщения от своих пиров.
Новая нода отправляет handshake-сообщение со своим публичным ключом участникам сети из списка пиров своего конфигурационного файла.
Пиры сравнивают публичный ключ из handshake-сообщения и ключ новой ноды из транзакции 111, отправленной нодой с ролью connection-manager. Если проверка успешна, пиры отправляют новой ноде ответы на handshake-сообщение со своими подписями и рассылают в сеть сообщения Peers Message.
После успешного подключения новая нода выполняет синхронизацию с сетью и получает таблицу адресов участников сети.