根据项目主管的建议,我刚刚从为ETH构建DAPP切换为Hyperledger。我是Hyperledger的新手,正在使用Composed。在我以前的DAPP中,我研究了如何建立一个必须用于更新黄金价格或汇率(变化的东西并且必须快速更新的预言)的预言机。我一直在寻找有关如何在Hyperledger上构建Oracle的教程,但没有成功。在遵循here中提出的教程之后,我试图考虑如何构建它,但是我真的无法确定必须如何构建。谁能告诉我是否可以构建它们,以及我应该如何构建这样的Oracle?
谢谢!
答案 0 :(得分:1)
如果我很了解,您想在区块链中使用外部数据。
首先,与您的问题无关,但是作为我个人经验的建议,如果您想深入了解Fabric,请不要使用Composer。根据我的理解和测试,作曲家被视为测试对象。如果要访问所有结构元素,请不要使用它。
此外,Composer现在刚刚更新为适合新版本的Fabric。它不会得到任何重大更新。这实际上不是一个活跃的项目。 (在他们的一个论坛上有来自开发人员的完整帖子)
返回您的问题
您的链码是用Node.js编写的。因此,您可以访问所有的node.js软件包(使用composer时我有疑问,如果我做错了,请纠正我)。 然后,您可以将HTTP请求发送到链的外部。
请注意,Fabric允许将CouchDB数据库用作世界状态。我不知道您是需要存储自己的数据还是需要特定的外部数据,但是您可以使用它代替查询互联网。
不要使用不确定性元素
不建议“使用”您不管理的外部元素。 原因是,创建区块的算法(共识)具有(并且必须是)确定性的,这与以太坊/比特币的概率更高相反。
由于采用了认可机制,您的链码模拟必须与每个认可对等方完全相同。
例如,假设您查询某个API上某个地方的温度。您的第一个对等点可能会获得10°c的温度,因为它在时间t询问了温度,但是另一个对等点在t + 1时收到了交易建议,因此温度发生了变化,从而达到了10.01°c。结果是,模拟很可能不会在两个同位体上给出相同的结果,然后交易将无效。
答案 1 :(得分:0)
我建议您从Oraclize的方法中获得一些启发。它们与Hyperledger Fabric的集成是完全开源的。他们的方法描述如下:https://docs.oraclize.it/#fabric
源代码记录在Github上: