我正在写一个Hyperledger-fabric链码。我希望它可以从外部程序中获取一些字符串并向其发送一些消息。我想知道链码是否可以做到这一点?
是的,你可以这样做。这种做法被称为“神谕”。以this为例。
但出于几个原因,强烈建议不要这样做(ChainCode最佳实践:Accessing external resources (http) might expose vulnerability and security threats to your chaincode. You do not want malicous code from external sources to influence your chaincode logic in any way. So keep away from external calls as much as possible.)
为了与外部程序交互,您需要设置区块链oracle。 oracle应该向所有代言人返回确定性结果 - 否则代言失败。至关重要的是,所有代言人都可以访问此外部程序,例如通过API。
商业区块链oracle提供商Oraclize提供与Hyperledger Fabric的集成。您可以查看他们的connector chaincode,了解他们如何将oracle与Fabric集成并遵循类似的方法。
编辑:要明确,我与Oraclize没有任何关联,也不想为他们做广告。我只是将它们命名为一个例子,因为它们众所周知并提供与Hyperledger Fabric的集成