想象A与B和C一起在网络中。A与B有一个共享的事实,与C有一个共享的事实。这两个都位于A的保险柜中。假设A的系统崩溃并且节点的H2数据消失了,那么A如何将这两个事实恢复到其Vault中?
答案 0 :(得分:0)
如果B和C都愿意与A重新共享此信息,则它们都可以调用诸如下面定义的流程,以将事务及其依赖项重新发送给A:
@InitiatingFlow
@StartableByRPC
class ShareTransactionHistory(val otherParty: Party, val signedTransaction: SignedTransaction) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
val otherPartySession = initiateFlow(otherParty)
subFlow(SendTransactionFlow(otherPartySession, signedTransaction))
}
}
@InitiatedBy(ShareTransactionHistory::class)
class ShareTransactionHistoryResponder(val otherPartySession: FlowSession) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
subFlow(ReceiveTransactionFlow(otherPartySession, statesToRecord = StatesToRecord.ONLY_RELEVANT))
}
}
A然后将自动重新记录交易和任何相关状态。
但是,有关恢复过程中的注意事项,请参见this question。