本文详细介绍了The Graph网络的设计,The Graph旨在构建一个Web3的去中心化索引协议,通过激励Indexers参与网络并为查询提供服务来 decentralizes the API 和互联网应用堆栈的查询层。文章还介绍了协议中的角色、用法、架构以及查询市场和Graph Tokens。


这篇文章最初发布于 2019 年 10 月,并已更新以反映自最初发布以来 1 年多来协议设计中所采用的变更。
当我们在 2018 年 7 月首次推出 The Graph 时,我们分享了我们为 Web3 构建一个去中心化索引协议的愿景。团队一直在努力工作,今天我很高兴详细分享 The Graph Network 第一个版本的设计。 The Graph Network 是 Web3 的核心基础设施——是提供具有消费者级性能的去中心化应用程序的必要组成部分。
对于这篇文章,我假设读者对 The Graph 有一定的了解。 如果你从未听说过 The Graph,那么可以从我们的公告帖子、我们的 文档 或我们社区的 几篇 很棒的帖子开始。
这是探索 The Graph Network 设计的两部分文章的第一部分。 你可以跳转到第二部分这里。
The Graph 的使命是使互联网应用程序完全由公共基础设施提供支持。
全栈去中心化将使应用程序能够抵抗商业失败和寻租,并促进前所未有的互操作性水平。 用户和开发人员将能够知道,他们投入时间和金钱的软件不会突然消失。
为了实现完全去中心化应用程序 (dApp) 的这一愿景,至关重要的是,我们要从企业为保持应用程序运行所需的持续存储、计算和其他服务付费的模式,转变为用户直接向去中心化服务提供商网络支付这些资源的精细使用费用的模式。
今天,大多数“去中心化”应用程序仅在堆栈的最底层(区块链)中采用这种模型,用户为修改应用程序状态的交易付费。 堆栈的其余部分继续由中心化企业运营,并可能遭受任意故障和寻租。
The Graph Network 使互联网应用程序栈的 API 和查询层去中心化。 首次可以有效地查询区块链数据,而无需依赖中心化服务提供商。
如今,开发人员可以在自己的基础设施上运行 Graph Node,也可以在我们的托管服务上进行构建。 在 The Graph Network 中,任何 Indexer 都可以质押 Graph Token (GRT) 以参与网络,并因索引 subgraph 和为这些 subgraph 提供查询服务而获得奖励。
消费者将能够通过支付计量使用费来查询这个多样化的 Indexer 集合,从而证明了一种模式,即供求规律可以维持协议提供的服务。
这些是与系统交互的角色、它们为了协议正确运行而必须参与的行为以及激励它们的动机。

对于开发者来说,构建 subgraph 的 API 在很大程度上与使用本地或托管的 Graph Node 相同。
一个值得注意的区别是开发人员如何部署 subgraph。 他们不会部署到本地或托管的 Graph Node,而是将他们的 subgraph 部署到托管在 Ethereum 上的注册表,并存入一定数量的 GRT 来管理该 subgraph。 这向 Indexer 发出信号,表明应索引此 subgraph。
对于最终用户来说,主要的区别在于,他们需要开始付费查询去中心化的 Indexer 网络,而不是与受补贴的中心化 API 进行交互。 这将通过在他们的机器上运行的查询引擎来完成——无论是在浏览器中、作为扩展程序还是嵌入在 dApp 中。
查询引擎允许用户安全地查询存储在 The Graph 上的大量数据,而无需亲自完成计算和存储该数据的工作。 查询引擎还充当交易引擎,根据所使用的 dApp 或用户的偏好做出诸如与哪些 Indexer 开展业务或支付多少费用等决策。
为了使查询引擎提供良好的用户体验,它需要能够代表用户自动签署小额支付交易,而不是提示他们签署每个需要签署的交易。 我们正在与在 Ethereum 上构建的几个状态通道团队合作,以确保他们提供的钱包和功能满足像 The Graph 这样的计量使用协议的需求。 与此同时,我们将托管一个网关,该网关会补贴用户的查询费用。
Indexer 将能够通过质押 GRT 并运行Graph Node 的版本来加入 The Graph。
他们还将希望运行一个 indexer 代理,以编程方式监视其资源使用情况、设置价格并决定要索引哪些 subgraph。 indexer 代理将是可插拔的,我们希望节点运营商能够尝试自己的定价模型和策略,以在市场上获得优于其他 Indexer 的竞争优势。
策展人和委托者将通过 Graph Explorer 进行策展和委托。 用户将能够通过 Graph Explorer 进行策展和委托,Graph Explorer 将是一个完全去中心化的应用程序,需要一个支持 dApp 的浏览器和一个 Ethereum 钱包。

The Graph Network 包括在 Ethereum 上运行的智能合约,以及各种在链下运行的其他服务和客户端。

查询市场的作用与传统基于云的应用程序中的 API 类似——有效地提供用户设备上运行的前端所需的数据。 关键区别在于,传统的 API 由单个经济实体运营,用户对此没有发言权,而查询市场由一个去中心化的 Indexer 网络组成,所有 Indexer 都竞相以最优惠的价格提供最好的服务。

这种冗余意味着,即使单个 Indexer 下线,只要存在查询数据集的需求,其他 Indexer 就会有动力承担额外的工作。
查询市场中的交易价格根据处理查询所需的带宽和计算量来确定。
让我们来看看消费者与查询市场进行交互时的一个典型流程。

Indexer 使用成本模型表达其价格,消费者可以使用该模型根据查询的特征和 Indexer 提供的变量(例如数据库统计信息、美元/GRT 价格或指示 Indexer 是否正在限制查询的标志)来生成以 GRT 计价的成本。 因此,定价是在 Indexer 和消费者之间设置的,而不是像 Ethereum 这样的智能合约平台那样在网络级别设置的。


该查询指定要查询哪个 subgraph,查询哪个块以及期望有哪些数据可用。

该证明是确定性地生成的,并且可以唯一地归因于 Indexer,以便在协议中的其他地方进行验证和争议解决。

查询 The Graph 的单个去中心化应用程序可能会使用由不同 Indexer 索引的多个 subgraph,在这种情况下,将为正在查询的每个 subgraph 执行上述流程。
为了支持查询市场的运作,该协议引入了一个原生实用代币:Graph Token(GRT)。
Graph Token 有两个主要用途,对于协议的运作来说是必不可少的:
鼓励消费者在他们的钱包中持有 ETH 或他们选择的稳定币。 但是,付款将以 GRT 结算,以确保整个协议中有一个共同的记账单位。
除了上面概述的用途之外,拥有原生实用代币使我们能够激励某些有益于整个网络的行为,例如通过发行新代币来索引新的 subgraph。
至此,我们已经了解了 The Graph 中最重要的宏大概念。 然而,还有许多次要概念和机制支持高效的查询市场、高性能的协议和良好的 dapp 开发人员体验。
在第二部分中,我们将继续探索这些组件,包括 Graph Token 的各种用法,例如索引器质押机制、策展市场和索引器奖励。
我们还将介绍我们的小额支付基础设施、我们如何验证查询响应以及最终用户将如何通过“浏览器”去中心化应用程序与 The Graph 进行交互。
发布时间2019 年 10 月 21 日
更新时间2020 年 12 月 14 日
分享帖子

Brandon Ramirez
分享帖子
- 原文链接: thegraph.com/blog/the-gr...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!