【问题标题】:Corda Flow Responder counter party logicCorda Flow Responder 对方逻辑
【发布时间】:2020-12-21 09:40:36
【问题描述】:

基本上,我通过状态生成交易启动流程,涉及 3 方:

甲方 - 我们的身份
乙方 - 应签署
乙方 strong> - 应该签名

启动流程创建新状态并建立交易,然后从其他方收集签名。

PartyB和PartyC要自己做具体的业务逻辑验证。
将这些检查放在流响应器中是否正确?如果不是,将它们放在哪里?
另外,我可以分开响应者代码吗:

override fun call(): SignedTransaction {
    val signTransactionFlow = object : SignTransactionFlow(otherPartySession) {
        override fun checkTransaction(stx: SignedTransaction) = requireThat {
            val output = stx.tx.outputs.single().data
            
            if (otherPartySession.counterParty == output.participantB) {
               // Do checks for PartyB
            }
            
            if (otherPartySession.counterParty == output.participantC) {
               // Do checks for PartyC
            }
        }
    }
    val txId = subFlow(signTransactionFlow).id

    return subFlow(ReceiveFinalityFlow(otherPartySession, expectedTxId = txId))
}

【问题讨论】:

    标签: corda


    【解决方案1】:

    是的,PartyB 和 PartyC 的交易验证应该放在 Responder 流中。您提出的解决方案是正确的。 更常见的是,Responder流也可以拆分到不同的节点,一个在PartyB的节点,一个在PartyC的节点,这样他们就看不到对方的实现了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多