让我们看看预言机合约的代码:
-
客户端调用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 |