Настройка консенсуса¶
Блокчейн-платформа Waves Enterprise поддерживает два типа консенсуса - PoS и PoA. Настройки консенсуса располагаются в секции blockchain.
Настройка PoS¶
Если вы не указали тип консенсуса в поле consensus.type
секции blockchain, то консенсус PoS будет использоваться по умолчанию. За работу майнинга с консенсусом PoS отвечают следующие параметры, расположенные в блоке genesis
секции blockchain:
average-block-delay
- средняя задержка создания блоков. Значение по умолчанию - 60 секунд. Значение этого параметра игнорируется, если выбран консенсус PoA.initial-base-target
- начальное базовое число для регулирования процесса майнинга. От значения параметра зависит частота формирования блоков - чем выше значение, тем чаще создаются блоки. Также величина баланса майнера влияет на использование данного параметра в майнинге - чем больше баланс майнера, тем меньше становится значениеinitial-base-target
при расчёте очереди ноды-майнера в текущем раунде.initial-balance
- начальный баланс сети. Чем больше доля баланса майнера от изначального баланса сети, тем меньше становится значениеinitial-base-target
для определения ноды-майнера текущего раунда.
Для демонстрационной работы с нодой мы рекомендуем использовать значения, которые установлены по умолчанию в примерах конфигурационных файлов, приведенных на странице проекта на GitHub.
Настройка PoA¶
Для использования консенсуса PoA раскомментируйте или добавьте блок consensus
в секции blockchain:
consensus {
type = "poa"
round-duration = "17s"
sync-duration = "3s"
ban-duration-blocks = 100
warnings-for-ban = 3
max-bans-percentage = 40
}
Приведенные в блоке consensus
параметры используются только для консенсуса PoA.
type
- тип консенсуса. Возможные значенияpos
илиpoa
. При указании значенияpos
другие параметры блока учитываться не будут.round-duration
- длина раунда майнинга блока в секундах.sync-duration
- период синхронизации майнинга блока в секундах. Полное время раунда складывается из суммыround-duration
иsync-duration
.ban-duration-blocks
- количество блоков, на которые нода-майнер попадает в бан.warnings-for-ban
- количество раундов, которое нода-майнер предупреждается о попадании в бан.max-bans-percentage
- процент нод-майнеров от общего числа нод в сети, который может быть помещён в бан.
Использование консенсуса PoA позволяет регулировать очередность создания блоков путем ограничения функции майнинга для определенных нод. Это делается для того, чтобы распределить равномерно нагрузку в сети, если какие-либо ноды-майнеры вышли из сети или стали неактивными. Нода-майнер может попасть в бан по следующим причинам:
если нода пропустит свою очередь майнинга;
если нода предоставит невалидный блок;
если нода вышла из сети.
Перед попаданием в blacklist
нода-майнер получает предупреждения о попадании в бан на такое количество раундов, какое указано в параметре warnings-for-ban
. После окончания количества блоков, определенного в параметре ban-duration-blocks
, нода-майнер получает возможность участвовать в создании блоков.
Настройка консенсуса в секции miner
¶
При настройке параметров консенсуса необходимо учитывать следующие параметры секции miner:
micro-block-interval
- интервал между микроблоками. Значение указывается в секундах.min-micro-block-age
- минимальный возраст микроблока. Значение указывается в секундах и не должно превышать значения параметраmicro-block-interval
.minimal-block-generation-offset
- минимальный временной интервал между блоками. Значение указывается в миллисекундах.
Значения параметров создания микроблоков не должны конфликтовать со значениями параметров average-block-delay
для PoS и round-duration
для PoA. Количество микроблоков в блоке не ограничено, но зависит от размера транзакций, попавших в микроблок.