7*24快訊了解如何在...

了解如何在Arbitrum 上使用Chainlink 價格信息

Arbitrum 是一個以太坊第2 層網絡,使開發人員能夠以低成本構建和部署高度可擴展的智能合約。借助Arbitrum 上的Chainlink 數據饋送,開發人員可以快速輕鬆地將其智能合約連接到鏈下數據,包括可用於構建大量DeFi 應用程序的超可靠資產價格。

在這篇技術文章中,我們將解釋什麼是Arbitrum,介紹如何開始使用Arbitrum Rinkeby 測試網,並逐步了解如何在Arbitrum 智能合約中使用Chainlink 價格饋送。雖然在本文中,我們將在測試網環境中構建和部署,但Arbitrum One 主網的步驟是相同的​​。

什麼是仲裁?

仲裁是一個 樂觀匯總 以太坊第2 層解決方案。一些擴展解決方案如雨後春筍般湧現,以在以太坊區塊鏈上提供更高的速度和更低的成本,包括第2 層匯總、狀態(和支付)通道、側鏈、Plasma 和Validium。這些解決方案之間最重要的區別是匯總和狀態通道繼承了第1 層以太坊區塊鏈的安全性,使開發人員能夠基本上構建在基礎以太坊層之上。

Layer-2 rollups 由Optimistic rollups 和ZK-rollups 組成。兩者都是“真正的第2 層解決方案”,這意味著它們能夠以高速和低成本執行大量事務,然後在第1 層驗證這組事務。通過Optimistic rollups,我們“樂觀地相信”這些交易確實發生在第2 層。這些匯總是“樂觀的”,因為欺詐證明認為捆綁包“在被證明有罪之前是無辜的” 並且樂觀地假設在發佈到第1 層時是正確的,除非在7 天的挑戰期內提交了挑戰。

開始使用仲裁

在本教程中,我們將在Arbitrum Rinkeby 測試網(Rinkeby 測試網的第2 層)上構建和部署智能合約。相同的步驟適用於Arbitrum One,它是以太坊主網的第2 層。要使用Arbitrum Rinkeby 測試網,我們需要一些Rinkeby 測試ETH。您可以通過以下方式獲得您的Rinkeby 測試鏈接 鏈環水龍頭——只需粘貼你的錢包地址,選擇Rinkeby Ethereum,然後領取你的測試ETH。

然後,我們需要從Rinkeby 存入測試ETH,以便在Arbitrum Rinkeby 測試網上支付費用。導航到 仲裁橋,連接你的錢包,輸入你需要的Rinkeby ETH數量,然後點擊“存款”。大約需要10 分鐘才能看到您的餘額記入第2 層——喝咖啡休息時間。

收到第2 層ETH 後,將您的Metamask 錢包配置到Arbitrum Rinkeby 測試網。要么導航到 鍊錶 並找到Arbitrum Rinkeby Network 的詳細信息或導航至 Etherscan 瀏覽器 並在網站頁腳中找到Add Arbitrum Network 或選擇Settings -> Networks -> Add Network in Metamask,然後手動輸入詳細信息。

網絡名稱:Arbitrum Rinkeby 測試網

網絡網址:https://rinkeby.arbitrum.io/rpc

鏈號:421611

貨幣符號:ETH

區塊瀏覽器URL:https://testnet.arbiscan.io/

最後,返回 鏈環水龍頭,選擇Arbitrum Rinkeby,並要求10 測試LINK 代幣.

準確可靠的價格數據在智能合約中的重要性

為了擴展第2 層智能合約的可能性,開發人員需要與鏈下資源建立安全連接。借助來自Chainlink 預言機的高度準確和可靠的價格數據,開發人員可以開始在Arbitrum 上構建和測試各種可擴展的DeFi 應用程序,這些應用程序依賴於ETH 和其他代幣的價格,例如借貸協議、去中心化交易所、預測市場等.

雖然這些DeFi 用例需要外部數據,但區塊鍊和第2 層解決方案無法本地訪問自身外部的數據。當向區塊鏈提供數據以促進高級DeFi 用例時,必須保證數據的安全性和高質量,以防止價格預言機攻擊。

Chainlink Price Feeds 通過提供來自各種高質量數據提供商的聚合數據,並由去中心化的預言機通過Chainlink 網絡在鏈上提供數據,從而降低了這些攻擊的風險。 Chainlink 的去中心化預言機機制確保最終價格值反映廣泛的市場覆蓋範圍,這意味著最終價格是在匯總整個市場的一組不同價格後確定的,而不僅僅是一小部分,還考慮了交易量和流動性等其他方面. 借助Chainlink 價格饋送,開發人員能夠構建不會影響安全性的高級DeFi 應用程序。

現在我們了解了Solidity 智能合約中準確可靠的價格數據的需求以及Chainlink 價格預言機所扮演的重要角色,我們將通過一個使用Chainlink Price Feed 獲取Solidity 智能中ETH 最新價格的示例Arbitrum 上的合同。

在Arbitrum 上使用Chainlink 價格信息

首先在您喜歡的代碼編輯器中創建一個新的Solidity 項目。使用帶有Typescript 的Hardhat 的完整示例可在 Github. 我們將使用最新版本的Solidity 和Chainlink。

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

