基于 Rust 开发的高性能 Solana MEV 套利机器人,支持 Jupiter 聚合器和 Jito Bundle。
- 由于用机器人换sol和wsol可能会换不成功,建议大家去jup换wsolJupiter链接,定期补充gas,gas不足会导致不出单
- 本人免责声明,请大家先小金额测试,测试没有问题了再大金额使用,代码逻辑里是不会导致大家资金损失,但是以防万一,营收自负
- 本人保证不会收集任何用户相关的信息,你可以选择用抓包软件等安全工具扫描,如果发现有收集信息,请立即停止使用,并联系作者
- 请妥善保管好自己的私钥,由于是开源软件,如果私钥泄露,请立即停止使用,并联系作者 邮箱:[email protected]
- 当前版本,需要用户自行启动Jupiter,定时重启等相关的脚本需要自写,作者会后续支持相关能力,以及k3s集群部署方案
- 此bot收费比例为你的净利润的10%,如果赚不到钱,请不要使用,请不要使用,请不要使用!
- 小费规则:(毛利润-GasFee-jito小费)*0.1
- 作者钱包监控地址
- 小费收益
- 自动化套利交易
- 多jito引擎节点并行处理
- 高性能交易执行
- 实时错误监控
- 单引擎交易整体速度<10ms
- 多IP支持
- 多节点支持
- Ubuntu 22.04
- 2G内存
- 100M带宽
- CPU 核心越高,频率越高越好,建议频率选择3.x以上,不要选择比较旧的cpu平台,可能某些编译后的指令,在旧的cpu上不支持,导致运行失败,demo
- 我的机器配置: US / vm.ryzen-8 / VM Ryzen 8/8/60 NVMe / Ubuntu 22.04 /3Tb traffic (1Gbps) VM /16 IPv4
- VPS 购买:hostkey便宜实惠
- 下载对应系统的发布版本
- 准备配置文件
config.yaml
- 运行程序开始套利
配置文件 config.yaml
示例:
#你的私钥数组,系统启动后会在当前目录下生成一个PRIVATEKEY文件,里面是加密后的私钥,虽然做了加密,但是还是要小心,不要泄露,系统启动后会将此项配置删除,不在服务器上储存私钥
private_key: ""
#solana rpc url
rpc_url: "http://xxxx"
#jupiter api url
jupiter_api_url: "http://0.0.0.0:18080"
#yellowstone grpc url
yellowstone_grpc_url: "http://xxxx"
# Jito MEV-Block-Engine 节点配置列表,建议配置上多个节点,随机选择一个节点进行交易,这样的你的QPS会有提升,尽量选择几个距离你比较近的节点,当然全发也可以,目测日本较慢,会降低整体效率,如果想追求速度,那么jito的引擎只开本区域,你会起飞
jito_engine:
- NL # 荷兰阿姆斯特丹节点
- DE # 德国法兰克福节点
- NY # 美国纽约节点
- SLC # 美国盐湖城节点
- DE # 德国法兰克福节点
# - Tokyo # 日本东京节点
#是否开启随机引擎,建议开启,随机引擎会随机选择一个节点进行交易,这样的你的QPS会有提升
random_engine: true
#jito配置UUID,没怎么测试,建议先不要用,使用多ip的方法,而不是配置uuid
jito_uuid: ""
#从url加载代币,可以从你的jup加载代币,你的jup加载了什么币,会拉到bot内。如果从其他地方拉取,需要和jup返回结构抱持一致,建议从jup加载代币
load_mints_form_url: "http://0.0.0.0:18080/tokens"
#从文件加载代币
intermediate_tokens_file: "test.json"
#从配置文件加载代币
intermediate_tokens:
- "6AJcP7wuLwmRYLBNbi825wgguaPsWzPBEHcHndpRpump"
# 排除的币种
not_support_tokens:
#最大代币数量,如果低于最大限制的60%会一直请求load_mints_form_url,直到达到目标才会运行起来,主要是为了链接jup 的时候jup还没加载好全部的代币
max_tokens_limit: 80
#最小利润阈值
min_profit_threshold: 4000
#最大tip限制,单位lamports,给jito的最大限制
max_tip_lamports: 100000000
#静态tip百分比,给jito的tip百分比
static_tip_percentage: 0.7501
#交易memo,可以不设置
memo: ""
#建议先从小的开始0.1-1s,设置很多不会影响性能,性能主要由线程和网络io决定
trade_range:
- 100000000 # 0.1 SOL
- 200000000 # 0.2 SOL
- 300000000 # 0.3 SOL
- 400000000 # 0.4 SOL
- 500000000 # 0.5 SOL
- 600000000 # 0.6 SOL
- 700000000 # 0.7 SOL
#发送交易类型,建议选择Mixed,可选Rpc,Grpc,Mixed,选择Mixed可以让你的ip限制速率翻倍
rpc_type: Mixed
#blockhash rpc类型,建议选择Rpc,可选Grpc,Rpc,当前实现Grpc不是订阅的,等改成订阅的再选用Grpc
blockhash_rpc_type: Rpc
#是否开启block缓存,建议开启
blockhash_cache_enabled: true
#block缓存过期时间,单位ms,缓存1s没啥问题,降低下节点压力
blockhash_cache_ttl_ms: 1000
#性能相关,开启多少个线程,系统负载全靠这个控制
thread_count: 8
#每个线程里多少个网络IO,可以一个线程配2个左右,具体看性能,自行调试,作者也不知道多少是好的
max_concurrent: 4
#日志相关能力
log_rate_limit: false
#打印机会
log_opportunities: false
#打印交易执行
log_trade_execution: false
#是否开启单独钱包
enable_separate_wallet: true
#ip 配置信息,如果有多IP可以在这里配置,否则使用本机IP,建议配置上多IP,如果有请取消注释,并配置上
ip_addrs:
- "xxxx"
#jup 调优
#是否只使用单跳,当前多跳还有待调整,建议现在只使用单跳
onlyDirectRoutes: true
#限制中间代币为顶级代币,建议开启,此参数也就是在多跳的时候有用,现在多跳没那么好使,先这样
restrict_intermediate_tokens: true
#是否预检交易大小,先暂时关闭,这个只对多跳有用,等待后续开发
check_transaction_size: false
#是否开启动态计算预算,建议开启
dynamic_compute_unit_limit: true
#计算预算百分比,设置这个值是因为,模拟后的cu可能偏大,可以设置百分比二次修改cu限制,近一步降低cu限制
cu_limit_percentage: 0.98
#计算预算,在开启动态预算的时候不生效
compute_unit_limit: 180000
赋予程序读写权限
chmod +x rust-mev-bot
普通模式运行:
./rust-mev-bot
调试模式运行(输出详细日志):
./rust-mev-bot debug
- 暂无输出,你可以选择screen运行,或者使用tmux
-
如何设置合适的小费比例?
- 建议根据市场情况调整,通常在 75% 左右,给太多了,你也没利润
-
计算单元限制如何选择?
- 建议开启动态计算单元限制
- 固定限制推荐设置为 1,800,000
-
如何选择 RPC 类型?
- Mixed: 同时使用 RPC 和 gRPC
- Rpc: 仅使用 RPC
- Grpc: 仅使用 gRPC
- 使用独立的套利钱包
- 定期备份配置文件
- 不要在公共环境暴露私钥
- 谨慎设置交易参数
本软件仅供学习研究使用。使用者需自行承担因使用本软件而产生的所有风险和责任。作者不对因使用本软件造成的任何损失负责。