【端午企划】发行NFT 必备的六项知识| 智能合约开发计划#5
端午节NFT 开放预约!
2022很快地来到了Q2,在一月份时我曾经撰写了如何发行ERC-20 的代币,最后也实际在Polygon 主网路上发行了自己的「科技币(IT Coin, ITC)」并空投给读者。
随着新企划的开始,科技随笔开放科技币持币者抢先填表单预约领取免费的NFT 空投,表单网址:
https://forms.gle/kEfQW7JPfbE3CGdX6
若你手上没有之前空投的科技币也没关系,如果还有剩余名额的话,下周我会再另外开放一个新表单让非持币者也能填写哦!
其他详情请看之前的文章:
【空投奖励】科技随笔读者回馈| 端午节NFT 发放预约
开发NFT 所需的六项知识
这次的NFT 开发,我会希望让读者们在实作时,尽量用最少的程式码也能够完成你的NFT 作品,而这篇文章可以当做是一个暖身,我们会大致浏览本次开发NFT 所需要用到的一些工具与小知识,如果有些地方不太清楚或是有错误的话欢迎再底下留言给我,这样也方便我在后续的文章做些调整,大概整理之后暂时先分为六大主题:
1. ERC 代币协议
2. 智能合约、Solidity 与Remix
3. 以太坊Rinkeby 测试网
4. Openzeppelin
5. IPFS 星际档案系统
6. OpenSea 与Meta data
请特别留意!由于这篇有些东西会需要连线到外部网址,所以我会特别都把网址打出来,这些网站都绝对不会要求你输入任何钱包的私钥或助记词,或是要求你要先付钱才能使用,记得在操作前都要对一下网址,免得不小心掉入诈骗或钓鱼网站中了。
1. ERC 代币协议
最早的NFT 是在以太坊上出现的,这次开发也是采用以太坊的代币协议标准,如果你还不清楚ERC 或EIP 是什么的话,可以参考之前的文章:
【区块链知识】快速了解以太坊的ERC 与EIP
接着如果能了解ERC-20、ERC-721、ERC-1155 这三个以太坊代币协议的标准,知道他们之间的差异,就会更了解一般的代币与我们常听到的NFT 有什么相同之处,它们之间的差别是什么,如果懒得找网路上的资源,也可以参考之前的文章:
【区块链知识】一文读懂什么是NFT 与代币| ERC-20 ERC-721 ERC-1155
这次我们将使用ERC-1155 协议来开发NFT ,若要问为什么不用ERC-721 或ERC-20 而是用ERC-1155 的话,就是因为我只是想要发行一张图片的代币,作为端午节礼物空投分送给读者们做纪念而已,所以本次发行的NFT 其实就单纯一种而已,如果选择用ERC-1155 来做的话,在铸造时因为可以直接对同一个ID 铸造多个一模一样的NFT,要上链的东西少了自然在手续费的消耗也会变少哦!
2. 智能合约、Solidity 与Remix
这三个东西我们在开发ERC-20 时其实都已经讲过了,如果可以的话先回去看看之前文章中提到的部分,文章连结为:
【新年企划】过年就包红包币| 智能合约开发计划#1
但这边我还是稍微写个懒人包带过去吧。
我们所编写的程式码,在开发完以后会需要放到区块链上运作,这些在区块链上运行的程式码就称为「智能合约」,就像智能自动贩卖机一般,程式码一但上线了就可以为任何人提供服务。
Solidity 是一种为了撰写智能合约而诞生的程式语言,藉由Solidity 我们可以编写出具有商业逻辑的应用程式,并在编译后能够在以太坊虚拟机(EVM) 上自动运行这些服务。对于写过程式的人而言,在学习Solidity 时虽然逻辑与其他程式语言差不多,但是要多了解一些商业的知识,不然没办法完全地看懂程式码!
如果要看Solidity 最新版本以及其他详细官方文档可以参考网址: https://docs.soliditylang.org/
Remix 是以太坊提供给开发者的线上Solidity 程式语言编辑环境,网址是: https://remix.ethereum.org/
我们所有的程式开发与部属程式码到区块链上都会透过Remix 来进行操作,这样可以舍去非常多在自己电脑上安装环境的事情,大幅降低开发智能合约的门槛,能让一些新手读者在真正去实作的时候更容易有「第一次动手写程式打造一项产品」的体验。
3. 以太坊Rinkeby 测试网
这部分一样可以先参考之前开发ERC-20 的第一篇文章中,连结会附在最下方延伸阅读。
那时我们使用的测试网是「Kovan 测试网路」,这次开发我们将换到另一个测试网路叫「Rinkeby 测试网路」,嗯…如果你要问我不同测试网路的差异,我其实也不太了解,但可以确定的是它们都可以在上面部属并执行以太坊虚拟机(EVM) 兼容的智能合约,所以我想如果你还想打算继续使用Kovan 测试网的话也可以,理论上应该是不会有什么差别才对。
在Metamask 开启所有测试网路的设定方式:右上角大头贴→ 设定→ 进阶→ Show test networks。
免费领取Rinkeby 测试网上的以太币连结: https://faucets.chain.link/rinkeby
4. Openzeppelin
对于要开发DeFi、Dapp 等智能合约功能的开发者而言,使用OpenZeppelin 的开源工具会是很好的开始。它是一个开源的智能合约函式库,就像一个工具箱一样,把我们可能会用到的功能都先开发好了,我们只要拿对工具来使用就可达到想要的功能,而且因为程式码是开放给大家使用的,表示有无数人查核过这些程式码,虽然还是不能完全保证程式码没有问题,但使用时会相对安全。
事实上Openzeppelin 是一间公司,它们的主要业务大概是提供工具让开发者更方便开发与管理智能合约以及提供智能合约程式码资安方面的审计,在官网上可以看到一些它们参与过很有名的专案开发或协助审计,例如Brave 浏览器、Compound 借贷平台,官方网站网址是: https://openzeppelin.com/
这次我们会用到Openzeepelin 的函式库来开发NFT,将需要撰写的程式码降到最少,能稍微让没写过程式的人有一种在做程式开发的感觉,应该会蛮有趣的!它们也有撰写文件让开发者更容易使用开发智能合约,文档网址是: https://docs.openzeppelin.com/contracts/
5. IPFS 星际档案系统
IPFS 星际档案系统是一种分散式档案储存系统,跟使用云端服务差不多的地方就是你并不知道自己的档案被存到哪里去了,但与云端服务的差别是云端服务通常都需要有超大型的资料中心来保管资料,所以可以看成是中心化的储存,而IPFS 是去中心化的储存,你的资料会储存在非常多不同的节点,好处是资料不容易丢失,但坏处是对于不常使用的资料读取所需的时间可能会比较久。
这跟我们要开发NFT 有什么关系吗?
如果你有在档案总管看过图片的大小,应该就知道一张图片随便就好几MB,资料空间会是文字的数千数万倍以上,若我们要将图片传到区块链上要付出非常庞大的手续费才能做到,是非常不切实际的动作,现在主流的NFT 专案几乎都是先将图片存到云端再将网址复制出来放到区块链上,但要是存在个人网站或一些中心化的地方,很有可能因为服务停止或遭到攻击导致资料无法读取,那我们就不能保证未来五年十年这个NFT 网址所对应到的图片会不会消失,如果是使用IPFS 来存放图片,由于资料存放时会产生独一无二的哈希值,并分散存放在矿工的硬碟中,相较于中心化或私人化的储存,存放于IPFS 的储存方式会更不用担心图片丢失。
6. OpenSea 与Metadata
OpenSea 是目前全世界最大的NFT 二手交易市场,如果要让自己铸造出来的NFT 可以在OpenSea 上面显示一些自己想要的内容,可以去参考官方所撰写Metadata 规格书,透过这种方式去看看我们的NFT 需要哪些功能,就可以知道要附什么资讯在里面,介绍Metadata 的同时也会顺便介绍什么是json 格式,如果有兴趣的话可以先去查资料尝试了解看看,之后的文章都会提到哦!
这里附上OpenSea 关于Metadata 的官方文档网址:https://docs.opensea.io/docs/metadata-standards
以及OpenSea 的官网网址: https://opensea.io/
事前准备
以上大致将这次我们开发NFT 会用到的内容,我把它大概切成六大点,而一些更基本的内容,例如:如何申请Metamask 钱包、如何添加切换测试网以及去水龙头领取免费的测试网以太币等,这部分可以回去之前的文章看看。
接下来的文章我们会一步一步将图片上传至IPFS ,再发行自己独一无二的NFT 哦,可以先准备好一张自己想发的图片,敬请期待啦!
延伸阅读
第一篇: 【新年企划】过年就包红包币| 智能合约开发计划#1
上一篇: 【新年企划最终章】大割的韭菜币| 智能合约开发计划#4
最后,谢谢你在百忙之中愿意抽空来花时间来看我的文章,如果还喜欢这些内容的话希望能获得你的追踪及小额赞助支持,让我更有继续写下去的动力,也欢迎点此连结在其他平台找到我。
下次见噜o((>ω< ))o~
原文连结ITechNote 科技随笔
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