查看原文
其他

如何在Polygon上构建动态NFT

Chainlink Chainlink预言机
2024-08-23


原文链接:https://blog.chain.link/how-to-build-dynamic-nfts-on-polygon-zh/


动态NFT(dNFT)是NFT领域革命的下一个阶段,它综合了NFT的可验证独特性与动态数据输入和链下计算。预言机是将动态元素引入NFT的基础,它能为NFT提供输入,如可验证不可篡改的随机数以及各种来自真实世的数据等。


在本技术教程中,你将了解如何使用Polygon上的Chainlink预言机提供的实时天气数据构建dNFT。


Polygon是什么?


Polygon(前身是Matic Network)是一个用于构建兼容以太坊的区块链的扩容框架。Polygon不是只提供一个或两个扩容方案,而是搭建了一个连接不同的扩容方案生态系统,包括具有不同共识机制的侧链,以及Laye 2方案,如Plasma、Optimistic Rollups和ZK-Rollups。Polygon的框架也允许新项目快速、简便地构建他们自己独特的扩容方案。Polygon区别于其他区块链扩容方案和互操作性项目的地方在于它对以太坊虚拟机(EVM)的兼容性、可选的共享安全模型和先进的灵活性。


使用Polygon开发


诸如Aavegotchi和Polychain Monsters这些流行的NFT游戏项目,已经使用了Polygon的扩容技术,且二者都集成了Chainlink可验证随机数 (VRF),这为他们的用户创造了更加动态的体验。然而,可验证随机数并不是开发者能够在Polygon上开发dApp的唯一输入。利用Polygon上Chainlink提供的温度信息,开发者可以创建根据安全预言机提供的链下数据进行更改的动态NFT。


为什么动态NFT很重要?


NFT通常用于表示艺术等独特资产的所有权,但它们也可用于表示动态资产,例如体育比赛期间球员的统计数据。可以基于数据创建具有加密安全属性、去中心化和防欺诈的交易卡,当数据变化时,比如有新的得分或者助攻发生时,更新该交易卡。这为NFT收藏者提供了一种维度,解开了基于NFT的游戏应用的新的实用性。


由预言机提供支持的动态NFT在游戏Aavegotchi中发挥着关键作用,它集成了Chainlink VRF为其提供可证明的随机性来源。Chainlink VRF有助于确保公平地确定Aavegotchi dNFT的独特特征,并为不可预测的游戏场景以及随机选择DAO陪审员提供支持。Aavegotchi在Polygon的二层PoS链上推出,由于其接近于零的交易费用和快速的结算时间,使得游戏能够经济高效地扩展以满足用户需求。阅读完整的Aavegotchi Chainlink案例研究,可以了解流行的游戏dApp如何在Polygon上创建动态NFT。


Chainlink在支持诸如Polygon等扩容方案方面发挥着至关重要的作用,它提供低成本的链外服务,可以抵抗操纵。使用Chainlink,开发者可以访问天气数据,例如,建立表示真实世界数据的dNFT,如某些地理位置的当前温度。


像这样的dNFT的一个用例是支持基于区块链的保险。保险政策可以变成dNFT,允许根据Chainlink预言机从外部世界获取的天气数据,制定可定制的作物保险政策。由于它们实时覆盖了广大地区并提高了赔付效率,dNFT是对传统形式的保险的有力替代,因为传统形式的保险往往受制于人工处理延迟和主观评估。


FarmerNet NFT在2021年春季Chainlink线上黑客马拉松中荣获GeoDB地理定位预言机奖和政府技术奖,它利用Chainlink创建了一个能让农民通过碳信用来获得收益区块链市场。像这样的项目可以让买家通过dNFT获得不可更改的证明,以证明他们对碳减排和可再生能源使用的主张。这只是预言机在创建下一代NFT中提供的众多好处的一个例子。


如何部署动态天气NFT


由于Polygon与EVM兼容,我们可以使用Solidity环境中的工具,如Truffle、Hardhat、MetaMask等。在本教程中,我们将使用Truffle,这是一个智能合约开发框架,可以在Polygon中使用。


▌设置环境变量


首先,我们需要设置环境变量,所以我们需要一个MNEMONIC和一个MATIC_RPC_URL环境变量。MNEMONIC是钱包的助记词,MATIC_RPC_URL可以从节点提供者服务中找到,如Infura。你的钱包里还需要一些测试网的 MATIC (mumbai)通证,这可以从Mumbai水龙头中获得。然后,在bash_profile文件中设置它们,或者将它们导出到你的终端即可。


export MNEMONIC='cat dog frog....'export RINKEBY_RPC_URL='www.infura.io/asdfadsfafdadf'


然后,你可以通过执行以下命令开始使用该仓库,这些命令将在Polygon测试网上部署动态NFT:


yarn global add trufflegit clone https://github.com/kwsantiago/weather-nftcd weather-nftyarntruffle migrate --network mumbai


我们刚刚部署在链上的dNFT将会根据天气数据进行更新,该数据是在WeatherFeed.sol文件的getWeather()函数中调用的,它会获取马萨诸塞州波士顿的当前温度。


function getWeather() public onlyOwnerreturns (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-verifytruffle run verify WeatherNFT --network mumbai --license MITtruffle run verify WeatherFeed --network mumbai --license MIT


这将验证并公布你的合约,这样你就可以通过Etherscan直接与合约交互,在本案例中主要是访问Read Contract部分。


或者,你也可以使用oneclickdapp,只需添加合约地址和ABI。可以在`build/contracts`文件夹中找到合约的ABI。请记住,ABI不是整个文件,而只是写着 “ABI “的部分。


现在就开始建立动态NFT吧


当把Polygon这样快速且具有成本效益的平台与强大的扩展了智能合约的可能性的去中心化预言机网络(DONs)结合起来时,创建dNFT是很容易的。Polygon dApp还可以将Chainlink广泛用于其他用例,例如在Polygon上使用随机数来构建可证明公平的区块链游戏,或者在Polygon上使用去中心化的Price Feed,为下一个革命性的DeFi协议提供支持。当涉及到构建安全、功能丰富的dApp时,Chainlink成熟的预言机基础设施为开发者开启了无数的可能性。


阅读docs.chain.link上的文档,可以探索更多使用Chainlink的方法。如果要讨论集成问题,可与专家联系。


Chainlink 2.0白皮书中文版已于日前发布,想要了解更多关于Chainlink 2.0的内容细节,请扫描下方二维码▼


END


▲获取Chainlink官方最新资讯

加入 Chainlink官方社区▼


Chainlink 官方渠道
QQ群: 6135525 

微博:  https://weibo.com/chainlinkofficial
知乎:https://www.zhihu.com/people/chainlink
SegmentFault:https://segmentfault.com/u/chainlink
币乎:  https://bihu.com/people/1869894547
GitHub:  https://github.com/smartcontractkit/chainlink
Discord:   https://discord.gg/aSK4zew
Twitter:  https://twitter.com/chainlink
中文 Twitter: https://twitter.com/ChainlinkChina
Telegram:  https://t.me/chainlinkofficial
合作联系:  china@smartcontract.com

点击“阅读原文” 进入 Chainlink中文官网

继续滑动看下一个
Chainlink预言机
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存