Как работает выбор вил в Polkadot? - PullRequest
0 голосов
/ 04 ноября 2019

Polkadot имеет GRANDPA для доработки и BABE для производства блоков. Говорят, что BABE может производить блоки даже без GRANDPA и даже без большинства онлайн-валидаторов. Как BABE узнает, на какой цепочке продолжать строиться?

1 Ответ

0 голосов
/ 04 ноября 2019

BABE - алгоритм производства блоков в релейной цепочке Polkadot. Он использует VRF, Проверяемую случайную функцию , чтобы выбрать кандидата для производства блока среди набора валидаторов. Этот производитель блоков первичный . В то же время BABE запускает алгоритм выбора, подобный циклическому набору, в фоновом режиме, чтобы выбрать вторичный валидатор из набора для создания блока, если VRF не привел к тому, что какие-либо валидаторы были выбраны какпраймериз. Используя этот метод двойного выбора, BABE поддерживает постоянное время блока - основные цвета, если выбраны, вторичные, если нет.

Возможно, что VRF квалифицирует несколько валидаторов для создания блоков, и в этом случае оба блока являются действительными. На этом этапе будет зависеть от задержки сети, как быстро остальная сеть будет видеть каждый блок - это определит победителя.

В рамках GRANDPA, когда 2/3 или более валидаторов согласовывают блокэтот блок и все блоки, ведущие к нему, завершаются немедленно.

Так что же происходит, когда BABE разветвляется и строится на двух отдельных цепочках?

Правило в Polkadot следующее:

  • сначала посмотрите, какая цепочка имеет ближайший завершенный блок
  • , затем, если на этой завершенной головке есть вилки, выберите ту, в которой большинство основных цветов - те, которые выбраныVRF против алгоритма, подобного циклическому алгоритму

Если связь все еще существует, неоднозначность продолжается до тех пор, пока две трети валидаторов не завершат блок в одном из вилок и не ампутируют другой.

...