Я начал смотреть на интеграции блокчейна под другим углом: событие может рассказать приложению, что произошло, но не каждое событие говорит ему, что результат окончательный.
Это различие становится важным, когда программное обеспечение реагирует на активность в onchain.
У нод Dusk есть RUES (Rusk Universal Event System), который внешние приложения и интеграции могут использовать для событий блокчейна. Для транзакций в RUES предусмотрены события, такие как included, removed и executed. Но эти события отражают разные стадии жизненного цикла.
Например, executed означает, что транзакция была выполнена в принятом блоке, но приложению всё ещё нужно проверить результат выполнения. И самое важное: принятый блок всё ещё может быть откатен. Dusk говорит, что блок становится окончательным, когда его состояние меняется на finalized.
Отсюда возникает интересное различие:
наблюдать событие — не то же самое, что подтверждать окончательное состояние.
Поэтому в руководстве по интеграциям Dusk рекомендуется сначала проверять успешность выполнения, а затем удостоверяться, что соответствующий блок завершён (finalized). Archive-ноды могут сохранять исторические индексы, уже находящиеся в finalized, включая finalizedEvents, для приложений, которым нужны исторические окончательные данные.
Для меня это изменило то, как я думаю об интеграциях блокчейна.
Сложность не просто в том, чтобы получать события.
Сложность — знать, когда приложение может безопасно считать результат окончательным.
@Dusk $DUSK #dusk
Это различие становится важным, когда программное обеспечение реагирует на активность в onchain.
У нод Dusk есть RUES (Rusk Universal Event System), который внешние приложения и интеграции могут использовать для событий блокчейна. Для транзакций в RUES предусмотрены события, такие как included, removed и executed. Но эти события отражают разные стадии жизненного цикла.
Например, executed означает, что транзакция была выполнена в принятом блоке, но приложению всё ещё нужно проверить результат выполнения. И самое важное: принятый блок всё ещё может быть откатен. Dusk говорит, что блок становится окончательным, когда его состояние меняется на finalized.
Отсюда возникает интересное различие:
наблюдать событие — не то же самое, что подтверждать окончательное состояние.
Поэтому в руководстве по интеграциям Dusk рекомендуется сначала проверять успешность выполнения, а затем удостоверяться, что соответствующий блок завершён (finalized). Archive-ноды могут сохранять исторические индексы, уже находящиеся в finalized, включая finalizedEvents, для приложений, которым нужны исторические окончательные данные.
Для меня это изменило то, как я думаю об интеграциях блокчейна.
Сложность не просто в том, чтобы получать события.
Сложность — знать, когда приложение может безопасно считать результат окончательным.
@Dusk $DUSK #dusk
