【问题标题】:How Do I Trigger An Off Ledger Action After A Corda Transaction Is Complete?Corda 交易完成后如何触发账外交易?
【发布时间】:2021-03-02 02:44:56
【问题描述】:

我需要将一些来自 Corda 的信息(例如 LinearId、Transaction Hash 等)存储在一个账本外的数据库中(不是节点数据库中的一个额外的表),用于后续的外部处理和下游操作.

关键是代码必须在特定流程(不是所有流程)完成并且在一侧/交易节点。

  • 节点触发器可以直接写入外部数据库
  • 或者触发器可以将数据写入 JMS 队列以供外部引擎提取和处理

流程完成后如何触发操作?

【问题讨论】:

    标签: corda


    【解决方案1】:

    您可以做到这一点的一种方法是使用响应程序流。这取决于您的用例,但您可以做的一件事就是推迟响应流程中的 return 语句,然后运行一些额外的代码或从响应流程发出 HTTP 请求。

    这是一个代码示例:(您可以看到它如何返回子流,但您可以稍后返回它并在返回后运行一些代码)

    https://github.com/corda/samples-kotlin/blob/master/Advanced/obligation-cordapp/workflows/src/main/kotlin/net/corda/samples/obligation/flows/IOUSettleFlow.kt#L98-L113

    有关响应者流程的更多信息:https://docs.corda.net/docs/corda-os/4.7/api-flows.html

    从流中发出 HTTP 请求:https://github.com/corda/samples-java/blob/master/Basic/flow-http-access/workflows/src/main/java/net/corda/samples/flowhttp/HttpCallFlow.java#L35-L39

    【讨论】:

    • 这些可以在流程完成之后完成吗?我如何知道交易已成功完成?我不想触发一个动作,然后发现事务已经回滚或未能完成等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多