Corda НЕ ПОТРЕБЛЕНО государством, которое находится в участнике, но не подписано в транзакции - PullRequest
0 голосов
/ 14 марта 2019

Предположим, у меня есть 3 узла ABC

В первом потоке (выпуск) Состояние проблемы X, участники которого AB и C, но только A и B должны подписать состояние X в этом потоке A, добавить вложениев транзакции

После этого B обновляет состояние X (поток обновлений), участники и исполнитель совпадают в потоке проблем в потоке обновлений B, добавляют тот же файл, который выдает в транзакцию

Я вызываю поток обновления много раз

последний поток - это подтверждение состояния XA, подтверждение состояния X с теми же участниками, и подписывающее лицо по-прежнему будет A и B


Все выглядит нормально, пока я не вижу ошибку в журнале

FileAlreadyExists

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

Я думаю, что ошибка произошла из потока FetchAttachmentsFlow, который был вызван из fetchMissingAttachments

, и я проверяю в хранилище, я вижу 2 UNCONSUMED состояния, которые имеют тот же линейный идентификатор в узле C - state X (из выпуска) по-прежнему НЕ ПРОИЗВОДИТСЯ - состояние X (из последнего обновления) НЕ СОБРАНО

Итак, я гостю

  1. , какая-то транзакция не пришла на узел C?
  2. когда у меня есть 2 UNCONSUMED состояния: первое из A и второе из B (Initiate) с одинаковым вложением, узел C пытается извлечь узлы формы A и B вложения, после того как Get attachment от узла C сохранит всебя так, когда C получил такое же вложение от B, он выдает ошибку FileAlreadyExists?

Кто-нибудь знает, как решить проблему, пожалуйста, дайте мне знать?

Спасибо

...