Итак, я прошел шаг за шагом в попытке воссоздать ваш сценарий - 3 узла, на которых запущен Quorum + Raft, и частная транзакция между узлами 1 и 3.
При первоначальной попытке миграции я столкнулся с тем жесостояние висела, как вы заметили.Проверка проводника блоков показывает, что оба контракта были фактически развернуты, однако ни один из них не был вызван (т.е. не было задано состояние для простого хранения через файл миграции).
Затем я изменил файл truffle_migrate.sh, чтобы нацелиться на исходный узел privateFor (3), и использовал исходный целевой узел (1) в качестве нового получателя privateFor.Это сработало сразу.Вопрос в том, почему :)
Трюфель иногда привередлив, особенно при использовании RAFT с частными транзакциями.
Я бы посоветовал:
- Проверьте проводник блоков, чтобы убедиться, что подключение к сети было успешным и контракты были развернуты.
- Завершить текущий процесс миграциии просто включите его снова.
- Если это не сработает, попробуйте процесс триггера, который я описал.
Мне интересно, есть ли корреляция с таргетингом на RAFT?Лидер или, возможно, трюфель, иногда нужно несколько дополнительных толчков.Мы будем расследовать.
FYI. Сначала я пытался выполнить публичную транзакцию и использовал файл truffle.js только с одним узлом.Это также сработало сразу.Поэтому я полагаю, что для частных транзакций и RAFT существует некоторый нюанс.
Между тем, это должно дать вам потенциальный обходной путь;вы просто будете иметь оригинальную миграцию и простые контракты на хранение как сироты в вашей среде.