Bài học 2

The Graph 背后的技术

深入了解 The Graph 的架构,我们会发现一个复杂而优雅的系统,它是区块链生态系统中去中心化查询机制的基础。这个复杂的框架以 Graph Node 为中心,协调各种组件的无缝集成,每个组件在网络的高效运行中扮演着至关重要的角色。

Graph Node:索引的核心动力

Graph 架构的核心是 Graph Node。这个关键组件负责为Subgraph编制索引,并通过 GraphQL API 访问由此产生的数据。它是索引器堆栈的核心,其有效运行对于索引器的成功运行至关重要。Graph Node 具有多功能性,能够在裸机和云环境中运行,反映了区块链技术动态环境所要求的适应性。

在PostgreSQL数据库中存储数据

Graph Node的运行离不开PostgreSQL数据库,它充当主要的存储器。这个数据库不仅存储subgraph数据,还存储有关subgraph的元数据以及区块和eth_call缓存等关键网络数据。对该数据库的组织和管理对于Graph Node的平稳运行至关重要,确保数据的完整性和可访问性。

网络客户端和Firehose

为了对区块链网络进行索引,Graph Node通过与EVM兼容的JSON-RPC API连接到网络客户端。这个设置可以连接到单个客户端,也可以连接到多个客户端并进行负载均衡等更复杂的安排。此外,The Graph还开发了Network Firehoses - 一个提供有序、支持分叉的区块流的gRPC服务。虽然Firehose目前不是索引器的必需品,但它代表了在大规模支持高性能索引方面的重大进展。

IPFS节点上的元数据和使用Prometheus进行监控

Graph Node与IPFS网络的交互对于存储subgraph部署元数据至关重要。在网络层面上托管一个IPFS节点简化了索引器的工作流程。此外,通过与Prometheus指标服务器的可选集成,可以添加更高级的功能,使索引器能够跟踪和优化Graph Node的性能。

可扩展性和高级配置

从安装选项到扩展能力,Graph Node 的灵活设置彰显了 The Graph 致力于满足各种运营需求的决心。该系统可通过多个Graph Node和数据库进行横向扩展,以满足日益增长的网络需求。高级用户可以利用Graph Node的配置选项(通过 TOML 文件或环境变量进行管理)来优化数据处理和工作负载分配。

数据索引和处理:重新定义Firehose和Substreams

Firehose:重塑区块链数据提取

由 StreamingFast 构思和开发的 Firehose 标志着从区块链节点提取数据的一场革命。这一创新工具将区块链区块内的每笔交易分解成最小的元素,并将其保存为简单的平面文件。这些平面文件不仅是一种存储格式,还体现了数据索引模式的转变。它们有利于并行处理,从而大大加快了索引操作的速度。这项技术可将丰富的、可分叉感知的数据从区块链节点直接传送给消费者。从实际角度来看,Firehose通过提供曾经被认为无法实现的数据捕获和处理速度,展示了其卓越的能力,从而为The Graph生态系统中的数据提取设立了新的标准。

Substreams:开创高效数据处理

Substreams 是 Firehose 功能的扩展,旨在以并行、以流优先的方式进行高性能数据处理。这些由 Rust 编写的模块允许开发人员针对各种用途对区块链数据进行组合、排序、存储和转换。Substreams 的独创性在于它们能够利用 Firehose 的平面文件以极快的速度编制数据索引。这种方法确保 Substreams 不仅能高效处理数据,还能在数据可用时立即分发,而不是依赖于持续请求。

Firehose和Substreams的结合

在 The Graph 的生态系统中,Firehose和Substreams的集成为数据处理提供了强大的组合。Firehose 可确保以优化格式迅速交付区块链数据,而 Substreams 则可进一步完善和处理这些数据。这种协同关系使处理大量区块链数据的效率无与伦比,大大提升了 The Graph 的能力。

Subgraphs:数据索引的行业标准

自2018年 The Graph 引入 subgraphs 以来,它们已经成为索引区块链数据的行业标准。它们本质上是开放的 API,从区块链中提取、处理和存储数据,从而通过GraphQL接口轻松查询。目前已支持超过40个链上的85000个subgraphs,而subgraphs俨然已成为Web3开发者不可或缺的工具。它们允许快速部署一个装满索引数据的 Postgres 数据库,并使用GraphQL层进行查询。Subgraphs使开发人员能够在其 DApp 中以有序、高效的方式显示从 DeFi 交易到 NFT 溯源等各种区块链数据。

