国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何用用Python制作NFT區(qū)塊鏈作品

瀏覽:39日期:2022-06-16 15:39:39
目錄什么是 NFT?ERC20 與 ERC721NFT 有什么用?NFT 的價(jià)值如何制作 NFT如何進(jìn)行無限定制的 NFT快速上手ERC721 代幣標(biāo)準(zhǔn)什么是 NFT 元數(shù)據(jù)和 TokenURI?TokenURI鏈下元數(shù)據(jù)與鏈上元數(shù)據(jù)什么是 NFT?

NFT英文全稱為Non-Fungible Token,翻譯成中文就是:非同質(zhì)化代幣,具有不可分割、不可替代、獨(dú)一無二等特點(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ú)一無二的數(shù)字藝術(shù)品。

ERC20 與 ERC721

NFT 是類似于 ERC20 的區(qū)塊鏈token標(biāo)準(zhǔn),如 AAVE、SNX 和 LINK(技術(shù)上為 ERC677)。ERC20 是“可替代”的代幣,意思是“可替換”或“可互換”。

例如,無論您使用什么美元紙幣,您的美元紙幣都將值 1 美元。美元鈔票上的序列號(hào)可能不同,但鈔票是可以互換的,無論如何它們都值 1 美元。

另一方面,NFT 是“不可替代的”,它們遵循自己的代幣標(biāo)準(zhǔn) ERC721。例如,蒙娜麗莎是“不可替代的”。即使有人可以復(fù)制它,但永遠(yuǎn)只有一個(gè)蒙娜麗莎。如果蒙娜麗莎是在區(qū)塊鏈上創(chuàng)建的,它將是 NFT。

如何用用Python制作NFT區(qū)塊鏈作品

NFT 有什么用?

NFT 通過將合約永久地部署在鏈上,讓創(chuàng)作者、藝術(shù)家、游戲設(shè)計(jì)師等創(chuàng)造價(jià)值。

你將永遠(yuǎn)知道誰創(chuàng)造了 NFT,誰擁有 NFT,它來自哪里等等,這種獨(dú)特性讓他們比傳統(tǒng)藝術(shù)更有價(jià)值。在傳統(tǒng)藝術(shù)中,理解什么是“假貨”可能很棘手,而鏈上的歷史很容易追溯。

由于智能合約和 NFT 是 100% 可編程的,NFT 還可以添加內(nèi)置的版稅和任何其他功能。補(bǔ)償藝術(shù)家一直是一個(gè)問題,因?yàn)橥ǔK囆g(shù)家的作品在沒有任何歸屬的情況下四處傳播。

越來越多的藝術(shù)家和工程師開始利用這一巨大的附加值,因?yàn)檫@最終成為藝術(shù)家獲得工作報(bào)酬的好方法。不僅如此,NFT 還是一種展示您的創(chuàng)造力并成為數(shù)字世界收藏家的有趣方式。

NFT 的價(jià)值

NFT 已經(jīng)走過了漫長(zhǎng)的道路,我們不斷看到 NFT 的銷售額創(chuàng)下紀(jì)錄,例如下面這幅名為“每天:前 5,000 天”的畫作售價(jià)為 6930 萬美元。

如何用用Python制作NFT區(qū)塊鏈作品

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)綁定。你無法實(shí)現(xiàn)無限的定制,或者真正利用 NFT 的任何優(yōu)勢(shì)。

如果你想用代碼來實(shí)現(xiàn),學(xué)習(xí)一些扎實(shí)的知識(shí),并有能力以無限的創(chuàng)造力創(chuàng)造出一些東西,那么請(qǐng)繼續(xù)閱讀!

如何進(jìn)行無限定制的 NFT

首先介紹NFT Brownie Mix。這是一個(gè)包含大量樣板代碼的工作倉(cāng)庫(kù)。

https://github.com/PatrickAlphaC/nft-mix

先決條件

我們需要安裝一些東西才能開始:

