版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第如何用用Python制作NFT區(qū)塊鏈作品目錄什么是NFT?ERC20與ERC721NFT有什么用?NFT的價(jià)值如何制作NFT如何進(jìn)行無(wú)限定制的NFT快速上手ERC721代幣標(biāo)準(zhǔn)什么是NFT元數(shù)據(jù)和TokenURI?TokenURI鏈下元數(shù)據(jù)與鏈上元數(shù)據(jù)
什么是NFT?
NFT英文全稱為Non-FungibleToken,翻譯成中文就是:非同質(zhì)化代幣,具有不可分割、不可替代、獨(dú)一無(wú)二等特點(diǎn)。NFT由于其非同質(zhì)化、不可拆分的特性,使得它可以和現(xiàn)實(shí)世界中的一些商品綁定。換言之,其實(shí)就是發(fā)行在區(qū)塊鏈上的數(shù)字資產(chǎn),這個(gè)資產(chǎn)可以是游戲道具、數(shù)字藝術(shù)品、門票等,并且具有唯一性和不可復(fù)制性。由于NFT具備天然的收藏屬性和便于交易,加密藝術(shù)家們可以利用NFT創(chuàng)造出獨(dú)一無(wú)二的數(shù)字藝術(shù)品。
ERC20與ERC721
NFT是類似于ERC20的區(qū)塊鏈token標(biāo)準(zhǔn),如AAVE、SNX和LINK(技術(shù)上為ERC677)。ERC20是“可替代”的代幣,意思是“可替換”或“可互換”。
例如,無(wú)論您使用什么美元紙幣,您的美元紙幣都將值1美元。美元鈔票上的序列號(hào)可能不同,但鈔票是可以互換的,無(wú)論如何它們都值1美元。
另一方面,NFT是“不可替代的”,它們遵循自己的代幣標(biāo)準(zhǔn)ERC721。例如,蒙娜麗莎是“不可替代的”。即使有人可以復(fù)制它,但永遠(yuǎn)只有一個(gè)蒙娜麗莎。如果蒙娜麗莎是在區(qū)塊鏈上創(chuàng)建的,它將是NFT。
NFT有什么用?
NFT通過(guò)將合約永久地部署在鏈上,讓創(chuàng)作者、藝術(shù)家、游戲設(shè)計(jì)師等創(chuàng)造價(jià)值。
你將永遠(yuǎn)知道誰(shuí)創(chuàng)造了NFT,誰(shuí)擁有NFT,它來(lái)自哪里等等,這種獨(dú)特性讓他們比傳統(tǒng)藝術(shù)更有價(jià)值。在傳統(tǒng)藝術(shù)中,理解什么是“假貨”可能很棘手,而鏈上的歷史很容易追溯。
由于智能合約和NFT是100%可編程的,NFT還可以添加內(nèi)置的版稅和任何其他功能。補(bǔ)償藝術(shù)家一直是一個(gè)問(wèn)題,因?yàn)橥ǔK囆g(shù)家的作品在沒(méi)有任何歸屬的情況下四處傳播。
越來(lái)越多的藝術(shù)家和工程師開(kāi)始利用這一巨大的附加值,因?yàn)檫@最終成為藝術(shù)家獲得工作報(bào)酬的好方法。不僅如此,NFT還是一種展示您的創(chuàng)造力并成為數(shù)字世界收藏家的有趣方式。
NFT的價(jià)值
NFT已經(jīng)走過(guò)了漫長(zhǎng)的道路,我們不斷看到NFT的銷售額創(chuàng)下紀(jì)錄,例如下面這幅名為“每天:前5,000天”的畫(huà)作售價(jià)為6930萬(wàn)美元。
NFT也是在數(shù)字世界中創(chuàng)造藝術(shù)和了解智能合約創(chuàng)建的一種有趣、動(dòng)態(tài)和引人入勝的方式。所以現(xiàn)在將教你制作NFT所需的一切知識(shí)。
如何制作NFT
現(xiàn)在,制作NFT的最簡(jiǎn)單方法就是前往Opensea、Rarible或Mintible等平臺(tái),并按照他們的分步指南在他們的平臺(tái)上進(jìn)行部署即可。
你可以100%走這條路,但是你可能會(huì)被平臺(tái)綁定。你無(wú)法實(shí)現(xiàn)無(wú)限的定制,或者真正利用NFT的任何優(yōu)勢(shì)。
如果你想用代碼來(lái)實(shí)現(xiàn),學(xué)習(xí)一些扎實(shí)的知識(shí),并有能力以無(wú)限的創(chuàng)造力創(chuàng)造出一些東西,那么請(qǐng)繼續(xù)閱讀!
如何進(jìn)行無(wú)限定制的NFT
首先介紹NFTBrownieMix。這是一個(gè)包含大量樣板代碼的工作倉(cāng)庫(kù)。
/PatrickAlphaC/nft-mix
先決條件
我們需要安裝一些東西才能開(kāi)始:
Python
Nodejs和npm
Metamask
如果您不熟悉Metamask,您可以按照下面教程進(jìn)行設(shè)置。
https://docs.chain.link/docs/install-metamask/
RinkebyTestnetETH和LINK
我們還將部署在Rinkeby以太坊測(cè)試鏈上!
測(cè)試鏈?zhǔn)菧y(cè)試我們的智能合約在現(xiàn)實(shí)世界中表現(xiàn)的好方法。我們需要RinkebyETH和RinkebyLINK,我們可以從Chainlink文檔中最新水龍頭的鏈接中免費(fèi)獲得它們。
我們還需要將rinkebyLINK的token添加到metamask中,我們可以按照LINK文檔進(jìn)行操作。
https://docs.chain.link/docs/acquire-link/
注意一定要使用Rinkeby而不是Ropsten。在使用像以太坊這樣的智能合約平臺(tái)時(shí),我們需要支付一點(diǎn)ETH,而從鏈下獲取數(shù)據(jù)時(shí),我們需要支付一點(diǎn)LINK。這就是我們需要獲取測(cè)試鏈上的LINK和ETH的原因。
下面這件作品就是我們要部署到OpenSea的NFT。
https://testnets.opensea.io/assets/0x8acb7ca932892eb83e4411b59309d44dddbc4cdf/0
快速上手
gitclonehttps:
///PatrickAlphaC/nft-mix
cdnft-mix
現(xiàn)在我們需要安裝ganache-cli和eth-brownie。
pipinstalleth-brownie
npminstall-gganache-cli
現(xiàn)在我們可以設(shè)置我們的環(huán)境變量。如果您不熟悉環(huán)境變量,只需將它們添加到.env文件中,然后運(yùn)行:
source.env
.env的示例應(yīng)該在你剛剛克隆的repo中,并注釋掉了環(huán)境變量。請(qǐng)確保取消注釋以使用它們!
您需要一個(gè)WEB3_INFURA_PROJECT_ID和一個(gè)PRIVATE_KEY。WEB3_INFURA_PROJECT_ID可以在注冊(cè)免費(fèi)Infura帳戶時(shí)找到。這將為我們提供一種將交易發(fā)送到區(qū)塊鏈的方法。
我們還需要一個(gè)私鑰,您可以從您的Metamask中獲取。點(diǎn)擊3個(gè)小點(diǎn),然后單擊帳戶詳細(xì)信息和導(dǎo)出私鑰。如果您投入現(xiàn)金進(jìn)去,請(qǐng)不要與任何人分享此密鑰!
export
PRIVATE_KEY=YOUR_KEY_HERE
export
WEB3_INFURA_PROJECT_ID=YOUR_PROJECT_ID_HERE
現(xiàn)在我們可以部署我們的NFT合約并使用以下兩個(gè)命令創(chuàng)建我們的第一個(gè)收藏品。
brownierunscripts/simple_collectible/deploy_simple.py--networkrinkeby
brownierunscripts/simple_collectible/create_collectible.py--networkrinkeby
第一個(gè)腳本將我們的NFT合約部署到Rinkeby區(qū)塊鏈,第二個(gè)腳本創(chuàng)建了我們的第一個(gè)收藏品。
您剛剛部署了第一個(gè)智能合約!
它根本沒(méi)有什么作用,但別擔(dān)心——我將在本教程的高級(jí)部分向您展示如何在OpenSea上渲染它。首先,讓我們看看ERC721代幣標(biāo)準(zhǔn)。
ERC721代幣標(biāo)準(zhǔn)
我們來(lái)看看我們剛剛部署的合約,在SimpleCollectible.sol文件中。
我們將OpenZeplin包用于ERC721token。導(dǎo)入的這個(gè)包允許我們使用典型ERC721token的所有功能。這定義了我們的代幣將具有的所有功能,例如transfer——將代幣轉(zhuǎn)移給新用戶,safeMint——?jiǎng)?chuàng)建新代幣,等等。
您可以通過(guò)查看OpenZepplinERC721代幣合約找到賦予我們合約的所有功能。我們的合約在下面一行繼承了這些功能:
/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol
contractSimpleCollectibleisERC721{
這就是Solidity繼承的方式。當(dāng)我們部署一個(gè)合約時(shí),構(gòu)造函數(shù)會(huì)被自動(dòng)調(diào)用,它需要一些參數(shù)。
我們還使用了ERC721的構(gòu)造函數(shù),在我們的構(gòu)造函數(shù)中,我們只需要給它一個(gè)名稱和一個(gè)符號(hào)。在我們的例子中,它是“Dogie”和“DOG”。這意味著我們創(chuàng)建的每個(gè)NFT都將是Dogie/DOG類型。
這就像每張口袋妖怪卡仍然是口袋妖怪,或者交易卡上的每個(gè)棒球運(yùn)動(dòng)員仍然是棒球運(yùn)動(dòng)員。每個(gè)棒球運(yùn)動(dòng)員都是獨(dú)一無(wú)二的,但他們?nèi)匀欢际前羟蜻\(yùn)動(dòng)員。我們只是使用DOG類型。
我們?cè)陧敳坑衪okenCounter來(lái)計(jì)算我們創(chuàng)建了多少這種類型的NFT。每個(gè)新token都會(huì)根據(jù)當(dāng)前的tokenCounter獲得一個(gè)tokenId。
實(shí)際上可以使用createCollectible函數(shù)創(chuàng)建NFT。這就是我們?cè)赾reate_collectible.py腳本中所寫(xiě)的。
_safeMint函數(shù)創(chuàng)建新的NFT,并將其分配給調(diào)用createdCollectible的人,也就是msg.sender,并使用從tokenCounter派生的newItemId。這就是我們?nèi)绾瓮ㄟ^(guò)檢查tokenId的所有者來(lái)跟蹤誰(shuí)擁有什么。
您會(huì)注意到我們還調(diào)用了_setTokenURI。讓我們來(lái)看一下。
什么是NFT元數(shù)據(jù)和TokenURI?
當(dāng)創(chuàng)建智能合約和創(chuàng)建NFT時(shí),人們很快意識(shí)到將大量數(shù)據(jù)部署到區(qū)塊鏈?zhǔn)欠浅0嘿F的。小至1KB的圖像的存儲(chǔ)成本很容易超過(guò)100萬(wàn)美元。
這顯然是NFT的一個(gè)問(wèn)題,因?yàn)閾碛袆?chuàng)意藝術(shù)意味著您必須將這些信息存儲(chǔ)在某個(gè)地方。他們還想要一種輕量級(jí)的方式來(lái)存儲(chǔ)有關(guān)NFT的屬性——這就是tokenURI和元數(shù)據(jù)發(fā)揮作用的地方。
TokenURI
NFT上的tokenURI是token“外觀”的唯一標(biāo)識(shí)符。URI可以是通過(guò)HTTPS的API調(diào)用、IPFS哈希值或任何其他獨(dú)特的東西。
它們遵循顯示元數(shù)據(jù)的標(biāo)準(zhǔn),如下所示:
這些顯示了NFT的外觀及其屬性。圖像部分指向NFT外觀的另一個(gè)URI。這使得Opensea、Rarible和Mintable等NFT平臺(tái)可以輕松地在其平臺(tái)上呈現(xiàn)NFT,因?yàn)樗鼈兌荚趯ふ疫@種元數(shù)據(jù)。
鏈下元數(shù)據(jù)與鏈上元數(shù)據(jù)
現(xiàn)在你可能會(huì)想“等等......如果元數(shù)據(jù)不在鏈上,這是否意味著我的NFT可能會(huì)在某個(gè)時(shí)候消失”?你是對(duì)的。
您認(rèn)為鏈下元數(shù)據(jù)意味著您不能使用該元數(shù)據(jù)讓您的智能合約相互交互也是正確的。
這就是為什么我們要專注于鏈上元數(shù)據(jù),以便我們可以對(duì)NFT進(jìn)行編程以相互交互。
但是,我們?nèi)匀恍枰溝略獢?shù)據(jù)的圖像部分,因?yàn)槲覀儧](méi)有一種很好的方法來(lái)在鏈上存儲(chǔ)大圖像。但是別擔(dān)心,我們?nèi)匀豢梢酝ㄟ^(guò)使用IPFS在去中心化網(wǎng)絡(luò)上免費(fèi)做到這一點(diǎn)。
這是來(lái)自IPFS的imageURI示例,它顯示了在龍與地下城教程中創(chuàng)建的ChainlinkElf。
https://blog
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全員A證考試練習(xí)題附參考答案詳解(能力提升)
- 水電站防汛抗旱方案
- 安全員A證考試能力提升打印大全及參考答案詳解(培優(yōu)b卷)
- 房地產(chǎn)估價(jià)師考試密押題庫(kù)與答案解析比較法及其應(yīng)用(二)
- 2024樂(lè)理試題及答案
- 施工現(xiàn)場(chǎng)物料利用率提升方案
- 執(zhí)業(yè)醫(yī)師法試題及答案
- 2025年餐飲企業(yè)管理員食品安全知識(shí)測(cè)試試題及答案
- 2025年押題寶典安全員A證考試題庫(kù)【重點(diǎn)】附答案詳解
- 2025年網(wǎng)絡(luò)安全法規(guī)解讀試題及答案
- 濰坊港中港區(qū)西作業(yè)區(qū)#5泊位工程環(huán)境影響評(píng)價(jià)報(bào)告書(shū)
- 安裝水管安全協(xié)議合同
- 中國(guó)郵政集團(tuán)公司戰(zhàn)略合作協(xié)議書(shū)范本
- 重慶市渝北區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 2024子宮內(nèi)膜癌分子分型臨床應(yīng)用中國(guó)專家共識(shí)(完整版)
- 《煤礦低濃度瓦斯管道輸送安全保障系統(tǒng)設(shè)計(jì)規(guī)范》
- 換電柜維護(hù)培訓(xùn)課件
- 土石方工程掛靠合同
- 招聘會(huì)會(huì)展服務(wù)投標(biāo)方案(技術(shù)標(biāo) )
- 企業(yè)標(biāo)準(zhǔn)-格式模板
- 軟件售后服務(wù)人員提成方案附表
評(píng)論
0/150
提交評(píng)論