【发布时间】:2019-08-14 09:06:11
【问题描述】:
在 Corda 中,有一个流程提供了将 SignedTransaction 发送给另一方的功能。
open class SendTransactionFlow(otherSide: FlowSession, stx: SignedTransaction) : DataVendingFlow(otherSide, stx)
还有另一个流,它将 StatesAndRefs 发送给另一方:
open class SendStateAndRefFlow(otherSideSession: FlowSession, stateAndRefs: List<StateAndRef<*>>) : DataVendingFlow(otherSideSession, stateAndRefs)
在接受者侧应该调用相应的接收者流:
open class ReceiveTransactionFlow @JvmOverloads constructor(private val otherSideSession: FlowSession,
private val checkSufficientSignatures: Boolean = true,
private val statesToRecord: StatesToRecord = StatesToRecord.NONE) : FlowLogic<SignedTransaction>()
或
class ReceiveStateAndRefFlow<out T : ContractState>(private val otherSideSession: FlowSession) : FlowLogic<@JvmSuppressWildcards List<StateAndRef<T>>>() // which invokes **ReceiveTransactionFlow** with **StatesToRecord.NONE**
这两个接受者流程之间的主要区别在于,ReceiveStateAndRefFlow 将在接受者一方解析 SignedTransaction,但不会将状态记录到交易对手的保险库中。另一方面:ReceiveTransactionFlow 接受 StatesToRecord 属性并将状态存储到交易对手的保险库中。
问题:ReceiveStateAndRefFlow 不接受StatesToRecord 属性的原因是什么?
【问题讨论】:
标签: corda