itsVentie/BEAMpool

GitHub: itsVentie/BEAMpool

基于 Elixir/BEAM VM 构建的开源 Ethereum 预执行安全引擎,在交易被打包前实时检测 DeFi 攻击和 MEV 异常。

Stars: 0 | Forks: 0

# BEAMpool `BEAMpool` 是一个开源的预执行安全引擎,旨在跨多个 Ethereum/EVM 节点实时监控原始交易流。通过利用 Elixir 的 actor 模型和 Supervision Trees,它可以在未确认交易(`pending`)被打包进区块之前,检查其是否存在 DeFi 漏洞利用、Flash Loan 攻击和 MEV 异常。 ## 核心功能 * **容错摄取:** 为每个 RPC WebSocket 连接生成独立的 OTP 进程——如果某个节点连接断开或阻塞,只有该子进程会重启。 * **无锁去重:** 使用 Erlang Term Storage (`ETS`) 进行快速内存级交易去重。 * **Calldata 和 ABI 检查:** 实时解析原始交易输入,检测大额贷款借款、多调用代理和重入执行模式。 * **低延迟:** 专为每秒处理数千个 JSON-RPC 事件而设计,且占用极少的 RAM/CPU。 ## 技术栈 * **语言:** Elixir (BEAM VM) * **并发模型:** OTP / GenServer / Supervision Trees * **内存存储:** ETS (Erlang Term Storage) * **解码器(可选):** 通过 Rustler (NIFs) 调用 Rust,进行高性能的 RLP/ABI 解析 ## 路线图 ### 阶段 1:核心引擎和摄取 (MVP) - [x] **OTP Application 设置:** 使用 Supervision Trees 初始化 Elixir 项目。 - [x] **高弹性 WebSocket 摄取:** 使用 Erlang 原生的 `:gun` 库连接到 EVM WSS 节点,以实现最大的兼容性和容错能力。 - [x] **Pending Mempool 流:** 通过 WebSocket 上的 JSON-RPC 实时订阅 `newPendingTransactions`。 - [x] **基础 Supervision 和自动愈合:** 连接丢失时自动重启进程,而不会导致整个应用崩溃。 ### 阶段 2:内存存储和处理流水线 - [ ] **无锁去重 (`ETS`):** 实现 Erlang Term Storage 表,以近乎零延迟过滤跨多个节点流的重复 TX 哈希。 - [ ] **异步 Worker Pool (`Task.Supervisor`):** 生成并发、隔离的进程,通过 `eth_getTransactionByHash` 获取完整的交易详情。 - [ ] **多节点池化:** 支持同时连接多个 RPC 提供商(Alchemy、Infura、QuickNode、本地 Geth/Reth),以实现最大的覆盖范围。 ### 阶段 3:Calldata 解码和威胁检查 - [ ] **ABI 和 Calldata 解析:** 从原始 calldata 中提取函数选择器 (`bytes4`)、地址和输入参数。 - [ ] **DeFi 模式检测:** 识别大额 Flash Loan 借款、Sandwich 攻击以及可疑的 DEX 交易(Uniswap V2/V3、Curve、Balancer)。 - [ ] **通过 NIFs (`Rustler`) 集成 Rust:** 将繁重的 RLP 编码/解码和 ABI 解析工作交给 Rust 处理,以实现亚毫秒级的执行速度。 ### 阶段 4:告警、分析和生产就绪 - [ ] **实时事件流:** 通过 WebSocket 或 Webhooks(Discord、Telegram、Slack)广播被标记的威胁交易。 - [ ] **指标和监控:** 将 PromEx / Telemetry 指标导出到 Prometheus 和 Grafana 仪表板,进行吞吐量分析。 - [ ] **容器化:** 设置 Docker 和 Docker Compose,实现一键快速部署。 ## 快速开始 ### 前置条件 * Elixir 1.15+ / Erlang 26+ * 一个活跃的 WSS Ethereum 节点终端(Alchemy、Infura 或本地 Geth/Reth) ### 安装说明 1. **克隆仓库:** git clone [https://github.com/itsVentie/beampool.git](https://github.com/itsVentie/beampool.git) cd beampool ``` 2. **Install dependencies:** ```bash mix deps.get ``` 3. **配置环境:** 创建一个 `.env` 文件或设置您的节点终端: ``` export ETH_WSS_URL="wss://ethereum-rpc.publicnode.com" ``` 4. **在交互模式下运行:** ``` iex -S mix ``` ## 许可证 基于 MIT 许可证分发。
标签:DeFi, Elixir, MEV, 交易监控, 以太坊, 区块链安全, 可视化界面, 智能合约审计, 请求拦截