Validators DAO 開源 Solana Geyser gRPC 實時檢測 pump.fun 代幣鑄造的研發示例程式碼
Validators DAO 開源 Solana Geyser gRPC 實時檢測 pump.fun 代幣鑄造的研發示例程式碼

ELSOUL LABO B.V.(總部:荷蘭阿姆斯特丹;CEO:Fumitake Kawasaki)與 Validators DAO 已開源一份研發示例程式碼,用於透過 Solana Geyser gRPC 資料流實時檢測 pump.fun 代幣鑄造事件。
該示例程式碼用於以資料流形式接收 Solana 上發生的鏈上事件(on-chain events),並實時檢測符合特定條件的事件。以 pump.fun 代幣鑄造(token mint)為主題,開發者可以檢視如何處理 Solana Geyser gRPC stream 中流動的資料,並檢測事件發生。
以 pump.fun 代幣鑄造檢測為主題的實時 Solana 資料處理
pump.fun 代幣鑄造是 Solana 上發生的鏈上事件中,適合作為實時資料處理主題的清晰示例。透過檢測新代幣被鑄造的瞬間,並將該資訊傳遞給後續處理,開發者可以檢視 Solana 應用所需的事件驅動基礎結構。
在實時 Solana 應用中,快速理解鏈上發生了什麼非常重要。接收新事件、識別目標、提取必要資訊,並將其傳遞給下一步處理,這一流程是通知、日誌記錄、監控、分析、索引、後端處理以及許多其他 Solana 應用工作流的共同基礎。
本次公開的示例程式碼透過 pump.fun 代幣鑄造檢測,將這一流程具體化。開發者可以閱讀實際程式碼,驗證其行為,並根據自己的用例擴充套件檢測條件或後續處理。
透過 Solana Geyser gRPC 資料流接收鏈上事件
處理 Solana 鏈上事件的方式有多種,包括 HTTP RPC、WebSocket、Geyser gRPC 和 Shredstream。其中,Geyser gRPC streams 適合持續接收 accounts、slots、blocks、transactions 等資料,並在應用側實時處理這些資料。
HTTP RPC 是在某個時間點請求並獲取所需資訊的機制。它適用於歷史檢查、state 獲取和單個 transaction 確認。然而,當需要持續追蹤鏈上發生的事件時,如果在事件發生後反覆查詢大範圍資料,網路流量、處理負載和時間開銷都可能增加。
WebSocket 也是 Solana 開發中廣泛使用的有用機制。不過,Geyser gRPC streams 可以將事件作為連續的資料流接收,並在應用側立即處理。對於 pump.fun 代幣鑄造檢測這類需要快速捕捉特定鏈上事件的工作負載,流式架構更容易圍繞事件發生時的資料來構建處理流程。
透過 HTTP/2 和 Protocol Buffers 實現高效流式通訊
gRPC 構建在 HTTP/2 之上,可以使用長連線、connection multiplexing、header compression,以及透過 Protocol Buffers 進行二進位制表示。對於持續接收大量資料,並在應用側處理所需事件的工作負載,這些特性直接支援資料傳輸效率和更清晰的實現設計。
在 polling 或重複 request/response 流程中,每次獲取資料通常都需要發出 request、等待 response,然後在應用側再次進行判斷。WebSocket 可以使用持久連線,但當系統主要圍繞 JSON-based subscriptions 或大範圍通知構建時,對接收資料的解釋、篩選和後續處理往往會較多地轉移到應用層。
Geyser gRPC streams 基於 HTTP/2 和 Protocol Buffers,使持續接收結構化 Solana 資料變得更容易。在實時檢測鏈上事件時,應用可以將所需資料作為資料流接收,並只處理符合目標條件的事件。這樣可以更容易減少不必要的查詢和重複拉取,同時以更低網路流量和處理開銷設計實時資料處理。
pump.fun 代幣鑄造檢測示例程式碼,是檢視這種基於 Geyser gRPC stream 的實現方式的入口。開發者可以檢查用於接收鏈上事件、判斷所需條件,並將檢測到的事件連線到後續處理的實際程式碼結構。
在每個 Epoch 推進 432,000 個 Slots 的 Solana 上,實時檢測很重要
在 Solana 中,每個 epoch 會快速推進 432,000 個 slots。所處理的資料量也很大,在我們的 Solana RPC 基礎設施運營中,根據範圍和配置,每個 epoch 處理的資料量可能達到約 500 GB。當鏈上事件之後透過 backfill 大範圍資料來重構時,處理時間、頻寬、計算資源、儲存和索引的負載都可能變得很高。
實時檢測是減少這種負載的重要設計方法。透過在必要事件發生的瞬間接收它們,只記錄相關記錄,並只執行必要的後續流程,應用可以減少大範圍重新拉取和不必要的資料處理。
pump.fun 代幣鑄造檢測就是一個具體例子。與其在事後重度處理全部資料,不如在事件發生瞬間從資料流中識別目標事件,這樣更容易構建符合 Solana 高速資料生成特點的應用結構。
示例程式碼展示的內容
本次公開的示例程式碼展示了使用 Solana Geyser gRPC streams 實時檢測 pump.fun 代幣鑄造的流程。
開發者主要可以檢視與 Geyser gRPC stream 的連線、對資料流接收資料的處理、對 pump.fun 代幣鑄造相關事件的判斷,以及檢測後與後續處理的連線。這樣可以透過具體程式碼,而不是抽象說明,理解 Solana 實時資料處理。
開發者可以將該示例程式碼作為起點,調整檢測條件、修改 output format、新增通知或儲存處理,並將這一結構應用到其他鏈上事件。從 pump.fun 代幣鑄造檢測這一具體主題開始,有助於理解使用 Solana Geyser gRPC streams 進行實時事件處理的基礎結構。
開源釋出
該示例程式碼以開源形式釋出。它提供了使用 Solana Geyser gRPC streams 進行實時事件檢測的實現示例,任何人都可以檢視、使用和修改。
在像 Solana 這樣高速且大資料量的網路中,資料獲取方式本身會影響應用效能和運營成本。如果應用每次需要特定事件時都反覆搜尋大範圍資料,負載不僅會增加在應用側,也會增加在 RPC、網路、儲存和索引基礎設施上。
透過使用 Geyser gRPC streams 在事件發生時接收必要事件,並只處理相關資料,應用可以減少不必要的查詢、重複拉取和過度頻寬消耗。這種高效的流式通訊不僅可以改善 Solana 應用的實時效能,也可以改善資料獲取成本和通訊效率。
該示例程式碼旨在讓開發者以實現形式檢視這種實時 Solana 資料處理。透過 pump.fun 代幣鑄造檢測,開發者可以具體驗證 Geyser gRPC streams、HTTP/2、Protocol Buffers 和實時鏈上事件處理。
回饋
Validators DAO 持續圍繞實時 Solana 資料處理進行研究和開發。對於本次公開的 pump.fun 代幣鑄造檢測示例程式碼,我們歡迎開發者回饋在實際使用中發現的改進點、希望追加的檢測目標、stream processing 擴充套件方案,以及與通知或儲存整合相關的需求。
為了讓更多開發者更容易使用這一基於 Solana Geyser gRPC streams 的實時檢測實現,請檢視示例程式碼並分享您的回饋。
Validators DAO 官方 Discord:https://discord.gg/C7ZQSrCkYR
免責宣告
本文和示例程式碼是與 Solana 鏈上事件檢測、Geyser gRPC streams 和實時資料處理相關的研發技術資料。它們不構成投資建議、交易策略推薦,或買賣任何特定 token、asset 或 protocol 的招攬。
使用該示例程式碼前,請充分檢查並驗證內容,並自行承擔使用責任。