在不断发展的区块链技术领域,subgraphs已经成为一个关键概念,改变了我们与利用区块链数据的方式。这些开放式应用程序接口就像中介一样,在去中心化的区块链世界和我们熟悉的结构化数据领域之间架起了一座无缝的桥梁。通过提取、处理和组织区块链数据为可查询格式,subgraphs赋予开发者构建创新和数据驱动的应用的能力。

Subgraphs 具有众多优点,使它们成为开发者和用户的理想选择。它们的去中心化性质确保了抗审查和无停机时间,促进了安全可靠的数据生态系统。此外,subgraphs具有天然的可扩展性,能够在不影响性能的情况下处理海量数据。成本效益是另一个关键优势,subgraphs通常比传统数据API更经济实惠。

Subgraph 的架构

Subgraph 包含三大主要功能,三大功能和谐互动,具有颠覆性的潜力:

  1. 清单(Manifest):清单作为subgraph的蓝图,概述了其数据源、模式和AssemblyScript代码。它定义了subgraph将索引的数据的边界,确保只捕获相关信息。

  2. 模式(Schema):模式定义了数据的结构,类似于建筑的蓝图。它概述了实体、字段和实体之间的关系,提供了一种清晰和有组织的数据表示方式。

  3. AssemblyScript 代码:这个可执行代码是subgraph工作的主力军,将区块链的原始数据转化为GraphQL引擎可理解的格式。它还处理数据的索引和存储,确保其可访问性和可靠性。
    Subgraph 开发流程
    创建一个subgraph涉及一系列步骤,每一步都经过精心设计,以确保subgraph的功能和效果:

  4. 构思和设计: 首先要明确要索引的数据及其支持的应用程序。这包括定义实体、字段和它们之间的关系,确保subgraph的结构符合其预期目的。

  5. 清单和模式开发: 清单和模式经过精心设计,为 subgraph 的数据架构奠定了基础。清单规定了数据源,而模式则概述了数据结构,以确保数据的完整性和一致性。

  6. AssemblyScript 代码实现: 编写 AssemblyScript 代码,将原始区块链数据转换为 GraphQL 可以理解的格式。它处理索引、存储和数据检索,实现对索引数据的高效访问。
    Subgraph 的部署和发布
    一旦Subgraph开发完成,它需要经过一个部署过程后才能面向世界:

  7. Subgraph Studio 集成:Subgraph Studio 作为一个集中平台,用于管理subgraph。它简化了部署过程,允许开发者将他们的subgraph发布到去中心化网络中。

  8. 索引和策展: 索引器负责获取和存储区块链数据,是开发者访问subgraph的关键。策展通常通过 GRT 代币完成,它激励索引器优先处理需求量大的subgraph。

  9. 查询和利用:开发者现在可以使用 GraphQL 查询来查询已部署的subgraph,检索与他们应用程序需求相适应的特定数据。这种无缝集成使开发者能够利用区块链数据进行创新。

未来:The Graph 的新时代

随着 The Graph 开启新纪元(我们将在第五课中进行探讨),这些核心技术— Subgraph、Firehose 和 Substreams—的持续发展令人期待。这些组件将不断扩展和发展,在引入新数据服务和确保更快、更模块化的数据流方面发挥重要作用。例如,”可验证的 Firehose 将成为访问以太坊历史数据的突破性解决方案,解决区块链标准不断发展所带来的挑战。

区分Subgraph和Substreams

区分Subgraph和Substreams是至关重要的,因为它们具有不同的用途。Subgraph非常适用于标准数据的检索和管理,提供了使用GraphQL查询层的简便设置和使用。相反,Substreams专为更复杂的分析和大数据需求而设计,提供了并行数据处理和更灵活的数据处理和存储能力。Substreams允许开发人员将数据从基本文件格式转换为更可用的形式,满足复杂的数据处理需求。

组织链下数据:The Graph的方法以及其对Web3数据管道的影响

