中间件分析:The Graph

CYC
6 min readSep 6, 2021

The Graph 是⼀种去中⼼化协议,⽤于从以太坊开始索引和查询区块链中的数据。它使查询难以直接查询的数据成为可能。

The Graph历史

⾃2020 年10⽉ ICO以来,GRT从0.03 美元(美元)增⻓到 1.76 美元(截⾄ 4 ⽉ 1 ⽇)。该项⽬⼜被称为“区块链⾕歌”。

The Graph是什么

举个简单的例⼦来说,对于流⾏的 CryptoKitties dApp,搜索以下数据相对简单:⼀个特定的以太坊账⼾拥有多少个 CryptoKitties?特定的 CryptoKitty 何时⽣成?这是因为合约公开的 balanceOf 和 getKitty ⽅法直接⽀持这些读取模式。然⽽,有些数据则较难查询:谁是 2018 年1⽉⾄2⽉⽣成的 CryptoKitties 的所有者?即使对于这个相对简单的问题,运⾏在浏览器中的去中⼼化应⽤程序 (dApp)也需要数⼩时甚⾄数天才能得到答案。索引区块链数据很困难。区块链属性,如终结性、链重组或未处理的块,使这个过程进⼀步复杂化,不仅耗时,⽽且在概念上很难从区块链数据中检索正确的查询结果。

The Graph 今天通过⼀个为区块链数据编制索引的托管服务解决了这个问题。然后可以使⽤标准 GraphQL API 查询这些索引(“⼦图”)。未来,托管服务将演变为具有相同功能的完全去中⼼化的协议。两者都由Graph Node的开源实现⽀持。

⼯作原理

The Graph 根据⼦图描述(称为⼦图清单)了解什么以及如何索引以太坊数据。⼦图描述定义了⼦图感兴趣的智能合约、这些合约中要注意的事件,以及如何将事件数据映射到The Graph将存储在其数据库中的数据。⼀旦编写 subgraph manifest 后,您可以使⽤ Graph CLI 将定义存储在IPFS中,并告诉托管服务开始为该⼦图编制索引数据。

