Corda观察员仅跟踪未消费的交易?

时间:2018-08-20 11:34:17

标签: corda

我正在对Corda观察者节点进行测试。在借条问题上,将流程召集给观察员。 IOU贷方转移流程(将贷方资产更改为新方的流程)上的情况相同。

我从甲方向乙方发出欠条。在观察者节点上,也会显示stateAndRef。

但是执行转移的IOU时,观察者节点上不会显示任何更改。它仍然显示旧状态。

观察者节点是否仅在Vault中保留未使用状态,还是同时在消费/未消费事务中都保留未消费状态?

以下代码仅适用于一个流IOU问题,不适用于其他流:

  • 我指的是借条示例here

下面是我从每个Flow调用的代码:

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 个答案:

答案 0 :(得分:0)

最后发现了我的错误。在日志中,我收到错误“签名库不足”。我在finalityflow之后通过了签名,但是没有通过finalityflow结果到上述流程。