我正在尝试编写一个逻辑(JS脚本)以与外部系统通信。据了解,逻辑将在所有认可的同伴上执行。在这种情况下,如何避免对外部系统重复操作?例如,如何在外部数据库中增加一个值?如果我编写逻辑以将JS中的值递增,我认为所有认可的对等都会增加该值。我感谢任何评论。
首先,当前与外部系统交互的唯一方法是使用实验post
API。这允许您的事务处理器函数http将数据发布到外部系统,然后处理响应。
文档此处:https://hyperledger.github.io/composer/integrating/callout.html
您是正确的,说明如果您有4个同行,那么每个对等方的链代码容器都会运行您的逻辑,因此您希望看到4个通话HTTP服务。这是必需的,因为每个对等节点都是独立的,并且面料必须在同伴之间达成共识。
因此,外部函数应(理想情况下)是副作用免费的"纯"函数(IDEMPOTENT),这意味着对于给定的一组输入参数,您始终获得相同的输出结果集。
显然,返回增量整数的函数不符合此描述!您可能需要重新考虑如何结构问题,以使其与分散的基于区块链的方法兼容。