配置详解
Solana Bot Configuration
jup_exclude_dex_program_ids
用于排除不想交易的 DEX program IDs。如果某些 DEX 没有好的套利机会,可以在此处配置排除。
jup_bind_local_host
Jupiter 服务绑定的 IP 地址。建议设置为 127.0.0.1,避免被外部扫描增加服务器负载。
jupiter_local_port
Jupiter 服务监听的端口号。
jupiter_disable_local
是否禁用本地 Jupiter 服务。如果使用高性能服务器运行多个机器人,可以设置为 true。可以远程链接jupiter服务,此时建议填写load_mints_from_url 去获取远程jup的
disable_local_bot
是否禁用本地bot,当你只想在服务器上运行jup的时候可以禁用本地bot
jupiter_use_local_cache
是否启用本地缓存功能,建议禁用。
jupiter_market_mode
Jupiter 的市场模式设置,建议选择 remote。
jupiter_webserver
Web 服务器线程数。
jupiter_update
更新线程数。
total_thread_count
jup总线程数。
max_account_limit
一个交易中支持的最大账户数限制,过高可能导致jup性能消耗比较大
auto_restart
自动重启时间设置,设置为 0 则不会自动重启,单位为分钟。
yellowstone_grpc_token
gRPC 服务的访问令牌配置。如果没有可以不配置
load_mints_from_birdeye_api_max_mints
从 Birdeye API 加载热门代币的最大数量
birdeye_api_key
Birdeye API 密钥。如果load_mints_from_birdeye_api_max_mints 配置值,需要配置密钥可以去注册一个账号key免费https://bds.birdeye.so/
load_mints_from_url
#自定义从url加载代币,返回值应该是["xx","xx"] 这样的格式,否则无法解析,可以从jup加载,比如:http://127.0.0.1:18080/tokens
返回值格式如下应该是这样的格式,否则无法解析:
intermediate_tokens
中间代币列表,系统会加载这些代币,如果配置了,并合并到jupiter的代币列表中,那么会使用这些代币进行套利(在intermediate_tokens中的币一定会加载到jup)。
only_quote_mints
无论jup加载了多少币,可以指定程序只交易这些币,适用于只跑u或者只跑某些币的情况(需要和intermediate_tokens配合使用)确保only_quote_mints一定在intermediate_tokens里面配置了,当前还没自动处理
max_tokens_limit
机器人最大代币数量限制,会聚合上面几种方式获取的所有代币之和,如果超过配置数量,那么会随机取max_tokens_limit个代币
private_key
你的钱包私钥数组类似[xxx,xxx,xxx]系统启动后会在当前目录生成加密的私钥文件,配置会被自动删除。
rpc_url
Solana RPC 节点地址。
yellowstone_grpc_url
Yellowstone gRPC 服务地址。
jupiter_api_url
Jupiter API 服务地址。
jito_engine
Jito MEV-Block-Engine 节点列表配置,建议配置多个节点以提升 QPS,如果配置随机发送,每次找到机会会随机选择一个节点发送,否则一个机会会发送到所有配置的节点。
1.0.7版本新增了Main 引擎,和指定jito 接口的方式,开放出去,可自定义jito的域名,你可以自己代理出去,但是只会走RPC模式
memo
为每一个交易添加备注,添加的好处是可以让每个交易可以记录是从哪台机器发出来的,便于调试
memo_auto_random_additional
默认为true,如果开启动可为memo后最加上随机数,减少hash冲撞提升上链率(主要针对,如果你的机器性能很强,找到的机会很多,很容易hash冲撞的情况下使用)
random_engine
是否启用随机节点选择,建议开启以提升 QPS,提高成功率。
min_profit_threshold
每一次交易你的最小利润阈值,单位为lamports,达到这个利润会立即执行交易。
max_tip_lamports
给 Jito 的最大 tip 限制。有时候利润非常大,但是你又不想给jito那么大的小费,你可以限制最大小费限制,如果按照百分比给超过最大限制那么将根据最大限制给jito小费
static_tip_percentage
给 Jito 的静态 tip 百分比。
trade_range
交易范围配置,建议从小额开始(0.1-1 SOL)(1.0.7以及以上版本为sol为单位,1.0.7以下版本以sol lamports为单位注意)。
trade_range_strategy
交易范围策略,可以启用也可以不用,如果开启,那么启动的时候会以你配置的资金区间去随机获取交易额大小,以一下例子作为解释:交易额会在0.1SOL 到1SOL,随机生成size个,1SOL到20SOL,随机生成10个,该配置主要用来多机器跑,但是又不太想指定交易额的情况下使用,如果既配置了trade_range又配置了trade_range_strategy ,那么在启动时会聚合两个结果并去重,为最后的交易额
rpc_type
交易发送类型,建议选择 Mixed 模式以提升 IP 限制速率。
blockhash_rpc_type
Blockhash RPC 类型,建议选择 Rpc。
blockhash_cache_enabled
是否启用 blockhash 缓存,建议启用,降低节点压力。
blockhash_cache_ttl_ms
Blockhash 缓存过期时间,单位毫秒。
thread_count
bot查询交易的系统线程数。
max_concurrent
每个线程的最大并发网络 IO 数。
log_rate_limit
是否启用日志速率限制打印,主要是一些jito的rpc返回的错误信息或者异常信息,如果需要调试可以打开
log_opportunities
是否打印套利机会。
log_trade_execution
是否打印交易执行日志。
enable_separate_wallet
是否启用独立小费钱包,如果启用,那么每次交易都会使用一个独立的钱包进行小费交易,否则会使用主钱包进行小费发送给jito,会导致限速。
separate_wallet_size
生成的随机钱包个数,主要针对jito对发送小费的钱包限速的解决方案,如果你的机会比较多,建议生成更多的临时钱包,降低限速命中概率,默认值为2000
only_direct_routes
是否只使用直接路由,如果启用只会有单跳出现,否则会寻找多跳,但是多跳对jup的性能有一些要求,会慢一点。
check_transaction_size
是否检查交易大小,暂时没有用处。
dynamic_compute_unit_limit
是否启用动态计算单元限制,如果启用,那么会模拟交易cu消耗,并设置到交易中
如果关闭那么请设置以下两个参数,根据
single_swap_compute_unit_limit,代表在一个交易里面单个swap你给多少cu限制
loan_compute_unit_limit,代表,如果交易里出现闪电贷,你给闪电贷多少cu
这样做的好处就是,无论是多跳还是单跳,我们都根据最后的swap路径都可以给出合适的cu,无论是单跳还是多跳,或者交易里有闪电贷或者没有,进行更加精细的CU限制
cu_limit_percentage
计算单元限制百分比,有时候,模拟的cu偏大,可以设置百分比,比如0.98,那么会按照模拟cu的98%,并设置到交易中。
ip_addrs
版本>=1.0.7 的时候,可以直接将此参数,注释掉,那么系统会自动扫描网卡里面配置的所有IP,如果不想用所有的IP,那么可以手动配置(公网)
compute_unit_limit 1.0.9以上版本不再支持
1.0.9版本去除此参数,转换为以下两个参数,进行精细控制,请注意! single_swap_compute_unit_limit loan_compute_unit_limit
计算单元限制,如果不启用动态计算cu限制,可以手动设置cu大小,那么每笔交易都会按照这个cu来设置,太小无法完成交易,建议多跳30w左右,单跳18w左右。不模拟CU会加快jup的quote速度
full_loan_amount
默认开启。在开启闪电贷的时候,是否全额闪电贷款,如果交易额大于本金全部使用闪电贷模式,而不是两种资金组合,只贷款不足的部分,开启的话,那么当前的交易额都会从闪电贷里面取,主要是为了解决如果自己的程序正在跑,但是你需要调整wsol资金,然后导致贷款后余额还不足的问题,导致闪电贷失效
enable_kamino
是否开启kamino闪电贷,如果开启的话记得设置compute_unit_limit 去指定CU限制,只有在余额不足的时候才会去使用闪电贷,因为闪电贷的cu消耗比较大,如果only_direct_routes=true 的情况下建议compute_unit_limit 设置为30w,如果是多跳的话(only_direct_routes=false)可能需要设置40w cu限制,开启闪电贷的情况下,并且dynamic_compute_unit_limit=true,那么会有两种情况
1、不需要借贷,自己的余额充足,那么会去模拟cu,此时compute_unit_limit 失效,取模拟结果设置cu
2、需要闪电贷,自己的余额不足,那么不会去模拟cu,直接使用compute_unit_limit 的值并*cu_limit_percentage设置为限制的cu
PS:在开启闪电贷之后注意自己的cu设置,cu太大或者太小,都会导致不上链的情况,建议大家预留一定的wsol,用自己的余额跑,并设置少量的大单子trade_range,走闪电贷款,或者专门找一机器跑闪电贷都可以,具体该怎么玩,取决于自己,闪电贷无需支付费用,但是有时候上链率不如自己的余额,毕竟cu消耗较多,有时候资金也不一定能借的出来,所以建议预留小单资金,默认开启
blind_send_trade
是否开启盲发,默认关闭,如果开启那么就不会去quote,直接随机组池子swap,根据设置的预期利润直接组装swap指令发给jito,当前只支持usdc和usdt
有两个选择: 1、固定利润发送
blind_expect_min_profit_threshold,所有的交易大小都按照这个预期(毛利润)发送
比如我设置了blind_expect_min_profit_threshold: 10000
那么我认为每一个交易都默认quote到了10000 lamports 的单子,然后会根据这个毛利润分配利润,然后发给jito
2、根据交易额随机利润发送
blind_expect_profit_percent,可以设置多个,我这里只是一个展示,总体原子是根据交易额的大小,设置预期利润,如果设置了blind_expect_profit_percent,那么固定利润将会失效,每次比如循环到100s 的单子会根据配置,随机拿出一个百分比,比如随机到了%0.0005 的利润比,我们认为这次100s 的单子有100sol*%0.005的利润,去发给jito
Last updated