ПОЧЕМУ СОБЫТИЕ В БЛОКЧЕЙНЕ НЕ ТО ЖЕ САМОЕ, ЧТО ФИНАЛЬНОСТЬ
Раньше я думал, что бирже в первую очередь нужно знать, когда произошла транзакция в блокчейне. Но знакомство с Dusk заставило меня усомниться в этом. Если транзакция всё ещё может измениться, я не уверен, что биржа должна воспринимать это событие как окончательные деньги.
Вот почему меня заинтересовали RUES (Rusk Universal Event System). Dusk прямо перечисляет RUES для инфраструктуры, индексаторов и бирж. По моему мнению, самое интересное — это то, что делает биржа после получения события.
Жизненный цикл транзакции в Dusk разделяет состояния: включена, выполнена, подтверждена и финализирована. В документации сказано следить за выполнением транзакции, проверять ошибки, подтверждать финализацию блока и переподписываться, если блок откатывается. Понимаю, почему это важно: если слишком рано начислить средства на бирже, временное состояние может превратиться в реальный баланс.
Я снова и снова думаю о трекинге курьерских отправлений. Если посылка пишет «передано в доставку», я понимаю, что она движется, но всё равно не стал бы отмечать как «доставлено». Возможно, я слишком осторожен, но я понимаю, почему бирже нужен тот же разрыв между «в пути» и «доставлено».
Деталь про идемпотентность снова заставила меня остановиться. Dusk говорит сканерам депозитов использовать Transaction ID в Dusk как ключ идемпотентности, а не memo, и записывать начисление и чекпоинт блока атомарно. Поэтому если сканер упадёт и просканирует тот же диапазон снова, эта транзакция не должна стать вторым депозитом.
И теперь мне интересно, не рассматривал ли я RUES слишком упрощённо. Если бирже приходится отдельно продумывать само событие, финальность, откаты и дублирующую обработку, то какая часть реальной работы происходит вообще после того, как блокчейн сообщает, что «что-то произошло»? @Dusk #dusk $DUSK
Раньше я думал, что бирже в первую очередь нужно знать, когда произошла транзакция в блокчейне. Но знакомство с Dusk заставило меня усомниться в этом. Если транзакция всё ещё может измениться, я не уверен, что биржа должна воспринимать это событие как окончательные деньги.
Вот почему меня заинтересовали RUES (Rusk Universal Event System). Dusk прямо перечисляет RUES для инфраструктуры, индексаторов и бирж. По моему мнению, самое интересное — это то, что делает биржа после получения события.
Жизненный цикл транзакции в Dusk разделяет состояния: включена, выполнена, подтверждена и финализирована. В документации сказано следить за выполнением транзакции, проверять ошибки, подтверждать финализацию блока и переподписываться, если блок откатывается. Понимаю, почему это важно: если слишком рано начислить средства на бирже, временное состояние может превратиться в реальный баланс.
Я снова и снова думаю о трекинге курьерских отправлений. Если посылка пишет «передано в доставку», я понимаю, что она движется, но всё равно не стал бы отмечать как «доставлено». Возможно, я слишком осторожен, но я понимаю, почему бирже нужен тот же разрыв между «в пути» и «доставлено».
Деталь про идемпотентность снова заставила меня остановиться. Dusk говорит сканерам депозитов использовать Transaction ID в Dusk как ключ идемпотентности, а не memo, и записывать начисление и чекпоинт блока атомарно. Поэтому если сканер упадёт и просканирует тот же диапазон снова, эта транзакция не должна стать вторым депозитом.
И теперь мне интересно, не рассматривал ли я RUES слишком упрощённо. Если бирже приходится отдельно продумывать само событие, финальность, откаты и дублирующую обработку, то какая часть реальной работы происходит вообще после того, как блокчейн сообщает, что «что-то произошло»? @Dusk #dusk $DUSK