Корда 4 - однопартийная транзакция не была передана в книгу - PullRequest
0 голосов
/ 26 февраля 2019

При обновлении с Corda 3 до Corda 4 у меня возникает проблема, связанная с передачей состояния в регистр нашего узла только с одной стороной.Одна Сторона может создать государство, нотариально заверить его, но НЕ МОЖЕТ зафиксировать книгу Corda 4 без запроса сторонней третьей стороны.

Ошибка Corda 4 (которую не произвела Corda 3)следующее: (1) java.lang.IllegalArgumentException: должен быть предоставлен сеанс потока для каждого внешнего участника транзакции.Если вы хотите продолжить использовать этот небезопасный API, укажите для своего CorDapp версию целевой платформы менее 4.

Более конкретный контекст: использование FinalityFlow без сеанса приводит к «сеансу, необходимому для внешних сторон»ошибка и не завершена.Добавление только сеанса (например, session = initiateFlow (PartyA)) приводит к ошибке, что «локальные узлы не должны быть включены».

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

1 Ответ

0 голосов
/ 26 февраля 2019

Я думаю, что здесь есть сообщение об ошибке.Просто измените способ, которым вы вызываете FinalityFlow во время вашей выдачи, чтобы он не содержал для себя сеанс потока, т. Е.

return subFlow(new FinalityFlow(signedTransaction));

Хотя вы можете получить предупреждение об устаревании, в этом случае выполните следующее

return subFlow(FinalityFlow(stx, emptyList())) 
...