时间:2022-01-17|浏览:510
区块链是一个分散的账本,它记录了数据,但在浏览器中,交易被打包成块,交易数据变成了哈希。在以太坊erc在20协议的作用下,我们可以看到转账交易等基本数据。
但对于用户来说,如果浏览器没有特殊显示,只能查看区块链的数据。在可能的需求中,区块链上有许多类型的数据,需要索引和查询。
这些索引和查询可以把数据进行统计,进行聚合显示,帮助用户使用。
在这部分,The Graph这是一个例子,一个专门从事索引和查询的协议,理论上所有区块链网络都需要部署这样的工具。
例如,The Graph在以太坊,很难直接查询的数据是可能的。
像Uniswap具有复杂智能合同的项目和Bored Ape Yacht Club这样的NFT在以太坊区块链上存储数据后,很难从区块链上读取基本数据以外的任何内容。
例如 Bored Ape Yacht Club NFT,读取合同可以获取所有者信息、总供应量和内容 URI等等,这些都是合同中的基本信息,不可能像搜索引擎一样实现高级查询和操作,如聚合、搜索和筛选。
因为如果你想获得这些数据,你必须处理交易员发布的所有事件,并使用代币 ID 和 IPFS 哈希从IPFS存储位置读取元数据,然后聚合。费时费力。
The Graph 通过分散协议解决了这个问题,可以索引区块链数据,实现高性能、高效的查询。然后可以使用标准 GraphQL API 查询这些 API(索引子图)。
具体实现流程如下:
1.分散应用程序通过智能合约上的交易向以太坊添加数据,智能合约在处理交易时发生一个或多个事件.
2.The Graph节点不断扫描以太坊,寻找新块及其可能包含的子图数据。The Graph节点在这些块中为子图查找以太坊事件并运行映射处理程序。映射是一个 WASM 创建或更新模块Graph Node 以响应以太坊事件的数据实体。
3.使用节点的分散应用程序GraphQL 端点查询 Graph Node 从区块链索引中获取数据。Graph Node 反过来会 GraphQL 查询转换为查询底层数据存储,以利用存储的索引功能获取数据。分散的应用程序在丰富的用户界面中向最终用户显示这些数据,并在以太坊上发布新的交易。
用戶喜愛的交易所
已有账号登陆后会弹出下载