The Graph 向来以擅长组织链上数据而闻名,现在它正涉足链下数据领域,扩大自己的视野。这种做法符合 The Graph 的长期使命,即提供对世界公共知识和信息的便捷访问。

Web3和数据管理中的权衡

在Web3架构中,用户可以通过中间件服务直接与区块链进行交互,但这也存在权衡,特别是在成本方面。链上交易成本通常被称为 “煤气费”,对于复杂的计算或大量的数据存储来说,可能会高得令人望而却步。这种限制在过去限制了应用的复杂性,或导致开发人员脱离开源模式,创建专有的链外应用程序接口。

The Graph 针对链下数据的独特解决方案

The Graph 针对这个挑战提出了一种独特的解决方案,通过其分散网络实现链下数据的组织和服务。这种方法涉及一个工作流程,其中传统的链下数据被发布到IPFS(InterPlanetary File System,星际文件系统),然后将IPFS哈希记录在链上。随后,这些数据可以被subgraph索引,并可供查询。这种方法提供了一种可扩展且经济的方式来发布和提供复杂的动态数据,而无需构建和维护专有应用程序接口。

工作流程:三步骤过程

工作流程包括三个关键组成部分:

  1. 用于数据计算和发布的 Cron 工作任务:链下的 Cron 工作任务执行复杂计算,并将计算结果发布到永久网络源(如 IPFS)上,该源可被The Graph索引。该工作任务还会生成链上事务,以发布 IPFS 文件哈希值和相关的元数据。

  2. Subgraph发布以编制索引:下一步是发布一个subgraph,根据链上发布的文件哈希对这些IPFS文件进行索引。一旦subgraph发布完成,它可以被The Graph网络中的索引器选中并提供服务,允许第三方开发者和用户查询数据。

  3. 稳健可靠的数据访问:通过利用 The Graph 的索引器分布式网络,数据访问无需数据发布者的额外努力即可保持稳健可靠。这种分散式结构大大提高了数据的可用性和完整性。

实际实施和成本效益

The Graph 生态系统中的一个实际例子是 Edge & Node 开发的用于发布网络成本和服务质量指标的预言机。该预言机每五分钟将汇总数据发布到 IPFS,并在 Gnosis 链上记录 IPFS 文件哈希值。然后,这些数据会被索引到一个subgraph中,供协议相关方使用。这种工作流程的相关成本出奇地低,因此对数据发布者来说是一个很有吸引力的选择。

动态数据的新可能性

使用The Graph处理动态数据的这种方法,为永久网络站点提供了令人兴奋的新可能性,包括用于博客的轻量级后端、算法内容策划和实时监控系统。它代表了数据发布、索引和访问方式的重大转变,促进了更开放和协作的Web3生态系统。

组织链下数据:The Graph 的创新方法

The Graph 扩展至链下数据的管理领域为Web3生态系统开辟了新的道路,在去中心化和传统数据领域之间架起了一座桥梁。这一举措体现了 The Graph 的使命,即以去中心化的方式提供更广泛的信息,解决链上数据存储和计算的固有局限性。

平衡链上和链下数据需求

The Graph认识到在Web3架构中,链上数据存储和计算的成本相关的权衡。直接与区块链交互虽然简单,但复杂的计算和大规模的数据存储可能变得过于昂贵。为了规避这些限制,The Graph引入了一种方法,将链下数据存储与链上数据引用相结合,从而在增强功能的同时保留了去中心化的精神。

The Graph 的链下数据方法论

这种方法涉及三步骤工作流程:

  1. 离链计算和IPFS发布:复杂的计算在链下进行,并将结果数据发布到IPFS,这是一种去中心化存储解决方案。这一步确保数据在链下以可验证和去中心化的方式存储。

  2. 通过交易进行链上链接:在将数据存储在IPFS上的同时,进行相应的链上交易以记录IPFS哈希和其他相关元数据。这种方法将链下数据锚定到区块链上,提供了一层信任和可追溯性。

  3. 为实现可访问性进行Subgraph索引:最后一步涉及使用subgraph对存储在IPFS上的数据进行索引。这个过程使链下数据可以通过The Graph的去中心化网络进行轻松查询和访问。
    实际实施:Edge & Node 的预言机

