如何与外部系统进行通信

时间:2017-08-31 06:39:08

标签: hyperledger-composer

我试图写一个逻辑(js脚本)来与外部系统通信。据了解,逻辑将在所有认可对等体上执行。 在这种情况下,如何避免对外部系统进行重复操作?例如,如何增加外部数据库中的值?如果我写一个逻辑来增加js中的值,我认为该值将由所有支持对等体递增。 我会感激任何评论。

1 个答案:

答案 0 :(得分:1)

首先,目前唯一可以与外部系统交互的方法是使用实​​验性的post API。这允许您的事务处理器功能将HTTP POST数据发送到外部系统,然后处理响应。

此处的文档: https://hyperledger.github.io/composer/integrating/call-out.html

你说如果你有4个对等体,那么每个对等体的链代码容器将运行你的逻辑是正确的,所以你希望看到4次调用你的HTTP服务。这是必需的,因为每个对等节点都是独立的,Fabric必须在对等方之间达成共识。

因此,外部函数(理想情况下)应该是无副作用的“纯”函数(幂等),这意味着对于给定的输入参数集,您总是得到相同的输出结果集。

显然,返回递增整数的函数不适合此描述!您可能需要重新思考如何构建问题,使其与基于分区链的分散方法兼容。