構建區塊鏈預言機網絡很容易。但是什麼是預言機網絡呢?讓我們分別來理解為什麼預言機網絡是重要的,以及它是如何為區塊鍊網絡添加超能力的。
簡而言之,預言機網絡是一個基本的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