栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 区块链 > 其他

Solana 区块链数据抓取

其他 更新时间:发布时间: 百科书网 趣学号
Solana 区块链数据抓取

由于区块链上的交易可以作为公共数据访问,我们可以开发一个抓取客户端来检索每个区块中的数据进行分析。

这里是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

关于

ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。

Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/848375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号