動態不可替代代幣(dNFT) 是NFT 空間發展的下一階段,結合了可驗證的獨特性質 具有動態數據輸入和鏈下計算的NFT. 神諭 是將動態元素引入NFT 的基礎,為它們提供輸入,例如可證明的公平、防篡改隨機性和來自現實世界的各種數據。
在本技術教程中,您將學習如何基於Polygon 上的Chainlink oracles 提供的實時天氣數據構建dNFT。
什麼是多邊形?
多邊形 (前身為Matic Network)是一個用於構建與以太坊兼容的區塊鏈的擴展框架。 Polygon 不是只提供一兩個擴展解決方案,而是創建一個生態系統,連接多個不同的擴展解決方案,包括具有不同共識機制的側鍊和第二層選項,如Plasma、Optimistic Rollups 和ZK-Rollups。 Polygon 的框架還允許新項目快速輕鬆地構建自己獨特的縮放解決方案。 Polygon 憑藉其以太坊虛擬機(EVM) 兼容性、可選的共享安全模型和其先進的靈活性,將自己與其他區塊鏈擴展和互操作性項目區分開來。
用多邊形構建
流行的基於NFT 的遊戲項目,如Aavegotchi 和Polychain Monsters 已經使用Polygon 的擴展技術啟動,兩者都集成了 Chainlink 可驗證隨機函數(VRF) 為他們的用戶創造更動態的體驗。然而,可驗證的隨機性並不是開發人員可以用來在Polygon 上構建dApp 的唯一輸入。通過利用Polygon 上的Chainlink 提供的天氣溫度信息,開發人員可以創建動態NFT,這些NFT 會根據安全預言機提供的鏈下數據而發生變化。
為什麼動態NFT 很重要?
不可替代的代幣(NFT) 通常用於表示藝術等獨特資產的所有權,但它們也可用於表示動態資產,例如體育比賽期間球員的統計數據。可以使用數據創建加密安全、分散和防欺詐的交易卡,並在數據發生變化時實時更新——例如,當一個新的得分或成功的助攻被記錄時。這為NFT 收集者創造了新的新水平,並在基於NFT 的遊戲應用程序中解鎖了新的實用程序。
由預言機提供支持的動態NFT 在遊戲dApp Aavegotchi 中發揮著關鍵作用,它集成了Chainlink VRF 為其提供可證明的隨機性來源。 Chainlink VRF 有助於確保公平確定Aavegotchi dNFT 的獨特特徵,並為不可預測的遊戲場景以及隨機DAO 陪審員選擇提供支持。 Aavegotchi 在Polygon 的第2 層PoS 鏈上推出,由於接近零的交易費用和快速的結算時間,使遊戲能夠以具有成本效益的方式擴展以滿足用戶需求。閱讀全文 Aavegotchi Chainlink 案例研究 了解流行的遊戲dApp 如何在Polygon 上開創動態NFT。
Chainlink 通過提供抗操縱的低成本鏈下服務,在支持Polygon 等擴展解決方案方面發揮著至關重要的作用。使用Chainlink,開發人員可以訪問天氣數據,例如,構建真實世界數據的dNFT 表示,例如某些地理位置的當前溫度。
像這樣的dNFT 的一個用例是支持 基於區塊鏈的保險. 保險單可以變成dNFT,允許根據Chainlink 預言機從外部世界獲取的天氣數據定制農作物保險單。由於它們允許跨地域的實時覆蓋並提高支付效率,因此dNFT 是傳統保險形式的強大替代方案,傳統形式的保險通常會受到手動處理延遲和主觀評估的影響。
FarmerNet NFT, Chainlink Virtual Hackathon Spring 2021 的GeoDB Geolocation Oracle 和政府技術獎的獲得者,使用Chainlink 為農民創建了一個區塊鏈市場,以通過碳信用賺取收入。像這樣的項目可以讓買家獲得不可改變的證據,以證明他們通過dNFT 減少碳排放和使用可再生能源。這只是預言機在創建下一代NFT 中提供的眾多好處的一個例子。
如何部署動態天氣NFT
由於Polygon 與EVM 兼容,因此我們可以使用Solidity 環境中的工具,例如Truffle、Hardhat、MetaMask 等。在本教程中,我們將使用Truffle,這是一個允許我們使用Polygon 的智能合約開發框架。
設置環境變量
首先,我們需要設置環境變量,因此我們需要一個PRIVATE_KEY 和一個MATIC_RPC_URL 環境變量。您的PRIVATE_KEY 是您錢包的種子短語,您可以從節點提供商服務中找到MATIC_RPC_URL,例如 英富拉. 您的錢包中還需要一些testnet MATIC (mumbai) 代幣,您可以從 孟買水龍頭.
然後,將它們設置在bash_profile 文件中或將它們導出到您的終端中:
export MNEMONIC='cat dog frog....' export RINKEBY_RPC_URL='www.infura.io/asdfadsfafdadf'
然後你可以通過執行以下命令開始使用repo,這將在Polygon 鏈上部署動態NFT:
yarn global add truffle git clone https://github.com/kwsantiago/weather-nft cd weather-nft yarn truffle migrate --network mumbai
我們剛剛部署在鏈上的dNFT 將根據在getWeather() 函數中調用的天氣數據進行更新。 WeatherFeed.sol 文件,它獲取馬薩諸塞州波士頓的當前溫度。
function getWeather() public onlyOwner returns (bytes32 requestId) { Chainlink.Request memory req = buildChainlinkRequest(jobid, address(this), this.fulfill.selector); req.add("city", "boston"); req.add("copyPath", "weather.0.main"); requestId = sendChainlinkRequestTo(oracle, req, fee); }
恭喜,您已經部署了您的第一個dNFT,並且可以在天氣變化時看到它的運行情況!
在Etherscan 上查看您的dNFT
您可以免費獲得Etherscan API 密鑰,並在鏈上與您的dNFT 進行交互。然後,您可以將ETHERSCAN_API_KEY 設置為環境變量。
我們可以通過執行以下操作來驗證這一點:
yarn add truffle-plugin-verify truffle run verify WeatherNFT --network mumbai --license MIT truffle run verify WeatherFeed --network mumbai --license MIT
這將驗證並發布您的合同,您可以轉到它提供給您的Etherscan 的“閱讀合同”部分。
否則,您可以使用 oneclickdapp 只需添加合約地址和ABI。您可以在`build/contracts` 文件夾中找到ABI。請記住,ABI 不是整個文件,只是顯示“ABI”的部分。
立即開始構建動態NFT
當您將Polygon 等快速且具有成本效益的平台與強大的去中心化預言機網絡(DON) 結合起來時,創建dNFT 就很容易了,這些平台擴展了智能合約的可能性。 Polygon dApps 還可以將Chainlink 用於廣泛的其他用例,例如使用 多邊形上的隨機數 構建可證明公平的區塊鏈遊戲 或參考去中心化 Polygon 上的價格信息 為下一個革命者提供動力 去中心化金融 協議。在構建安全、功能豐富的dApp 時,Chainlink 久經考驗的預言機基礎設施為開發人員開啟了無數可能性。
通過閱讀文檔,探索更多使用Chainlink 構建的方法 docs.chain.link. 討論整合, 聯繫專家.