图片来源:详细信息.(https://thegraph.com/docs/about/introduction#wh at-the-graph-is)

该流程遵循以下步骤:

1. 去中⼼化应⽤程序通过智能合约上的交易向以太坊添加数据。

2. 智能合约在处理交易时发出⼀个或多个事件。

3. 图节点不断扫描以太坊以寻找新块以及它们可能包含的⼦图数据。

4. 图节点在这些块中为您的⼦图查找以太坊事件并运⾏您提供的映射处理程序。映射是⼀个 WASM 模块,它创建或更新 Graph Node 存储的数据实体以响应以太坊事件。

5. 去中⼼化应⽤程序使⽤节点的GraphQL 端点向 Graph 节点查询从区块链索引的数据。Graph Node 反过来将 GraphQL 查询转换为对其底层数据存储的查询,以获取这些数据,从⽽利⽤存储的索引 功能。去中⼼化应⽤程序在丰富的⽤⼾界⾯中为最终⽤⼾显⽰这些数据,他们⽤这些⽤⼾界⾯在以 太坊上发布新交易。循环重复。

The Graph崛起之因

随着去中⼼化应⽤程序 (dApps) 越来越受欢迎,最重要的是,去中⼼化⾦融服务 (DeFi) 部⻔在过去⼀年中表现出惊⼈的增⻓。与此同时,价值超过400亿美元的资产存放在MakerDAO或Uniswap等DeFi 项⽬中。但是,现在宣布 dApp 的时代还为时过早。造成这种情况的原因之⼀是,复杂 dApp 的开发⼈员从区块链和智能合约中读取与其相关的数据并将它们合并到他们的去中⼼化应⽤程序中⾮常耗 时,⽽⽆需求助于编程接⼝(API)集中的第三⽅供应商。The Graph 已经着⼿解决这个问题。该项⽬称为去中⼼化索引协议。索引描述了使⼀组数据(此处:区块链和智能合约)可搜索的过程,就像词汇表⼀样,可以更轻松地在书中搜索关键字。或者⾕歌如何通过互联⽹做到这⼀点。The Graph 希望成为 Web3 和真正去中⼼化 dApp 的基础架构。Graph 希望通过由四个核⼼组件组成的复杂⽹络来实现这⼀⽬标。

⼦图

⼦图是⼀种可公开访问的 API,可⽤于快速查询区块链数据。现在,以太坊区块链上的各种项⽬有超过 3,000 个⼦图。例如,可以通过去中⼼化交易所 Uniswap 的⼦图查询每个上市交易对的详细交易数据。另⼀个⼦图提供有关 Decentraland 虚拟世界市场的数据,另⼀个⼦图可⽤于搜索 MakerDAO 的治理决策。原则上,任何有编程能⼒的⼈都可以创建⼦图。

策展⼈

策展⼈是⽹络参与者,他们会在⼦图何时有⽤时发出信号。这是通过分配 GRT 代币来完成的。如果策展⼈看到他认为有⽤且⾼质量的⼦图,他会在⼦图上投⼊⼀定数量的GRT。委托⼈越早将其 GRT分配给⼦图,如果该⼦图变得流⾏,他的收⼊就会越⾼。

索引器

索引器操作 The Graph 中的⽹络节点。顾名思义,它的主要任务是索引⼦图并提供搜索查询。他们因在GRT代币⽅⾯的⼯作⽽获得奖励。由于奖励的数量取决于⼦图的受欢迎程度,因此索引器基于策展⼈的信号。分配给⼦图的GRT 越多,它是⾼质量和有⽤数据集的可能性就越⾼。除了IT知识,运营⼀个索引器节点⾄少需要100,000 GRT作为押⾦⸺鉴于GRT的价格发展,⽬前这不是⼀块短板。

委托⼈

委托⼈是 The Graph ⽹络中的另⼀个重要实体。这些是将代币分配给索引器的 GRT 持有者。作为回报,他们会获得⼀部分⼯作报酬。索引器可以确定份额有多⾼。这为 API 创造了⼀个⾃由市场。

代币经济学

与限制为 2100 万个单位的⽐特币相⽐,GRT 代币的数量没有限制:GRT 与以太坊⼀样,是⼀种通货膨胀协议。图表的通货膨胀率为每年百分之三。这将为索引器的奖励提供资⾦。除了通货膨胀之外,索引者(以及他们按⽐例管理策展⼈和可能的委托⼈)为他们处理的每个搜索查询赚取少量 GRT,由搜索者⽀付。

GRT 的初始最⼤供应量为 100 亿个单位。在 2020 年 10 ⽉的 ICO 上,只有 4%(4 亿 GRT)被出售。成本:0.03 美元。正如项⽬主⻚上所说,在启动阶段,已经向索引器和“活跃社区成员”⽀付了 2 亿 GRT。迄今为⽌,包括Coinbase Ventures、Digital Currency Group 和 Compound等知名⼈⼠在内的早期投资者持有 35%的⼤部分 GRT 代币。

⼩结

就想法⽽⾔,The Graph⽆疑问⾛在了数据查询这⼀中间件类的前沿。就专业性⽽⾔,The Graph没有选择像⼀些中间件⼀样⾛杂糅⻛格,纯粹的数据查询使得其在这⼀⻔类中脱颖⽽出。是笔者个⼈⽽⾔较为看好的⼀个项⽬。

参考⽂献

1. The Graph官⽹:Introduction | Graph Docs

2. The Graph介绍:https://www.btc-echo.de/news/the-graph-das-google-der blockchains-1157 31/

--

--

CYC

Distributed blockchain research institution. Focusing on underlying technology research and practice. Support us: http://giveth.io/project/cyc