Corda:在响应者流程中发出HTTP请求?

时间:2019-06-24 17:59:47

标签: corda

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

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

如果还不行,那么完成任务的替代设计是什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

真正的挑战是重新启动能力,为此,他们需要使用随机杀死功能来测试自己的代码。

您需要注意,如果发生崩溃,可以重播步骤。对于任何重新启动工作的基于服务器端工作的系统都是如此。

有效地,您应该:

  • 步骤1)执行分类帐Corda交易以移动一个或多个 资产进入锁定状态(类似于XA“准备”)。什么时候 成功公证,
  • 步骤2)执行分类帐事务 与成功或失败的幂等调用。当我们知道是否 成功或失败,请移至
  • 步骤3)执行第二个Corda 恢复资产状态或移动资产的交易 达到预期的最终状态