ERPC 在 Solana RPC 中新增 Jet Analytics — 基於 Jetstreamer 實現,強化歷史資料獲取、回填、恢復與分析

ERPC 在 Solana RPC 中新增 Jet Analytics — 基於 Jetstreamer 實現,強化歷史資料獲取、回填、恢復與分析

ERPC 在 Solana RPC 中新增 Jet Analytics — 基於 Jetstreamer 實現,強化歷史資料獲取、回填、恢復與分析
ELSOUL LABO B.V.(總部:荷蘭阿姆斯特丹;CEO:Fumitake Kawasaki)與 ERPC 的運營方 Validators DAO 今日宣佈,ERPC 已在 Solana RPC 中新增 Jet Analytics & Indexed RPC,並藉助 Jetstreamer 實現提供新的支援方法,使歷史資料獲取、backfilling、故障後恢復以及分析基礎設施的構建更易推進。
透過本次更新,使用 ERPC Solana RPC 的開發者不僅可以使用從現在開始收集的資料,還可以利用 indexes 中保留的歷史資料,更輕鬆地推進應用開發、backfilling、故障後恢復、分析、監控和驗證。
支援的方法包括 getTransactionsForAddressgetTransfersByAddressjetTopProgramsjetSlotStatsjetTpsTimeseriesjetEpochSummaryjetProgramStats。這些都是透過 ERPC 運營的、源自 Jetstreamer 的 self-hosted index 與 gateway 提供的 Jet Analytics & Indexed RPC 方法。
本次更新在全部 ERPC Solana RPC plans 中可用。現有使用者也無需另外簽約專用 plan,即可透過當前的 ERPC API key 和 Solana RPC endpoint 試用 Jet Analytics & Indexed RPC。

可直接從 ERPC Dashboard 的 Docs 試用 Jet Analytics

ERPC Jet Analytics & Indexed RPC
在 ERPC Dashboard 中,開發者除了可以管理 Solana RPC 的使用情況和 plans 之外,還可以透過 Docs 流程開啟 Solana RPC Documentation,確認 Jet Analytics & Indexed RPC 的各個方法。開發者可以在確認每個方法的 request 格式、parameters、response 格式和使用注意事項的同時,直接開始驗證。
本次新增的 Jet Analytics,在現有的 Solana RPC 使用流程中加入了歷史資料與 index-backed analytics 的獲取方式。開發者可以在確認 ERPC Solana RPC endpoint 的同時,使用同一個 API key、同一個 Dashboard 和同一套文件流程,獲取歷史 transactions、token transfers、program 統計、slot 統計、TPS 趨勢和 epoch summary。
由此,在 Solana 應用的開發初期、分析基礎設施的構建、現有 indexer 的補充、故障後恢復、歷史期間的驗證、面向使用者的歷史展示、監控系統的重新同步等場景中,開發者可以更容易地在 ERPC 的 Solana RPC 平臺上處理所需的歷史資料。

透過 Jetstreamer 實現強化歷史資料獲取

Solana RPC 作為獲取當前狀態和近期資訊的基礎設施被廣泛使用。然而,在應用開發和分析基礎設施的實際運營中,僅靠當前狀態往往不夠。開發者經常需要在事後獲取已經發生的 transactions、地址級歷史、token transfers、特定 program 的執行情況、各 slot 的 transaction 數、epoch 級活動量等。
啟動新應用時,開發者不僅需要「從現在開始能獲取的資料」,還需要「到目前為止已經發生的資料」。對於錢包、Explorer、交易應用、分析基礎設施、監控系統、bots 和 AI agents 而言,如果只從當前開始收集資料,就無法掌握過去的使用情況、交易歷史、token 流動、program 使用情況,以及作為異常檢測前提的比較資料。
以往,這種 backfilling 帶來很大的負擔。一般 RPC 主要用於獲取最新狀態和近期資料,要快速獲取較舊的 archive 資料並整理成應用易用的形式,往往需要專用 indexer、archive node、獨立資料庫以及長時間的重新獲取處理。結果是,許多開發團隊雖然可以從現在開始收集資料,卻很難在已經持有歷史資料的狀態下啟動應用開發。
ERPC 此次把基於 Jetstreamer 實現的 self-hosted index 整合到 Solana RPC 基礎設施中,提升了歷史資料獲取的實用性。由此,開發者不僅可以收集從現在開始的資料,還可以利用 indexes 中保留的歷史資料進行 backfilling、重新獲取、恢復與分析。

