一个基于 Go 语言开发的高性能 EVM 链上资产高并发扫描引擎
在 Web3 世界里,地址资产扫描 是数据分析师、空投猎人和大户追踪的刚需。但传统脚本在面对十万级地址时,经常会遇到 RPC 限流封禁(HTTP 429)、内存溢出(OOM)、多链资产覆盖乱码、程序崩溃丢失数据 等痛点。
crypto-monitor 是一个基于 Go 语言开发的高性能、防封禁的命令行资产聚合扫描工具。它专为 Web3 数据分析师、空投猎人及大户地址追踪设计,能够在极低的内存占用下,以极高的吞吐量完成多链、多代币的海量地址余额快照。
项目简介
- GitHub:https://github.com/zz-gopher/crypto-monitor
- Star 数:3(新项目)
- 语言:Go
- 协议:MIT
核心特性
CSP 三级并发流水线与背压控制
摒弃传统单线程阻塞模型,构建 网络请求 → 数据清洗 → 异步落盘 的三级流水线。
引入带有 5000 容量缓冲的 Channel,完美实现内存物理隔离与反向背压限制,榨干单机性能的同时杜绝 OOM。
微秒级平滑限流与 RPC 聚合(Multicall3)
深度集成 Multicall3 智能合约,将成百上千个 RPC 请求打包,网络 I/O 开销降低 90%。
内置基于「令牌桶算法」的全局限流器,精准控制每秒请求数(RPS)与突发流量(Burst),完美规避免费 RPC 节点的 IP 封禁机制。
企业级冷热数据双写架构(SQLite + CSV)
- 零 CGO 依赖:采用纯 Go 版 SQLite 驱动(glebarez/sqlite),实现跨平台一键交叉编译
- 双表状态分离:实时维护 AssetRecord(热数据状态表)与 AssetHistoryLog(冷数据流水表)
- 绝对的一致性:利用本地事务(Transaction)包裹 DB 双写,结合 ON CONFLICT 实现高性能批量 Upsert
Web3 数据防御机制
- 多链防覆盖:数据库底层采用 WalletAddress + TokenContract + ChainID 的三位一体联合唯一索引
- 防脏读快照:引入前置 BlockHeight 时间戳快照,强绑定至批次数据,彻底消除网络延迟导致的并发乱序脏读
- 脏数据拦截:严格校验 Success 标识,主动降级丢弃单条异常数据,防止「虚假归零(False Zero)」污染状态库
现代化 CLI 与优雅关机
- 采用双重触发机制(100 条阈值 + 2 秒 Ticker)防止尾部数据滞留内存
- 支持多路旁路输出,主干 DB 失败严格回滚,旁路 CSV 失败优雅降级
- 内置高保真动态进度条,支持安全的上下文取消与资源回收
目录结构
crypto-monitor/
├── config/ # 配置解析模块
│ └── config.yaml # 核心配置文件
├── data/
│ ├── addresses/ # 目标地址 TXT 文件
│ └── cache/ # 元数据缓存文件
├── internal/ # 核心业务逻辑
│ ├── engine/ # 并发调度、任务生命周期
│ └── provider/ # RPC 客户端、ABI 编解码、Multicall 聚合
├── output/ # CSV 结果输出目录
├── pkg/ # 公共基础组件
│ ├── metadata/ # Token 元数据多级缓存
│ └── retry/ # 网络请求容错与退避重试
├── tools/ # 辅助工具类
├── .env # 私密配置(RPC 密钥等)
└── main.go # 程序主入口
快速开始
安装与编译
git clone https://github.com/zz-gopher/crypto-monitor.git
cd crypto-monitor
go build -o crypto-monitor main.go
本地环境配置(.env 文件)
# 代理配置(国内用户)
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
NO_PROXY=localhost,127.0.0.1
# RPC 节点配置
ARB_RPC_URL=https://arb-mainnet.g.alchemy.com/v2/你的密钥
ETH_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/你的密钥
核心引擎配置(config.yaml)
app:
retry:
max_retries: 5 # 容错机制:最多重试 5 次
base_delay: 2s # 首次重试等待 2 秒
max_delay: 60s # 退避算法:最长不超 60 秒
适用场景
- 空投猎人:批量查询地址余额,发现潜在空投资格
- 大户追踪:监控巨鲸地址资产变化
- 数据分析师:采集链上数据,进行资产分布分析
- DeFi 研究员:跟踪协议 TVL 变化
总结
crypto-monitor 通过 CSP 并发流水线、Multicall3 聚合、令牌桶限流等技术,解决了 Web3 批量地址扫描中的性能瓶颈和稳定性问题。对于需要处理大量地址资产查询的场景,是一个值得尝试的工具。
GitHub:https://github.com/zz-gopher/crypto-monitor(⭐ 3,MIT 协议)