如何在IPFS上存储NFT?_币世界+星际视界

2021-04-08 06:56 栏目:行业动态 来源:网络整理 查看()

NFT在2021年迎来了爆炸性的发展,从基础设施,到分散的域名,到交易市场,逐渐涉及虚拟市场,游戏场所,DeFi NFT,收藏品等。可以说,NFT的生态在这个阶段已经初具规模。如何在IPFS上存储NFT?_币世界+星际视界

NFT在2021年迎来了爆炸性的发展,从基础设施,到分散的域名,到交易市场,逐渐涉及虚拟市场,游戏场所,DeFi NFT,收藏品等。可以说,NFT的生态在这个阶段已经初具规模。

如何在IPFS上存储NFT?_币世界+星际视界

永久性和不变性是不可替换证书(NFT)的核心价值主张的一部分。为创作者在版权保护方面提供了独特的优势,为数字收藏创造了巨大的想象空间。但是由于设计上的根本缺陷,目前很多面向消费者的NFT都无法提供这两个特性。我们经常听到这样的说法,即NFT“永远存在于区块链”,但通常,由于在区块链存储数据的成本和空间限制,实际上只存储与NFT实际内容相关的所有权记录和元数据。但是这些链接是脆弱的,HTTP协议是用来把用户指向特定的位置,而不是特定的资产。这意味着链接所指向的内容在未来随时可能被更改或离线,从而使原有资产永远丢失(所有权记录变得毫无价值)。

行星际文件系统(IPFS)可以帮助解决这些问题,使用IPFS的NFTs可以获得一些优势。当然,遵守既定惯例对于确保存储在网络上的数据的持久性和可访问性非常重要。随着不可替换令牌的流行(NFT),是时候回顾一下在IPFS链接和存储NFT数据的最佳实践了。在本文中,我们将讨论最近关注的两个领域:内容寻址和内容完整性。

内容寻址

IPFS内容标识符(CID)是一种非常稳定和灵活的方法,可以唯一地识别任何内容,无论它存储在哪里或如何存储。为了充分利用这些优势,开发人员应该遵循以下建议和实践来链接到IPFS数据。

需要掌握以下信息:

1.1 CID

CID是一段内容的自描述唯一标识符。示例:bafybadyrzt5sf p7udm7hu 76 uh 7y 26 nf 3 efuoylqabf 3 clgtqy 55 fbzdi

无论您使用的是IPFS系统还是其他系统,都应该在应用程序代码内部和其他环境中使用CID。我们建议,无论何时将身份证存储在磁盘上,特别是在元数据和区块链记录中将其转换为IPFSURI之后,这些身份证在创建后都不能更改。uri方案包括ipfs ://为CID增加了重要的上下文,它清楚地向用户和自动工具显示如何查找内容。

1.2 IPFSURI

