NFT核心课程——深入解析区块链智能合约的运作机制:揭秘如何利用IPFS打造NFT并部署智能合约(实战教程)
声明:本文旨在提供丰富的市场资讯,不提供任何投资指导。文章内容仅代表作者个人观点,不代表火星财经官方立场。
声明:本文旨在提供丰富的市场资讯,不提供任何投资指导。文章内容仅代表作者个人观点,不代表火星财经官方立场。
编辑提示:敬请关注
来源:DeFi白泽研究院
长期以来,数字艺术并未被广泛认可为“纯正”的艺术形式。传统艺术如绘画、雕塑和装置艺术被看作是真正的艺术,而数字艺术则常被视为次级艺术。然而,数字艺术家同样投入大量时间和精力创作和提升技能,与许多传统艺术家并无二致。
长期以来,数字艺术及其创作者的作品并未得到应有的回报。数字艺术家更像是自由的职业者,从一场表演到下一场表演,总是难以从其数字艺术作品中获得更多收益。
这主要是因为数字艺术的独特性难以保证。一旦数字艺术被创作出来,就很容易在互联网上被复制无数次,且难以追踪这些副本,区分原始作品。
在传统绘画领域,尽管萨尔瓦多·达利的《记忆的永恒》有无数的照片,但原始的实物画作却是属于某人的(例如,位于纽约现代艺术博物馆)。尽管我可以多次复制或粘贴这幅画,但原始画作始终具有价值,因为很容易证明其所有权。原件被物理地保存在博物馆中。
那么,我们如何让数字艺术变得独一无二呢?答案就在今天的主角——NFT。
NFT是一种独一无二的代币,每个代币都是独特且不可替代的。它们通常遵循以太坊ERC-721标准,这一标准于2018年1月在以太坊网络上引入,并对整个行业产生了深远的影响。
(展开全文)
如果您想了解如何创建和铸造数字NFT,让我们开始吧!
利用IPFS铸造和存储NFT资产
我们将NFT的创建过程分为两个部分。首先,涉及NFT铸造和存储的区块链。区块链通过在全球数千台计算机/节点上复制数据,确保NFT的元数据是不可变和安全的。然而,区块链无法处理大量数据的存储,因为这会涉及在数千个节点之间复制数据,成本极高。这就是第二部分:存储NFT数据。
在以太坊区块链上存储图像可能会耗费数万美元。因此,大多数NFT数据需要存储在链外,并且需要保护这些数据。
我们可以通过IPFS——星际文件系统,一种用于共享和存储文件的点对点协议来解决这个问题。IPFS使用内容寻址来唯一标识全局命名空间中的每个文件,这对于将NFT的元数据链接到资产或艺术品的存储位置至关重要。与Dropbox或Google Drive等集中式服务相比,IPFS具有更高的数据持久性。
创建NFT时,我们需要使用引用资产的URL链接。此URL将包含在NFT的元数据中。正如您所知,NFT数据是不可变的,它将永远存在于区块链中,因此为与NFT相关的资产或图像找到一个合适的存储位置至关重要。
Pinata是知名的IPFS服务之一:pinata.cloud
IPFS使用称为CID的内容标识符,它将内容作为哈希引用。这些CID是URL的一部分,如果内容没有改变,URL也不会改变。某个CID和相应URL后面的图像将始终是相同的图像,这使我们能够对链下存储的NFT数据具有一定程度的不变性。
在“逐步铸造”部分中,我们将看到如何使用Pinata创建IPFS CID/URL并将其与我们将要铸造的NFT相关联。
铸造NFT
步骤0 — 资产所有权
在创建NFT之前,您需要确保您是该代币化资产/艺术品的创作者或所有者。您必须有办法证明您的所有权或创作身份。
步骤1 — 准备资产
确保您拥有该图像的文件。您可以简单地标记JPEG/PNG文件,但最好也有源文件或高质量的文件。如果您处理的是数字艺术,TIFF、AI/EPS文件也可以在销售过程中共享。
步骤2 — 选择市场并进行身份验证
现在我们需要铸造NFT代币。当您想出售代币时,可以直接在OpenSea市场上铸造,或者您可以先在Rarible上铸造,因为Rarible允许您铸造代币而无需实际出售它。由您来决定。
在这一步一步中,我假设您已经安装了Metamask浏览器插件,并且有一些ETH用于支付交易费用。
在OpenSea上,单击创建并连接您的Metamask钱包(检查钱包部分)。单击Metamask图标登录到您的钱包,然后单击连接。之后您还需要ETH在铸造过程中向网络支付交易费用,但现在您不需要支付。
步骤3 — 上传文件开始创建NFT
要创建新项目,请继续并单击创建。您必须创建一个集合,并且您的NFT可以成为集合的一部分。以后可以制作更多的收藏品——例如,2D收藏品、3D收藏品等。
创建集合后,您可以向集合中“添加新项目”。点击“添加新项目”。您将能够上传文件,并且您会发现多种可用格式:PNG、GIF、WEBP、MP4、MP3等等。您可以在此处选择并上传您的文件。
步骤4 — 创建IPFS链接
重要的是要强调,图像本身并没有存储在区块链上。存储在区块链上的只是关于图像的元数据,即文件的哈希值、名称、时间戳和指向文件存储位置的链接。区块链不适合存储大文件,文件总是需要存储在其他地方。对于OpenSea,他们将负责存储图像。
如果您希望买家收到高分辨率文件或源文件,您也可以将此文件存储在存储服务(IPFS、Google Drive、S3或Dropbox)中,并在“可解锁内容”字段中共享文件链接。购买完成后,此文件将与买家共享。
为了让事情更加去中心化并保持区块链精神,我们不要使用像Google Drive或Dropbox这样的集中式存储服务,而是使用IPFS——星际文件系统。IPFS不是区块链,而是一个分布式点对点文件系统(类似于BitTorrent),允许我们存储和共享文件。
使用UPFS的最简单方法是Pinata。如果您尚未注册,请转到Pinata.cloud并注册。拥有Pinata账户后,转到仪表板,然后单击上传。选择文件并上传。
文件上传后,您将找到一个CID哈希(内容标识符),类似于Qma4Jse7V6tZ7k3756iPv39tsMG6DhxUQrc42cKoAVVsbR。
这是将链接到图像的哈希值。同时复制图像的链接,返回OpenSea网站,并将其粘贴到“可解锁内容”字段中。该链接应如下所示:
https://gateway.pinata.cloud/ipfs/Qma4Jse7V6tZ7k3756iPv39tsMG6DhxUQrc42cKoAVVsbR
步骤5 — NFT属性
完成附加属性和标签。
最后点击创建。
您现在已经在OpenSea网站上创建了资产,但它尚未上市出售。
步骤6 — 出售NFT
转到您的商品页面,然后单击“出售”。
您还可以设置“设置价格”。这类似于Ebay的“立即购买”,它是您愿意立即出售您的商品的价格。价格可以用不同的加密货币列出,但最常见的是以太币(ETH,以太坊的原生货币)。
您也可以选择“最高出价”。这是拍卖选项,在此选项中,您可以选择最低出价、底价和拍卖截止日期。
最后,点击“发布您的列表”。
单击后,按照步骤铸造令牌。您的Metamask窗口将提示(如果没有,您需要单击Metamask图标)并单击符号。OpenSea不收取任何费用,但是每当您创建新的NFT时,您都会将数据写入区块链,并且您将产生gas费用(即以太坊网络的费用)。
单击“批准”后,它会提示您的Metamask钱包,以便您支付费用。在您的Metamask钱包上,您可以单击“编辑”来编辑费用并选择慢速或快速。慢意味着您将支付更少的gas费用,但交易可能需要更长的时间才能在区块链中结算(通常不到1小时)。
考虑到以太坊可能会拥堵,铸造新NFT的成本有时可能会很高,但未来可能会降低。
这样,您的NFT现已上市,人们将能够竞标或购买。
使用IPFS创建NFT的智能合约
如果您对代码非常感兴趣并想部署自己的ERC-721智能合约,那么您需要完成以下几个重要步骤:
1、获取一些测试ETH(教学将在Ropsten测试网)
2、下载IPFS
3、将您的作品上传到IPFS
4、打开Ethereum Remix并创建智能合约
5、部署智能合约
6、铸造NFT
获取ETH测试币
首先,使用Metamask(小狐狸钱包),将您的钱包网络切换到Ropsten测试网。
然后打开Ropsten水龙头网站:https://faucet.ropsten.be/,将您的钱包地址复制到水龙头并获取一些测试以太币。我们将需要它来支付智能合约的gas费用。
下载IPFS并将您的艺术作品文件上传
大多数NFT数据需要存储在链外,我们需要保护这些数据。
我们可以通过IPFS——星际文件系统,一种用于共享和存储文件的点对点协议来解决这个问题。IPFS使用内容寻址来唯一标识全局命名空间中的每个文件,这对于将NFT的元数据链接到资产或艺术品的存储位置至关重要。因此,与Dropbox或Google Drive等集中式服务相比,IPFS具有更高的数据持久性。
我们将使用IPFS来存储我们的NFT文件。前往IPFS网站并在您的台式机/笔记本电脑上安装IPFS。安装后,运行它。恭喜,您现在是一个IPFS节点!
IPFS官网:https://docs.ipfs.io/install/ipfs-desktop/#windows
单击文件并上传您的艺术品!
上传后,您将可以访问可共享的链接,将链接复制保存下来。
打开Ethereum Remix并创建智能合约
现在,我们转到Ethereum Remix IDE并创建一个新的Solidity文件,例如“erc721.sol”。我们将使用Ethereum Remix并使用0xcert/ethereum-erc721合约来创建我们的NFT智能合约。
(Ethereum Remix是一个开源Web应用程序,允许您开发、编译和部署智能合约。)
将以下脚本复制/粘贴到新创建的 .sol 文件中:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6
导入“ https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol”;
导入“ https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol”;
合约 newNFT 是 NFTokenMetadata, Ownable {
constructor {
nftName = "Synth NFT"
nftSymbol = "SYN"
}
function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
super._mint(_to, _tokenId)
super._setTokenUri(_tokenId, _uri)
}
}
然后你需要去编译它,以下图所示:
一旦智能合约编译完成,就可以部署它了!
使用Inject Web3部署智能合约并确保它已连接到您的Metamask的Ropsten测试网。
单击部署后,它会提示您的Metamask确认合约部署。
单击确认继续并部署合同。在这种情况下,我们在测试Ether中支付我们的gas费用,但如果你使用的是以太坊网络,您将不得不向矿工支付实际费用。
恭喜!您的智能合约现已部署!您甚至可以去以太坊浏览器检查您的新智能合约!
铸造NFT
现在转到Deployed Contracts部分并展开您的智能合约。
此外,扩展mint函数并添加以下详细信息:
最后,点击交易并在Metamask上确认您的交易!
好极了!!!您的NFT已经铸造成功!您现在可以使用新的智能合约铸造任意数量的NFT!
要检查您是否真的铸造了NFT,您可以在Remix上查看它,或者通过单击Metamask来检查交易,或者打开以太坊浏览器(Etherscan)查看:https://ropsten.etherscan.io/
恭喜!您已经从头开始创建了自己的NFT智能合约和NFT!您现在可以将其发送给朋友或者去以太坊主网实战,并以一百万美元的价格出售它!
标签: 区块链智能合约的工作原理