技术社区分享|在 Flow 上引入 NFT metadata

有一组开发者在 Flow 核心团队的帮助下,一直在为 Cadence 的 NFT 标准进行拓展,以增加对链上 NFT metadata 的支持。我们现在很高兴地宣布,这项拓展已经可以使用了!

——Pete

⚠️ 这是一个持续发展的标准,未来会有更多的更新和拓展。今天你就可以实现这项拓展,但是如果你想要用到 NFT 版税功能的话,我们建议你等候版税视图实现。

版税视图:https://github.com/onflow/flow-nft/issues/53

这项工作已经开展几个月了,所以我们在这里做一个回顾:

  • 2021 年 12 月 15 日 —— @bjartek @briandilley 和 @bluesign 提议了一个 metadata 的基础标准,并在 FLIP-0636 中被采纳。

  • 2022 年 1 月 4 日 —— 我们将基础标准合并到了 Flow NFT 的主代码仓库里。

  • 2022 年 1 月 19 日 —— 我们为 NFT 的描述和缩略图定义了第一个 metadata 基础结构。

  • 2022 年 1 月 25 日 —— 新标准被部署到了 Flow 的测试网和主网。

为什么这个标准很重要?

  • 生态系统的网络效应 —— 是时候统合 Flow 的 NFT 了。这个标准将允许所有的 NFT 项目使用一种共同的语言,这将为他们的强力集成铺平道路。我们都在一台共享的计算机上运行,所以让我们来使用它吧!

  • 为用户提供更好的实用性 —— 真正的所有权意味着用户应该能够在任何地方使用他们的 NFT。在我们正在建设的开放世界中,没有人愿意被困在孤岛上。

  • 减少开发人员的烦恼 —— 一个通用标准消除了开发者的摩擦,使其更容易创建一个可以到处使用的 NFT。不再有更多特例或硬编码了!

在 Flow 上有一个由许多独立项目组成的、不断增长的 NFT 生态系统。每个项目本身都很棒,但任何系统的真正力量都来自其各部分的总和。NFT 基础标准定义了 NFT 的机制(铸币、转移等),但没有定义这些 NFT 在不同应用中的外观和功能。

我们开始看到第一波聚合了多个项目的 NFT 的应用。Blocto Bay、Gaia 和 Rarible 等市场现在允许用户在一个地方交易各种 NFT。Alchemy NFT API 提供了 Flow 链上 NFT 的索引。Blocto 和 Dapper 等钱包为用户提供了一种收集 NFT 的方法,而 Find 允许用户将 NFT 添加到他们的公共资料中。Metadaba 标准使得开发人员能够定义如何在所有这些应用中显示他们的 NFT。

NFT metadata 如何在 Flow 上工作

Flow 旨在支持应用的可组合性:多个应用程序相互交互、基于彼此进行构建的能力。区块链系统提供了一个共享的执行状态,可组合的应用可以在其中蓬勃发展。例如,在 Flow 上,应用间的通信发生在 Cadence 函数调用中,而不是 HTTP 请求中。

考虑到这一点,这些是 NFT metadata 的高级设计目标:

  • 重要数据应该直接存在于链上。虽然将图像和视频等大型资源放在链下存储中是很常见的做法,但其他信息(例如 NFT 的特征)更适合在链上存储。这会允许另一个 Cadence 合约在你的 NFT 之上构建有趣的逻辑(即它是为可组合性而构建的)。

  • Metadata 应该是灵活的。我们无法预测 NFT 未来的所有用例,因此我们定义了一个标准框架,它可以在新用例出现时轻松扩展。任何人都可以提出新的 metadata 格式(称为 "视图")。

  • 新标准应该是非破坏性的。作者特别注意确保该标准不会破坏现有的 NFT 应用。你要是准备好了,就可以随时升级你的 NFT 合约,而不会破坏你当前的实现。

如何实现 NFT metadata 标准

我们将很快发布完整的开发指南,但如果您想抢占先机,请查看最新版本的 Kitty Items 示例应用,它已经实现了新的 metadata 标准。

如前所述,如果你想在生产环境中使用版税视图,则需要稍作等待。

加入讨论

随着标准的发展,新 metadata 视图的相关内容将在 Flow NFT 代码仓库中进行讨论。欢迎在 GitHub 上加入我们的讨论!

  • 版税——关于 NFT 版税的 metadata 标准格式的讨论正在进行中。版税是在未来的销售中支付给 NFT 创建者的费用。

  • 序列号——一个为 NFT 序列号定义 metadata 视图的提议。

Github讨论: https://github.com/onflow/flow-nft/issues

这里是其他视图的相关讨论:

  • Collection 级别的视图:https://github.com/onflow/flow-nft/issues/62

  • 用于表示一个 NFT 被上架用于销售/拍卖/交换等的 Listing 视图:https://github.com/onflow/flow-nft/issues/61

  • 用于表示 NFT 的稀有性的视图:https://github.com/onflow/flow-nft/issues/60

  • 用于表示某 NFT 供人查看的外部网页地址的视图:https://github.com/onflow/flow-nft/issues/59

  • 用于表示物品 ID 的视图:https://github.com/onflow/flow-nft/issues/56

你可能感兴趣的