Lección 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 查詢的標準化特性簡化了將各種區塊鏈數據源集成到應用程序中的過程。
Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 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 查詢的標準化特性簡化了將各種區塊鏈數據源集成到應用程序中的過程。
Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.