我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用用Python制作NFT区块链作品

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用用Python制作NFT区块链作品

目录
  • 什么是 NFT?
  • ERC20 与 ERC721
  • NFT 有什么用?
  • NFT 的价值
  • 如何制作 NFT
  • 如何进行无限定制的 NFT
  • 快速上手
  • ERC721 代币标准
  • 什么是 NFT 元数据和 TokenURI?
  • TokenURI
  • 链下元数据与链上元数据

什么是 NFT?

NFT英文全称为Non-Fungible Token,翻译成中文就是:非同质化代币,具有不可分割、不可替代、独一无二等特点。NFT由于其非同质化、不可拆分的特性,使得它可以和现实世界中的一些商品绑定。换言之,其实就是发行在区块链上的数字资产,这个资产可以是游戏道具、数字艺术品、门票等,并且具有唯一性和不可复制性。由于NFT具备天然的收藏属性和便于交易,加密艺术家们可以利用NFT创造出独一无二的数字艺术品。

ERC20 与 ERC721

NFT 是类似于 ERC20 的区块链token标准,如 AAVE、SNX 和 LINK(技术上为 ERC677)。ERC20 是“可替代”的代币,意思是“可替换”或“可互换”。

例如,无论您使用什么美元纸币,您的美元纸币都将值 1 美元。美元钞票上的序列号可能不同,但钞票是可以互换的,无论如何它们都值 1 美元。

另一方面,NFT 是“不可替代的”,它们遵循自己的代币标准 ERC721。例如,蒙娜丽莎是“不可替代的”。即使有人可以复制它,但永远只有一个蒙娜丽莎。如果蒙娜丽莎是在区块链上创建的,它将是 NFT。

NFT 有什么用?

NFT 通过将合约永久地部署在链上,让创作者、艺术家、游戏设计师等创造价值。

你将永远知道谁创造了 NFT,谁拥有 NFT,它来自哪里等等,这种独特性让他们比传统艺术更有价值。在传统艺术中,理解什么是“假货”可能很棘手,而链上的历史很容易追溯。

由于智能合约和 NFT 是 100% 可编程的,NFT 还可以添加内置的版税和任何其他功能。补偿艺术家一直是一个问题,因为通常艺术家的作品在没有任何归属的情况下四处传播。

越来越多的艺术家和工程师开始利用这一巨大的附加值,因为这最终成为艺术家获得工作报酬的好方法。不仅如此,NFT 还是一种展示您的创造力并成为数字世界收藏家的有趣方式。

NFT 的价值

NFT 已经走过了漫长的道路,我们不断看到 NFT 的销售额创下纪录,例如下面这幅名为“每天:前 5,000 天”的画作售价为 6930 万美元。

NFT也是在数字世界中创造艺术和了解智能合约创建的一种有趣、动态和引人入胜的方式。所以现在将教你制作 NFT 所需的一切知识。

如何制作 NFT

现在,制作 NFT 的最简单方法就是前往 Opensea、Rarible 或 Mintible 等平台,并按照他们的分步指南在他们的平台上进行部署即可。

你可以 100% 走这条路,但是你可能会被平台绑定。你无法实现无限的定制,或者真正利用 NFT 的任何优势。

如果你想用代码来实现,学习一些扎实的知识,并有能力以无限的创造力创造出一些东西,那么请继续阅读!

如何进行无限定制的 NFT

首先介绍NFT Brownie Mix。这是一个包含大量样板代码的工作仓库。

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

先决条件

我们需要安装一些东西才能开始:

  • Python
  • Nodejs 和 npm
  • Metamask

如果您不熟悉 Metamask,您可以按照下面教程进行设置。

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

Rinkeby Testnet ETH 和 LINK

我们还将部署在 Rinkeby 以太坊测试链上!

测试链是测试我们的智能合约在现实世界中表现的好方法。我们需要 Rinkeby ETH 和 Rinkeby LINK,我们可以从 Chainlink 文档中最新水龙头的链接中免费获得它们。

我们还需要将 rinkeby LINK 的token添加到metamask中,我们可以按照 LINK 文档进行操作。

https://docs.chain.link/docs/acquire-link/

注意一定要使用 Rinkeby 而不是 Ropsten。在使用像以太坊这样的智能合约平台时,我们需要支付一点 ETH,而从链下获取数据时,我们需要支付一点 LINK。这就是我们需要获取测试链上的LINK 和 ETH 的原因。

下面这件作品就是我们要部署到 OpenSea 的 NFT。

https://testnets.opensea.io/assets/0x8acb7ca932892eb83e4411b59309d44dddbc4cdf/0

快速上手


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

cd nft-mix

现在我们需要安装 ganache-cli 和 eth-brownie。


pip install eth-brownie

npm install -g ganache-cli

现在我们可以设置我们的环境变量。如果您不熟悉环境变量,只需将它们添加到 .env 文件中,然后运行:


source .env

.env的示例应该在你刚刚克隆的 repo 中,并注释掉了环境变量。请确保取消注释以使用它们!

您需要一个 WEB3_INFURA_PROJECT_ID和一个 PRIVATE_KEY 。WEB3_INFURA_PROJECT_ID 可以在注册免费 Infura 帐户时找到。这将为我们提供一种将交易发送到区块链的方法。

我们还需要一个私钥,您可以从您的 Metamask 中获取。点击 3 个小点,然后单击帐户详细信息和导出私钥。如果您投入现金进去,请不要与任何人分享此密钥!


export
 PRIVATE_KEY=YOUR_KEY_HERE

export
 WEB3_INFURA_PROJECT_ID=YOUR_PROJECT_ID_HERE

现在我们可以部署我们的 NFT 合约并使用以下两个命令创建我们的第一个收藏品。


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

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

第一个脚本将我们的 NFT 合约部署到 Rinkeby 区块链,第二个脚本创建了我们的第一个收藏品。

您刚刚部署了第一个智能合约!

它根本没有什么作用,但别担心——我将在本教程的高级部分向您展示如何在 OpenSea 上渲染它。首先,让我们看看 ERC721 代币标准。

ERC721 代币标准

我们来看看我们刚刚部署的合约,在 SimpleCollectible.sol 文件中。

我们将 OpenZeplin 包用于 ERC721 token。导入的这个包允许我们使用典型 ERC721 token的所有功能。这定义了我们的代币将具有的所有功能,例如 transfer——将代币转移给新用户, safeMint——创建新代币,等等。

您可以通过查看 OpenZepplin ERC721 代币合约找到赋予我们合约的所有功能。我们的合约在下面一行继承了这些功能:

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


