Как работает протокол консенсуса Aura от Parity?

Здесь это описание очень высокого уровня только с формулами. Я хочу понять на самом деле, как это работает.

Я на самом деле не понимаю, что такое шаг и для чего он нужен? Всегда ли узел продолжает обновлять шаг? И когда придет время создавать, создавать и транслировать блок, он примет текущее значение шага и проверит, должен ли он транслироваться или нет.

Что вы имеете в виду, когда "блоки из более чем одного шага в будущее отклоняются"? Означает ли это, что если время блока составляет 5 секунд, то метка времени следующего блока должна быть ровно на 5 секунд выше.

А также, что происходит, когда следующая первичная передача не транслируется? Как сеть справляется с этим? Все последующие блоки должны быть признаны недействительными правильно, потому что они не будут следовать разнице меток времени 5 секунд.

1 ответ

AuRa - это название консенсус-движка Parity Proof-of-Authority (PoA), имя изначально происходит от Authority Round (раньше назывался AuRo). Он используется в сети Kovan.

Сети PoA разрешены не публично. Только узлы с четко определенными полномочиями могут опечатывать блоки. Это очень полезно для тестовых сетей или корпоративных сетей, где собственные токены в цепочке блоков не имеют никакого значения и поэтому их было бы легко атаковать в среде Proof-of-Work (PoW) или Proof-of-Stake (PoS).

Шаг - это часть раунда авторитета. Каждый авторитет может запечатать один блок в каждом раунде. Допустим, у нас есть пять авторитетов: 0x0a .. 0x0e, Это будут шаги, определенные в спецификации цепочки или в контракте динамического валидатора:

  1. Шаг 1: 0x0a запечатывает блок
  2. Шаг 2: 0x0b запечатывает блок
  3. Шаг 3: 0x0c запечатывает блок
  4. Шаг 4: 0x0d запечатывает блок
  5. Шаг 5: 0x0e запечатывает блок

После окончания раунда он начинается снова.

Что вы имеете в виду, когда "блоки из более чем одного шага в будущее отклоняются"?

Теперь, если узел 0x0c будет пытаться запечатать блок сразу после 0x0a, тогда этот блок будет более чем на 1 шаг в будущее. Уплотнение блока жестко опирается на порядок шагов блока всех органов.

А также, что происходит, когда следующая первичная передача не транслируется?

Это не проблема, между двумя блоками будет разрыв, т.е. удвоенное время блока. Так что если 0x0c замечает, что 0x0b не предоставляет блок в указанном временном окне, он может переопределить этот шаг своим собственным блоком, и раунд продолжается. Существуют определенные допуски на отметках времени блока, чтобы убедиться, что сеть не останавливается.

Скриншот Кован Статс

На этом снимке экрана выше вы можете видеть, что два авторитета в сети Kovan не являются блокирующими блоками. В результате увеличивается время блокировки между этими шагами.

Раскрытие: я работаю на Паритет.

Другие вопросы по тегам