☰
jev-trader 部署完整清单:Bun + Docker + Railway 一键上线你的 AI 链上交易机器人
2026/10/2 13:01:35 网站建设 项目流程

jev-trader 部署完整清单:Bun + Docker + Railway 一键上线你的 AI 链上交易机器人

【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-trader

jev-trader是一个部署极简的 AI 链上交易机器人:它在 Monad 公链上运行,每 300 毫秒区块由 AI 模型 Jev 做出一次「买 / 卖」决策,并在 Kuru 交易所的 MON-USDC 盘口挂出一张真实的 post-only 限价单。本清单带你用Bun + Docker + Railway三条路径之一,把它从git clone到公网可访问的仪表盘,全程不超过 10 分钟。🚀


📦 项目能做什么(30 秒了解)

  • 🤖 每区块一次决策:AI 判断未来约 30 秒内价格方向,回答买或卖
  • 📈 每区块挂单:在买/卖价内侧 1 个 tick 挂 post-only 限价单,赚点差而非付点差
  • 🖥️ 自带监控页:内置Bun.serve服务,提供快照、历史 1000 条事件、SSE 实时流三个接口
  • 🔒 零密钥也能跑:不配PRIVATE_KEY自动进入dry-run(真实盘口 + 真实决策 + 模拟成交)

核心代码只有 8 个源文件,入口是 src/index.ts,配置集中在 src/config.ts,环境模板见 .env.example。


✅ 部署前检查清单

#检查项说明
1安装 Bun运行时,自动读取.env,无需 dotenv
2克隆仓库git clone https://gitcode.com/gh_mirrors/je/jev-trader
3准备.env执行cp .env.example .env
4密钥决策不填PRIVATE_KEY= dry-run;填了才真金下单
5(可选)Jev 模型密钥MODEL=jev+TYPESAFE_AI_API_KEY,默认mock动量模型

⚠️ 生产实盘请用专用 RPC 节点(如 Alchemy / QuickNode)替换默认的公共RPC_URL,公共端点限速 25 rps,只适合 dry-run。

关键变量速查(完整注释见 .env.example):

  • RPC_URL/READ_RPC_URL/WS_URL:链上读写通道
  • PRIVATE_KEY/DRY_RUN:实盘或模拟的开关
  • TRADE_SIZE_MON(默认 200,即 Kuru 最小单量)、MAX_POSITION_MON、MARGIN_MON/MARGIN_USDC
  • MAX_FEE_GWEI/PRIORITY_FEE_GWEI:Monad 按 gas limit 计费,费用是静态写死的

🚀 路径一:Bun 本地一键运行(最快)

三步走,这也是官方 README.md 给出的方式:

  1. 复制环境模板:cp .env.example .env
  2. 安装依赖:bun install
  3. 启动机器人:bun run start

看到下面这行日志即代表上线成功,机器人已开始逐块决策:

jev-trader · model=mock · post-only 1 tick inside the touch · DRY RUN · :3000

本地调试可用bun run dev(watch 模式)。想先验证行情读取延迟,仓库还附带了一组探针脚本(见 scripts/ 目录):

bun run scripts/bench-read.ts # 盘口读取 vs SDK:精度与延迟基准 bun run scripts/dry-encode.ts # 离线签名买/卖单,断言 calldata 与 SDK 一致

🐳 路径二:Docker 构建镜像(可迁移)

项目自带 Dockerfile,基于官方oven/bun:1.3镜像,仅 7 行:

FROM oven/bun:1.3 WORKDIR /app COPY package.json bun.lock bunfig.toml ./ RUN bun install --frozen-lockfile --production COPY src ./src ENV NODE_ENV=production CMD ["bun", "run", "src/index.ts"]

构建与运行:

docker build -t jev-trader . docker run -p 3000:3000 --env-file .env jev-trader

.dockerignore已排除node_modules、.env和scripts,镜像干净且不会泄露密钥。🐳


☁️ 路径三:Railway 云部署(零运维公网)

Railway 支持直接读取 Dockerfile,流程:

  1. 新建 Railway 项目 →Deploy from GitHub repo选择 jev-trader
  2. 在 Variables 面板把 .env.example 里的变量逐项填入(RPC_URL、READ_RPC_URL、WS_URL、MODEL、TRADE_SIZE_MON等)
  3. 保存触发部署,拿到一个公网*.up.railway.app域名

官方本身就托管着一个 dry-run + mock 模型的实例,可直接打开验证你的部署行为是否一致(端点见 README.md)。


🩺 上线后验证清单

部署完成后,依次请求这三个端点(GET即可):

端点期望返回
GET /快照:模型名、钱包、dryRun标志、最新区块事件
GET /history最近 1000 条区块事件 JSON
GET /eventsSSE 流:连接先收到snapshot,之后每区块一个block事件,成交时推fill事件

block事件结构(类型定义见 src/trader.ts)包含decision.probabilities、本块挂单quote(含txHash与预估gasMon)、持仓position与盈亏totals,字段全貌示例在 README.md 中有完整 JSON。

✅ 验证通过的标志:终端日志每 300 ms 打印一行#区块号 买/卖概率 延迟ms 挂单信息,SSE 流持续推送block事件。


🔴 从 Dry-Run 切到实盘的三个提醒

  1. 资金走保证金账户:Kuru 限价单从MARGIN_ACCOUNT扣款而非钱包,启动时机器人会自动补足MARGIN_MON/MARGIN_USDC目标余额(逻辑见 src/market.ts)
  2. Gas 成本要心里有数:Monad 按 gas limit 计费,默认 350000,实盘每块约 0.03 MON,先 dry-run 观察totals.gasMon
  3. 模型可热切:MODEL=mock(动量启发式占位)→MODEL=jev(真实 Jev,约 100 ms 出决策,费用比 gas 还低),只需改两个环境变量重启

📚 延伸阅读

  • 产品设计与指标定义:SPEC.md
  • 架构布局说明(8 个源码文件分工):README.md 「Layout」一节
  • 热路径设计:为什么 300 ms 预算里只做 2 次 RPC 往返(「The 300 ms budget」章节)
  • 开发规范约定(Bun 优先于 Node/npm 的完整理由):CLAUDE.md

复制.env.example、填好变量、bun run start——你的 AI 链上交易机器人就已在每个 Monad 区块上做出决策了。🎯

【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-trader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询