現在我們將編寫一個函數來從Chainlink 網絡中檢索價格數據。導航到 數據饋送部分 官方Chainlink 文檔。我們將以“getPrice”函數為例並稍作修改。

    function getThePrice(address _priceFeedAddress) public view returns (int) {
        AggregatorV3Interface priceFeed = AggregatorV3Interface(_priceFeedAddress);

        (
            uint80 roundID, 
            int price,
            uint startedAt,
            uint updatedAt,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();

        return price;
    }

您可以看到我們將“priceFeedAddress”作為參數傳遞,以使該智能合約更具可擴展性。您可以在Arbitrum Rinkeby 測試網上查看所有可用的Price Feed 地址的完整列表 這裡.

例如,如果我們想知道BTC 的美元價格,我們可以將“0x0c9973e7a27d00e656B9f153348dA46CaD70d03d”作為“_priceFeedAddress”參數傳遞給我們的函數。

快完成了!滿足L2 排序器運行狀況標誌

Arbitrum 中的交易得到高速確認。這是因為所謂的Sequencer。 Sequencer 是一個鏈下組件,能夠對用戶交易進行排序並高速向用戶提供收據。但是,如果Sequencer 不可用,用戶必須通過Ethereum 提交他們的交易,以便在Arbitrum 中處理它們。這不利於用戶體驗,許多dApp 仍然沒有能力與以太坊和Arbitrum 並行交互。

如果您不想在應用程序中擔心這一點,您可以使用Chainlink oracle 來確保Sequencer 可供用戶使用。以下是執行此操作的步驟:

首先,我們需要在我們的Solidity 代碼中添加下一條導入語句

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

根據Chainlink 文檔,L2 Sequencer Health Flag 由三個參與者組成:

  • Chainlink 集群(一組驗證節點)——它在每個心跳“T”(Chainlink 提要配置為更新的最小頻率)執行OCR 作業。
  • 報告Sequencer 狀態的實際OCR 提要——這可用於第1 層的外部用戶檢查OR 協議(例如Arbitrum)狀態。
  • 驗證器——這由OCR 提要觸發,如果當前答案與前一個答案不同,則執行升旗或降旗動作。

現在,我們需要用下一行來擴展我們的合約

// Identifier of the Sequencer offline flag on the Flags contract 
address constant private FLAG_ARBITRUM_SEQ_OFFLINE = address(bytes20(bytes32(uint256(keccak256("chainlink.flags.arbitrum-seq-offline")) - 1)));
FlagsInterface internal chainlinkFlags;

constructor() {
    chainlinkFlags = FlagsInterface(0x491B1dDA0A8fa069bbC1125133A975BF4e85a91b);
}

“0x491B1dDA0A8fa069bbC1125133A975BF4e85a91b”是Arbitrum Rinkeby Flags 合約的地址。要查看其他地址,請前往 Chainlink 文檔.

升起的標誌表示提要未在“T”時間更新,其數據可被視為陳舊。換句話說,Sequencer 下線了,你的合約不應該執行任何關鍵操作。當Sequencer 再次恢復並更新第2 層Chainlink 數據饋送時,您可以像往常一樣繼續使用您的合約。讓我們添加額外的檢查。

    function getThePrice(address _priceFeedAddress) public view returns (int) {
        bool isRaised = chainlinkFlags.getFlag(FLAG_ARBITRUM_SEQ_OFFLINE);
        if (isRaised) {
            // If flag is raised we shouldn't perform any critical operations
            revert("Chainlink feeds are not being updated");
        }

        AggregatorV3Interface priceFeed = AggregatorV3Interface(_priceFeedAddress);
        (
            uint80 roundID, 
            int price,
            uint startedAt,
            uint updatedAt,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        return price;
    }

部署和測試智能合約

現在我們準備好部署和測試我們的合約了。編譯合約在 混音,然後,在部署選項卡上,將環境更改為“Injected Web3”。確保錢包連接到Arbitrum Rinkeby 測試網,並且下面的錢包地址是包含之前獲得的ETH 的MetaMask 錢包。然後,按下部署按鈕並按照步驟操作。

最終結果是成功的交易和智能合約部署到Arbitrum Rinkeby 測試網。

為了測試它,我們只需要調用我們的“getThePrice”函數並將Arbitrum Rinkeby 測試網上的Chainlink 價格饋送地址之一作為“_priceFeedAddress”參數傳遞。請記住,您可以在 Chainlink 文檔.

概括

Chainlink 流行的ETH/USD 價格饋送以及LINK/USD、AAVE/USD 和BTC/USD 的價格饋送均在Arbitrum 上提供。這些Chainlink 價格饋送建立在分散的預言機基礎設施之上,該基礎設施由眾多經過安全審查的節點運營商和優質數據源組成,從而產生高度準確、可用和防篡改的數據饋送,這些數據饋送本質上可以抵禦閃貸引發的價格操縱等漏洞攻擊。

本技術教程展示了在Arbitrum 上編寫和部署混合智能合約是多麼容易。有了這些知識,您將能夠開始構建自己的智能合約,利用Arbitrum 的低成本和高速度以及由Chainlink Price Feeds 解鎖的高級實用程序。

通過訪問了解有關Chainlink 的更多信息 鏈環 或閱讀文檔 docs.chain.link. 要討論集成,請聯繫專家。

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 支持 關於仲裁...