Как устроена платформа
Роли участников¶
Блокчейн-платформа 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 нода выполняет следующие проверки:
Отправитель транзакции 102 не находится в списке blacklist.
У адреса отправителя есть роль
permissioner
.Роль
permissioner
у адреса отправителя активна в момент отправки транзакции.Роль, указанная в транзакции 102, неактивна в случае её добавления адресу, и активна в случае её удаления у адреса.
Удаление или назначение ролей участникам производится при попадании соответствующих транзакций 102 в блокчейн. Роли могут быть произвольно скомбинированы для любого адреса, отдельные роли могут быть отозваны в любой момент.