注:原文来自Messari,以下为全文编译: 开放和去中心化协议的一个优点是它们是公开的:即每个人都可以看到网络上发生的事情。然而,访问和使用这些公共数据可能比看起来的要复杂的多。当前,我们有两个选择:一是自己去查阅区块链的所有历史(比如完整运行一个节点),二是查询像Etherscan这样的区块探索器。 值得注意的是,选项一是相当耗费资源的,它不仅需要时间,而且需要存储整个区块链的副本,并且还要随时连接。选项二则依赖于中心化的第三方,所以并不是去信任的。 此外,针对不同的区块链和协议,这两种方案的工作方式也不一样,在我们今天看到的跨区块链环境中,拥有完整数据的复杂性显然增加了很多。 为此,The Graph应运而生,旨在通过去中心化的查询协议来解决上述问题。 The Graph的简单介绍The Graph是Web3的一个去中心化索引协议。 它可以查询区块链数据,而且不需要连接到区块链或依赖中心化的第三方。更简单地说,它是一个针对区块链及其去中心化应用的去中心化API协议。 举例想象一下,一个建立在Aave之上的去中心化应用程序需要访问该协议的数据。到目前为止,Aave不得不在其服务器上建立和维护一个中心化的API,以允许其他人访问和使用数据。但有了The Graph,Aave的开发者就可以只编写一个subgraph清单(数据模式),随后,多个索引器将对Aave的数据进行索引,并直接在以太坊网络上获取数据,从而为Aave创建一个去中心化的API。 The Graph的优点是,dapp不必自己维护API,协议数据也将被分散,而且允许开发人员共享任何开放区块链上所有协议的共同查询结构和语言。 The Graph如何运作数据索引,称为子图(subgraph),是由子图清单(subgraph manifest)建立的。该文件描述了来自特定协议的哪些数据需要被索引,以及如何索引,因此便可被用户和应用程序轻松查询。每个子图都可以通过标准的GraphQL API调用来进行查询。GraphQL是一种开源的数据查询和操作语言,用于API,最初由Facebook开发。 一旦这些映射指令被记录在Graph节点中,包括从区块链事件到数据的存储方式,该节点便会倾听链上的任何变化,并相应地更新其子图。 然后,每个索引子图就可以像传统的API一样通过其GraphQL端点进行查询,并从一个去中心化的索引器网络中获取数据。你可以在这里找到我写的一个从Aave子图查询数据的脚本例子。 (责任编辑:admin) |