ChronoCoders/zelvex

GitHub: ChronoCoders/zelvex

一个基于Rust的Uniswap V2套利机器人框架,整合Flashbots MEV保护和闪电贷,提供完整API和Web监控界面。

Stars: 1 | Forks: 0

# ZELVEX ZELVEX 是一个 Rust workspace,实现了 DeFi 套利机器人堆栈的初始脚手架:配置加载、SQLite 持久化/迁移、API 服务器 (REST + WebSocket),以及核心数学和订阅原语。 本仓库强制执行严格的质量门禁:无警告、无未使用代码、格式检查、必须通过测试。 ## Workspace 布局 - `zelvex-types`: 共享域类型 - `zelvex-config`: `config.toml` 加载器 + `ZELVEX_*` 环境变量覆盖 - `zelvex-db`: SQLite 迁移 + 查询辅助工具 - `zelvex-core`: AMM 数学计算 + websocket 订阅脚手架(新区块头,Uniswap V2 Sync 日志) - `zelvex-gas`: gas 预测器(环形缓冲区 + p90 优先费) - `zelvex-sim`: 利润决策引擎 (`evaluate`) - `zelvex-exec`: 执行辅助工具(密钥加载) - `zelvex-api`: REST + WebSocket API 服务器,JWT 认证,静态 Web UI 服务 - `zelvex-bin`: 将所有内容连接在一起的二进制程序 - `web-ui`: 由 API 提供服务的最小化 UI ## 快速开始 ### 1) 安装 Rust 安装最新的 stable Rust 工具链(包括 `cargo` 和 `rustfmt`)。 ### 2) 创建配置文件 创建一个 `config.toml`(示例如下)。不要提交 secrets。 ``` [node] ws_url = "ws://127.0.0.1:8546" [flashbots] relay_url = "https://relay.flashbots.net" [bot] min_profit_usd = 5.0 max_gas_gwei = 50 paper_trade = true [server] bind_addr = "127.0.0.1:8080" web_ui_path = "./web-ui" [database] path = "./zelvex.sqlite" [auth] jwt_secret = "CHANGE_ME" jwt_expiry_seconds = 86400 [keys] signer_key_path = "./keys/signer.key" flashbots_key_path = "./keys/flashbots.key" contract_address = "0x0000000000000000000000000000000000000000" aave_pool_provider = "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e" ``` ### 3) 运行 ``` cargo run -p zelvex-bin -- --config ./config.toml ``` 这将: - 打开/创建 SQLite 数据库 - 运行迁移 - 在 `server.bind_addr` 上启动 HTTP 服务器 - 从 `server.web_ui_path` 提供 UI 服务 ## API 概述 ### 认证 - `POST /api/auth/register` - 一次性引导:一旦用户存在,注册即被禁用 - `POST /api/auth/login` - 返回 JWT 发送 JWT 的方式: `Authorization: Bearer ` ### WebSocket - `GET /ws` - 必须在 5 秒内发送第一条消息 `{"type":"auth","token":""}` - 服务器回复 `{"type":"auth_ok"}` 或 `{"type":"auth_fail","reason":"invalid"}` ### 机器人控制 - `POST /api/bot/start` - `POST /api/bot/stop` - `GET /api/bot/status` ### 统计 / 交易 / 钱包 - `GET /api/stats/pnl` - `GET /api/stats/gas` - `GET /api/stats/opportunities` - `GET /api/trades?limit=50&offset=0` - `GET /api/wallet/balance` - 使用 `node.ws_url` 进行 `eth_getBalance` - 使用主网上的 Chainlink ETH/USD 预言机返回 USD 估值 ## 环境变量覆盖 任何配置键都可以通过环境变量覆盖: - `ZELVEX_NODE_WS_URL` - `ZELVEX_SERVER_BIND_ADDR` - `ZELVEX_DATABASE_PATH` - `ZELVEX_AUTH_JWT_SECRET` - `ZELVEX_KEYS_SIGNER_KEY_PATH` - `ZELVEX_KEYS_CONTRACT_ADDRESS` 模式: `ZELVEX_
_` (大写)。 ## 质量门禁 这些命令必须干净通过: ``` cargo clippy --all-targets --all-features -- -D warnings cargo fmt --check cargo test --workspace ```
标签:AMM 数学, DeFi, Flashbots, Gas 优化, JWT 认证, MEV 保护, REST API, Rust, SQLite, Uniswap V2, Web3, WebSocket, Workspace, 以太坊, 依赖分析, 区块链, 单二进制文件, 可视化界面, 套利机器人, 智能合约交互, 网络流量审计, 自动化交易, 通知系统, 量化金融, 闪电贷, 高频交易