«Ожидает» — это правда факт на уровне всей сети?

Один кошелёк может пометить транзакцию Dusk как «ожидает», в то время как на другом узле вовсе нет соответствующей записи в mempool.

Это не обязательно является несоответствием. Так происходит из‑за того, как Dusk обрабатывает транзакции до того, как они становятся состоянием реестра.

Каждый peer выполняет собственные проверки допуска и ведёт собственный mempool. Запрос mempoolTxs для Dusk поэтому показывает реальный mempool того узла, к которому обращались, — а не общую для всей сети очередь, разделяемую всеми peers.

Обработка в эпоху Boreas-era Moonlight делает это ещё менее интуитивным. Допустимая транзакция, чей nonce опережает текущую последовательность аккаунта, может быть отложена, пока не придут недостающие nonces. В этот период она находится вне видимого реального mempool узла. Поэтому даже тот узел, который получил транзакцию, может ещё не показывать её в mempoolTxs.

Истечение срока добавляет ещё одно локальное измерение: это политика узла, а не «срок жизни», закодированный прямо в самой транзакции.

Это меняет то, как я бы понимал слово «ожидает». До консенсуса Dusk не предоставляет одну авторитетную глобальную транзакционную «состояниe», которую могут наблюдать все. Разные узлы могут обоснованно хранить различающуюся информацию об одной и той же транзакции.

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

Именно консенсус превращает эти разрозненные локальные представления в общую историю реестра.

@Dusk $DUSK #dusk