1.3 HTTP网关URL HTTP网关为无法本地解析IPFS URI的旧版浏览器提供了互操作性。此类链接仅应在应用程序的表示层中使用,而不应存储在区块链或NFT元数据内部。 例如: https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi 请注意,HTTP网关将内容分发重新集中化,同时显示中间人矢量和单点故障-如果网关操作员离线或不可达,则链接将断开。但是,对IPFS内置支持的浏览器(通过IPFS Companion浏览器扩展或通过Brave提供的本机支持)可以避免这些问题,因为它们可以自动从此类链接中提取CID并加载IPFS根据用户首选项提供数据。 如何操作 开发人员应根据上下文设置不同的链接格式。 2.1 链上 NFT智能合约应将IPFS URI返回到与每个令牌关联的资产和元数据。 例如: ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json 我们建议在铸造每个令牌并在链上存储完整URI之前生成IPFS URI。这是符合期望使用URI的智能合约接口的最简单方法,并且ipfs:// URI方案使任何分布式应用程序都可以轻松地使用IPFS看到数据可用。 2.2 元数据 元数据中,应该使用IPFS URI作为以明文形式链接到IPFS资源的最明确,最可靠的方法。这是引用NFT媒体资产的IPFS URI的例子: ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/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的示例: https://dweb.link/ipfs/bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4 可以使用CID作为子域而不是URL路径来编写相同的链接: https://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta.ipfs.dweb.link/nft.mp4 这两个例子都对应于以下规范的IPFS URI: ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4 (责任编辑:admin) |