ホーム>source

Corda Observerノードでテストを実行していました。 IOUの問題については、オブザーバーにフローを呼び出します。 IOUの貸し手転送フロー(貸し手財産を新しい政党に変更するためのフロー)でも同じです。

partyAからPartyBにIOUを発行します。オブザーバーノードでは、stateAndRefも表示されます。

ただし、転送されたIOUを実行すると、オブザーバーノードに変更は表示されません。まだ古い状態を示しています。

オブザーバーノードは、ボールトまたは消費/未消費トランザクションの両方でのみ非消費状態を維持しますか?

以下のコードは、1つのフローIOUの問題に対してのみ機能し、他のフローに対しては機能しません。

  • IOUの例を参照していますここに

以下は、各フローから呼び出したコードです。

object BroadcastTransaction {
    @InitiatingFlow
    class BroadcastTransactionToObservers(private val stx: SignedTransaction, private val observers: List<Party>) : FlowLogic<Unit>() {
        @Suspendable
        override fun call() {
            val sessions = observers.map { initiateFlow(it) }
            sessions.forEach { subFlow(SendTransactionFlow(it, stx)) }
        }
    }
    @InitiatedBy(BroadcastTransactionToObservers::class)
    class RecordTransactionAsObserver(private val otherSession: FlowSession) :FlowLogic<Unit>() {
        @Suspendable
        override fun call() {
            subFlow( ReceiveTransactionFlow(
                    otherSideSession = otherSession,
                    checkSufficientSignatures = true,
                    statesToRecord = StatesToRecord.ALL_VISIBLE
                )
            )
        }
    }
}

finalityflow呼び出しの直後にオブザーバーフローを呼び出した後でも、十分な署名を取得していないノードのログを確認しました...

あなたの答え
  • 解決した方法 # 1

    ついに私の間違いを見つけました。ログにエラー「署名コーダが不十分です」が表示されました。 finalityflowの後にsignedsignatureを渡しましたが、上記のフローにfinalityflowの結果を渡しませんでした。

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ メッセージボックスが表示された後にVBA Excel Textboxがクリアされる