ELSOUL LABO B.V.(總公司:荷蘭阿姆斯特丹,執行長:川崎文武)及 Validators DAO 宣布,已開源公開用於透過 Solana Geyser gRPC 串流即時偵測 pump.fun 代幣鑄造的研究開發用範例程式碼。

本範例程式碼是一個實作範例,用於以串流形式接收 Solana 上發生的鏈上事件,並即時偵測符合特定條件的事件。以 pump.fun 的代幣鑄造為主題,您可以檢視一個處理從 Solana Geyser gRPC 串流傳來的數據,並偵測事件發生的架構。

範例程式碼:https://github.com/ValidatorsDAO/solana-stream/tree/main/temp-release/trade-app

以 pump.fun 代幣鑄造偵測為主題的即時 Solana 數據處理

pump.fun 的代幣鑄造,在 Solana 上發生的鏈上事件中,是一個作為即時數據處理主題容易理解的事件。透過偵測新代幣鑄造發生的瞬間,並將該資訊傳遞給後續處理,可以確認 Solana 應用程式所需的事件驅動型基本結構。

在 Solana 的即時應用程式中,快速掌握鏈上發生了什麼事至關重要。接收新事件、識別對象、提取必要資訊、再傳遞給下一個處理。這個流程是通知、記錄、監控、分析、索引處理、後端處理等多種 Solana 應用程式共通的基礎。

這次公開的範例程式碼,是將此流程以 pump.fun 代幣鑄造偵測這一具體形式呈現出來。各位開發者可以閱讀實際的程式碼,確認其運作,並根據自己的用途擴充偵測條件或後續處理。

透過 Solana Geyser gRPC 串流接收鏈上事件

處理 Solana 鏈上事件的方法有多種選擇,包括 HTTP RPC、WebSocket、Geyser gRPC、Shredstream 等。其中,Geyser gRPC 串流適合持續接收 accounts、slots、blocks、transactions 等數據,並在應用程式端進行即時處理的架構。

HTTP RPC 是請求並取得所需資訊的機制。適合用於歷史確認、狀態取得、個別交易的確認等。另一方面,若要持續追蹤鏈上發生的事件,在事件發生後持續查詢大範圍的架構,容易在通訊量、處理量、取得時機等方面造成較大的負擔。

WebSocket 是 Solana 開發中被廣泛使用的有用機制。另一方面,透過 Geyser gRPC 串流,可以將事件作為連續的數據流接收,並在應用程式端當場處理。對於像 pump.fun 代幣鑄造偵測這樣希望快速捕捉特定鏈上事件的處理,採用串流型的架構,更容易組建以事件發生時點的數據為起點的處理。

以 HTTP/2 與 Protocol Buffers 實現高效的串流通訊

gRPC 是以 HTTP/2 為基礎的通訊方式,可活用長壽命連線、連線多路複用、標頭壓縮,以及透過 Protocol Buffers 實現的二進位表示。對於持續接收大量數據並在應用程式端處理必要事件的用途,這些特性直接關係到通訊效率和實作的整理。

在重複 HTTP/1 式 request/response 的架構中,容易形成每次需要資訊時都發出請求、等待回應,然後在應用程式端再次判定的流程。雖然 WebSocket 可以利用永續連線,但在以 JSON 為基礎的訂閱或廣泛通知為中心的架構中,接收到的數據的解釋、篩選、後續處理的設計可能大量偏向應用程式端。

Geyser gRPC 串流是以 HTTP/2 和 Protocol Buffers 為前提,易於持續接收結構化 Solana 數據的機制。對於鏈上事件的即時偵測,需要以串流方式接收所需數據。

FACT BOX · 重點整理

  • 來源:PR TIMES
  • 分類:新品
  • 相關組織:pump.fun
  • 產品、服務:solana-stream sample code