这种方法在 The Graph 生态系统中的实际应用是 Edge & Node 所开发的预言机。该预言机每五分钟发布一次网络成本和服务质量指标,具体方式如下:

  • 汇总数据发布到 IPFS。
  • 相应的 IPFS 文件哈希值通过 DataEdge 合约记录在 Gnosis 链上。
  • 这些 IPFS 文件被索引到一个subgraph中,以去中心化的方式向利益相关者提供数据。
    这个实施方案展示了发布和提供复杂数据的低成本、可扩展且高效的方法,而无需使用专有的应用程序接口。它展示了如何利用The Graph的方法为各种应用创建动态数据源。

成本效应和可扩展性

这种工作流程的相关成本出奇的低,因此对数据发布者来说是一种极具吸引力的解决方案。例如,Edge & Node 实施的预言机只需为链上交易和 IPFS 节点钉支付极少费用,而服务成本则由数据消费者承担。这种模式有效降低了数据发布者的运营开销,同时确保了稳健可靠的数据访问。

支持新的Web3用例

这种方法为永久网络应用程序解锁了新的可能性,例如博客的动态后端、算法内容策划和实时监控系统。它允许将数据发布者与应用程序/前端运营商分离,鼓励开源社区中的专业化和分工。这种方法为去中心化的社交应用程序和协议提供了希望,为去中心化的数据发布和消费开辟了新的道路。

The Graph 中的查询语言和API:拥抱GraphQL

将 GraphQL 作为首选查询语言的决定,极大地改变了通过 The Graph 的 API 访问和交互数据的方式,为查询区块链数据提供了一种精简高效的方法。

理解 GraphQL 在 The Graph 中的作用

GraphQL 站在现代 API 设计的前沿,为数据检索提供了灵活高效的方法。在数据结构复杂且不断变化的区块链环境中,GraphQL 能准确获取所需数据的能力显得弥足珍贵。

  1. 定制化的数据查询:GraphQL的吸引力核心在于它能够让客户端精确定义所需数据的结构。这种能力与传统的固定结构响应相比,能够实现更加专注和高效的数据交互。

  2. 增强实时交互:The Graph中的GraphQL不仅支持查询,还支持实时数据订阅。这个功能对于区块链应用来说非常重要,因为及时更新和响应性对于用户体验至关重要。

  3. 去中心化和无信任的数据访问:The Graph使用GraphQL将其去中心化理念扩展到数据访问领域。通过与去中心的节点网络进行接口交互,GraphQL查询确保数据保持开放、透明和抗审查。
    API 和 GraphQL 的融合

在 The Graph 的生态系统中,API 与 GraphQL 的融合创造了一个和谐而强大的数据检索系统:

  1. 模式定义和数据映射:开发人员在subgraph中定义GraphQL模式,概述可查询数据的结构。然后将模式与区块链事件进行复杂映射,将链上活动转化为结构化数据。

  2. 通过索引器执行查询:当GraphQL查询提交到Subgraph API时,它会由The Graph 的去中心化网络中的索引器进行处理。这个过程展示了查询如何以分布式的方式执行,遵循区块链技术的原则。

  3. 处理复杂的数据关系:由于复杂的数据关系在区块链中司空见惯,GraphQL 处理复杂查询(包括各种形式的数据过滤和排序)的能力尤为有益。
    为开发人员和最终用户带来的好处

在 The Graph 中集成 GraphQL 有许多好处:

  • 开发人员的灵活性: 开发人员可以充分利用 GraphQL 的强大功能,根据应用程序的要求进行精确查询。
  • 高效数据获取:缩短数据获取时间可提高应用程序性能,直接带来更好的终端用户体验。
  • 无缝数据集成: GraphQL 查询的标准化特性简化了将各种区块链数据源集成到应用程序中的过程。
Tuyên bố từ chối trách nhiệm
* Đầu tư tiền điện tử liên quan đến rủi ro đáng kể. Hãy tiến hành một cách thận trọng. Khóa học không nhằm mục đích tư vấn đầu tư.
* Khóa học được tạo bởi tác giả đã tham gia Gate Learn. Mọi ý kiến chia sẻ của tác giả không đại diện cho Gate Learn.
Danh mục
Bài học 2

