构建区块链预言机网络很容易。但是什么是预言机网络呢?让我们分别来理解为什么预言机网络是重要的,以及它是如何为区块链网络添加超能力的。

简而言之,预言机网络是一个基本的web服务器,它允许信息从互联网传输到区块链层。让我们来看看这个架构。

预言机客户端是请求的发起者。客户端在智能合约上调用一个函数来触发一个事件。预言机服务器侦听该事件,并通过Internet执行外部定义的请求或操作。预言机服务器通过调用合约更新函数将其传递给预言机合约来更新信息。

让我们看看预言机合约的代码:

客户端调用updateBTCCap()函数,该函数发出事件,以便服务器通过 Internet请求来获取BTCCap。一旦服务器完成请求并获得BTCCap,它将调用以Cap为参数的setBTCCap函数。完成后,客户端就可以调用getBTCCap函数来获取服务器更新的最新BTC上限。

下面是部分服务器代码:

预言机合约有两个实例。一个是基于Websocket的连接,即oracleContractWss,另一个是带有 HTTPS 提供程序的简单实例oracleInstance。web socket实例可以监听这些事件,我们从最新的区块中获取这些事件。这意味着它只能考虑即将发生的事件。如果你指定了任何一个旧的区块,那么从该区块开始的事件将被获取。对于来自事件的数据,我们请求一个API来获取BTCCap,并使用协议的HTTPS实例调用setBTCCap函数。

整个项目的源代码在下面的Github存储库中。

https://github.com/adityak74/blockchain-eth-simple-oracle

Source:https://levelup.gitconnected.com/writing-a-simple-blockchain-oracle-contract-oracle-server-and-client-in-under-5-mins-7ec8ee33df91