IPFSURI统一资源标识符(URI)用于指定给定上下文中的特定内容。上下文由URI方案决定(附加到URI作为前缀,后跟://)。IPFS的URI计划是IPFS。URI可以选择性地包含一个附加到结尾的路径

例如:

ipfs ://bafybeigdyrzt5sf p7udm7hu 76 uh 7y 26 nf 3 efuoylqabf 3 clgtqy 55 fbzdi

ipfs ://bafybeigvafaks2 bviv tv46 n2z 7 uxszpvl 25 jhvzc 6 dbhnjjgjkbeia 5 JTA/NFT . MP4

IPFSURI是IPFS链接到文件或目录的规范标识。当从智能合同链接到IPFS数据时,请使用IPFSURI明确指出IPFS应用于检索数据。当链接到IPFS上存储的图像和其他媒体资产时,NFT的结构化元数据中也应该使用IPFS uri。

1.3 HTTP网关URL

HTTP网关为不能在本地解析IPFS URI的旧浏览器提供了互操作性。此类链接应仅用于应用程序的表示层,不应存储在区块链或NFT元数据中。

例如:

https://dweb . link/ipfs/bafybeigdyrzt5sfp 7 udm 7hu 76 uh 7y 26 nf 3 efuoylqabf 3 clgtq 55 fbzdi

请注意,HTTP Gateway重新集中了内容分发,显示了中间人向量和单点故障-如果网关运营商离线或无法访问,链接将被断开。但内置支持IPFS的浏览器(通过IPFS伴侣浏览器扩展或Brave提供的原生支持)可以避免这些问题,因为它们可以自动从这样的链接中提取CID,并根据用户喜好加载IPFS提供数据。

如何操作

开发人员应该根据上下文设置不同的链接格式。

2.1链上

NFT智能合同应该将IPFSURI归还给与每个令牌相关联的资产和元数据。

例如:

ipfs ://bafybeibnsoufr2 renzsh 347 nrx 54 wcu bt5 lgkeivez 63 xvivlfwhtpym/metadata . JSON

我们建议在铸造每个令牌之前生成IPFSURI,并将完整的URIs存储在链上。这是满足使用URIs的智能合同界面的最简单方法,ipfs://URI方案使任何分布式应用程序都可以很容易地使用ipfs来查看数据是否可用。

2.2元数据

在元数据中,IPFSURI应该作为链接到IPFS资源的最清晰和最可靠的方式使用。这是IPFSURI引用NFT媒体资产的一个例子:ipfs ://bafybevafabaks 2 bvivtv 46 n2z 7 uxzpvl 25 jhvzc 6 dbhnjjjkjbeia 5jta/NFT . MP4。

为了传统的互操作性,开发人员可能希望包含到公共HTTP网关的链接。

理想情况下,应该避免链接到内容的其他替代方法(例如,非网关HTTP URL)。由于从特定位置通过HTTP提供的内容可能会发生变化,因此除了临时内容镜像之外,您不能依赖此类链接。因此,在区块链,通过超文本传输协议引用内容是非常脆弱和危险的,因为那里的数据是永久和不可移动的。

相反,IPFSURI总是有效的,所以他们可以安全地被视为他们的数据的规范链接。通过使用IPFSURI作为链路的“事实来源”,应用程序可以轻松支持多种存储解决方案,或者随着时间的推移轻松切换到不同的网关,只需生成新的网关链路。这比“硬编码”特定网关到永久区块链记录更灵活。

2.3应用

在面向用户的应用程序中,开发人员应该以两种方式链接到IPFS的内容:IPFSURI和HTTP网关网址。

直到更多的浏览器支持IPFS URI方案的原生分辨率。请注意,这两个链接都可以根据需要从原始的CID或IPFS URI轻松生成。

以下是dweb.link上公共网关的HTTP网关URL示例:

https://dweb . link/ipfs/bafybeigvafaks 2 bviv tv46 n2z 7 uxszpvl 25 jhvzc 6 dbhnjjgjkbeia 5 JTA/NFT . MP4

您可以使用CID作为子域而不是网址路径来编写相同的链接:

https://bafybeijgvafaks2 bvivtv46 n2z 7 uxspvl 25 jhvzc 6 dbhnjjgjkbeia 5 JTA . ipfs . dweb . link/NFT . MP4

这两个示例对应于以下规范的IPF Sri:IPF s ://bafybevafaaks 2 bviv tv46 n2z 7 uxszpvl 25 jhvzc 6 dbhnjjjkbeia 5 JTA/NFT . MP4。

功能

NFT的主要问题之一是资产的完整性,包括资产本身和与资产有关的任何数据。IPFS保护NFT数据的完整性,使用CID来验证自链接创建以来没有任何变化。开发人员应遵循以下建议,从IPFS的内置数据验证中获得最大收益。

3.1将元数据链接到其资产

元数据应被视为NFT价值观的组成部分。因此,为了保护资产的价值,元数据应与资产一起存储在IPFS,以确保两者都可以访问。

实现这一目标的方法如下:(1)创建两个新目录(一个用于资产,一个用于元数据);(2)向其目录添加资产;(3)将资产目录添加到IPFS并关注其CID;(4)在您自己的目录中创建元数据,并使用(3)中的CID引用资产来创建IPFSURI。URI应包含目录的CID和资产的文件名;(5)将元数据目录添加到IPFS,并关注其CID;(6)使用(5)中的CID为元数据创建IPFS URI,并将URIs存储在链上以形成所有权记录。

这个过程保留了开发人员在他们的链接中包含文件名的能力(对用户交互有用),同时确保元数据和资产可以彼此独立地被引用。

将在以下位置访问元数据:ipfs :/{元数据-目录-cid }/元数据-文件名

可在以下位置访问该资产:ipfs :/{资产-目录-cid }/资产-文件名

以下是JSON元数据的一些示例,包括链接到图像文件的IPFSURI:

{

名字是“:”没时间解释了,

描述‘:’我说没时间解释了,我袖手旁观。”,

image ' : ' ipfs ://bafybiedfjqmasnpu 6 z7 gvn 7l 6 wthdcyzxh 5 uys tky3 xvutddbapchbopi/no-time-to-explain . JPEG '

}

您可以使用IPFSURI提取图像:

ipfs ://bafybeidfjqmasnpu 6 z7 gvn 7l 6 wthdcyzxh 5 uys tky3 xvutddbapchbopi/no-time-to-explain . JPEG .为了演示,您的应用程序可以创建一个网关网址,以允许用户使用HTTP获取图像,例如,https://dweb . link/IPFS/bafyeidfjqmasnpu 6z 7 gvn 7l 6 wthdcyzxh 5 uys tky 3 xuddbapcbobi/no-time-to-explain . JPEG。

元数据一旦创建,就作为json文件存储在IPFS,并且通过使用生成的CID创建类似于URI的JSON,该CID可以存储在智能合同中。

可用

使用IPFS这样的分散网络提供内容的主要原因是为了防止链路故障。这需要通过其他网络中的节点托管镜像数据来实现。为了确保链接的内容仍然可用,开发人员应该在他们管理的IPFS节点上修复内容的CID,并与希望提供帮助的其他人一起保存和分发内容,以便自己托管内容。当然,您也可以通过固定服务托管内容。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发