Я заметил, что неудобная часть Dusk не отправляет приватный перевод. Так происходит, когда этот перевод должен стать обменным кредитом, не дав оператору догадаться, кому он принадлежит.

При пополнениях Dusk не делает вид, что Phoenix и Moonlight взаимозаменяемы. Phoenix использует защищённые ноты и зануляторы, тогда как интеграции обмена направляются в Moonlight, потому что модель хранения и сканирования отличается. Поэтому оператору всё равно приходится выбирать, как будет работать атрибуция: один аккаунт Moonlight на клиента или общий аккаунт, где мемо превращается в данные маршрутизации.

Затем появляется неприятный сценарий отказа. Действительный перевод может прийти с отсутствующими, некорректно сформированными, неизвестными или повторно использованными метаданными. Сеть может завершить расчёт правильно, но кредит всё равно должен быть изолирован, а не размещён на неверного пользователя.

Самая важная деталь, к которой я снова и снова возвращаюсь, — контрольная точка. Dusk ожидает, что кредиты и контрольная точка отсканированного блока будут записаны атомарно, причём идентификатор транзакции используется для идемпотентности. Обновление контрольной точки до того, как кредит станет надёжным (durable), может привести к тому, что после сбоя это пополнение окажется вне маршрута приёма (ingestion) оператора.

Для Dusk реальный тест на хранение (custody) — может ли окончательно подтверждённое пополнение Moonlight когда-нибудь исчезнуть между контрольной точкой и кредитом.

#dusk $DUSK @Dusk

#USJulyCPI&PPIDueThisWeek