Ceramict同步数据区块链模型(构建 Web3 数据应用程序的下一个架构)兔子洞 cyberconnect 用的就是ceramic的技术

正如我的合作伙伴 Brad在 2019 年指出的那样,第一代互联网(又名“Web 1”)是作为“无状态”系统构建的。换句话说,数据包可以在网络中移动,但网络本身不能存储它们或从中创建持久数据。因此,出现了一代公司(又名“Web 2”)来解决这个问题,本质上是为了让数据可以保存并在应用程序之间使用。

快进 20 年,Web 2 层中的数据为股东、消费者、开发人员和小型企业提供了巨大的价值。但由于其基本架构,它的实用性从根本上受到限制:存储在公司内部的数据库中。虽然 Web 2 数据库之间存在一些连接,主要是通过 API 和数据交换协议(如 oAuth),但这一层的基本架构是专有数据之一,单独保存。这对创新、知识和消费者选择施加了结构性限制,但直到最近,它还是唯一可行的方法。

今天,“Web 3”引入了一种解决数据问题的新方法:从专有的、分区的、孤立的模型转变为通用、公共、验证、同步数据系统的区块链模型。Web 2 的默认特性是默认的隔离数据,而 Web 3 的默认特性是连接的、可组合的数据。该系统的第一个用例是货币和金融资产,因为拥有一个全球性的、公共的、不可变的交易分类账是一种非常有用的数据结构,并且由此产生的资产可以保值。但这只是将在 Web 3 架构上构建的无限数据结构之一。

PC时代,竞价广告平台多采用CPC出价模式:平台与客户买卖的是点击;一个点击值多少钱,客户来算;而广告的点击率如何,媒体来算。

这将我们带到了Ceramic的地方。今天,我们很高兴地宣布我们对 Ceramic 网络开发商3Box Labs的A 系列投资。

Ceramic 是用于可组合 Web 3 数据的去中心化网络。Ceramic 的数据网络支持在整个 Web 3 生态系统中发布、验证和重用数据,因此许多应用程序可以使用标准数据模型构建在通用数据集上。

这在实践中是什么样的?

  • 成员资料和声誉系统可以跨 DAO、协议和应用程序共享,跨项目发展和引用属性(例如:DAOhaus、BuilderDAO、Rabbithole)
  • 可以跨系统开发和共享社交图谱、社交网络和发布原语(例如Cyber​​Connect 、 The Convo Space)
  • NFT 元数据可以进行可验证的扩展和丰富(例如:FungyProof、GeoWeb)

这些只是几个示例,在每种情况下,Ceramic 都提供公共数据的交钥匙重用,以及用于推动流行数据类型的通用标准的系统,从而使跨应用程序的重用和重新混合成为可能。

虽然 Web 3 还处于早期阶段,但我们已经学到了一些东西。首先,经过验证的公共数据资产具有真正的价值:从简单的支付交易,到复杂的 DeFi 协议,再到代表媒体所有权的 NFT。其次,可组合性推动创新:当世界上任何人都可以集成、包装、分叉和重新混合时,新想法会以令人眼花缭乱的速度快速构建。第三,标准化推动可组合性:ERC-20 和 ERC-721 等新兴标准使复杂的开放系统能够以(大部分)可预测的方式进行互操作。陶瓷建立在所有这些顺风之上。

对于 Web 3 中的开发人员来说,这种方法意味着能够更快地构建数据丰富的应用程序,从而受益于已经与用户、帐户和资产相关联的现有数据网络和数据标准。Ceramic 不是将这些构建到特定于应用程序的数据库中,而是为开发人员提供了一条不同的路径:构建并贡献于一个单一的全球数据网络。Ceramic 网络在过去几个月一直处于测试阶段,为数百个应用程序和数百万个请求提供服务,并将很快在主网上启动。希望在 Ceramic 上进行构建的开发人员可以从教程、生态系统示例和开发文档开始。

