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

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

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

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

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


person Narayan Prusty    schedule 18.04.2017    source источник


Ответы (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 Stats

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

Уведомление: я работаю в Parity.

person Afr    schedule 08.02.2018
comment
Почему вы, ребята, изменили структуру заголовка блока в реализации AuRa? На самом деле, я работал над реализацией AuRa в geth и пытался подключиться с помощью четности AuRa, но у меня возникла проблема с подключением. - person Atif; 17.09.2020
comment
Мне жаль. AuRa всегда была движущейся целью и никогда не определялась. Клиент Parity Ethereum больше не обслуживается, и AuRa можно смело объявить мертвым. - person Afr; 28.09.2020
comment
Насколько я понимаю, AuRa предполагает синхронную сеть. Что происходит в (очень) вероятном случае, когда это предположение не выполняется. Можно ли поставить под угрозу безопасность с менее чем n / 2 неисправными валидаторами? - person amanusk; 28.10.2020
comment
@Afr Ауро все еще не существует в OpenEthereum? - person A.Ima; 23.05.2021