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图标登录到您的Metamask钱包,然后单击连接。之后您还需要Ether在铸造过程中向网络支付交易费用,但现在您不需要支付。
第 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
import “https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol”;
import “https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol”;
contract newNFT is 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 !您现在可以将其发送给朋友或者去以太坊主网实战,并以一百万美元的价格出售它!
标签: 从0到1建立自己的区块链