我正在对Corda观察者节点进行测试。在借条问题上,将流程召集给观察员。 IOU贷方转移流程(将贷方资产更改为新方的流程)上的情况相同。
我从甲方向乙方发出欠条。在观察者节点上,也会显示stateAndRef。
但是执行转移的IOU时,观察者节点上不会显示任何更改。它仍然显示旧状态。
观察者节点是否仅在Vault中保留未使用状态,还是同时在消费/未消费事务中都保留未消费状态?
以下代码仅适用于一个流IOU问题,不适用于其他流:
下面是我从每个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调用之后对观察者流进行调用之后,我也检查了节点是否签名不足的日志...在这方面有帮助吗?
答案 0 :(得分:0)
最后发现了我的错误。在日志中,我收到错误“签名库不足”。我在finalityflow之后通过了签名,但是没有通过finalityflow结果到上述流程。