Как работает протокол консенсуса 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:
0x0a
запечатывает блок - Шаг 2:
0x0b
запечатывает блок - Шаг 3:
0x0c
запечатывает блок - Шаг 4:
0x0d
запечатывает блок - Шаг 5:
0x0e
запечатывает блок
После окончания раунда он начинается снова.
Что вы имеете в виду, когда "блоки из более чем одного шага в будущее отклоняются"?
Теперь, если узел 0x0c
будет пытаться запечатать блок сразу после 0x0a
, тогда этот блок будет более чем на 1 шаг в будущее. Уплотнение блока жестко опирается на порядок шагов блока всех органов.
А также, что происходит, когда следующая первичная передача не транслируется?
Это не проблема, между двумя блоками будет разрыв, т.е. удвоенное время блока. Так что если 0x0c
замечает, что 0x0b
не предоставляет блок в указанном временном окне, он может переопределить этот шаг своим собственным блоком, и раунд продолжается. Существуют определенные допуски на отметках времени блока, чтобы убедиться, что сеть не останавливается.
На этом снимке экрана выше вы можете видеть, что два авторитета в сети Kovan не являются блокирующими блоками. В результате увеличивается время блокировки между этими шагами.
Раскрытие: я работаю на Паритет.