FDF智慧合約系統開發|馬蹄鏈DAPP開發搭建技術

搭建猿punk2558發表於2023-02-16

  智慧合約不是自動執行的;它們的執行完全取決於在區塊鏈網路上進行的鏈上交易,作為觸發函式呼叫的行動號召。然而,手動執行智慧合約也有缺點,例如潛在的安全風險、不必要的延遲以及人為錯誤的可能性。


  瞭解智慧合約自動化


  在智慧合約自動化出現之前,FDF智慧合約平臺13z開4z77發z558,開發人員使用集中式伺服器來實現各種手動流程,例如基於時間的執行、DevOps任務、鏈下計算和清算。


  手動流程增加了智慧合約的安全風險,因為它們給分散的應用程式引入了中心故障點。此外,通常由手動流程導致的網路擁塞可能會延遲交易的執行,從而使使用者資金面臨風險。


  智慧合約自動化使我們能夠自動化多個Web3功能,例如收益農業、跨鏈NFT鑄造、抵押不足的貸款清算、遊戲等。


  現在我們對智慧合約自動化有了一個概述,讓我們回顧一些流行的智慧合約自動化工具並瞭解它們是如何工作的。


  鏈環守護者


  Chainlink Keepers是一款智慧合約自動化工具,可在以太坊、BNB鏈和Polygon等多個區塊鏈上執行。Glary Utilities pro專業解鎖版,Windows全能系統最佳化清理增強工具,一鍵最佳化!該工具使外部擁有的賬戶能夠對智慧合約中的預定條件進行檢查,然後根據時間間隔觸發和執行交易。


  例如,開發人員可以透過監控Keepers網路的狀況來註冊智慧合約以進行自動維護。隨後,節點在Keepers網路上執行鏈下計算,直到滿足智慧合約中定義的條件。


  如果不滿足智慧合約條件,則計算返回值false,節點繼續工作。如果滿足智慧合約條件,則計算返回值true,並且Keepers網路觸發合約執行。


  Chainlink Keepers提供了許多好處:


  易於整合:Chainlink Keepers的使用者友好文件包含操作指南,可幫助開發人員加快整合速度


  安全性和可靠性:Chainlink Keepers的去中心化特性透過降低與中心化伺服器相關的安全風險,為應用程式提供了一個安全的框架。Chainlink Keepers使用透明池進行運營,有助於在開發人員和DAO之間建立信任


  成本效率:Chainlink Keepers的基礎設施提供了最佳化成本並提高與執行智慧合約相關的Gas費用穩定性的功能


  提高生產力:Chainlink Keepers處理對智慧合約進行檢查的鏈下計算,讓開發人員有更多時間專注於構建DApp


  演示:使用Chainlink Keepers自動化智慧合約


  讓我們研究如何使用Chainlink Keepers自動化智慧合約。我們將使用基於Remix線上IDE構建並部署到Rinkeby測試網路的Solidity合約。網頁更新提醒外掛,監控任何網頁可自定義規則通知,監控並記錄網頁內容變化!智慧合約將實現Chainlink Keepers GitHub儲存庫中定義的介面。


  為了與Chainlink Keepers相容,我們的智慧合約必須包含以下兩種方法:


  checkUpKeep():此方法對基於時間間隔執行的智慧合約進行鏈下計算;該方法返回一個布林值,告訴網路是否需要維護


  performUpKeep():該方法接受方法返回的訊息checkUpKeep()作為引數。接下來,它會觸發Chainlink Keepers對智慧合約進行維護。然後,它執行一些鏈上計算來重新驗證checkUpKeep()方法的結果,以確認需要維護


  首先,新增以下程式碼以在您的Remix IDE中建立一個簡單的計數器合約:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

contract Counter {

   uint public counter;

   uint public immutable interval;

   uint public lastTimeStamp;

   constructor(uint updateInterval) {

     interval = updateInterval;

     lastTimeStamp = block.timestamp;

     counter = 0;

   }

   function checkUpkeep(bytes calldata /* checkData */) external view returns (bool upkeepNeeded /* bytes memory  performData */) {

       upkeepNeeded = (block.timestamp - lastTimeStamp) > interval;

       // We don't use the checkData in this example. The checkData is defined when the Upkeep was registered

   }

   function performUpkeep(bytes calldata /* performData */) external {

       //We highly recommend revalidating the upkeep in the performUpkeep function

       if ((block.timestamp - lastTimeStamp) > interval ) {

           lastTimeStamp = block.timestamp;

           counter = counter + 1;

       }

       // We don't use the performData in this example. The performData is generated by the Keeper's call to your checkUpkeep function

   }

}


  該合約有一個公共變數counter,當新區塊與最後一個區塊之間的差異大於一個區間時,該變數會加一。然後,它實現了兩種與Keepers相容的方法。


  現在,導航到Remix選單按鈕(從頂部開始的第三個按鈕)並單擊Compile按鈕(帶有綠色驗證標記)來編譯合約:


  要繼續,您需要使用一些ERC-677 LINK代幣來為您的維護提供資金。使用Faucets連線您的Rinkeby測試網路並在chainlink上獲得一些測試網路LINK代幣:


  選擇Injected Web3作為環境,並選擇Rinkeby測試網路。蘋果版ios追劇看片神器,偽裝上架支援投屏畫質最低1080P,免費秒播放高畫質無廣告!然後,點選傳送請求,將20個測試LINK和0.1個測試ETH傳送到您的錢包。


  接下來,透過傳遞30秒作為間隔來部署合約。單擊Deploy後,MetaMask應該會開啟,要求您確認交易。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020115/viewspace-2935525/,如需轉載,請註明出處,否則將追究法律責任。

相關文章