瞭解 Substreams(子流) 的基礎知識,Substreams 是一款強大的區塊鏈數據索引解決方案。

TL;DR: 對於那些剛接觸 Substreams(子流) 的人,請了解它是什麼以及它如何使開發人員更容易訪問區塊鏈數據.

您是否正在尋找最佳的區塊鏈數據索引解決方案?想知道如何有效地提取和管理區塊鏈數據?

開始使用 Substreams!

這是系列文章中的第一篇,將帶您從 Substreams 新手到精通。

訪問區塊鏈數據的問題

開發人員經常發現構建以數據爲中心的應用程序具有挑戰性,尤其是在面對區塊鏈數據時。提取區塊鏈數據既困難又複雜,由於區塊鏈的線性和分佈式特性,以快速可靠的方式提取數據更具挑戰性。

子流是解決方案

目前沒有多少解決方案可以解決這個問題,但構建區塊鏈數據處理工具的專家 StreamingFast 正在加緊努力。他們正在使用名爲Substreams的新技術,以便更輕鬆地快速可靠地處理和索引區塊鏈數據。

讓我們來看看Substreams(子流)是什麼,以及它如何使區塊鏈數據更容易訪問。

什麼是子流?

Substreams 是 StreamingFast 爲 The Graph Network 構建和開發的一種強大的區塊鏈數據索引技術。它使開發人員能夠從區塊鏈中提取數據,應用自定義轉換以滿足其應用程序的獨特需求,並毫不費力地將處理後的數據引導到各種目的地,例如 PostgresSQL、ClickHouse、MongoDB 等等。

子流是如何工作的?

Substreams 涉及兩個主要組件:Substreams 提供程序和 Substreams 包。讓我們仔細看看每一個:

  • 子流提供程序:Substreams 提供程序存儲和交付區塊鏈數據。這些提供商(如 Pinax)使用 Firehose(一種由 StreamingFast 開發的與區塊鏈無關的高性能數據提取引擎)來有效地提取區塊鏈數據。

  • 子流包:Substreams 包是一個編譯到 WebAssembly 中的小型 Rust 程序,它定義了開發人員想要應用於數據的轉換。開發人員使用 gRPC 請求將 Substreams 包發送到 Substreams 提供程序,然後 SubRPC 請求執行該請求並流迴轉換後的數據。此外,開發人員可以根據需要將數據發送到其他目標。

目前,Substreams 只能使用 Rust 構建,但 StreamingFast 團隊計劃在不久的將來讓開發人員在 Golang 和 TypeScript 中構建 Substreams。

使用 Substreams 的三種方式

開發人員在處理子流時有不同的選擇:他們可以使用預構建的子流或構建自己的子流:

  1. 使用子流:利用 Substreams 的最簡單方法是使用 Substreams Registry 上提供的預構建 Substreams 包,Substreams 註冊表是發現和共享 Substreams 包的一站式目標。您可以選擇滿足您需求的軟件包,並將數據無縫流式傳輸到您的首選目的地。

  2. 構建子流:如果在 Substreams 註冊表中找不到合適的 Substreams 包,可以創建自己的包。開發後,可以將這些包發佈到註冊表,使其可供其他人使用。

  3. 擴展子流:您還可以利用註冊表中的現有 Substreams 模塊,並在其上構建新的 Substreams 模塊,從而生成全新的數據集。這種方法允許自定義和擴展子流功能以滿足特定要求。

這種協作方式促進了一個充滿活力的生態系統,開發人員可以在其中貢獻他們的解決方案,並從社區內的集體知識和創新中受益。

使用子流的好處

Substreams 在索引和查詢區塊鏈數據時爲開發人員提供了許多優勢。以下是其中的一些:

  • 速度:Substreams 通過並行架構和流優先設計優先考慮速度,確保高效的區塊鏈數據索引。

  • 可組合性:子流提供可組合性,使開發人員能夠輕鬆地使用彼此的代碼或模塊來創建複雜的索引管道。

  • 可 重用:Substreams 強調可重用性,使您能夠使用 Substreams 註冊表上提供的預構建子流來執行其索引任務。

  • 自定義sinks:Substreams 支持自定義接收器,允許與您首選的數據存儲或分析解決方案無縫集成。

  • 將區塊鏈數據索引轉移到提供程序:Substreams 允許您將區塊鏈索引的繁重工作交給像 Pinax 這樣的服務提供商。提供程序可以根據請求進行擴展,並將數據下沉到各種數據庫中,從而減輕了自己運行昂貴索引節點的需要。

  • 強大的社區支持:儘管是一項新技術,但 Substreams 已經引起了開發人員的極大關注,而且數量還在穩步增長。在 Pinax,除 StreamingFast Discord 社區之外,我們還有另外一個 Discord 社區,如果您想使用 Substreams 技術方案,可以爲您提供支持和幫助。

學習和探索更多區塊鏈數據索引技術

關注微信公衆號:Pinax