The Graph 背后的技术

深入了解 The Graph 的架构,我们会发现一个复杂而优雅的系统,它是区块链生态系统中去中心化查询机制的基础。这个复杂的框架以 Graph Node 为中心,协调各种组件的无缝集成,每个组件在网络的高效运行中扮演着至关重要的角色。

Graph Node:索引的核心动力

Graph 架构的核心是 Graph Node。这个关键组件负责为Subgraph编制索引,并通过 GraphQL API 访问由此产生的数据。它是索引器堆栈的核心,其有效运行对于索引器的成功运行至关重要。Graph Node 具有多功能性,能够在裸机和云环境中运行,反映了区块链技术动态环境所要求的适应性。

在PostgreSQL数据库中存储数据

Graph Node的运行离不开PostgreSQL数据库,它充当主要的存储器。这个数据库不仅存储subgraph数据,还存储有关subgraph的元数据以及区块和eth_call缓存等关键网络数据。对该数据库的组织和管理对于Graph Node的平稳运行至关重要,确保数据的完整性和可访问性。

网络客户端和Firehose

为了对区块链网络进行索引,Graph Node通过与EVM兼容的JSON-RPC API连接到网络客户端。这个设置可以连接到单个客户端,也可以连接到多个客户端并进行负载均衡等更复杂的安排。此外,The Graph还开发了Network Firehoses - 一个提供有序、支持分叉的区块流的gRPC服务。虽然Firehose目前不是索引器的必需品,但它代表了在大规模支持高性能索引方面的重大进展。

IPFS节点上的元数据和使用Prometheus进行监控

Graph Node与IPFS网络的交互对于存储subgraph部署元数据至关重要。在网络层面上托管一个IPFS节点简化了索引器的工作流程。此外,通过与Prometheus指标服务器的可选集成,可以添加更高级的功能,使索引器能够跟踪和优化Graph Node的性能。

可扩展性和高级配置

从安装选项到扩展能力,Graph Node 的灵活设置彰显了 The Graph 致力于满足各种运营需求的决心。该系统可通过多个Graph Node和数据库进行横向扩展,以满足日益增长的网络需求。高级用户可以利用Graph Node的配置选项(通过 TOML 文件或环境变量进行管理)来优化数据处理和工作负载分配。

数据索引和处理:重新定义Firehose和Substreams

Firehose:重塑区块链数据提取

由 StreamingFast 构思和开发的 Firehose 标志着从区块链节点提取数据的一场革命。这一创新工具将区块链区块内的每笔交易分解成最小的元素,并将其保存为简单的平面文件。这些平面文件不仅是一种存储格式,还体现了数据索引模式的转变。它们有利于并行处理,从而大大加快了索引操作的速度。这项技术可将丰富的、可分叉感知的数据从区块链节点直接传送给消费者。从实际角度来看,Firehose通过提供曾经被认为无法实现的数据捕获和处理速度,展示了其卓越的能力,从而为The Graph生态系统中的数据提取设立了新的标准。

Substreams:开创高效数据处理

Substreams 是 Firehose 功能的扩展,旨在以并行、以流优先的方式进行高性能数据处理。这些由 Rust 编写的模块允许开发人员针对各种用途对区块链数据进行组合、排序、存储和转换。Substreams 的独创性在于它们能够利用 Firehose 的平面文件以极快的速度编制数据索引。这种方法确保 Substreams 不仅能高效处理数据,还能在数据可用时立即分发,而不是依赖于持续请求。

Firehose和Substreams的结合

在 The Graph 的生态系统中,Firehose和Substreams的集成为数据处理提供了强大的组合。Firehose 可确保以优化格式迅速交付区块链数据,而 Substreams 则可进一步完善和处理这些数据。这种协同关系使处理大量区块链数据的效率无与伦比,大大提升了 The Graph 的能力。

Subgraphs:数据索引的行业标准

自2018年 The Graph 引入 subgraphs 以来,它们已经成为索引区块链数据的行业标准。它们本质上是开放的 API,从区块链中提取、处理和存储数据,从而通过GraphQL接口轻松查询。目前已支持超过40个链上的85000个subgraphs,而subgraphs俨然已成为Web3开发者不可或缺的工具。它们允许快速部署一个装满索引数据的 Postgres 数据库,并使用GraphQL层进行查询。Subgraphs使开发人员能够在其 DApp 中以有序、高效的方式显示从 DeFi 交易到 NFT 溯源等各种区块链数据。

