#dusk $DUSK @Dusk Транзакция отображается как «успешная» — значит ли это, что всё действительно завершено?
Вчера ночью, когда я просматривал документацию по разработке Dusk, я заметил одну деталь, на которую раньше почти не обращал внимания.
После отправки транзакции узел возвращает 202 Accepted — это означает только то, что запрос получен и сейчас обрабатывается, но не то, что транзакция уже завершена.
Если продолжить чтение, становится понятно, что дальше ещё будут admission, mempool, выбор блока и его выполнение.
Даже если выполнение уже произошло, это всё ещё не конец.
Потому что даже уже принятый блок всё ещё может быть откатан (rollback).
Только когда блок переходит в состояние finalized, эта транзакция действительно получает окончательность (финальность).
Мне показалось, что эта деталь очень любопытна.
Когда мы обычно говорим «транзакция успешна», мы на самом деле смешиваем несколько совершенно разных состояний:
узел получил, и сеть приняла — это не одно и то же;
попадание в блок и успешное выполнение — тоже не одно и то же;
успешное выполнение ещё не равно окончательным расчётам.
Для обычного перевода это может отличаться лишь на уровне нескольких состояний.
Но что, если в будущем в цепочке будут работать ценные бумаги, платежи или другие финансовые активы?
Тогда «почти успешно» явно недостаточно.
Вопрос, который по-настоящему нужно прояснить, другой:
на каком именно состоянии происходит реальное изменение прав и обязанностей на актив?
Это тоже один из способов, через который я недавно по-новому понял идею Dusk «deterministic settlement».
Возможно, она решает не только задачу ускорить транзакции, а сделать так, чтобы участники чётко понимали:
когда можно больше не ждать и когда можно действительно считать эту транзакцию уже завершённой.
Возможно, именно в этом и заключается истинный смысл слов «транзакция завершена» в финансовой инфраструктуре.
@Dusk $DUSK #DUSK
Вчера ночью, когда я просматривал документацию по разработке Dusk, я заметил одну деталь, на которую раньше почти не обращал внимания.
После отправки транзакции узел возвращает 202 Accepted — это означает только то, что запрос получен и сейчас обрабатывается, но не то, что транзакция уже завершена.
Если продолжить чтение, становится понятно, что дальше ещё будут admission, mempool, выбор блока и его выполнение.
Даже если выполнение уже произошло, это всё ещё не конец.
Потому что даже уже принятый блок всё ещё может быть откатан (rollback).
Только когда блок переходит в состояние finalized, эта транзакция действительно получает окончательность (финальность).
Мне показалось, что эта деталь очень любопытна.
Когда мы обычно говорим «транзакция успешна», мы на самом деле смешиваем несколько совершенно разных состояний:
узел получил, и сеть приняла — это не одно и то же;
попадание в блок и успешное выполнение — тоже не одно и то же;
успешное выполнение ещё не равно окончательным расчётам.
Для обычного перевода это может отличаться лишь на уровне нескольких состояний.
Но что, если в будущем в цепочке будут работать ценные бумаги, платежи или другие финансовые активы?
Тогда «почти успешно» явно недостаточно.
Вопрос, который по-настоящему нужно прояснить, другой:
на каком именно состоянии происходит реальное изменение прав и обязанностей на актив?
Это тоже один из способов, через который я недавно по-новому понял идею Dusk «deterministic settlement».
Возможно, она решает не только задачу ускорить транзакции, а сделать так, чтобы участники чётко понимали:
когда можно больше не ждать и когда можно действительно считать эту транзакцию уже завершённой.
Возможно, именно в этом и заключается истинный смысл слов «транзакция завершена» в финансовой инфраструктуре.
@Dusk $DUSK #DUSK

