Определите, кто управляет состоянием расписания Corda

Я реализую LinearState это также SchedulableState в Cordapp. Объект состояния разделяется и согласовывается между 3 сторонами при его создании и хранении в каждом из их хранилищ. Однако, когда запланированное действие приходит в себя, все 3 узла, которые его сохранили, похоже, запускают следующий поток.

Как выбрать только один из этих узлов для запуска потока?

Я ничего не вижу по этому поводу на странице планирования: https://docs.corda.net/event-scheduling.html

2 ответа

Взгляните на определение FixingRoleDecider,

Когда запланированная деятельность происходит, FixingRoleDecider поток запущен. FixingRoleDecider затем использует if условие, чтобы только запустить поток на правильном узле.

Это скорее обходной путь, нежели решение: одним из способов будет проверка вашего schedulableFlow, если предполагается, что Node должен запускать поток или нет. Вы можете жестко закодировать Сторону, которая должна управлять узлом, сравнить, если это та же сторона, которая выполняет поток, если не вернуть ноль. или поместите информацию в оракула и запросите оракула, чтобы увидеть, есть ли у узла разрешение на запуск необходимого потока.

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