【问题标题】:Corda: Making HTTP request within a responder flow?Corda:在响应者流中发出 HTTP 请求?
【发布时间】:2019-11-06 13:34:01
【问题描述】:

是否可以从响应者流中向对方的外部服务发出 HTTP 请求?

我的用例是一方使用交换节点调用“请求令牌”流。该交换节点发出 HTTP 请求(在响应者流上)以将现金从该方帐户转移到外部支付系统中的交换帐户。资金实际达到计数并因此发行代币的事件将发生在另一个流程中。

如果不行,有什么替代设计可以完成任务?

【问题讨论】:

    标签: corda


    【解决方案1】:

    以这种方式发出 HTTP 请求并不总是一个好主意。

    除非您仔细考虑重播前一个检查点时会发生什么。所以重复数据删除和幂等性是关键考虑因素。另外,如果目标关闭会发生什么?此外,这可能会耗尽纤程运行的线程池。

    流在光纤上运行。 CordaServices 可以产生自己的线程 线程可以在 I/O 上阻塞,纤程只能在短时间内这样做,我们不保证释放资源或排序,除非它是 DB。线程也可以注册 observables

    真正的挑战是重启能力,为此他们需要通过随机杀戮来测试他们的代码。

    您需要注意,在发生崩溃时可以重播步骤。这适用于任何重新启动工作的基于服务器端工作的系统。

    实际上,您应该:

    • 步骤 1) 执行账本 Corda 交易以移动一个或多个 资产进入锁定状态(类似于 XA 'prepare')。什么时候 公证成功,
    • 步骤2)执行账外交易 使用成功或失败的幂等调用。当我们知道它是否 成功或失败,移至
    • 步骤 3) 执行第二个 Corda 恢复资产状态或移动资产的交易 达到预期的最终状态

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 2017-03-10
      • 2019-03-04
      相关资源
      最近更新 更多