NFT在2021年迎来了爆发式的发展,从基础设施,到去中心化域名,再到交易市场,并逐步涉足虚拟市场、游戏场馆、DeFi+NFT、收藏品等各个方面。可以说,NFT生态在这个阶段已经初具规模。
**性和不变性是NFT核心价值主张的一部分。它为创作者提供了独特的版权保护优势,为数字收藏领域创造了非常广阔的想象空间。然而,由于基本设计缺陷,许多nft无法为消费者提供这两个特性。我们经常听到这样的说法,NFT“总是存在于区块链上”,但通常由于在区块链上存储数据的成本和空间限制,只存储与NFT实际内容相关的所有权记录和元数据。但是这些链接是脆弱的,使用HTTP协议将用户指向特定的位置而不是特定的资产。这意味着链接指向的内容可能会在将来的任何时候更改或脱机,因此原始资产将永远丢失(并且所有权记录变得毫无价值)。
星际文件系统(IPFs)有助于解决这些问题,利用IPFs的NFTs可以获得一些优势。当然,遵守既定惯例对于确保网络上存储的数据的持久性和可访问性至关重要。随着不可替换代币(non-replacement token,NFT)的流行,是时候回顾一下在IPFs上链接和存储NFT数据的**实践了。在本文中,我们将关注两个最近感兴趣的领域:内容寻址和内容完整性。
内容寻址
IPFs内容标识符(CID)是一种非常稳定和灵活的方法,可以唯一地标识任何内容,而不管它存储在何处或如何存储。为了**化这些好处,开发人员应该遵循以下建议和约定来链接到IPFs数据。
需要以下信息:
1.1 CID编号
CID是一段内容的自描述唯一标识符。例如:26lguzylfyb767fftyb767fftyb767f
CID应该在应用程序代码和其他上下文中使用,无论您使用的是IPFs还是其他系统。我们建议,每当CID存储在磁盘上时,尤其是在元数据和区块链记录转换为IPFs URI之后,这些ID在创建之后不能更改。包括ipfs://URIscheme为CID添加了一个重要的上下文,它清楚地向用户和自动化工具显示了如何查找内容。
1.2 IPFS URI
IPFs URI统一资源标识符(或URI)用于指定给定上下文中的特定内容。上下文由URI方案决定(前缀为URI,后跟://)。IPFs的URI方案是IPFs。URI可以有选择地包含附加到结尾的路径
例如:
ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
ipfs://bafybeigvakaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4
IPFs URI是指向文件或目录的IPFs链接的规范标识符。从智能合约链接到IPFs数据时,请使用IPFs URI明确指示应使用IPFs检索数据。当链接到存储在IPFs上的图像和其他媒体资产时,IPFs uri也应该在NFT的结构化元数据中使用。
1.3 HTTP**URL
HTTP**为不能在本地解析IPFs URI的旧浏览器提供互操作性。此类链接应仅在应用程序的表示层中使用,不应存储在区块链或NFT元数据中。
例如:
https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
请注意,HTTP**重新中心化了内容分发,中间有人,只有一个故障点—如果**操作员脱机或无法访问,则链接断开。但是,具有IPFs内置支持的浏览器(通过IPFs companion browser扩展或通过brave的本机支持)可以避免这些问题,因为它们可以自动从这些链接提取CID,并根据用户偏好加载IPFs以提供数据。
如何操作
开发人员应该根据上下文设置不同的链接格式。
2.1链条上
NFT智能合约应该将IPFs URI返回到与每个代币关联的资产和元数据。
例如:
ipfs://bafybeibnsoufr2renqzsh347nrx54wcu5lgkeivez63xvivplfwhtpym/metadata.on
我们建议在强制转换每个代币并在链上存储完整的URI之前生成IPFs URI。这是满足URI智能合约接口预期用途的最简单方法,IPFs://URI方案使任何分布式应用程序都可以轻松地使用IPFs查看可用数据。
2.2元数据
在元数据中,IPFs URI应该被用作以明文形式链接到IPFs资源的最清晰和最可靠的方法。这是引用NFT媒体资产的IPFs URI的示例:ipfs://bafybeigvakaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4
开发人员可能希望包含到公共HTTP**的链接,以实现传统的互操作性。
理想情况下,应该避免链接到内容的其他替代方法(例如,非**HTTP url)。因为从特定位置通过HTTP提供的内容可能会更改,所以除了临时内容镜像之外,您不能依赖于此类链接。因此,在数据**不变存储的区块链上,通过HTTP引用内容是非常脆弱和危险的。
相反,IPFs URI总是有效的,因此可以安全地将其视为指向其数据的规范链接。通过使用IPFs uri作为链接的“事实源”,应用程序只需生成新的**链接,就可以轻松地支持多个存储解决方案,或者随着时间的推移切换到不同的**。这比“硬编码”特定**到**区块链记录更灵活。
2.3应用
在面向用户的应用程序中,开发人员应该以两种方式链接到IPFs内容:IPFs URI和HTTP**URL。
直到更多浏览器支持IPFs URI方案的本机解析。请注意,您可以根据需要从原始CID或IPFs URI轻松生成这两种类的链接。
这是我们要找的dweb.link链接上公共**的HTTP**URL示例:
您可以使用CID作为子域而不是URL路径来编写相同的链接:
两个示例都对应于以下规范的IPFs URI:ipfs://bafybeigvakaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4
影响
NFT的主要问题之一是资产的完整性—这包括资产本身以及与资产相关的任何数据。IPFs通过使用CID来验证自链接创建以来没有发生任何更改,从而保护NFT数据的完整性。开发人员应该遵循以下建议,从IPFs的内置数据验证中获得**的好处。
3.1将元数据链接到其资产
元数据应被视为NFT值的一个组成部分。因此,为了保留资产的价值,元数据应该与资产一起存储在IPFs上,以确保两者都是可访问的。
实现这一目标的方法如下:(1)创建两个新目录(一个用于资产,一个用于元数据);(2)将资产添加到其目录中;(3)将资产目录添加到IPFs并注意其CID;(4)在自己的目录中创建元数据,并在(3)中使用CID引用资产来创建IPFs URI。URI应包括目录的CID和资产的文件名;(5)将元数据目录添加到IPFs中,并注意其CID;(6)使用(5)中的CID为元数据创建IPFs URI,并将URI存储在链上,形成所有权记录。
这个过程保留了开发人员在链接中包含文件名的能力(对于用户交互很有用),同时确保元数据和资产可以相互独立地引用。
CIDmetadata:/-元数据
可以在以下位置访问资产:IPFs://{asset directory CID}/资产文件名
以下是一些包含链接到图像文件的IPFs URI的ON元数据示例:
{
quot;姓名quot;:quot;没时间解释!quot;,
quot;描述quot;:quot;我说没时间解释,我坚持这一点。quot;,
quot;图像quot;:quot;ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpegquot;
}
IPFs URI可用于提取图像
ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg. 出于演示目的,您的应用程序可以创建一个**URL,以允许用户使用HTTP访问图像,例如HTTPS://dweb.link/ipfs/bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/编号-是时候-解释.jpeg
创建元数据后,元数据将作为ON文件存储在IPFs上,生成的CID用于创建类似URI的URI;ipfs://bafybeibnsoufr2renqzsh347nrx54wcu5lgkeivez63xvivplfwhtpym/metadata.on,可以存储在智能合约中。
可用性
使用像IPFs这样的去中心化网络来提供内容的主要原因是为了防止链路故障。这需要网络中的其他节点通过托管图像数据来实现。为了确保链接的内容仍然可用,开发人员应该在他们管理的IPFs节点上修复内容的CID,并将内容保存和分发给其他需要帮助的人,以便自己托管内容。当然,您也可以通过固定服务托管内容。
文章标题:如何在IPFs上存储NFT?
文章链接:https://www.btchangqing.cn/227993.html
更新时间:2021年06月12日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。