簡體   English   中英

如何在corda中將狀態發送到多個帳戶?

[英]How to send a state to multiple accounts in corda?

1.) 我正在使用帳戶庫在 Corda 中創建一個項目,我需要在單個事務中將狀態發送到不同節點上的兩個帳戶。 這在 Corda 中是可能的,如果是,那么如何? 流程代碼示例將非常有幫助。

2.) 如何為 Corda 流程中的參與者列表創建流程會話或如何為多個參與者啟動流程?

3.) 如何在流程中收集多方的簽名?

1 - 是的,你可以。 如此處所述您可以使用:

  • sendAll(payload: Any, sessions: Set<FlowSession>) :它將有效負載對象發送到所有提供的 FlowSession。 它將與receiveAll(receiveType: Class<R>, sessions: List<FlowSession>): List<UntrustworthyData<R>>
  • sendAllMap(payloadsPerSession: Map<FlowSession, Any>) :它向每個 FlowSession 發送一個可能不同的有效負載,由提供的 payloadsPerSession 指定。 它將與receiveAllMap(sessions: Map<FlowSession, Class<out Any>>): Map<FlowSession, UntrustworthyData<Any>>

2 - 必須為每一方創建流:

FlowSession session1 = initiateFlow(counterparty1);
FlowSession session2 = initiateFlow(counterparty2);

但是你可以將所有這些都傳遞給同一個

sendAll(payload, listOf(session1, session2))

3 - 您必須使用CollectSignaturesFlow(initiallySignedTx, listOf(sessions)) ,它在輸入中接收會話列表。 你可以看看它的實現在這里和它進行單元測試這里,或使用的例子在這里

  • 除了 Alessandro 的回復,Accounts 庫還有一個名為ShareStateWithAccountFlow的流; 達到您的要求。
  • 請確保您仔細閱讀了流程的作用以及如何將其與accountQueryCriteria一起使用(請參閱此處)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM