木星链 木星链
Ctrl+D收藏木星链

HTT:如何用 IPFS 构建 ERC721 NFT

作者:

时间:1900/1/1 0:00:00

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

使用OpenZeppelin、Truffle和Pinata。

ERC-721标准催生了以太坊上的非可替代代币(NFT)市场。ERC-721是一个创建NFT的标准。任何独特的事物都可以成为NFT。一栋房子、一张棒球卡、一件艺术品等。但其蕴含的能量不仅仅在于事物是独特的、数字化的,更在于其可验证性。这就是ERC-721标准的闪光点。

创建ERC-721代币的主要问题来自于存储标的资产。区块链并不适合存储大量数据。2017年,Interplanetary数据库的JamilaOmar估计,在以太坊上存储1GB数据的成本将超过400万美元。

在以太坊上存储数据的成本约为17,500ETH/GB,按今天的价格计算,约为4,672,500美元。--JamilaOmar,2017

既然存储NFT绑定的标的资产的成本太高,以致无法使用区块链让存储,那么有什么替代方案呢?我们可以使用传统的云存储来存储标的资产,如亚马逊的S3和微软的Azure提供了廉价的存储解决方案。然而,我们所熟知的传统云存储有一个很大的缺陷:他们不是密码学上可以验证的。

可验证性

NFT的全部意义可能是对标的资产或数字资产可验证和可控制。

如果我们不能以类似于验证代表资产的代币所有权的方式来验证标的资产本身,我们就失去了最终目标。

IOTA代币持有者将投票决定无人认领的代币该如何处置:1月27日消息,IOTA代币持有者将投票决定无人认领的代币应该如何处置。投票选项有两种:1、用于支持和资助对IOTA社区生态系统至关重要的项目和计划,这些资金将完全由社区管理。2、从IOTA分类账中删除,总供应量将减少。

投票过程将分为三个阶段:提案公告;投票(七天);计票(10天)。投票结果将通过参与计数的每个节点以分散的方式生成和验证。每个节点都可以通过API终结点公开其当前和最终结果。

据此前消息,在去年的Chrysalis网络升级期间,IOTA基金会要求IOTA社区决定如何使用超过50个无人认领的IOTA代币。[2022/1/28 9:18:08]

解决这两个问题的方法是IPFS。IPFS是一个分布式存储网络。它的工作方式与云存储类似。你请求内容,就会被返回该内容。然而,最大的不同是,内容的存储利用了全球的存储提供者网络。IPFS利用了一种叫做内容可寻址的工具。这意味着,你不需要向俄亥俄州的数据中心提出请求,而是对内容本身提出请求。它可能位于俄亥俄州。有了内容可寻址性,你不再需要依赖单一的位置来检索内容。这对于全球区块链应用来说,分布式存储效率更高。

IPFS还为我们解决了可验证性问题。因为所有的内容都是根据内容本身来定义和存储的,如果一个内容被篡改或改变,我们在试图验证内容时,就会出现不匹配的情况,知道内容是错误的。我们用一个简单的例子来说明一下。

亚马逊Prime播放的新纪录片展示比特币如何改变非洲:关于南非比特币先驱的新纪录片《非洲银行业:比特币革命》正在亚马逊Prime上推出。一同发布的还有一份研究报告,该报告介绍了有关非洲加密货币的全面和最新信息。(Decrypt)[2020/5/20]

Alice在IPFS上存储了一张猫的图片,该猫的图片由一个内容标识符来表示。为简单起见,我们假设标识符为C。

鲍勃请求那张猫的照片,然后给那只可怜的猫画上胡子。当Bob上传他的图片时,他将不再拥有相同的标识符。因为他改变了底层数据,所以Bob的标识符可能是M。

如果鲍勃想把他的照片冒充爱丽丝的照片任何人都会知道他在撒谎。爱丽丝的标识符与鲍勃的标识符不一致,因此,鲍勃试图冒充爱丽丝的图像是可以验证的假象。

这有一个是视频介绍:https://youtu

这里面有很多内容,让我们一行一行的过。awardItem函数需要三个参数。一个名为recipient的地址变量,一个名为hash的字符串变量,一个名为metadata的字符串变量。地址变量recipient是将收到NFT的人的钱包地址。hash的字符串变量是与正在创建NFT的内容相关联的IPFS哈希。而metadata的字符串变量是指向资产的JSON元数据的链接。元数据可能包括资产名称、指向该资产的图片链接或其他任何你想要的内容。

然后,在定义了函数之后,要把它变成public。这只是意味着它可以从智能合约外部调用,另外我们还定义函数的返回值为uint256类型。

币情观察室 | 全球经济萧条 如何抓住币圈投资机会:4月2日10:00,金色盘面邀请行情大V币业生做客金色财经《币情观察室》直播间,将分享《全球经济萧条 如何抓住币圈投资机会》,敬请关注,扫描下图二维码即可观看。[2020/4/2]

在函数里面,使用Solidity内置的require来自动拒绝合约的调用,如果哈希之前已经被用来铸造NFT。检查hashes映射是否有匹配的整数为1的哈希值,如果有,那么这个哈希值已经被使用了。

如果哈希没有被使用,我们将通过函数传递的哈希添加到哈希映射中,并将其值设为1。

最后,我们递增_tokenIds变量,并铸造代币,返回代币标识符。

快速总结一下,合约现在需要一个以太坊钱包地址和一个IPFS哈希。它会检查以确保哈希值没铸造过NFT。如果一切正常,就会创建一个新的NFT,来对应该IPFS哈希。

好了,我们已经写好了合约。现在怎么办?

让我们编译并部署它,现在要用之前安装的Ganache。通过ganache-cli或使用桌面客户端启动Ganache。

在项目目录下,有一个migrations的文件夹。需要创建一个新的迁移文件来部署UniqueAsset,新迁移文件为2-deploy-contract

;

完成并保存后,在终端中,在项目目录下,运行。

动态 | 社科院法学所刊文《对“去中心化”的区块链如何监管》:中国社科院法学所赵磊在《经济参考报》发表题为《对“去中心化”的区块链如何监管》的文章。文章指出,对区块链技术的监管,应该分为两个层面:一是结合区块链技术的具体应用场景,分行业进行监管;另一是针对区块链,制定专门的技术标准,以实现区块链技术的规范、统一。而判断某种商业活动或者社会管理活动是否可以应用区块链,至少应该从以下两方面进行衡量:一方面是区块链技术只能在虚拟空间中应用;另一方面是区块链技术无论在何种场景中应用,必须符合其去中心化、共识机制与分布式记账等技术特征。[2019/1/10]

trufflecompile

假设没有碰到任何错误,你的合约已经编译完成,现在可以部署了。简单的运行:

trufflemigrate

如果出现错误,你可能需要手动设置Ganache运行的端口,和你的truffle-config

;pinFileToIPFS();

上传成功后,你会得到这样的结果。

{IpfsHash:'QmfAvnM89JrqvdhLymbU5sXoAukEJygSLk9cJMBPTyrmxo',PinSize:2936977,Timestamp:'2020-12-03T21:07:13.876Z'}

这个哈希值就是你的资产的可验证的表示,它指向你在IPFS网络上的资产。如果有人篡改了你的资产,改变了你的资产,哈希值就会不同。在通过我们的智能合约铸造NFTs时,应该使用这个哈希值。任何提供公共网关的IPFS主机都可以为你显示资产内容。

声音 | 肖磊:区块链监管如何“去糟粕而留精华”存在挑战:据腾讯科技报道,肖磊发表专栏文章称,虚拟币市场有其特殊性,这可能会给监管带来一定的挑战和困扰。由于虚拟币这个概念,实际上来自于其底层技术“区块链”,如果站在监管层的角度,其中一个考虑是,去糟粕而留精华,把炒作虚拟币这个糟粕去掉,而留下“区块链”这个精华,这个可能会存在很大的挑战。[2018/8/23]

Pinata有一个网关,你可以在这里查看我刚才上传的资产。

最后,我们需要做的是创建一个JSON文件,代表我们的资产及其元数据。这使得你可能想要列出你的资产的任何服务更容易显示适当的元数据。让我们创建一个简单的JSON文件,像这样。

{"name":"MyKid'sArt","hash":"QmfAvnM89JrqvdhLymbU5sXoAukEJygSLk9cJMBPTyrmxo","by":"JustinHuner"}

你可以添加任何你喜欢的元数据,但重要的是要包含哈希值。这是对实际资产的参考。现在,用使用Pinata上传资产文件的方式上传这个JSON文件。当你拿回元数据的IPFS哈希值时,要把它保存起来。在创建NFT代币时需要这个。

还记得,智能合约采取的是元数据字符串吗?这个字符串将是元数据的IPFSURL。你要这样构造:

ipfs://YOUR_METADATA_HASH

因此,总结一下,你将向我们之前创建的智能合约函数中传递三个项目。

收件人地址

资产哈希

元数据URL

合并起来

NFT是我们处理各类商品所有权的重要改进。它们很容易转让,并简化了建立所有权和证明所有权的过程。不过,缺失的一环,一直是对具体标的物所有权的验证。

通过将资产保存到IPFS,并将IPFS哈希值与资产的NFT关联起来,我们可以将资产的可验证所有权扩展到验证标的资产本身的有效性。

Pinata有助于简化这一过程,使IPFS上的资产存储变得简单。

本翻译由CellNetwork赞助支持。

来源:https://medium.com/pinata/how-to-build-erc-721-nfts-with-ipfs-e76a21d8f914

参考资料

登链翻译计划:https://github.com/lbc-team/Pioneer

翻译小组:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

ERC-721标准:https://eips.ethereum.org/EIPS/eip-721

JamilaOmar,2017:https://medium.com/ipdb-blog/forever-isnt-free-the-cost-of-storage-on-a-blockchain-database-59003f63e01

IPFS:https://ipfs.io/

安装说明:https://docs.ipfs.io/how-to/command-line-quick-start/

安装:https://www.trufflesuite.com/ganache

安装:https://learnblockchain.cn/docs/truffle/getting-started/installation.html

安装:https://nodejs.org/en/

运行自己的IPFS节点:https://medium.com/pinata/how-to-deploy-an-ipfs-node-on-digital-ocean-c59b9e83098e

Pinning服务:https://medium.com/pinata/what-is-an-ipfs-pinning-service-f6ed4cd7e475

在此注册账户:https://pinata.cloud/

OpenZeppelin:https://openzeppelin.com/

OpenZeppelin:https://openzeppelin.com/

有一个方便的上传功能的UI:https://pinata.cloud/pinataupload

在这里:https://gateway.pinata.cloud/ipfs/QmfAvnM89JrqvdhLymbU5sXoAukEJygSLk9cJMBPTyrmxo/

Pinata:https://pinata.cloud/

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9762068.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?

标签:HTTTPS区块链PINhttps://etherscan.iohttps://etherscan.io区块链怎么入手Pinknode

比特币交易所热门资讯
比特傻观点 : 放 100 万

今日,小币又开始飞舞了,怎么看这些飞舞的小币呢?哪个小币你敢重仓?几天前和朋友聊,说起只有比特币、以太坊、dot、kusama、uni,就这5个币敢放100万,连YFI都不敢放更多.

1900/1/1 0:00:00
UNC:BKEX Global 关于支持UNC置换UNCX的公告

尊敬的用户:BKEXGlobal将支持UNC置换到UNCX,具体详情如下:?2021年3月13日10:00暂停UNC/USDT交易对交易功能.

1900/1/1 0:00:00
SEA:魔数持续落地-SEAL去中心化链商平台

从21世纪初至今,电子商务的发展已经走过了二十个年头。传统电商用过去二十年磨合出了一套十分成熟的运营体系,但随着时间的考验及用户群体的增加,其本身的弊端也尴尬地暴露出来.

1900/1/1 0:00:00
KEX:BKEX Global 关于上线DEGO(Dego Finance)并开放充值功能的公告

尊敬的用户:???????BKEXGlobal即将上线DEGO,详情如下:上线交易对:DEGO/USDT??币种类型:ERC20??充值功能开放时间:已开放??交易功能开放时间:2021年3月1.

1900/1/1 0:00:00
AVE:如何参与去中心化项目的治理

编者按:本文来自?闪电HSL,作者:黄世亮,Odaily星球日报经授权转载。去中心化组织Dao这个概念在币圈特别重要,本文想讨论如何参与去中心化项目的治理。先定义什么叫治理.

1900/1/1 0:00:00
UNI:如何参与去中心化项目的治理?先做好这三点功课

去中心化组织Dao这个概念在币圈特别重要,本文想讨论如何参与去中心化项目的治理。先定义什么叫治理.

1900/1/1 0:00:00