Я углубился в механизмы производства блоков Midnight и, честно говоря, уровень финализации — это та часть, которую большинство людей полностью пропускает 😂

Midnight использует два отдельных механизма консенсуса, работающих одновременно. AURA управляет тем, кто производит следующий блок — система кругового распределения, где валидаторы по очереди работают через фиксированные промежутки времени. Но только AURA не делает блоки постоянными.

Это делает GRANDPA. Соглашение о префиксах, основанное на GHOST, с рекурсивным производным предком. Название сложное, но функция специфична — GRANDPA смотрит на цепочку и определяет, какие блоки получили достаточное согласие валидаторов, чтобы считаться финализированными. Не просто добавлены в цепочку. Финально. Необратимо.

Различие имеет большее значение, чем большинство людей осознает. Блок может существовать в цепочке, не будучи финализированным. Во время стресса в сети, разветвлений или разногласий валидаторов может одновременно существовать несколько конкурирующих блоков. AURA продолжает производить. GRANDPA продолжает оценивать. Только блоки, достигшие порога финализации, становятся постоянными.

Этот двухуровневый подход — AURA для производства, GRANDPA для финализации — напрямую исходит из фреймворка Substrate, на котором построен Midnight. Та же архитектура используется Polkadot.

Честно говоря, не знаю, сколько обычно занимает финализация на Midnight или что происходит с транзакциями в блоках, которые создаются, но никогда не финализируются.

Каково ваше мнение — надежный двухуровневый консенсус или ненужная сложность для сети, которая могла бы использовать более простую финализацию?? 🤔

#night @MidnightNetwork $NIGHT

NIGHT
NIGHTUSDT
0.0498
-2.88%