Ceramic 背后的团队,包括创始人Michael、Danny、Joel,多年来一直深入研究 Web 3 数据的内部结构,他们正在招聘. 与我们“开放、去中心化数据的推动者”和“获取知识”的投资论文相一致,我们很高兴与 Multicoin Capital 的朋友和一长串其他投资者一起支持 3Box 的增长和推动 Ceramic 主网的推出和支持者。

官网:https://blog.ceramic.network/

原文:https://www.usv.com/writing/2022/02/ceramic/


Ceramic 社区致力于为构建 Web3 数据应用程序提供最佳的开发人员体验。在过去的几个月里,社区对 Ceramic 新兴的开源开发工具和数据标准生态系统进行了重大升级,包括用更强大、更灵活的工具集替换流行的 IDX.js 客户端。这篇文章描述了截至2021 年 10 月在 Ceramic 上构建应用程序的最佳方法。

Web3 数据架构

Web3 和 Web2 应用程序之间的主要区别在于它们的数据架构。Web3 应用程序依赖于以用户为中心(“自我主权”或“主权”)的数据存储架构。在此模型中,应用程序数据托管在分散的网络上,与每个单独的用户一起存储,并由应用程序客户端写入和查询。这与 Web2 应用程序形成鲜明对比,后者依赖于以应用程序为中心的设计,其中应用程序的所有用户的所有数据都存储在与该应用程序隔离的单个数据库服务器中。

构建主权应用程序需要什么?

因此,构建 Web3 数据应用程序需要一些基本原语:

  1. 具有快速可变性的去中心化数据可用性网络
  2. 身份为中心、基于模型的数据存储和检索协议
  3. 用于在运行时对用户存储执行 CRUD 操作的客户端

以用户为中心的数据模型

如您所见,Web3 数据应用程序建立在数据模型的概念之上,用于从用户控制的存储中存储和检索结构化数据。Web3 采用基于模型的方法与基于应用程序的方法,以便允许跨应用程序的简单数据重用和可组合性。应用程序与其他应用程序(例如user profilesocial graph、)共享单个数据模型比强制这些应用程序共享包含所有不同类型数据的整个数据库要容易得多,其中许多数据在应用程序之间不共享skillslinked blockchain accounts

围绕使用以用户为中心的数据模型构建应用程序创建出色的开发人员体验对于加速采用这种新的 Web3 数据架构非常重要。改善开发者体验和增加跨应用数据互操作性的工具包括:

  • 用于创建和部署数据模型的工具
  • 用于共享、发现和重用数据模型的工具

示例:去中心化社交网络

作为这一切如何运作的一个简单示例,让我们考虑一个去中心化的社交网络。在幕后,这个应用程序可以简化为只有四个数据模型,每个用户在自己的存储中为每个模型维护自己的数据:

  • PostList:存储用户帖子的索引
  • Post:存储单个帖子
  • Profile:存储用户的个人资料
  • FollowList:存储他们关注的用户列表

应用部署和使用

要部署此数据应用程序,开发人员会将这些数据模型中的每一个部署到 Ceramic。在它们在网络上可用后,任何应用程序都可以使用它们来 CRUD 该模型的用户数据存储。例如,如果另一个开发人员正在构建一个新的社交网络并希望使用现有用户和内容来引导它,他们可以简单地重用与初始社交网络相同的数据模型,他们的应用程序将能够自动加载并支持存储交互这个现有的数据。这就是多个应用程序可以在共享数据集上协作的方式,以及开放数据标准和协议可以从社区中的任何开发人员那里产生的方式。

有关构建在相同数据模型上以实现数据互操作性的两个应用程序的示例,请尝试使用Self.ID和DNS应用程序。一个应用程序中对数据的任何更改都会自动反映在另一个应用程序中。

IDX:以ID为中心、基于模型的存储协议

Ceramic 为具有快速可变性的数据可用性提供了一个分散的网络,这是 Web3 数据应用程序可以部署和运行的基础。大约一年前,Ceramic 社区首次引入了CIP-11“身份索引”,通常称为IDX protocol. 它指定了在 Ceramic 之上实现的以身份为中心、基于模型的数据存储和检索的协议——这是构建主权应用程序的第二个要求。