Python Nodejs 和 npm Metamask

如果您不熟悉 Metamask,您可以按照下面教程進(jìn)行設(shè)置。

https://docs.chain.link/docs/install-metamask/

Rinkeby Testnet ETH 和 LINK

我們還將部署在 Rinkeby 以太坊測(cè)試鏈上!

測(cè)試鏈?zhǔn)菧y(cè)試我們的智能合約在現(xiàn)實(shí)世界中表現(xiàn)的好方法。我們需要 Rinkeby ETH 和 Rinkeby LINK,我們可以從 Chainlink 文檔中最新水龍頭的鏈接中免費(fèi)獲得它們。

我們還需要將 rinkeby LINK 的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

如何用用Python制作NFT區(qū)塊鏈作品

快速上手

git clone https://github.com/PatrickAlphaC/nft-mixcd nft-mix

現(xiàn)在我們需要安裝 ganache-cli 和 eth-brownie。

pip install eth-brownienpm install -g ganache-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_HEREexport WEB3_INFURA_PROJECT_ID=YOUR_PROJECT_ID_HERE

現(xiàn)在我們可以部署我們的 NFT 合約并使用以下兩個(gè)命令創(chuàng)建我們的第一個(gè)收藏品。

brownie run scripts/simple_collectible/deploy_simple.py --network rinkebybrownie run scripts/simple_collectible/create_collectible.py --network rinkeby

第一個(gè)腳本將我們的 NFT 合約部署到 Rinkeby 區(qū)塊鏈,第二個(gè)腳本創(chuàng)建了我們的第一個(gè)收藏品。

您剛剛部署了第一個(gè)智能合約!

它根本沒有什么作用,但別擔(dān)心——我將在本教程的高級(jí)部分向您展示如何在 OpenSea 上渲染它。首先,讓我們看看 ERC721 代幣標(biāo)準(zhǔn)。

ERC721 代幣標(biāo)準(zhǔn)

我們來看看我們剛剛部署的合約,在 SimpleCollectible.sol 文件中。

如何用用Python制作NFT區(qū)塊鏈作品

我們將 OpenZeplin 包用于 ERC721 token。導(dǎo)入的這個(gè)包允許我們使用典型 ERC721 token的所有功能。這定義了我們的代幣將具有的所有功能,例如 transfer——將代幣轉(zhuǎn)移給新用戶, safeMint——?jiǎng)?chuàng)建新代幣,等等。

您可以通過查看 OpenZepplin ERC721 代幣合約找到賦予我們合約的所有功能。我們的合約在下面一行繼承了這些功能:

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol

contract SimpleCollectible is ERC721 {

這就是 Solidity 繼承的方式。當(dāng)我們部署一個(gè)合約時(shí),構(gòu)造函數(shù)會(huì)被自動(dòng)調(diào)用,它需要一些參數(shù)。

如何用用Python制作NFT區(qū)塊鏈作品

我們還使用了 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ú)一無二的,但他們?nèi)匀欢际前羟蜻\(yùn)動(dòng)員。我們只是使用 DOG 類型。

我們?cè)陧敳坑?tokenCounter 來計(jì)算我們創(chuàng)建了多少這種類型的 NFT。每個(gè)新token都會(huì)根據(jù)當(dāng)前的 tokenCounter 獲得一個(gè) tokenId。

實(shí)際上可以使用 createCollectible 函數(shù)創(chuàng)建 NFT。這就是我們?cè)?create_collectible.py 腳本中所寫的。

如何用用Python制作NFT區(qū)塊鏈作品

_safeMint函數(shù)創(chuàng)建新的 NFT,并將其分配給調(diào)用 createdCollectible的人,也就是 msg.sender,并使用從 tokenCounter 派生的 newItemId。這就是我們?nèi)绾瓮ㄟ^檢查 tokenId的所有者來跟蹤誰擁有什么。

