7*24快訊如何使用C...

如何使用Chainlink Keepers 實現智能合約執行的自動化

Chainlink 2022春季松黑客已於4月22日拉開帷幕!歡迎註冊!請查看此頁面以了解更多信息。

智能合約不能自己,這意味著他們需要在外部執行這家公司、黑客機合約來啟動它們自己的功能。 ),或者被遵守條件(如以太坊特定的條件),或者計算計算出的價格為(如貸款不足)執行。

在過去,會創建並維護他們自己的中心化或手動開發觸發智能合約的解決方案。然而,這實際上是開發者中心去組織執行區塊鏈應用程序的目的,並且如果化腳本化或手動觸發過程失敗,會出現睡不著的可能。

在本教程中,你將學習如何使用Chainlink Keepers 這種可靠的和去中心化的方式自動執行智能合約。

每個智能合約開發者都應該使用去中心化的自動化方案?

Chainlink保持三個智能合約簽約中心的新形式,使開發者能夠改變他們去構建和維護的App的一種新形式。去中心化智能合約有主要好處。

首先,有必要消除中心運行的任何化中心故障。目前,Chainlink Keeper 由節點組成的去化網絡管理器– 數據饋送管理器與維護者的數據饋送運行中,由運行節點和節點組成的超可靠節點相同,消除了點故障。

需要創建一個與上鍊的合約並註冊,就需要創建一個與上鍊的合約並註冊,就可以集成優化鏈的鏈。 DevOps 的工作,使開發者能夠專注於編寫更多優秀的代碼。

最後,通過使用Chainlink Keepers,開發者可以增強其協議的安全性。

開發者不再需要化發起交易時冒險暴露中心保管人的風險——鏈上網絡上的節點將簽署鏈上交易。

開始使用Chainlink Keepers

你可以通過兩個步驟用Chainlink Keepers自動化你的智能合約:

  1. 創建並部署一個與守護者互聯網的合約
  2. Chainlink Keepers應用程序上註冊該合約,以創建一個維護

在這些步驟完成後,Chainlink Keepers 將按照任務描述執行維護工作,而不需要進一步的輸入。

如果你是Solidity 的新手,我們建議在繼續之前先學習一些初級教程。本教程特別有用。我們現在將向你全面展示如何與Keeper的主題的視頻,觀看讓你更關注我們的主題。視頻教程

寫如何與Keeper 連接的合約

與Keeper 的合約有一個檢查維護函數和一個執行維護函數,並帶有Chainlink Keepers 所要求的必要輸入和輸出。為了防止錯誤,我們將在指定我們的檢查維護執行維護應該什麼時候使用Keeper 函數的接口。

導入與Keeper的接入接口

首先,將Keeper 兼容接口導入你的合同。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// KeeperCompatible.sol imports the functions from both ./KeeperBase.sol and
// ./interfaces/KeeperCompatibleInterface.sol

import "@chainlink/contracts/src/v0.8/KeeperCompatible.sol";

這個接口有兩個功能。

檢查維護函數

Chainlink Keepers 使用去化的網絡,在各個區塊中以安全和安全的方式在鏈下監控檢查維護功能,然後在治療的時間啟動條件鏈上,執行智能合約功能。

function checkUpkeep(
  bytes calldata checkData
)
  external
  returns (
    bool upkeepNeeded,
    bytes memory performData
  );

檢查維護函數需要一個名字校驗數據的字節參數,該參數在Keepers應用程序註冊維護這個值是可選的,可以在你的邏輯中使用,確定檢查維護是否返回真的

檢查維護返回一個名為需要保養的布爾值。當為真時,這將調用執行維護它還返回字節格式的執行數據(任選的附加數據),如果需要保養,Keeper 應該調用執行維護要了解更多信息,請看開發者文檔

執行維護函數

如果你的檢查維護的鏈下模擬確認預定義條件滿足(需要保養== 真檢查維護),Keeper將向區塊鏈廣播交易,發布執行數據作為輸入執行執行維護函數。

function performUpkeep(
  bytes calldata performData
) external;

流輪的節點選擇過程可以自動阻止節點之間的天然氣價格拍賣,並能穩定你的合約的成本。

展示Keepers 工作原理的動畫

下面是一個來自Chainlink Keepers 用戶的合約翻譯片段,檢查維護檢查Entropfi預測遊戲是否要有效。