IDX 协议 (CIP-11) 只是一个规范而不是工作代码。为了让应用程序开发人员可以使用该协议,3Box Labs团队创建了 IDX.js,这是一个运行时库,用于对用户的数据存储执行 CRUD 操作——这是构建 Web3 数据应用程序的第三个也是最后一个要求。他们还创建了支持工具,例如 IDX CLI,以及一个参考应用程序Self.id,以展示 IDX.js 和相关的 Ceramic 技术。

通过作为在 Ceramic 上构建应用程序的简单入口点,IDX.js 的采用与 Ceramic 生态系统的发展同步加速,并已成为在 Ceramic 上构建应用程序的最流行方式。目前部署在 Ceramic 主网上的几乎所有应用程序都使用 IDX.js。

IDX.js 的使用随着 Ceramic 的使用而加速

为什么要改变一件好事?

为了提供更多功能、服务更多用例并提供最佳开发人员体验,IDX.js 的范围从简单地提供 IDX 协议的基本实现扩展到了不必要的单一和固执己见的程度。

因此,IDX.js 和相关的库,idx-constants被弃用了。它们被本文其余部分概述的新工具集合所取代。idx-toolsidx-cli

如果您当前正在使用 IDX.js 和/或 3ID Connect,则无需急于升级您的代码。IDX 协议本身没有重大变化,新库的数据交互与 IDX.js 完全兼容。

DataModels:数据模型的开源

DataModels 允许开发人员为可以与 IDX 协议一起使用的 Ceramic 应用程序创建、共享、重用和讨论开源数据模型,从而实现跨应用程序数据互操作性。

数据模型注册表

DataModels Registry是一个开源的、社区创建的、用于 Ceramic 的可重用应用程序数据模型的存储库。它提供了一个单一的地方,开发人员可以在其中公开注册、发现和重用现有数据模型——这是构建在共享数据模型上的可互操作应用程序的基础。目前该注册中心是作为一个在 MIT 和 Apache 2 下双重许可的开源 Github 存储库实现的。未来,它将分散在 Ceramic 上。

安装和使用

添加到注册表的所有数据模型都会自动发布到@datamodels组织npm下。任何开发人员都可以使用约定安装一个或多个数据模型,使这些模型可用于在运行时使用任何 IDX 客户端存储或检索数据,包括 DID DataStore 或 Self.ID,这两者都将在下面进行描述。@datamodels/model-name

从@datamodels npm org 安装 DataModels

数据模型论坛

DataModels 论坛位于DataModels Registry 存储库中。DataModel Registry 中的每个模型都有自己的讨论线程,社区可以使用它来发表评论、进行讨论、讨论升级等。开发人员还可以发布关于 DataModels 的想法,以便在将其添加到 Registry 之前征求社区的意见。

釉:陶瓷开发套件

Glaze是一套用于在 Ceramic 上构建应用程序的低级开发工具。Glaze 旨在通过将 IDX.js 拆分为更小、更具体的包来为开发人员提供更大的灵活性和控制力。

DID DataStore.js:核心 IDX 客户端

DID DataStore 是一个简单的 IDX 运行时客户端——IDX.js 的精简替代品——具有更小的范围和更少的依赖项。如果您使用过 IDX.js,您会注意到 DID DataStore 没有与默认数据模型捆绑在一起,例如basicProfile,也不支持开箱即用的 CAIP-10 区块链帐户链接。如果您想将 DID DataStore 与数据模型或区块链帐户一起使用,您需要将它们单独安装为包。如果您想要一个类似于 IDX.js 的更加捆绑的嵌入式解决方案,请参阅下面的 Self.ID。

DataModels.js:DataModels 的运行时

DataModels.js 是一个运行时库,可简化在应用程序中使用数据模型的过程。它经常与 DID DataStore 一起使用,并为 DataModels 支持一些有用的运行时特性:

  1. 可用性——确保您的应用程序使用的数据模型在您的 Ceramic 节点上可用,因此它们可以与 Ceramic 或 IDX 客户端一起使用,例如DID Datastore
  2. 别名——允许开发人员为他们的数据模型分配人类可读的名称,这样他们就可以更容易地在应用程序代码中使用,而不需要通过他们的数据模型来引用数据模型。streamID

