【区块链 | dNFT | Polygon】基于Polygon上的Chainlink的动态NFT开发教程【含源码】

目录

1、Polygon简介

2、为什么动态 NFT 很重要?

3、示例:动态天气 NFT

4、在 Etherscan 上查看dNFT

5、结束语


动态NFT (dNFT) 是 NFT 发展的下一个阶段,它将 NFT 可验证的独特性与动态数据输入和 链下计算相结合。预言机是将动态元素引入 NFT 的基础,为它们提供输入,例如可证明公平、 防篡改的随机性和来自现实世界的各种数据。

在本教程中,我们将学习如何基于 Polygon 上的 Chainlink 预言机提供的实时天气数据构建 dNFT。

1、Polygon简介

Polygon(以前称为 Matic Network)是用于构建与以太坊兼容的区块链的扩展框架。Polygon 不是只提供 一两个扩展解决方案,而是创建一个生态系统,连接多个不同的扩展解决方案,包括具有不同共识机制的侧链 和第二层选项,如 Plasma、Optimistic Rollups 和 ZK-Rollups。Polygon 的框架还允许新项目快速轻松地 构建自己独特的扩展解决方案。Polygon 凭借其以太坊虚拟机 (EVM) 兼容性、可选的共享安全模型及其先进 的灵活性,将自己与其他区块链扩展和互操作性项目区分开来。

流行的基于 NFT 的游戏项目,如 Aavegotchi 和 Polychain Monsters 已经使用 Polygon 的可伸缩技术启动, 两者都集成了 Chainlink 可验证随机函数 (VRF),为用户创造更加动态的体验。然而,可验证的随机性并不是 开发人员可以用来在 Polygon 上构建 dApp 的唯一输入。通过利用 Chainlink on Polygon 提供的天气源, 开发人员可以创建动态 NFT,这些 NFT 根据安全预言机提供的链下数据而变化。

2、为什么动态 NFT 很重要?

NFT通常用于表示艺术品等独特资产的所有权,但它们也可用于表示动态资产,例如运动员在体育比赛中的统计 数据。可以使用数据创建加密安全、去中心化和防欺诈的交易卡,并在数据发生变化时实时更新——例如,当获得 新分数或记录成功助攻时。这为 NFT 收藏家创造了新的新水平,并在基于 NFT 的游戏应用程序中解锁了新的 实用程序。

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

Chainlink 通过提供抗操纵的低成本链下服务,在支持 Polygon 等扩展解决方案方面发挥着至关重要的作用。 借助 Chainlink,开发人员可以访问天气数据,例如,构建现实世界数据的 dNFT 表示,例如某些地理位置的 当前温度。

像这样的 dNFT 的一个用例是支持基于区块链的保险。保险单可以转换为 dNFT,允许根据 Chainlink 预言机 从外部世界获取的天气数据定制农作物保险单。由于它们允许在广阔的地域进行实时覆盖并提高支付效率,因此 dNFT 是传统保险形式的强大替代品,传统形式的保险通常会受到人工处理延迟和主观评估的影响。

FarmerNet NFTs是 GeoDB Geolocation Oracle 和 Chainlink Virtual Hackathon Spring 2021 政府技术奖 的获得者,他们使用 Chainlink 为农民创建了一个区块链市场,以通过碳信用赚取收入。像这样的项目可以让 买家获得不可变的证据,证明他们通过 dNFT 声称减少碳和使用可再生能源。这只是预言机在创建下一代 NFT 过程中提供的众多好处的一个例子。

3、示例:动态天气 NFT

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

首先,我们需要设置环境变量,所以我们需要一个 PRIVATE_KEY 和一个 MATIC_RPC_URL 环境变量。 PRIVATE_KEY 是钱包的助记词,你可以从 Infura 等节点提供商服务中找到MATIC_RPC_URL。你的钱包中还需要 一些Mumbai测试网 的MATIC代币,可以从Mumbai Faucet获得这些代币。

然后,将它们设置在 bash_profile 文件中或在终端导出:

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

接下来执行以下命令开始使用 repo,这将在 Polygon 链上部署动态 NFT:

1
2
3
4
5
6
7
8
9
yarn global add truffle

git clone https://github.com/kwsantiago/weather-nft

cd weather-nft

yarn

truffle migrate --network  mumbai

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

1
2
3
4
5
6
7
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,并且可以随着天气的变化看到它的运行情况!

4、在 Etherscan 上查看dNFT

可以免费获得 Etherscan API 密钥并与链上 dNFT 进行交互。然后,可以将 ETHERSCAN_API_KEY 设置为 环境变量。

我们可以通过执行以下操作来验证这一点:

1
2
3
4
5
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”的部分。

5、结束语

本教程源码可以从这里https://github.com/kwsantiago/weather-nft下载。

将 Polygon 等快速且具有成本效益的平台与强大的去中心化预言机网络 (DON) 相结合时,创建 dNFT 将变得很容易,从而扩展了智能合约的可能性。Polygon dApp 还可以将 Chainlink 用于广泛的其他用例, 例如在 Polygon 上使用随机数来构建可证明公平的区块链游戏,或者在 Polygon 上引用去中心化的价格 信息来支持下一个革命性的DeFi协议。

猜你喜欢

转载自blog.csdn.net/qq_28505809/article/details/124661677
今日推荐