Solana區塊鏈數據抓取

由於區塊鏈上的交易可以作為公共數據訪問,我們可以開發一個抓取客戶端來檢索每個區塊中的數據進行分析。這裡是Rust API中我用來訪問Solana區塊鏈的代碼。創建RPC客戶端。 RpcClient::new('https://solana-api.projectserum.com'.to_strin

由於區塊鏈上的交易可以作為公共數據訪問,我們可以開發一個抓取客戶端來檢索每個區塊中的數據進行分析。

這裡是Rust API中我用來訪問Solana區塊鏈的代碼。

創建RPC客戶端。

RpcClient::new('https://solana-api.projectserum.com'.to_string());

獲取當前Epoch

client.get_epoch_info().unwrap();

獲取Epoch間隔的時隙號(absolute_slot)。

start_slot = epoch_start.absolute_slot; end_slot =

epoch_end.absolute_slot;

獲取兩個時隙號之間的交易區塊。

let blocks = _client.get_blocks(start, Some(end)).unwrap();

for s in blocks {

let _blk = _client.get_block(s);

// get the data we need from each block

每個區塊包含一個交易列表。每個交易都有元數據、消息、交易前和交易後的餘額以及賬戶列表。

有許多不同種類的信息。從測試中,我發現以下2條消息將表示轉賬。

'Program 11111111111111111111111111111111 success''Program log: Instruction: Transfer'

我過濾掉了消息,然後從預平衡中減去後平衡。它可以追踪在帳戶鍵之間轉移了多少lamport。

我為每個交易提取這些信息,並將其輸入到Neo4J圖形數據庫中,以構建不同帳戶之間所有轉賬的關係。這是在Neo4J 中建立傳輸關係的Cypher Query。

MATCH (ac1:Account {key: $ckey}),(ac2:Account {key: $dkey})

MERGE (ac1)-[rel:TRANSFER_TO]->(ac2)')

下面顯示了轉賬圖的可視化。每個紅色節點代表一個Solana帳戶,直接鏈接是transfer_to關係。

圖中顯示了幾個繁忙的集群。

圖形數據庫可以支持許多分析,例如查詢哪些帳戶是最受歡迎的帳戶。我們可以很容易地追踪到經常轉賬到某個可疑賬戶的賬戶群。這有助於識別違法行為。

Source:https://medium.com/coinmonks/solana-blockchain-data-scraping-2cca0dc056aa

分享至:

作者:去中心化金融社区

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:去中心化金融社区如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊
推薦閱讀
2小時前
3小時前
18小時前
20小時前
2025-12-13 05:30
2025-12-13 02:30

熱門文章

行業要聞
市場熱點
精選讀物

精選專題

App内阅读