跳到主要内容

它如何运作

Ceramic 分散了应用程序数据库,使数据在应用程序中可被普遍地组合和重用。该网络由三个核心部分组成:用于数据可用性和共识的高度可扩展、去中心化的基础设施;社区创建的数据模型市场;用于存储、更新和从这些模型中检索数据的一套标准 API。

核心组件


Ceramic 网络由三个核心组件组成:

  1. 可扩展、去中心化的数据基础设施
  2. 数据模型市场
  3. 用于数据存储、更新和检索的开放 API

可扩展、去中心化的数据基础设施


Ceramic 最基础的一层是其可扩展、去中心化的数据网络。Ceramic 网络由一组无需许可的节点组成,这些节点协同工作,为存储在网络上的所有状态提供数据可用性,并在每次有新交易时就这些状态达成共识。

然而,与旨在跟踪代币等金融应用程序状态的 Layer 1 区块链不同,Ceramic 专门设计用于跟踪高吞吐量数据应用程序的状态,例如去中心化社交网络、去中心化身份、加密游戏、声誉系统等。通过这种方式,Ceramic 充当了一个全球性的、高度可扩展的去中心化数据库,世界上的每个应用程序都可以在此基础上进行构建。

为实现规模化,Ceramic 对其网络的数据结构做出了一些固执的决定。在 Ceramic 中,最重要的是,没有“可在帐户之间共享的状态”的概念。尽管任何帐户都可以链接到另一个帐户拥有的状态,但是每个状态仅由创建它的帐户拥有,任何帐户都不能修改其他任何人的状态。

在 Ceramic 上,每个帐户都有一组可变数据对象,称为流 (streams),作为这些流的所有者,只有他们才能写入。每个流中存储的内容是任意的,可以引用任何其他流中的内容。请注意,这并不排除计算操作。开发者可以编写称为流代码 (streamcode) 的函数,定义如何更新这些流以及它们在每次更新时执行的操作。

这种架构将用户之间的状态隔离开,允许系统非常干净地进行水平扩展。您可以想象账户 1 - 1,000,000 在一组 Ceramic 节点上复制,账户 1,000,001 - 2,000,000 在另一组节点上复制。理论上,如果有需要,网络可以一直分片到每个单独的用户,而不会破坏可组合性。为了确保用户分片之间的状态可验证性和可组合性,Ceramic 依赖于聚合所有用户交易的默克尔树数据结构,允许任何帐户随时验证其他任何人的流的完整性。

数据模型市场


Ceramic 的第二个核心组件是其由社区创建的充满活力的开源数据模型生态系统,用于解锁跨应用程序数据的可组合性。数据模型是一种新颖的抽象,它统一了相似类型的应用程序如何存储和检索网络上每个用户的状态。例如,您可以想象每个去中心化的 Twitter 实现都将在几个共享数据模型上运行:一个用于每个用户的推文,一个用于他们的社交图,一个用于他们的 DM,等等。通过采用相同的底层数据模型,应用程序能够在相同的数据上进行原生的互操作。

您可以将 Ceramic 对数据模型标准的使用与对财务账本的令牌标准的使用进行比较。例如,在以太坊上,ERC-20 可替代代币和 ERC-721 不可替代代币标准的引入已经造就了整个生态系统,包括原生互操作的代币和金融应用程序。Ceramic 将同样的概念引入数据。

Ceramic 采用社区驱动的方法来创建这些数据模型,允许任何开发人员轻松地与生态系统中的其他开发人员定义、共享和重用他们的模型。随着社区创建更多数据模型,我们将看到使用可组合数据构建的应用程序的数量和种类持续增加。

以这种方式达到的可组合性也为开发人员带来更好的体验。在 Ceramic 上构建应用程序就像:浏览数据模型市场,将它们插入您的应用程序,然后自动访问网络上存储在这些模型中的所有数据。每个开发人员都无需担心使用自己孤立的用户和数据来启动他们的应用程序,从而让实施自己的想法比以往任何时候都更容易。

开放 API


Ceramic 的最后一个核心组件是其无需许可的开放 API,用于存储、修改和从网络中检索数据。通过将这些 API 标准化、通用化并向世界上的每个开发人员开放,Ceramic 使开发人员能够在存储在网络上的共享资源之上构建,而不必担心中心化、审查风险或封锁。