contract SimpleCollectible is ERC721 {

这就是 Solidity 继承的方式。当我们部署一个合约时,构造函数会被自动调用,它需要一些参数。

我们还使用了 ERC721 的构造函数,在我们的构造函数中,我们只需要给它一个名称和一个符号。在我们的例子中,它是“Dogie”和“DOG”。这意味着我们创建的每个 NFT 都将是 Dogie/DOG 类型。

这就像每张口袋妖怪卡仍然是口袋妖怪,或者交易卡上的每个棒球运动员仍然是棒球运动员。每个棒球运动员都是独一无二的,但他们仍然都是棒球运动员。我们只是使用 DOG 类型。

我们在顶部有 tokenCounter 来计算我们创建了多少这种类型的 NFT。每个新token都会根据当前的 tokenCounter 获得一个 tokenId。

实际上可以使用 createCollectible 函数创建 NFT。这就是我们在 create_collectible.py 脚本中所写的。

_safeMint函数创建新的 NFT,并将其分配给调用 createdCollectible的人,也就是 msg.sender,并使用从 tokenCounter 派生的 newItemId。这就是我们如何通过检查 tokenId的所有者来跟踪谁拥有什么。

您会注意到我们还调用了 _setTokenURI。让我们来看一下。

什么是 NFT 元数据和 TokenURI?

当创建智能合约和创建 NFT 时,人们很快意识到将大量数据部署到区块链是非常昂贵的。小至 1 KB 的图像的存储成本很容易超过 100 万美元。

这显然是 NFT 的一个问题,因为拥有创意艺术意味着您必须将这些信息存储在某个地方。他们还想要一种轻量级的方式来存储有关 NFT 的属性——这就是 tokenURI 和元数据发挥作用的地方。

TokenURI

NFT 上的 tokenURI 是token“外观”的唯一标识符。URI 可以是通过 HTTPS 的 API 调用、IPFS 哈希值或任何其他独特的东西。

它们遵循显示元数据的标准,如下所示:

这些显示了 NFT 的外观及其属性。图像部分指向 NFT 外观的另一个 URI。这使得 Opensea、Rarible 和 Mintable 等 NFT 平台可以轻松地在其平台上呈现 NFT,因为它们都在寻找这种元数据。

链下元数据与链上元数据

现在你可能会想“等等......如果元数据不在链上,这是否意味着我的 NFT 可能会在某个时候消失”?你是对的。

您认为链下元数据意味着您不能使用该元数据让您的智能合约相互交互也是正确的。

这就是为什么我们要专注于链上元数据,以便我们可以对 NFT 进行编程以相互交互。

但是,我们仍然需要链下元数据的图像部分,因为我们没有一种很好的方法来在链上存储大图像。但是别担心,我们仍然可以通过使用 IPFS 在去中心化网络上免费做到这一点。

这是来自 IPFS 的 imageURI示例,它显示了在龙与地下城教程中创建的 ChainlinkElf。

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

我们没有为简单的 NFT 设置 tokenURI,因为我们只想展示一个基本示例。

下一篇将讲解 NFT 进阶知识,这样就可以看到我们用链上元数据实现的一些惊人功能,在 opeansea 上渲染 NFT,并让我们的狗狗振作起来!

以上就是如何用用Python制作NFT区块链作品的详细内容,更多关于Python制作NFT区块链作品的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用用Python制作NFT区块链作品

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何用用Python制作NFT区块链作品

目录什么是 NFT?ERC20 与 ERC721NFT 有什么用?NFT 的价值如何制作 NFT如何进行无限定制的 NFT快速上手ERC721 代币标准什么是 NFT 元数据和 TokenURI?TokenURI链下元数据与链上元数据什么是
2022-06-02

用Python探索区块链世界的奥秘:揭秘区块链的工作原理

区块链技术,一个去中心化且安全的数字分类账技术,正在改变世界。使用Python,我们可以轻松挖掘区块链背后的技术,揭示其工作原理。
用Python探索区块链世界的奥秘:揭秘区块链的工作原理
2024-02-23

python区块链如何实现简版工作量证明

本篇内容主要讲解“python区块链如何实现简版工作量证明”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python区块链如何实现简版工作量证明”吧!工作量证明区块链的一个关键点就是,一个人必须
2023-06-30

go语言区块链的作用是什么

Go语言在区块链领域的作用主要包括以下几个方面:高效性能:Go语言是一种静态类型语言,具有高效的编译和执行速度,能够满足区块链系统对性能的需求。并发性能:Go语言天生支持并发编程,通过goroutine和channel等特性,可以有效地处理
go语言区块链的作用是什么
2024-02-29

PHP函数在区块链开发中的作用

在区块链开发中,php 函数发挥着至关重要的作用,提供以下关键功能:哈希函数:生成固定大小的哈希值,保护区块链中数据的完整性。rsa 加密:加密和解密数据,用于数字签名和验证交易。字符串操作:处理区块链中的文本数据,提取、格式化和验证地址、
PHP函数在区块链开发中的作用
2024-04-14

Golang技术在区块链跨链技术中的作用与探索

golang 在区块链跨链技术中扮演着重要角色,主要用于以下方面:跨链协议开发跨链网关创建跨链应用部署Golang 在区块链跨链技术中的作用与探索引言跨链技术是区块链行业的关键发展领域,它允许不同区块链之间进行通信和交互。Go 语言(G
Golang技术在区块链跨链技术中的作用与探索
2024-05-10

Golang对区块链发展的影响及作用探究

Golang(简称Go语言)作为一种编程语言在近年来逐渐在区块链领域崭露头角,其高效的并发处理能力和简洁的语法特点使其成为了区块链开发中备受青睐的一种选择。本文将探讨Golang如何助力区块链发展,并通过具体的代码示例展示其在区块链应用中的
Golang对区块链发展的影响及作用探究
2024-02-26

如何使用Python制作词云

这篇文章给大家分享的是有关如何使用Python制作词云的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、准备词云制作所必需的三个包:安装:pip install matplotlib安装:pip install
2023-06-15

如何分析javascript作用域和作用域链

如何分析javascript作用域和作用域链,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、javascript的作用域1、全局作用域1、最外层函数和最外层函
2023-06-28

Golang在区块链网络安全中的作用与实现

golang 在区块链网络安全中的作用包括:构建安全协议、实施加密算法、开发安全工具和维护网络安全。实战案例演示了如何使用 golang 在区块链网络中实施 tls,以确保数据传输的隐私性和完整性:1. 安装必需的 golang 库;2.
Golang在区块链网络安全中的作用与实现
2024-05-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录