能夠使用歷史資料,將改變應用開發的起點

歷史資料的快速獲取,並不僅僅意味著能夠檢視舊資訊。在開始新事物時,能夠在已經持有歷史資料的狀態下啟動開發,將直接影響應用設計、分析精度、使用者體驗以及運營恢復。
例如,錢包和 Explorer 需要在事後獲取地址的歷史 transactions 和 token transfers,並向使用者展示過去的活動歷史。分析基礎設施需要確認某段時期內哪些 programs 被頻繁呼叫、哪個 slot 處理了多少 transactions、TPS 如何變化,不僅是當前情況,還包括過去期間。
此外,當 indexer 或內部資料庫發生意外事故時,歷史資料的獲取效能也很重要。即使因資料庫損壞、ingestion 處理停止、部署時的 bug、儲存故障或錯誤的 migration 而丟失某段時期的資料,只要能重新獲取歷史資料,就更容易補全缺失的時期,將服務恢復到原先的狀態。
對 Solana 應用而言,重要的不僅是實時資料的接收速度,還包括隨後的確認、儲存、補充、重新獲取、分析與監控等一系列資料處理流程。ERPC 的 Jet Analytics & Indexed RPC 正是為了支撐這部分後段歷史資料處理與運營恢復的擴充套件。

透過 getTransactionsForAddress 獲取地址級歷史 transactions

getTransactionsForAddress 是用於獲取與特定地址相關 transactions 的 Indexed RPC 方法。透過指定目標地址,並組合 slot、blockTime、signature、status 等條件,開發者可以獲取地址級的歷史資料。
該方法支援 transactionDetails: "signatures"transactionDetails: "full" 兩種獲取模式。signatures 模式返回 signature、slot、transactionIndex、err、memo、blockTime、confirmationStatus 等 index row。full 模式在執行相同 index lookup 的基礎上,對每個 transaction 組合詳細資訊獲取,同時返回 transaction、meta 和 version。
對於錢包、Explorer、監控系統、使用者支援、交易歷史確認和內部核對來說,能夠快速獲取與特定地址相關的歷史 transactions 至關重要。在新產品想要展示歷史記錄、希望補充現有 indexer、或在故障後重建特定地址歷史時,該方法同樣有效。
response 中包含 paginationToken,可用於獲取下一頁。同時還包含 windowStart,可確認當前 index 中保留的最舊 slot。這樣一來,客戶端可以在判斷該 endpoint 可獲取範圍的同時,設計歷史資料獲取流程。

透過 getTransfersByAddress 獲取 token transfers 的歷史資料

getTransfersByAddress 是用於獲取與特定 owner address 相關的 SPL Token v1 轉賬資料的 Indexed RPC 方法。透過組合 inbound、outbound、any 方向指定,以及 counterparty address、mint、amount、blockTime、slot 等條件,開發者可以獲取錢包和分析基礎設施所需的 token transfers 歷史資料。
每個 row 包含 signature、slot、blockTime、type、fromUserAccount、toUserAccount、fromTokenAccount、toTokenAccount、mint、amount、decimals、uiAmount、feeAmount、feeUiAmount、transactionIdx、instructionIdx、innerInstructionIdx 等欄位。如果一個 transaction 包含多個 Token program call,每個 call 將作為獨立的 row 處理。
solMode 可在 merged 模式與 separate 模式之間選擇:merged 模式將 wSOL 與 native SOL 同等處理,separate 模式則將 wSOL mint 分離處理。在錢包和資產組合展示中,merged 模式通常更易處理;而在分析用途中,則可以透過 separate 模式區分 SOL 與 wSOL 的流向。
token transfers 資料在錢包、資產組合、交易歷史、會計、監控、alerts、資金流動分析、bot 驗證和使用者支援中都很重要。在希望事後重建某段時期的資產流動,或補充 indexer 缺失期間的場景中,該方法同樣有效。