/**
* @dev chainlink keeper checkUpkeep function to constantly check whether we need function call
**/
function checkUpkeep(bytes calldata checkData) external override returns (bool upkeepNeeded, bytes memory performData) {
     PoolStatus currState = status.currState;
     uint256 lastUpdateTimestamp = status.lastUpdateTimestamp;
     uint256 durationOfGame = status.durationOfGame;
     uint256 durationOfBidding = status.durationOfBidding;

     if (currState == PoolStatus.Accepting && block.timestamp > lastUpdateTimestamp.add(durationOfBidding)) {
          upkeepNeeded = true;
     } else if (currState == PoolStatus.Locked && block.timestamp > lastUpdateTimestamp.add(durationOfGame)) {
          upkeepNeeded = true;
     } else {
          upkeepNeeded = false;
     }
     performData = checkData;
}

Chainlink Keepers 將不斷調用檢查維護函數,如果需要保養為真,那麼偏差將執行執行維護函數。

/**
* @dev once checkUpKeep been triggered, keeper will call performUpKeep
**/
function performUpkeep(bytes calldata performData) external override {
     PoolStatus currState = status.currState;
     uint256 lastUpdateTimestamp = status.lastUpdateTimestamp;
     uint256 durationOfGame = status.durationOfGame;
     uint256 durationOfBidding = status.durationOfBidding;

     if (currState == PoolStatus.Accepting && block.timestamp > lastUpdateTimestamp.add(durationOfBidding)) {
          startGame();
     }
     if (currState == PoolStatus.Locked && block.timestamp > lastUpdateTimestamp.add(durationOfGame)) {
          endGame();
     }
     performData;
}

從一些示例代碼開始

你是創建一個新的合同,或者已經部署了一個包含需要自動化的函數的合同,在Chainlink Keepers 開發者文檔中,有一些指南可以幫助你開始。

從這裡的示例合約下面的例子是一個簡單的期貨合約。

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;

// KeeperCompatible.sol imports the functions from both ./KeeperBase.sol and
// ./interfaces/KeeperCompatibleInterface.sol
import "@chainlink/contracts/src/v0.7/KeeperCompatible.sol";

contract Counter is KeeperCompatibleInterface {
    /**
    * Public counter variable
    */
    uint public counter;

    /**
    * Use an interval in seconds and a timestamp to slow execution of Upkeep
    */
    uint public immutable interval;
    uint public lastTimeStamp;

    constructor(uint updateInterval) {
      interval = updateInterval;
      lastTimeStamp = block.timestamp;

      counter = 0;
    }

    function checkUpkeep(bytes calldata /* checkData */) external override 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 override {
        //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
    }
}

顯示潛在Keepers 觸發器的圖表

Chainlink Keepers 可以監控任何上或鏈下條件的狀態,如過去的流鏈接(如是否過去24 小時或過去的流量計算)(如是否被計算為通常時間不足?)鏈條件滿足,Chainlink Keepers會在鏈上提交交易,以觸發該函數的執行。

你也可以使用Chainlink Keepers 的實用合約,比如EthBalanceMonitor 合約或者這些例子

如何將你的合同註冊為網絡上的維護

完成與Keeper的連接後,就可以在Chainlink Keepers應用程序點擊“註冊新的維護”。

註冊新的維護

關於如何註冊的詳細步驟指南,請參閱Chainlink 開發者文檔