如果您使用过 IDX.js 或 IDX CLI,DataModels 可替代运行idx bootstrap命令或使用类似的引导文件,并且无需在运行时创建别名。

更多釉料工具

  • DevTools是一个库,用于管理 DataModel 的整个生命周期,例如创建自定义模型、添加到现有的或创建新的模式和定义,以及将 DataModel 发布到任何 Ceramic 节点。
  • Glaze CLI是一个升级的命令行界面,旨在支持 Glaze 开发流程。它提供了比核心 Ceramic CLI 更多的功能,并为 DataModels 和 DID Datastore 添加了本机功能。

Self.ID:用于构建 Ceramic 应用程序的捆绑包

Self.ID是一套高级捆绑包,可简化构建 Ceramic 应用程序的开发过程。

Self.ID Core:只读包

Self.ID Core是一个软件包,预装了构建从 Ceramic 上的帐户读取数据的应用程序所需的一切。Self.ID Core 提供跨平台支持,但为只读API。如果您当前使用的是 IDX.js,Self.ID Core 非常相似。这包括:

  1. Ceramic 客户端:具有所有必需设置的JS Ceramic HTTP 客户端。您唯一需要做的就是传入节点的CeramicURL
  2. IDX 客户端:DID DataStore.js
  3. DataModels 运行时:DataModels.js
  4. 流行的数据模型:基本配置文件、3ID 钥匙串、加密帐户、网络帐户
  5. 热门实用程序:支持 CAIP-10 区块链账户

Self.ID Web:浏览器捆绑包

Self.ID Web使用写入 API 扩展了 Self.ID Core 捆绑包并提供内置用户身份验证。Self.ID Web 仅支持浏览器应用程序,现在是用于构建 Ceramic 应用程序的最流行的捆绑包。

  1. 3ID Connect:基于浏览器的跨链用户认证系统,兼容区块链钱包。3ID Connect 允许用户将一个或多个区块链账户从任何链连接到他们的 Ceramic 去中心化身份。3ID Connect 支持所有 EVM 链和其他区块链平台,例如 NEAR、Cosmos、Filecoin 和 Tezos。

更多 Self.ID 工具

  • Image Utilities:用于将图像上传到 IPFS,以多种尺寸和分辨率存储它们,并检索您的应用程序 UI 最需要的一个。非常适合在处理用户个人资料照片等图像时优化应用程序性能。有时您想显示全分辨率图像(例如个人资料页面),而其他时候您只想显示低分辨率缩略图(例如仪表板)。
  • 3Box Legacy Profiles:用于将旧 3Box 配置文件加载为 BasicProfile 的实用程序函数。以前,这是由 IDX.js 提供的。

常见问题

我应该使用哪个库?

如果您已经熟悉 IDX 或者您的开发需求更高级,那么 DID DataStore 可能是更好的选择;它提供了最大的灵活性,新功能将首先在那里实现。如果您使用自定义数据模型(模式和定义),您应该熟悉数据模型的新工具集,包括 DataModels Registry 和 DataModels.js。

如果您刚刚开始使用 Ceramic 和 IDX,Self.ID 应该会提供更流畅的体验。它允许您构建 Web3 数据应用程序,而无需了解所有概念即可进行工作设置。如果您想更好地了解所有可能性,您仍然应该了解 Ceramic 和生态系统的其他部分。

我现在该怎么办?

IDX.js 和相关软件包已被弃用。未来的新功能和改进只会在 Glaze 和 Self.ID 包中实现。我们建议您尽可能更新您的应用程序以使用新软件包。

加入开发者社区

Ceramic 社区热衷于构建 Web3 数据应用程序。如果您想了解有关本文中提到的任何内容的更多信息,在尝试使用新工具时遇到任何问题,无论是用于新项目还是从 IDX.js 迁移,请加入 Ceramic Discord

要开始构建 Ceramic 应用程序,请立即访问GlazeSelf.ID的开发人员文档!