您會(huì)注意到我們還調(diào)用了 _setTokenURI。讓我們來看一下。

什么是 NFT 元數(shù)據(jù)和 TokenURI?

當(dāng)創(chuàng)建智能合約和創(chuàng)建 NFT 時(shí),人們很快意識(shí)到將大量數(shù)據(jù)部署到區(qū)塊鏈?zhǔn)欠浅0嘿F的。小至 1 KB 的圖像的存儲(chǔ)成本很容易超過 100 萬美元。

這顯然是 NFT 的一個(gè)問題,因?yàn)閾碛袆?chuàng)意藝術(shù)意味著您必須將這些信息存儲(chǔ)在某個(gè)地方。他們還想要一種輕量級(jí)的方式來存儲(chǔ)有關(guān) NFT 的屬性——這就是 tokenURI 和元數(shù)據(jù)發(fā)揮作用的地方。

TokenURI

NFT 上的 tokenURI 是token“外觀”的唯一標(biāo)識(shí)符。URI 可以是通過 HTTPS 的 API 調(diào)用、IPFS 哈希值或任何其他獨(dú)特的東西。

它們遵循顯示元數(shù)據(jù)的標(biāo)準(zhǔn),如下所示:

如何用用Python制作NFT區(qū)塊鏈作品

這些顯示了 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)槲覀儧]有一種很好的方法來在鏈上存儲(chǔ)大圖像。但是別擔(dān)心,我們?nèi)匀豢梢酝ㄟ^使用 IPFS 在去中心化網(wǎng)絡(luò)上免費(fèi)做到這一點(diǎn)。

這是來自 IPFS 的 imageURI示例,它顯示了在龍與地下城教程中創(chuàng)建的 ChainlinkElf。

https://blog.chain.link/build-deploy-and-sell-your-own-dynamic-nft/

如何用用Python制作NFT區(qū)塊鏈作品

我們沒有為簡(jiǎn)單的 NFT 設(shè)置 tokenURI,因?yàn)槲覀冎幌胝故疽粋€(gè)基本示例。

下一篇將講解 NFT 進(jìn)階知識(shí),這樣就可以看到我們用鏈上元數(shù)據(jù)實(shí)現(xiàn)的一些驚人功能,在 opeansea 上渲染 NFT,并讓我們的狗狗振作起來!

以上就是如何用用Python制作NFT區(qū)塊鏈作品的詳細(xì)內(nèi)容,更多關(guān)于Python制作NFT區(qū)塊鏈作品的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中国a级黄色片 | 国产欧美一区二区精品久久久 | 国产成人在线播放视频 | 九九99久久 | 一级a性色生活片久久毛片 一级a做爰片欧欧美毛片4 | 亚洲欧美视频网站 | 亚洲国产一区二区三区四区 | 99国产精品高清一区二区二区 | 一级片网站在线观看 | 日本高清一本二本三本如色坊 | 亚洲成综合 | jyzzjyzzjyzz日本在线观看 | 亚洲国产精品大秀在线播放 | 国产色a| 亚洲伊人色综合网站小说 | 男人天堂网2022 | 一级黄色录相片 | 亚洲精品国产手机 | 国产高清视频a在线大全 | 失禁h啪肉尿出来高h | 美女图片131亚洲午夜 | 中文国产成人精品久久无广告 | 成人看片黄a免费看视频 | 在线国产二区 | 欧美一级一片 | 日本在线视频免费看 | 一本色道久久88综合亚洲精品高清 | a级免费 | 最近手机中文在线视频 | 欧美69视频在线 | 久久成人视 | 亚洲在线视频免费 | 久草视频网 | 日韩 国产 欧美 | 美国a毛片| 大量真实偷拍情侣视频野战 | 免费视频日本 | 日本阿v精品视频在线观看 日本阿v视频在线观看高清 | 欧美1区二区三区公司 | 一本色道久久综合网 | 夜精品a一区二区三区 |