重要提示(對於非以太坊鏈):你的LINK(而不是ERC-677 標準的LINK(而不是ERC-20,這在很多上是通用的)進行充值。可以使用PegSwa 來將你的LINK 轉換為與ERC-67p 升級的版本。

註冊和批准後,您可以添加額外的資金,並在Chainlink Keepers 應用程序上查看您的維護的所有細節。

說明如何註冊定時維護的屏幕截圖

Keepers 儀表板的圖像

今天就開始用起來吧

現在你知道Chainlink Keepers 自動化你的智能合約是多麼容易使用,你可以開始集成器並解鎖大量的用例,如DEX限價單、跨鏈NFT構造、重新調整和重新平衡通證等。

訪問開發者文檔或加入不和諧了解更多內容。要討論集成問題,請點擊在這裡聯繫專家。

要了解更多信息,請訪問鏈環, 訂閱Chainlink 通訊,並在推特, YouTube紅迪網上關注Chainlink。

帖子 如何使用Chainlink Keepers 實現智能合約執行的自動化 首先出現在 Chainlink 博客.



Source Link

最受歡迎

繼續閱讀

長期持有者持有的比特幣(BTC)供應量達到最高水平

根據Glassnode 的估計,比特幣的長期持有者(LTH)目前擁有1452 萬枚BTC,創歷史新高,只剩下25% 留給短期持...

抓住Web3 遊戲的先發優勢:成功策略

Web3和區塊鏈技術的出現徹底改變了遊戲行業,為開發者和企業家提供了前所未有的機遇。 Web3 遊戲的去中心化性質為創新遊戲貨幣化模式、玩家所有權和社區參與打...

現在讀

$COOKIE, the Cookie3 Mark...

Tallinn, Estonia, March 26th, 2024...

長期持有者持有的比特幣(BTC)供應量達到最高水平...

根據Glassnode 的估計,比特幣的長期持有者(LTH)目前擁有1452 萬枚BTC,創歷史新高,只剩下25% 留給短期持有者和投機者。 儘管BTC 的價格在過去一個月中保持相對平穩,範圍在約29,000 美元至31,000 美元之間,但人們還是開始瘋狂囤積。 ...

Caldera 宣布與Espresso Syste...

Caldera 開發人員可以利用Espresso Sequence...

抓住Web3 遊戲的先發優勢:成功策略

Web3和區塊鏈技術的出現徹底改變了遊戲行業,為開發者和企業家提供了前所未有的機遇。 Web3 遊戲的去中心化性質為創新遊戲貨幣化模式、玩家所有權和社區參與打開了大門。對於那些尋求利用Web3 遊戲巨大潛力的人來說,確保先發優勢至關重要。 了解Web3 遊戲生態系統在深入研究Web3 遊戲之前,有...

Taapsee Pannu 推出NFT 平台,介紹...

企業家貢獻者表達的意見是他們自己的。 您正在閱讀《企業家印度》,這是企業家媒體的國際特許經營刊物。 女演員Taapsee Pannu 最近推出了“taapseeclub.com”,這是她自己的非同質代...

比特幣(BTC) 地址休眠超過11 年,轉移310...

經過11 年多的閒置之後,一個包含3100 萬美元BTC 的休眠比特幣地址最近突然活躍起來。 2023年7月22日,地址 轉入 將其全部餘額轉移到新地址。 早期BTC 地址復活 比特幣自2009 年以來就已經存在,因此存在多年來不活躍的休眠地址,其中包含大量BTC。這種加密貨幣的一些早期採用者能夠...

加密貨幣死了嗎?當今加密貨幣的現狀

您之前可能聽說過加密貨幣正在消亡(或比特幣已消亡)。在這篇文章中,我們將研究加密貨幣的狀態,並嘗試回答這個問題:加密貨幣現在已經死了嗎? 在我們開始之前,我們想澄清一下,本文指的是最廣泛意義上的“加密貨幣行業”; 在裡面 網絡3 感覺。該定義包括加密資產市場; 但它還包括其他非財務用例。 隨著近來加...

Chancer 可能成為體育和社交博彩領域的下一個...

加密貨幣 隨著企業財報季節的繼續,本週股市表現好壞參半。在Ne...

以太坊(ETH) 創下兩個月來CEX 流入最高紀錄...

過去一周,以太坊(ETH)流入中心化交易所(CEX)的資金量創下了過去兩個月來的最高水平。這些重大的資產變動表明ETH 的價格可能會下跌。 CoinGecko 數據顯示,第二大加密貨幣的價格一直在小幅下跌,過去一周價值下跌了2.5%。截至撰寫本文時,以太幣易手價格為1,892.65 美元,過去24...

新的DeFi 法案有“不可行的義務”

加密貨幣創新委員會表示,新的反洗錢法案沒有為DeFi 中的非法金融...

幣安大幅削減成本,瑞波幣為美國銀行和加密貨幣風險投...

美國證券交易委員會(SEC)對加密貨幣公司的打擊似乎嚴重影響了幣安的業務。據報導,在過去幾週內,該加密貨幣交易所解雇了1,000 多名員工,並削減了一些福利。 幣安表示,“當前的市場環境和監管環境”導致利潤下降,這表明可能正在進行更多削減。一位發言人告訴Cointelegraph,該公司將考慮縮減“...

Automata 雙週更新:第48 期| 通過自動...

迎接新的季度意味著設定我們的意圖並為團隊規劃下一步的行動。幕後醞釀的一切——合作、產品功能和營銷發布——很難抑制我們的興奮。我們一開始就在1RPC(2 個備受期待的第2 層主網)上添加了對Linea 和Base 的支持。科技載體更新頁腳以顯示界面版本平滑的用戶體驗 USDC CCTP 支持 關於仲裁...