Делегатство и роли нод
Термин делегат (который применяется в Голосе) отражает суть данной роли, сообщество делегирует некоторым его членам определенные права.
В основе алгоритма DPOS (делегированное доказательство доли) лежит голосование, наделяющее пользователей имеющих определенный уровень репутации в сообществе и получивших определенное количество (вес) голосов, некоторыми правами (хотя скорее обязанностями). Делегаты используя своё (или арендованное) оборудование обеспечивают функционирование узлов (нод) сети, создают и подписывают новые блоки, обеспечивая децентрализацию и безопасность сети.
За раунд подписи создается 21 блок, с интервалом в 3 секунды. Топ 19 делегатов (набравшие в сумме наибольший вес голосов за свои кандидатуры) производят блок в каждом раунде, еще один блок производит делегат, не попавший в топ 19, причем вероятность того, что он произведет блок пропорциональна весу голосов отданных за него, в сравнении с другими делегатами, не вошедшими в топ. И последний (21-й) блок в раунде производит POW-майнер в соответствии с очередью.
Задача делегатов не ограничивается подписанием блоков. Одной из задач является и публикация ценовых фидов (price feed) (курс токенов GOLOS в Золотых (GBG)). При этом они напрямую заинтересованы в выставлении корректной стоимости, (которая в свою очередь регулируется рынком), ведь получая вознаграждение в виде Силы Голоса они будут нести потери при публикации недостоверных цен. С учетом того, что ценовые фиды устанавливаются делегатами, которые были избраны сообществом, текущая цена, используемая для конверсии является медианным значением выборки. Из этого следует, что делегаты, имеющие существенное отклонение от медианного значения имеют минимальное влияние на цену конверсии, однако могут терять свою репутацию в сообществе. Особая роль, что именно делегаты устанавливают параметры в блокчейне, а также принимают/отклоняют новые версии кода для обновлений протокола сети (хардфорки).
Делегаты получают награду с каждого произведенного блока, что мотивирует их поддерживать и развивать сеть в долгосрочной перспективе.
Одним из важных преимуществ данной системы – является то, что с её помощью все держатели Силы Голоса являются одновременно акционерами платформы, и могут через доверенных лиц (делегатов) принимать участие в принятии важных для платформы решений.
Для безопасности и устойчивой работы сети они должны держать свои ноды в рабочем состоянии 24 часа в сутки, 365 дней в году.
Хотя в принципе, даже если делегат пропускает блок, ничего страшного для сети не произойдет, блок следующего делегата будет содержать пропущенную транзакцию, а время подтверждения составит 6 секунд вместо трех.
Типы и роли нод
Нода, это сердце блокчейна, программное обеспечение, которое обрабатывает блок за блоком, исполняет все операции и хранит состояние системы. Владелец настраивает ноду, выбирает используемые плагины, от конфигурации которых зависит какие возможности предоставляет нода.
Witness-node
С помощью них происходит обмен данными с другими нодами, они собирают транзакции и когда подходит очередь делегата (владельца сервера) сформировать блок — происходит подпись блока и его трансляция другим узлам. Блок должен быть подписан и доставлен за 3 секунды, выделенные на это делегату. Пропуск блока приводит к задержке выполнения транзакций.
Нередко делегаты держат по две ноды, основную и запасную (резервную). Часто они находятся в разных дата-центрах и не зависят друг от друга. Если с основной нодой происходит неполадка, делегат меняет ключ подписи блоков на резервный и формированием блоков будет заниматься запасная нода. Инструкция по запуску Witness-ноды доступна здесь.
Seed-node
Основа для функционирования любой блокчейн системы — peer-to-peer (p2p) соединение и обмен данными. Сид-ноды отличаются тем, что выполняют важную роль — принимают и раздают блоки, разгружая таким образом пропускную способность всей сети и снижая отклик для близких территориально подключений. Да, экономической выгоды держать отдельную сид-ноду нет, но запуск таких нод показывает небезразличное отношение делегата к поддержке стабильности сети.
API-node
Включение дополнительных плагинов на нодах даёт возможность предоставлять доступ к API для разработчиков и пользователей их сервисов. Такие ноды иногда называют полными, если у них включены все плагины и они хранят историю операций с первого блока. Сервера для них имеют повышенные требования к ресурсам (особенно к оперативной памяти, так как нода хранит ChainBase в RAM). Именно через API ноды происходят запросы на выдачу контента, иной информации из блокчейна, истории операций...
Примеры таких плагинов:
network_broadcast_api — отправка транзакции в сеть;
database_api — плагин предоставляющий доступ к состоянию системы, получение данных об аккаунтах, о блоке, параметров сети;
account_history — получение списка операций связанных с аккаунтом;
worker_api — получение списка заявок, информации о заявке;
operation_history — получение информации об операциях в блоке;
witness_api — получение списка делегатов, очереди делегатов, информации о конкретном делегате и его голосуемых параметрах сети.
Инструкция по запуску API-ноды доступна здесь.
Last updated