透過 jetTopPrograms 掌握 program 使用情況

jetTopPrograms 是以排行榜形式獲取指定時間範圍內呼叫次數較多的 programs 的方法。透過指定 since、until、includeVotes、limit,開發者可以獲取每個 program 的 invocations、errors 和 total_cus。
在 Solana 上,掌握某段時期內哪些 programs 被頻繁使用,有助於網路分析、應用分析、負載趨勢確認、bot 與交易應用的目標篩選,以及監控目標的提取。僅看 transaction 數無法得知哪些 programs 實際被頻繁呼叫、消耗了多少 compute units、發生了多少 errors。
透過 jetTopPrograms,開發者可以高粒度地確認特定時期內 Solana 上的 program activity。它可用於研究新的應用領域、發現備受關注的 programs、識別負載較大的 programs、與過去期間進行比較,以及把握整個網路的活動趨勢。

透過 jetProgramStats 進行 program 級時序分析

jetProgramStats 是針對特定 program ID 按時間 bucket 獲取 invocations、errors 和 total_cus 的方法。透過指定 programIdBase58、since、until、bucketSec,開發者可以按時序確認目標 program 的使用情況。
該方法適用於確認特定 program 的使用量增加、錯誤增加、compute units 消耗變化、事件發生前後的活動量、釋出後的使用情況、異常呼叫激增等用途。以時序方式檢視 program 級活動,可以掌握僅靠單次彙總無法看到的變化。
對於交易應用、DeFi、NFT、遊戲、DePIN、AI x Crypto、監控系統和分析 dashboards 來說,確認特定 program 的活動何時增加、在哪段時期 errors 增多、compute units 消耗如何變化都很重要。jetProgramStats 正是為了讓這種 program-level analytics 更易於透過 ERPC 的 Solana RPC 流程處理的方法。

透過 jetSlotStats 確認 slot 級處理情況

jetSlotStats 是針對單個 slot 或 slot range 獲取 transaction_count、vote_transaction_count、non_vote_transaction_count、block_time 的方法。該方法支援透過指定 slot 進行單 slot 獲取,或透過 fromSlot 與 toSlot 進行範圍獲取。
在 Solana 分析中,重要的是按 slot 級確認處理了多少 transactions,其中包含多少 vote transaction 和 non-vote transaction。僅看單純的 transaction 總數,無法區分源自應用的 activity 與 consensus 相關的 vote activity。
透過 jetSlotStats,開發者可以按 slot 級確認特定 slot 或特定時期的處理情況。它可用於故障調查、效能分析、各 slot 的 activity 分析、backfill 範圍確認、資料缺失驗證、監控系統的基礎資料獲取。

透過 jetTpsTimeseries 獲取 TPS 趨勢

jetTpsTimeseries 是針對指定時間範圍按 bucket 獲取 total_tps 和 non_vote_tps 的方法。透過指定 from、to、bucketSec,開發者可以按時序確認 Solana 的 transaction throughput。
TPS 僅以單一數值呈現時容易產生誤導。它會隨時段、網路負載、應用 activity、vote transaction 比例和擁堵情況而大幅波動。jetTpsTimeseries 可以分別獲取 total TPS 與 non-vote TPS,因此更容易現實地把握源自應用的 activity。
對於分析 dashboards、網路監控、研究用途、基礎設施負載分析、應用 activity 比較、特定時期的流量驗證而言,按時序處理 TPS 非常重要。透過 jetTpsTimeseries,開發者可以透過 ERPC 的 RPC 流程獲取 Solana 歷史期間的 throughput 趨勢。

透過 jetEpochSummary 進行 epoch 級彙總

