金色观察|Ceramic:Web3数据开发协议
Ceramic 为使用可组合数据构建Web3的应用程序提供了一个去中心化网络。Ceramic 的 API 使应用程序能够在可扩展的去中心化数据网络存储、修改和检索数据,同时保持跨应用程序数据的可组合性。
Ceramic 应用程序开发堆栈由下面列出的几个关键组件组成,按从最高级别的框架到最低级别的网络 API 的顺序排列。
1. 框架
框架抽象了底层堆栈的大部分复杂性和配置,为开发人员提供了一个进入 Ceramic 开发的简单入口。
Ceramic 最流行的框架是Self.ID SDK,是一个使用可组合的、以用户为中心的数据构建 Ceramic 应用程序的框架。除了为各种开发环境提供完整的 Ceramic 设置之外,Self.ID 还允许用户使用他们现有的区块链钱包进行身份验证,还包括一些最流行的数据模型,让您可以与网络上的数据进行开箱即用的组合,以引导您的应用程序。
2. 中间件
中间件是不属于 Ceramic 核心协议,但为开发人员提供附加功能和便利开发工具的总称。
Ceramic 最流行的中间件是Glaze 套件,开发人员可以在构建应用程序时与 Ceramic 客户端一起使用。
Glaze 套件包括一组数据模型管理工具、用于基于帐户的存储和检索的运行时工具,以及用于缓存来自网络的数据的客户端工具。
3. 数据模型
数据模型是一个或多个数据流的集合,由它们的模式和关系指定,它们定义了 Ceramic 上的单个数据结构。数据模型构成了 Ceramic 可组合性的基础。当多个应用程序共用相同的数据模型时,它们可以共用相同的数据。通常,数据模型用于表示应用程序功能,例如社交图谱或用户配置文件。
最流行的 Ceramic 数据模型可以在Data Models Registry 中找到,这是一个由社区创建的 Ceramic 数据模型的开放注册表。
4. 流
流是 Ceramic 网络上的单个状态实例。在 Ceramic 上创建的每个流都必须指定其流代码,这是一个脚本,其中包含用于在收到新事务时将流的当前状态转换为下一个状态的处理逻辑。通常,您可以将流代码视为可重用的状态处理逻辑,将流视为它生成的各个状态。
目前Ceramic 支持两种类型的流:tile 文档,它存储带有模式验证的可变 JSON 文档,以及CAIP-10 链接,它存储 Web3 钱包帐户和 Ceramic 帐户之间的链接。
5. 账户
帐户是 Ceramic 上的用户实体,可以拥有流并向这些流提交交易。Ceramic账户符合去中心化身份基金会 (DIF) 概述的标准去中心化标识符 (DID) 规范。DID 非常有用,因为它们可以将 Ceramic 帐户与任何单个 Web3 钱包地址或公钥解绑,允许用户从一个或多个 Web3 钱包帐户控制同一个 Ceramic 帐户,并在此过程中提供抽象以启用真正的跨链帐户.
最流行的帐户客户端是DID JSON-RPC 客户端,它提供标准帐户 API,必须与 Ceramic 客户端一起使用,以使经过身份验证的帐户能够在网络上执行交易。DID 客户端目前支持两种不同的账户类型:3ID DID,允许从多个 Web3 钱包地址控制一个 Ceramic 账户,以及Key DID,它只能由一个 Web3 钱包地址控制。
6. 客户端
客户端库允许您的应用程序连接到 Ceramic 节点。不同的客户端可能会选择实现不同的高级、特定于语言的开发人员 API。在向 Ceramic 节点提交请求之前,客户端会将这些 API 调用转换为标准 Ceramic HTTP API,用于与 Ceramic 节点进行实际通信。
Ceramic 上最受欢迎的客户端是JS HTTP 客户端,它允许开发人员使用 JavaScript 将他们的应用程序连接到 Ceramic。
7. 网络 API
Ceramic HTTP API 是 Ceramic 的最低级接口。每个客户端和节点都在后台使用它进行通信。除非应用程序开发人员特别需要使用 HTTP,否则大多数人从不需要直接与此 API 交互,而是通过对开发人员更友好的客户端 API 访问它。然而,希望用新语言编写客户端的协议开发人员将需要使用此规范。
8.核心协议
CIP-11“身份索引”(通常称为“IDX”)是一种去中心化身份协议,它使开发人员可以轻松构建具有用户控制流的应用程序来存储数据,以及发现和利用在第三方应用程序。使用 IDX 构建允许用户以独立于任何单个应用程序的方式控制其身份和数据,同时允许开发人员构建数据丰富的应用程序,而无需在集中式服务器上保管用户数据或强制用户重新创建的糟糕用户体验每个应用程序上的相同数据。
IDX 旨在存储“用户”数据,因为这是它的主要用例。然而,IDX 可用于存储由 DID 表示的其他类型主体的数据,例如企业、组织、应用程序、资产 (NFT) 或设备 (IoT)。
DID 兼容性:IDX 不提供DID,但依赖它们来提供分散的、与平台无关的标识符。IDX 可以使用 Ceramic 中支持的任何 DID 方法。
基于流的存储:将用户或应用程序的数据存储在 Ceramic 上用户控制的流中。流中的数据可以明文或加密形式存储。IDX 创建的流享有 Ceramic 网络提供的可变性、持久性、复制和可用性的所有好处。
身份中心:每当用户通过 IDX 将数据存储在新流中时,其streamID都会自动注册到他们的索引中,这是一个单独的流,用作对其所有数据的引用的单一目录。该索引使用户的所有数据关联都存在于一个位置,这反过来又使任何应用程序都可以通过简单地查询其索引来发现有关用户的所有数据。
公共、语义数据描述:通过 IDX 存储的所有数据都在用户索引中进行语义描述和组织,允许多个应用程序根据模式和元数据使用相同的数据,而不是用户首次创建数据时使用的应用程序。
跨应用程序数据可移植性:DID、流、集线器和语义数据描述的组合允许用户数据以与应用程序无关的方式存储,并且可以跨不同的应用程序或接口使用。没有应用程序维护“特殊权限”,因为用户可以完全控制。
标准接口:IDX 为与所有数据交互提供了标准化的读/写 API,因此应用程序永远不会被迫集成一次性 API。