在不断发展的区块链技术领域,subgraphs已经成为一个关键概念,改变了我们与利用区块链数据的方式。这些开放式应用程序接口就像中介一样,在去中心化的区块链世界和我们熟悉的结构化数据领域之间架起了一座无缝的桥梁。通过提取、处理和组织区块链数据为可查询格式,subgraphs赋予开发者构建创新和数据驱动的应用的能力。

Subgraphs 具有众多优点,使它们成为开发者和用户的理想选择。它们的去中心化性质确保了抗审查和无停机时间,促进了安全可靠的数据生态系统。此外,subgraphs具有天然的可扩展性,能够在不影响性能的情况下处理海量数据。成本效益是另一个关键优势,subgraphs通常比传统数据API更经济实惠。

Subgraph 的架构

Subgraph 包含三大主要功能,三大功能和谐互动,具有颠覆性的潜力:

  1. 清单(Manifest):清单作为subgraph的蓝图,概述了其数据源、模式和AssemblyScript代码。它定义了subgraph将索引的数据的边界,确保只捕获相关信息。

  2. 模式(Schema):模式定义了数据的结构,类似于建筑的蓝图。它概述了实体、字段和实体之间的关系,提供了一种清晰和有组织的数据表示方式。

  3. AssemblyScript 代码:这个可执行代码是subgraph工作的主力军,将区块链的原始数据转化为GraphQL引擎可理解的格式。它还处理数据的索引和存储,确保其可访问性和可靠性。
    Subgraph 开发流程
    创建一个subgraph涉及一系列步骤,每一步都经过精心设计,以确保subgraph的功能和效果:

  4. 构思和设计: 首先要明确要索引的数据及其支持的应用程序。这包括定义实体、字段和它们之间的关系,确保subgraph的结构符合其预期目的。

  5. 清单和模式开发: 清单和模式经过精心设计,为 subgraph 的数据架构奠定了基础。清单规定了数据源,而模式则概述了数据结构,以确保数据的完整性和一致性。

  6. AssemblyScript 代码实现: 编写 AssemblyScript 代码,将原始区块链数据转换为 GraphQL 可以理解的格式。它处理索引、存储和数据检索,实现对索引数据的高效访问。
    Subgraph 的部署和发布
    一旦Subgraph开发完成,它需要经过一个部署过程后才能面向世界:

  7. Subgraph Studio 集成:Subgraph Studio 作为一个集中平台,用于管理subgraph。它简化了部署过程,允许开发者将他们的subgraph发布到去中心化网络中。

  8. 索引和策展: 索引器负责获取和存储区块链数据,是开发者访问subgraph的关键。策展通常通过 GRT 代币完成,它激励索引器优先处理需求量大的subgraph。

  9. 查询和利用:开发者现在可以使用 GraphQL 查询来查询已部署的subgraph,检索与他们应用程序需求相适应的特定数据。这种无缝集成使开发者能够利用区块链数据进行创新。

未来:The Graph 的新时代

随着 The Graph 开启新纪元(我们将在第五课中进行探讨),这些核心技术— Subgraph、Firehose 和 Substreams—的持续发展令人期待。这些组件将不断扩展和发展,在引入新数据服务和确保更快、更模块化的数据流方面发挥重要作用。例如,”可验证的 Firehose 将成为访问以太坊历史数据的突破性解决方案,解决区块链标准不断发展所带来的挑战。

区分Subgraph和Substreams

区分Subgraph和Substreams是至关重要的,因为它们具有不同的用途。Subgraph非常适用于标准数据的检索和管理,提供了使用GraphQL查询层的简便设置和使用。相反,Substreams专为更复杂的分析和大数据需求而设计,提供了并行数据处理和更灵活的数据处理和存储能力。Substreams允许开发人员将数据从基本文件格式转换为更可用的形式,满足复杂的数据处理需求。

组织链下数据:The Graph的方法以及其对Web3数据管道的影响

