Connect with us

投資教學 Cryptopedia

學嘢啦!快速編寫區塊鏈預言機合約教學

嘗試用5分鐘內編寫一個簡單的區塊鏈預言機合約、預言機服務器和客戶端,理解為什麼預言機網絡是重要的,以及它是如何為區塊鏈網絡添加超能力的。

發表於

日期:

緊貼世界各地區塊鏈社群最新資訊,追蹤 Coindaily 社交平台!

加入 TG 頻道: https://t.me/coindaily_official
Facebook:https://www.facebook.com/CoinDaily_official
Instagram:https://www.instagram.com/coindaily.officia

構建區塊鏈預言機網絡很容易。但是什麼是預言機網絡呢?讓我們分別來理解為什麼預言機網絡是重要的,以及它是如何為區塊鏈網絡添加超能力的。

簡而言之,預言機網絡是一個基本的web服務器,它允許信息從互聯網傳輸到區塊鏈層。讓我們來看看這個架構。

預言機客戶端是請求的發起者。客戶端在智能合約上調用一個函數來觸發一個事件。預言機服務器偵聽該事件,並通過Internet執行外部定義的請求或操作。預言機服務器通過調用合約更新函數將其傳遞給預言機合約來更新信息。

讓我們看看預言機合約的代碼:

客戶端調用updateBTCCap()函數,該函數發出事件,以便服務器通過 Internet請求來獲取BTCCap。一旦服務器完成請求並獲得BTCCap,它將調用以Cap為參數的setBTCCap函數。完成後,客戶端就可以調用getBTCCap函數來獲取服務器更新的最新BTC上限。

下面是部分服務器代碼:

預言機合約有兩個實例。一個是基於 Websocket 的連接,即 oracleContractWss,另一個是帶有 HTTPS 提供程序的簡單實例oracleInstance。web socket實例可以監聽這些事件,我們從最新的區塊中獲取這些事件。這意味著它只能考慮即將發生的事件。如果你指定了任何一個舊的區塊,那麼從該區塊開始的事件將被獲取。對於來自事件的數據,我們請求一個API來獲取BTCCap,並使用協議的 HTTPS 實例調用 setBTCCap 函數。

項目源代碼 : https://github.com/adityak74/blockchain-eth-simple-oracle