【问题标题】:share transactions with new participants与新参与者共享交易
【发布时间】:2018-05-18 22:05:55
【问题描述】:

Corda 是否具有如何将新节点的数据共享到网络中的最佳实践?例如,节点 A 有交易,我们有一个新的节点 B。节点 A 必须与节点 B 共享过去 3 个月的交易。

你能分享一些例子吗?

谢谢。

【问题讨论】:

    标签: corda


    【解决方案1】:

    您可以轻松地为此编写一个流对。

    第一方调用以下流程将其存储的所有交易发送给交易对手:

    @InitiatingFlow
    @StartableByRPC
    class Sender(val counterparty: Party) : FlowLogic<Unit>() {
        @Suspendable
        override fun call() {
            val (existingTransactions, _) = serviceHub.validatedTransactions.track()
            val counterpartySession = initiateFlow(counterparty)
            counterpartySession.send(existingTransactions)
        }
    }
    

    交易对手通过调用以下流程来接收和记录所有交易进行响应:

    @InitiatedBy(Sender::class)
    class Receiver(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
        @Suspendable
        override fun call() {
            val existingTransactions = counterpartySession.receive<List<SignedTransaction>>().unwrap { it }
            serviceHub.recordTransactions(existingTransactions)
        }
    }
    

    【讨论】:

    • 您好!非常感谢你的例子。 Corda 是否有任何工具来过滤交易,例如通过时间戳?如果我要在某个特定时间段内同步状态?
    • 目前没有,没有。
    • 那么,交易对手是否成为参与者之一?是否能够更新交易,即:使用接收到的交易状态作为输入并创建另一个交易?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多