blockchain - 如何将状态发送到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))
,它在输入中接收会话列表。您可以在这里查看它的实现和它的单元测试,或者在这里查看使用示例。
推荐阅读
- powershell - Powershell 使用 itextsharp.dll 搜索模式
- html - HTML 私有输入类型的使用
- c++ - 使用 clang++ 在 Mac OSX 上创建动态库
- python - 带有移动窗口的滚动平均值
- python - Python将带有CRLF的文件转换为CSV/Excel中的新行
- ethereum - 在逻辑应用中签署原始交易
- php - 如何使数组编号成为一个值
- opencv - 控制流 Python OpenCv:为什么 cv2.setMouseCallback 不在循环内?
- regex - TYPO3 9.5 - 使用 cms-redirects 重定向
- python - Python 程序 - 在给定的数字列表中查找最大序列的程序