链上与链下

开发人员首先要决定是代表链上的元数据还是代表链外的元数据。也就是说,您是将元数据直接放置在代币的智能合约中,还是将其单独托管? 链上元数据 在链中表示元数据的好处是

开发人员首先要决定是代表链上的元数据还是代表链外的元数据。也就是说,您是将元数据直接放置在代币的智能合约中,还是将其单独托管?

链上元数据

在链中表示元数据的好处是:

1) 它与代币一起永久地存在,并且在任何给定应用程序的生命周期中保持不变;

2) 它可以根据链中的逻辑进行更改。如果资产的持续价值远超其最初创造的价值,那么第一点就非常重要。比如,不管用来创造艺术的原始网站还在不在,数字艺术在整个时代都将继续存在下去。因此,让代币标识符的生命周期必须保留其元数据,这一点很重要。 而且,链上的逻辑可能需要与元数据交互。例如,对于 CryptoKitty来说,它的“世代”影响了 CryptoKitty的繁殖速度,而且所有的繁殖发生在链上(高代猫的繁殖速度较慢)。因此,智能合约中的逻辑需要能够读取其内部状态中的元数据。

链下元数据

尽管有这些优点,但大多数项目都是以太坊区块链当前的存储限制为条件,对元数据进行脱链存储的。因此,ERC721标准包含一个称为方法 tokenURI 的方法,开发人员可以使用它告诉应用程序在哪里为给定的项目查找元数据。

tokenURI 方法将返回一个公共的 URL。然后又返回一个 JSON数据字典,类似于上面的示例 CryptoKitty 字典。元数据应该与官方的 ERC721 的元数据标准保持一致,以便 OpenSea 等应用程序使用。在 OpenSea,我们想让开发人员建立丰富的元数据,这些数据可以在我们的市场上显示,因此我们增加了ERC721 元数据标准的扩展,使开发人员可以包括特性、动画和背景颜色。

链下存储解决方案

如果要脱离区块链存储元数据,则有两种选择:

集中式服务器

最简单的元数据存储方案是在一个像 AWS 这样的中央服务器或云存储解决方案上存储。当然,这样做也有一个缺点:

1) 开发人员可以随意更改元数据

2) 如果项目离线,那么元数据可能就不存在了。

为解决问题2,目前有几个服务(包括 OpenSea )将元数据在其自己的服务器上缓存在,以确保即使原始托管解决方案失败,也能有效地向用户提供元数据。

越来越多的开发人员,特别是数字艺术领域的开发人员,都在使用星际文件系统(IPFS)来将元数据离线存储起来。IPFS是一个点对点的文件存储系统,允许在计算机之间保存内容,因此文件可以复制到许多不同的位置。这确保了 A)元数据是不可变的,因为它是由文件的 hash唯一寻址的,而 B)只要有一个节点愿意托管数据,数据就会随着时间持续存在。现在,有了 Pinata 等服务,开发人员可以通过处理部署和管理 IPFS 节点的基础设施以及高期望值的 Filecoin 网络来简化这一过程(理论上),即在 IPFS 之上添加一层来激励节点托管文件。

—-

编译者/作者:紫瑰

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

0

发表评论