jetEpochSummary 是針對指定 epoch 獲取 slots、non_vote_txs、vote_txs、total_txs、first_block_time、last_block_time、distinct_programs、program_invocations 等彙總資訊的方法。
epoch 級彙總與短期的 slot 或 transaction 確認不同,對於以較大時間單位掌握 Solana 網路的活動量非常有效。開發者可以確認某個 epoch 在 index 中存在多少 slot、處理了多少 vote transaction 和 non-vote transaction、呼叫了多少 programs。
在研究、報告、網路分析、長期使用趨勢確認、應用 activity 的時序比較、基礎設施負載預測等場景中,epoch 級彙總很有用。jetEpochSummary 正是為了讓這種大尺度分析更易在無需大量獲取個別 transactions 的情況下開始的方法。

從 getTransaction 加速到歷史資料獲取的擴充套件

ERPC 此前曾大幅改進圍繞 Solana RPC 的 getTransaction 的歷史 transaction 獲取效能。getTransaction 是針對單個 transaction signature 獲取詳細資訊的基本方法,被 Explorer、錢包、indexing、分析基礎設施、監控系統、backend API、交易歷史確認等頻繁使用。
本次的 Jet Analytics & Indexed RPC 進一步擴充套件了這一方向。getTransaction 的加速支撐的是特定 transaction 的詳細資訊獲取。而本次的 Indexed RPC,則是用於在搜尋、彙總、分頁的同時獲取地址級歷史資料、token transfers、program activity、slot stats、TPS timeseries、epoch summary 等多種歷史資料的擴充套件。
在 Solana 應用中,不僅需要確認單個 transaction 的詳細資訊,還需要一併獲取歷史期間的活動,並將其納入應用側的 database、dashboard、monitoring、analytics 和 AI agent。ERPC 透過將 getTransaction 這類基本方法的改進與 Jet Analytics & Indexed RPC 這類 index-backed method 的新增相結合,提升了歷史資料獲取的實用性。

可在確認當前 index 保留範圍的同時使用

Jet Analytics & Indexed RPC 基於 ERPC 運營的 self-hosted index 提供。因此,各 endpoint 能處理的歷史資料範圍取決於當前 index 中保留的範圍。getTransactionsForAddressgetTransfersByAddress 會返回 windowStart,可確認當前 index 中保留的最舊 slot。
開發者可以透過 windowStart 判斷該 endpoint 可獲取的範圍。在設計歷史資料的 backfilling、重新獲取、恢復處理時,重要的是組合目標時期、paginationToken、sortOrder、limit、filters 和 windowStart,按階段獲取所需範圍。
本次的 Jet Analytics 是為了讓歷史 transactions、token transfers、program 執行統計、slot 統計、TPS 趨勢和 epoch 彙總更易處理的擴充套件。在應用側,根據用途組合 standard RPC、getTransaction、Indexed RPC、WebSocket、Geyser gRPC、Shredstream 進行設計非常重要。

在 Explorer、錢包、indexer、分析基礎設施、監控、AI agent 中的使用

Jet Analytics & Indexed RPC 可用於 Solana 應用的多種場景。
在 Explorer 和錢包中,可用於地址級歷史 transactions、token transfers、過去交易確認、面向使用者的歷史展示。在交易應用和 DeFi 中,可用於特定地址或特定 mint 的歷史資金流動、program activity、交易成功與失敗的趨勢、運營層面的驗證。
在 indexer 和分析基礎設施中,可用於新建時的 backfilling、缺失期間的補全、歷史期間的重新彙總、與現有資料庫的核對、故障後的恢復。在監控系統中,可使用 slot stats、TPS timeseries、program stats、epoch summary 來確認通常狀態下的基準值、異常檢測、負載趨勢、特定 program 的 activity 變化。
對 AI agents 和自動化運營系統來說,歷史資料同樣重要。AI agent 透過從 Solana RPC 獲取當前狀態,並從 Jet Analytics & Indexed RPC 獲取歷史 activity、transaction history、token transfers、program stats、TPS trend,可以提供更具上下文的報告、監控、通知、調查與開發支援。

在同一流程中使用 Solana RPC、WebSocket、Geyser gRPC、Shredstream 和 Indexed RPC

