Предупреждение нотариуса Corda при двойных расходах, как это проверить?

Мне нужно проверить, как нотариус предотвращает двойные траты в обязательном приложении. Я запустил пользовательский интерфейс веб-сервера на портах localhost и выполнил несколько транзакций, и когда я проверил журнал нотариуса, я обнаружил следующее:

[ПРЕДУПРЕЖДЕНИЕ] 2020-06-24T08:29:33,484Z [Обработчик очереди запросов нотариуса] транзакций.PersistentUniquenessProvider. - Невозможно нотариально заверить: одно или несколько состояний ввода или ссылочных состояний уже использовались в качестве состояний ввода в других транзакциях. Количество конфликтующих состояний: 1, сведения о потреблении: 7CF1BCA8EDF25F0602BBEDF8AD41FD60336F65EAC09C5326478A4CB7CD620579(0) -> StateConsumingDetails(hashOfTransactionId=46552C5CE153712B655165ACC5C5CE153712B655255A5C5C5C53712B655255A05C5C5C53712B655255A5C5C5C5C53712B655165A2C05C05C03BB6DB08C08C08CB08CDB2 Чтобы узнать, была ли сгенерирована какая-либо из конфликтующих транзакций этим узлом, вы можете использовать команду оболочки hashLookup Corda. [errorCode=1g4005y, moreInformationAt=https://errors.corda.net/OS/4.5-RC02/1g4005y] net.corda.core.internal.notary.NotaryInternalException: невозможно нотариально заверить:Одно или несколько состояний ввода или связанных состояний уже использовались в качестве состояний ввода в других транзакциях. Количество конфликтующих состояний: 1, сведения о потреблении: 7CF1BCA8EDF25F0602BBEDF8AD41FD60336F65EAC09C5326478A4CB7CD620579 (0) -> StateConsptingDetails(hashOfTransactionId=46552C5CE153712B655165ACC5C5CE153712B655255A2C5C5C53712B655255A05C05C08C03E08C08C03E08C08C08C08CB08B08C05C08C08C08 Чтобы узнать, были ли сгенерированы этим узлом какие-либо конфликтующие транзакции, вы можете использовать команду оболочки hashLookup Corda.Чтобы узнать, была ли сгенерирована какая-либо из конфликтующих транзакций этим узлом, вы можете использовать команду оболочки hashLookup Corda.Чтобы узнать, была ли сгенерирована какая-либо из конфликтующих транзакций этим узлом, вы можете использовать команду оболочки hashLookup Corda.

Я выполнил hashLookup для недопустимого txId и обнаружил следующее:

hashLookup 46552C5CE153712B65585A75C4D165CD4A05304564C8797ACEF317DCD925B72E Обнаружена соответствующая транзакция с идентификатором: A86E3ECE4EC12A487E413E2BDAB9D88BFEBCB418FA0224189DE0C72BB

Я считаю, что именно так нотариус остановил двойные траты. Но я не могу воссоздать это тестирование. Может ли кто-нибудь сказать мне, какая возможная транзакция ввода привела к этой ошибке. Я имею в виду, какой тестовый пример может привести к этому тестированию двойных расходов, которое остановлено нотариусом?

1 ответ

Нотариус - это сетевая служба, которая обеспечивает консенсус в отношении уникальности, подтверждая, что для данной транзакции он еще не подписал другие транзакции, которые потребляют какое-либо из состояний ввода предложенной транзакции.

Другими словами, нотариус будет отслеживать все входные состояния (сохраняет только их хэши, а не реальное состояние), которые используются в транзакциях, поэтому, когда кто-то пытается использовать эти уже потраченные входные данные, нотариус отклонит транзакцию..

Следовательно, предотвращение двойных расходов.

Другие вопросы по тегам