The Graph 向来以擅长组织链上数据而闻名,现在它正涉足链下数据领域,扩大自己的视野。这种做法符合 The Graph 的长期使命,即提供对世界公共知识和信息的便捷访问。

Web3和数据管理中的权衡

在Web3架构中,用户可以通过中间件服务直接与区块链进行交互,但这也存在权衡,特别是在成本方面。链上交易成本通常被称为 “煤气费”,对于复杂的计算或大量的数据存储来说,可能会高得令人望而却步。这种限制在过去限制了应用的复杂性,或导致开发人员脱离开源模式,创建专有的链外应用程序接口。

The Graph 针对链下数据的独特解决方案

The Graph 针对这个挑战提出了一种独特的解决方案,通过其分散网络实现链下数据的组织和服务。这种方法涉及一个工作流程,其中传统的链下数据被发布到IPFS(InterPlanetary File System,星际文件系统),然后将IPFS哈希记录在链上。随后,这些数据可以被subgraph索引,并可供查询。这种方法提供了一种可扩展且经济的方式来发布和提供复杂的动态数据,而无需构建和维护专有应用程序接口。

工作流程:三步骤过程

工作流程包括三个关键组成部分:

  1. 用于数据计算和发布的 Cron 工作任务:链下的 Cron 工作任务执行复杂计算,并将计算结果发布到永久网络源(如 IPFS)上,该源可被The Graph索引。该工作任务还会生成链上事务,以发布 IPFS 文件哈希值和相关的元数据。

  2. Subgraph发布以编制索引:下一步是发布一个subgraph,根据链上发布的文件哈希对这些IPFS文件进行索引。一旦subgraph发布完成,它可以被The Graph网络中的索引器选中并提供服务,允许第三方开发者和用户查询数据。

  3. 稳健可靠的数据访问:通过利用 The Graph 的索引器分布式网络,数据访问无需数据发布者的额外努力即可保持稳健可靠。这种分散式结构大大提高了数据的可用性和完整性。

实际实施和成本效益

The Graph 生态系统中的一个实际例子是 Edge & Node 开发的用于发布网络成本和服务质量指标的预言机。该预言机每五分钟将汇总数据发布到 IPFS,并在 Gnosis 链上记录 IPFS 文件哈希值。然后,这些数据会被索引到一个subgraph中,供协议相关方使用。这种工作流程的相关成本出奇地低,因此对数据发布者来说是一个很有吸引力的选择。

动态数据的新可能性

使用The Graph处理动态数据的这种方法,为永久网络站点提供了令人兴奋的新可能性,包括用于博客的轻量级后端、算法内容策划和实时监控系统。它代表了数据发布、索引和访问方式的重大转变,促进了更开放和协作的Web3生态系统。

组织链下数据:The Graph 的创新方法

The Graph 扩展至链下数据的管理领域为Web3生态系统开辟了新的道路,在去中心化和传统数据领域之间架起了一座桥梁。这一举措体现了 The Graph 的使命,即以去中心化的方式提供更广泛的信息,解决链上数据存储和计算的固有局限性。

平衡链上和链下数据需求

The Graph认识到在Web3架构中,链上数据存储和计算的成本相关的权衡。直接与区块链交互虽然简单,但复杂的计算和大规模的数据存储可能变得过于昂贵。为了规避这些限制,The Graph引入了一种方法,将链下数据存储与链上数据引用相结合,从而在增强功能的同时保留了去中心化的精神。

The Graph 的链下数据方法论

这种方法涉及三步骤工作流程:

  1. 离链计算和IPFS发布:复杂的计算在链下进行,并将结果数据发布到IPFS,这是一种去中心化存储解决方案。这一步确保数据在链下以可验证和去中心化的方式存储。

  2. 通过交易进行链上链接:在将数据存储在IPFS上的同时,进行相应的链上交易以记录IPFS哈希和其他相关元数据。这种方法将链下数据锚定到区块链上,提供了一层信任和可追溯性。

  3. 为实现可访问性进行Subgraph索引:最后一步涉及使用subgraph对存储在IPFS上的数据进行索引。这个过程使链下数据可以通过The Graph的去中心化网络进行轻松查询和访问。
    实际实施:Edge & Node 的预言机

