Установка и использование платформы

Общая настройка платформы: настройка майнинга

Параметры майнинга в блокчейне находятся в разделе miner конфигурационного файла ноды:

miner {
  enable = yes
  quorum = 2
  interval-after-last-block-then-generation-is-allowed = 10d
  no-quorum-mining-delay = 5s
  micro-block-interval = 5s
  min-micro-block-age = 3s
  max-transactions-in-micro-block = 500
  min-micro-block-age = 6 s
  pullin-buffer-size = 100
  utx-check-delay = 1s
}
  • enable – активация опции майнинга. Включение – yes, отключение – no.

  • quorum – необходимое количество нод-майнеров для создания блока. Значение 0 позволит генерировать блоки оффлайн и используется только в тестовых целях в сетях с одной нодой. При указании этого значения необходимо учитывать, что собственная нода-майнер не суммируется со значением этого параметра, т.е. если вы указываете quorum = 2, то для майнинга нужно минимум 3 ноды-майнера.

  • interval-after-last-block-then-generation-is-allowed – создание блока только в том случае, если последний блок не старше указанного периода времени (в днях).

  • micro-block-interval – интервал между микроблоками (в секундах).

  • min-micro-block-age – минимальный возраст микроблока (в секундах).

  • max-transactions-in-micro-block – максимальное количество транзакций в микроблоке.

  • pulling-buffer-size – размер буфера транзакций. Чем выше значение параметра, тем дольше группируются транзакции.

  • utx-check-delay – задержка проверки UTX-пула (есть ли в пуле транзакции или он пуст) майнером. По умолчанию используется значение 1 c. Значение параметра должно быть больше либо равно 100 мс.

Настройки майнинга зависят от планируемого в вашей сети размера транзакций.

Настройки майнинга и алгоритм консенсуса

Майнинг в блокчейне тесно связан с выбранным алгоритмом консенсуса. При настройке параметров консенсуса необходимо учитывать следующие параметры секции miner:

  • micro-block-interval – интервал между микроблоками. Значение указывается в секундах.

  • min-micro-block-age – минимальный возраст микроблока. Значение указывается в секундах и не должно превышать значения параметра micro-block-interval.

Значения параметров создания микроблоков не должны превышать или как-либо иначе конфликтовать со значениями параметров average-block-delay для PoS и round-duration для PoA и CFT. Количество микроблоков в блоке не ограничено, но зависит от размера транзакций, попавших в микроблок.

Настройки UTX

В пуле неподтвержденных транзакций (UTX) предусмотрен механизм реброадкастинга, который позволяет сети быстрее восстановиться в случае возникновения каких-либо сбоев — например, при потере сетевой связности между нодами. В таких случаях транзакции, отправленные в одну ноду, могут оказаться не распространёнными. Механизм реброадкастинга решает такие проблемы, периодически проверяя актуальность транзакций, лежащих у ноды в UTX.

Этот механизм через заданный в параметре rebroadcast-interval промежуток времени проверяет все транзакции в UTX; затем он повторно отправляет своим пирам те транзакции, дата создания которых отличается от текущей более чем на период, заданный в параметре rebroadcast-threshold.

Параметры UTX задаются в разделе utx конфигурационного файла ноды:

utx {
   memory-limit=100Mb
   rebroadcast-threshold=5m
   rebroadcast-interval=5m
   }
  • memory-limit – максимальный размер UTX-пула; при подсчёте размера UTX-пула учитывается не итоговый размер транзакций в памяти, а только сериализованный вид;

  • rebroadcast-threshold – когда после создания транзакции проходит указанное в параметре время, транзакция считается «старой» и подлежит повторной отправке (ребродкастингу); значение параметра по умолчанию – 5m;

  • rebroadcast-interval – интервал запуска механизма реброадкастинга «старых» транзакций; значение параметра по умолчанию – 5m.