The Graph($GRT)是一个索引协议,通过使用去中心化的 API 系统为以太坊和 IPFS 等网络查询区块链数据。
以前,很难直接从区块链上读取高级数据,特别是对于那些具有复杂智能合约的项目。例如,可以直接进行读取操作,如获得某个 NFT 的所有者,而高级操作,如聚合、搜索和非简单的过滤,则难以进行。因此,对区块链数据进行索引是非常困难的。
The Graph 通过一个去中心化的协议解决了这一问题,该协议可以对区块链数据进行索引并实现高性能和高效率的查询。API(索引的 "子图")可以用标准的 GraphQL API 进行查询。如今有一个托管服务以及一个具有相同功能的去中心化协议。两者都是由 Graph Node 的开源实现支持的。
The Graph 根据子图描述(称为 subgraph)来学习索引什么以及如何为以太坊数据建立索引。子图描述定义了子图感兴趣的智能合约,这些合约中需要关注的事件,以及如何将事件数据映射到 The Graph 将存储在其数据库中的数据。
一旦你写好了子图描述,你就可以使用 Graph CLI 将该定义存储在 IPFS 中,并告诉索引器开始为该子图编制索引。
下图更详细地介绍了子图清单部署后的数据流,处理以太坊交易。
- 添加数据。dApp 通过智能合约上的交易向以太坊添加数据。
- 发出事件。智能合约在处理交易时发出一个或多个事件。
- 扫描。图形节点不断扫描以太坊的新区块和它们可能包含的你的子图的数据。
- 映射。Graph Node 在这些区块中为你的子图找到以太坊事件并运行你提供的映射处理程序。映射是一个 WASM 模块,它创建或更新 Graph Node 为响应以太坊事件而存储的数据实体。
- 将 GraphQL 查询翻译成底层数据的查询。当 dApp 使用节点的 GraphQL 端点查询 Graph Node 的区块链索引数据时,Graph Node 反过来将 GraphQL 查询转化为对其底层数据存储的查询,以便利用存储的索引功能来获取这些数据。去中心化的应用程序在一个丰富的用户界面中为终端用户显示这些数据,他们用这些数据在以太坊上发布新交易。周而复始。
The Graph 协议于 2018 年 7 月推出,由 Brandon Ramirez, Yaniv Tal 和 Jannis Pohlmann 共同创立。自 2019 年 1 月以来,The Graph 一直在为 Web3 和 DeF i应用程序提供一个具有2900 多个子图的托管服务。Graph 生态系统的想法是由 Graph Protocol Incorporation 构思和开发的,该公司后来更名为 Edge & Node。此外,在 2020 年,The Graph 基金会被宣布为支持多样化的网络和各种网络参与者。Eva Beylin 被提名为该基金会的主任。她在财务、数据和商业战略方面经验丰富,曾与 OmiseGO 和 EF 合作。