【问题标题】:Is there a way to send multiple transactions to counterparty without looping有没有办法在不循环的情况下向交易对手发送多笔交易
【发布时间】:2018-07-31 17:41:47
【问题描述】:

有没有一种方法可以在不使用流程循环的情况下将多笔交易发送给交易对手?在循环中一次发送一个 tx 会显着影响性能,因为 Suspendable 行为不适用于大量 tx。

在某个时间点,T,发起人可能有兴趣向监管机构/交易对手发送 N 笔交易。但是当前的SendTransactionsFlow 一次只发送一个 tx。而另一边,它ReceiveTransactionFlow来一一记录。

我当前的代码

relevantTxes.forEach{
       subFlow(SendTransactionFlow(session, signedTx))
}

有没有办法按照

subFlow(SendTransactionFlow(session, relevantTxes))

【问题讨论】:

    标签: corda


    【解决方案1】:

    您可以使用sendreceive 发送交易列表而无需调用子流。

    在发送方:

    val session = initiateFlow(otherParty)
    session.send(relevantTxes)
    

    在接收方:

    session.receive<List<SignedTransaction>>().unwrap { relevantTxes -> relevantTxes }
    

    【讨论】:

    • 我希望能够使用 subFlow(ReceiveTransactionFlow(otherSideSession, true, statesToRecord)),但我想有了这个建议,它更多的是创建我自己的自定义流来接收多个 txes 并将它们记录在响应者端的循环?
    • 是的。您必须创建自己的响应程序流。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2012-02-18
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多