ERPC 提供 Solana RPC、WebSocket、Geyser gRPC、Shredstream、VPS 和 bare metal servers,作為面向 Solana 的專用運營基礎設施。隨著本次 Jet Analytics & Indexed RPC 的加入,不僅實時資料分發,歷史資料、彙總資料和分析資料也都可以透過同一個 Solana RPC 流程更輕鬆地處理。
Solana 應用僅靠實時訂閱是不夠的。它們還需要 getTransaction 來事後確認實時檢測到的事件、Indexed RPC 來補充歷史期間、用於面向使用者螢幕的歷史資料、作為監控基準的 slot stats 和 TPS timeseries,以及 program activity 的分析。
ERPC 並不把這些視為分散的功能片段,而是把它們作為 Solana 應用實際所需的資料路徑來處理。開發者可以從 ERPC Dashboard 確認 Solana RPC endpoint,在 Docs 中試用各方法的同時,驗證當前 workload 所需的資料獲取路徑。

在全部 ERPC Solana RPC plans 中可用

本次新增的 Jet Analytics & Indexed RPC 可在全部 ERPC Solana RPC plans 中使用。現有使用者也無需另外簽約專用 plan,即可透過當前的 Solana RPC endpoint 試用新方法。
在 ERPC Dashboard 中,開發者可以確認 Solana RPC 的使用情況、plan 管理、API key 和文件流程。Jet Analytics & Indexed RPC 的各個方法已被新增到 Solana RPC Documentation 的 Jet Analytics & Indexed RPC 章節中,開發者可以在確認 request 格式、parameters、response 格式的同時進行驗證。

作為 Solana 專用基礎設施擴充套件歷史資料獲取與分析功能

ERPC 改進 Solana RPC,並不是把它作為一個簡單的 API endpoint,而是作為支撐 Solana 應用執行品質的基礎設施。在 Solana 中,HTTP RPC、WebSocket、Geyser gRPC、Shredstream、SWQoS、伺服器位置、validator 質量、網路路徑、處理 node 效能、indexing、歷史資料獲取都會直接影響應用的速度、穩定性、恢復能力與分析能力。
本次 Jet Analytics & Indexed RPC 的加入,是擴充套件 Solana 應用所需資料獲取範圍的改進。透過讓當前狀態、實時事件、歷史 transactions、token transfers、program activity、slot stats、TPS timeseries、epoch summary 都可以在同一個開發流程中處理,ERPC 幫助開發者降低組合多個基礎設施服務的初期負擔,更直接地專注於應用本體的設計、驗證與運營恢復。
ELSOUL LABO 自 2022 年起連續五年獲得荷蘭政府 WBSO 研究開發支援計劃批准。公司持續推進 Solana RPC 基礎設施、validator 運營、實時資料分發、歷史資料獲取,以及基於 AI agents 的運營與開發支援相關研究開發,並將這些成果反映到 ERPC、SLV、SLV AI 和 AS200261 Solana 專用資料中心等各項服務中。
透過 ERPC 的 Jet Analytics & Indexed RPC,使用 Solana RPC 的開發者不僅可以處理當前資料,還可以透過同一流程處理歷史資料、彙總資料、分析資料和恢復用資料。透過在同一平臺上組合 Solana 應用所需的實時性、歷史資料獲取、backfilling、恢復與分析,開發者可以更輕鬆地推進錢包、Explorer、交易應用、DeFi、indexer、分析基礎設施、監控系統、AI agents 等的開發與運營。

聯絡方式

關於 Jet Analytics & Indexed RPC、Solana RPC、getTransactionsForAddressgetTransfersByAddressjetTopProgramsjetSlotStatsjetTpsTimeseriesjetEpochSummaryjetProgramStats、歷史資料獲取、backfilling、恢復、分析基礎設施、現有 plan 及架構諮詢,請在 Validators DAO 官方 Discord 建立支援工單進行諮詢。
ERPC Dashboard: https://dashboard.erpc.global/en ERPC 官方網站: https://erpc.global/zh-tw Validators DAO 官方 Discord: https://discord.gg/C7ZQSrCkYR