这种方法在 The Graph 生态系统中的实际应用是 Edge & Node 所开发的预言机。该预言机每五分钟发布一次网络成本和服务质量指标,具体方式如下:

  • 汇总数据发布到 IPFS。
  • 相应的 IPFS 文件哈希值通过 DataEdge 合约记录在 Gnosis 链上。
  • 这些 IPFS 文件被索引到一个subgraph中,以去中心化的方式向利益相关者提供数据。
    这个实施方案展示了发布和提供复杂数据的低成本、可扩展且高效的方法,而无需使用专有的应用程序接口。它展示了如何利用The Graph的方法为各种应用创建动态数据源。

成本效应和可扩展性

这种工作流程的相关成本出奇的低,因此对数据发布者来说是一种极具吸引力的解决方案。例如,Edge & Node 实施的预言机只需为链上交易和 IPFS 节点钉支付极少费用,而服务成本则由数据消费者承担。这种模式有效降低了数据发布者的运营开销,同时确保了稳健可靠的数据访问。

支持新的Web3用例

这种方法为永久网络应用程序解锁了新的可能性,例如博客的动态后端、算法内容策划和实时监控系统。它允许将数据发布者与应用程序/前端运营商分离,鼓励开源社区中的专业化和分工。这种方法为去中心化的社交应用程序和协议提供了希望,为去中心化的数据发布和消费开辟了新的道路。

The Graph 中的查询语言和API:拥抱GraphQL

将 GraphQL 作为首选查询语言的决定,极大地改变了通过 The Graph 的 API 访问和交互数据的方式,为查询区块链数据提供了一种精简高效的方法。

理解 GraphQL 在 The Graph 中的作用

GraphQL 站在现代 API 设计的前沿,为数据检索提供了灵活高效的方法。在数据结构复杂且不断变化的区块链环境中,GraphQL 能准确获取所需数据的能力显得弥足珍贵。

  1. 定制化的数据查询:GraphQL的吸引力核心在于它能够让客户端精确定义所需数据的结构。这种能力与传统的固定结构响应相比,能够实现更加专注和高效的数据交互。

  2. 增强实时交互:The Graph中的GraphQL不仅支持查询,还支持实时数据订阅。这个功能对于区块链应用来说非常重要,因为及时更新和响应性对于用户体验至关重要。

  3. 去中心化和无信任的数据访问:The Graph使用GraphQL将其去中心化理念扩展到数据访问领域。通过与去中心的节点网络进行接口交互,GraphQL查询确保数据保持开放、透明和抗审查。
    API 和 GraphQL 的融合

在 The Graph 的生态系统中,API 与 GraphQL 的融合创造了一个和谐而强大的数据检索系统:

  1. 模式定义和数据映射:开发人员在subgraph中定义GraphQL模式,概述可查询数据的结构。然后将模式与区块链事件进行复杂映射,将链上活动转化为结构化数据。

  2. 通过索引器执行查询:当GraphQL查询提交到Subgraph API时,它会由The Graph 的去中心化网络中的索引器进行处理。这个过程展示了查询如何以分布式的方式执行,遵循区块链技术的原则。

  3. 处理复杂的数据关系:由于复杂的数据关系在区块链中司空见惯,GraphQL 处理复杂查询(包括各种形式的数据过滤和排序)的能力尤为有益。
    为开发人员和最终用户带来的好处

在 The Graph 中集成 GraphQL 有许多好处:

  • 开发人员的灵活性: 开发人员可以充分利用 GraphQL 的强大功能,根据应用程序的要求进行精确查询。
  • 高效数据获取:缩短数据获取时间可提高应用程序性能,直接带来更好的终端用户体验。
  • 无缝数据集成: GraphQL 查询的标准化特性简化了将各种区块链数据源集成到应用程序中的过程。
Tuyên bố từ chối trách nhiệm
* Đầu tư tiền điện tử liên quan đến rủi ro đáng kể. Hãy tiến hành một cách thận trọng. Khóa học không nhằm mục đích tư vấn đầu tư.
* Khóa học được tạo bởi tác giả đã tham gia Gate Learn. Mọi ý kiến chia sẻ của tác giả không đại diện cho Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.