Как устроена платформа

Роли участников

Блокчейн-платформа Waves Enterprise реализует закрытую (permissioned) модель блокчейна, доступ к которому имеют только авторизованные участники.

Также в платформе реализована ролевая модель, которая позволяет разграничить полномочия участников сети. Управление ролями осуществляется посредством транзакции 102 Permission Transaction.

Описание ролей

permissioner

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

sender

Участник с ролью sender имеет право отправлять транзакции в сеть.

Использование этой роли включается и отключается при помощи параметра sender-role-enabled, который находится в блоке genesis конфигурационного файла ноды.

banned

Роль banned временно или постоянно ограничивает отправку транзакций от этого участника. Адрес с ролью banned попадает в черный список нод (blacklist) – список адресов, от которых не принимаются транзакции.

blacklister

Участник с ролью blacklister имеет право временно или постоянно ограничивать действия других участников сети, присваивая им роль banned. Для этого blacklister отправляет транзакцию 102 с соответствующими параметрами.

miner

Участник с ролью miner может быть выбран в качестве майнера очередного раунда и имеет право формировать блоки.

issuer

Участник с ролью issuer имеет право на выпуск, перевыпуск и сжигание токенов.

contract_developer

Участник с ролью contract_developer имеет право на установку смарт-контрактов в блокчейне.

Подробнее о смарт-контрактах и применении этой роли: Смарт-контракты.

contract_validator

Участник с ролью contract_validator имеет право на валидацию обновляемых и загружаемых смарт-контрактов.

Подробнее о применении этой роли: Валидация смарт-контрактов.

connection-manager

Участник с ролью connection-manager имеет право на подключение или отключение нод от сети. Как правило, роль connection-manager присваивается администратору сети.

Подробнее о подключении и отключении нод: Подключение и удаление нод.

Управление ролями

Изменить список полномочий может только нода с ролью permissioner. Для добавления или удаления ролей используется транзакция 102 Permission Transaction. Подписать транзакцию можно при помощи метода sign REST API ноды, а отправить – при помощи соответствующего gRPC или REST API метода.

Процесс назначения и удаления ролей подробно описан в статье Управление ролями участников.

При отправке транзакции 102 нода выполняет следующие проверки:

  1. Отправитель транзакции 102 не находится в списке blacklist.

  2. У адреса отправителя есть роль permissioner.

  3. Роль permissioner у адреса отправителя активна в момент отправки транзакции.

  4. Роль, указанная в транзакции 102, неактивна в случае её добавления адресу, и активна в случае её удаления у адреса.

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