配置详解

Solana Bot Configuration

jup_exclude_dex_program_ids

用于排除不想交易的 DEX program IDs。如果某些 DEX 没有好的套利机会,可以在此处配置排除。

jup_exclude_dex_program_ids:
  - "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
  - "MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG"

jup_bind_local_host

Jupiter 服务绑定的 IP 地址。建议设置为 127.0.0.1,避免被外部扫描增加服务器负载。

jup_bind_local_host: 127.0.0.1

jupiter_local_port

Jupiter 服务监听的端口号。

jupiter_local_port: 18080

jupiter_disable_local

是否禁用本地 Jupiter 服务。如果使用高性能服务器运行多个机器人,可以设置为 true。可以远程链接jupiter服务,此时建议填写load_mints_from_url 去获取远程jup的

jupiter_disable_local: true

disable_local_bot

是否禁用本地bot,当你只想在服务器上运行jup的时候可以禁用本地bot

disable_local_bot: false

jupiter_use_local_cache

是否启用本地缓存功能,建议禁用。

jupiter_use_local_cache: false

jupiter_market_mode

Jupiter 的市场模式设置,建议选择 remote。

jupiter_market_mode: "remote"

jupiter_webserver

Web 服务器线程数。

jupiter_webserver: 4

jupiter_update

更新线程数。

jupiter_update: 4

total_thread_count

jup总线程数。

total_thread_count: 16

max_account_limit

一个交易中支持的最大账户数限制,过高可能导致jup性能消耗比较大

max_account_limit: 24

auto_restart

自动重启时间设置,设置为 0 则不会自动重启,单位为分钟。

auto_restart: 30

yellowstone_grpc_token

gRPC 服务的访问令牌配置。如果没有可以不配置

yellowstone_grpc_token: ""

load_mints_from_birdeye_api_max_mints

从 Birdeye API 加载热门代币的最大数量

load_mints_from_birdeye_api_max_mints: 100

birdeye_api_key

Birdeye API 密钥。如果load_mints_from_birdeye_api_max_mints 配置值,需要配置密钥可以去注册一个账号key免费https://bds.birdeye.so/

birdeye_api_key: ""

load_mints_from_url

#自定义从url加载代币,返回值应该是["xx","xx"] 这样的格式,否则无法解析,可以从jup加载,比如:http://127.0.0.1:18080/tokens

load_mints_from_url: "https://xxx"

返回值格式如下应该是这样的格式,否则无法解析:

[
  "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
  "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
]

intermediate_tokens

中间代币列表,系统会加载这些代币,如果配置了,并合并到jupiter的代币列表中,那么会使用这些代币进行套利(在intermediate_tokens中的币一定会加载到jup)。

intermediate_tokens:
  - "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
  - "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"

only_quote_mints

无论jup加载了多少币,可以指定程序只交易这些币,适用于只跑u或者只跑某些币的情况(需要和intermediate_tokens配合使用)确保only_quote_mints一定在intermediate_tokens里面配置了,当前还没自动处理

only_quote_mints:
  - "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
  - "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"

max_tokens_limit

机器人最大代币数量限制,会聚合上面几种方式获取的所有代币之和,如果超过配置数量,那么会随机取max_tokens_limit个代币

max_tokens_limit: 80

private_key

你的钱包私钥数组类似[xxx,xxx,xxx]系统启动后会在当前目录生成加密的私钥文件,配置会被自动删除。

private_key: ""

rpc_url

Solana RPC 节点地址。

rpc_url: "http://xxx"

yellowstone_grpc_url

Yellowstone gRPC 服务地址。

yellowstone_grpc_url: "http://xxx"

jupiter_api_url

Jupiter API 服务地址。

jupiter_api_url: "http://127.0.0.1:18080"

jito_engine

Jito MEV-Block-Engine 节点列表配置,建议配置多个节点以提升 QPS,如果配置随机发送,每次找到机会会随机选择一个节点发送,否则一个机会会发送到所有配置的节点。

1.0.7版本新增了Main 引擎,和指定jito 接口的方式,开放出去,可自定义jito的域名,你可以自己代理出去,但是只会走RPC模式

jito_engine:
   - Main    # 版本>=1.0.7 的时候,添加了主节点
   - "http://127.0.0.1:8080"  # 版本>=1.0.7 的时候,可自定义jito的域名,你可以自己代理出去,但是只会走RPC模式
   - NL      # 荷兰阿姆斯特丹节点
   - DE      # 德国法兰克福节点
   - NY      # 美国纽约节点
   - SLC     # 美国盐湖城节点
   #- Tokyo   # 日本东京节点

memo

为每一个交易添加备注,添加的好处是可以让每个交易可以记录是从哪台机器发出来的,便于调试

memo: "test"

memo_auto_random_additional

默认为true,如果开启动可为memo后最加上随机数,减少hash冲撞提升上链率(主要针对,如果你的机器性能很强,找到的机会很多,很容易hash冲撞的情况下使用)

memo_auto_random_additional: true

random_engine

是否启用随机节点选择,建议开启以提升 QPS,提高成功率。

random_engine: true

min_profit_threshold

每一次交易你的最小利润阈值,单位为lamports,达到这个利润会立即执行交易。

min_profit_threshold: 1000

max_tip_lamports

给 Jito 的最大 tip 限制。有时候利润非常大,但是你又不想给jito那么大的小费,你可以限制最大小费限制,如果按照百分比给超过最大限制那么将根据最大限制给jito小费

max_tip_lamports: 100000000

static_tip_percentage

给 Jito 的静态 tip 百分比。

static_tip_percentage: 0.7501

trade_range

交易范围配置,建议从小额开始(0.1-1 SOL)(1.0.7以及以上版本为sol为单位,1.0.7以下版本以sol lamports为单位注意)。

trade_range:
  - 0.1    # 0.1 SOL

trade_range_strategy

交易范围策略,可以启用也可以不用,如果开启,那么启动的时候会以你配置的资金区间去随机获取交易额大小,以一下例子作为解释:交易额会在0.1SOL 到1SOL,随机生成size个,1SOL到20SOL,随机生成10个,该配置主要用来多机器跑,但是又不太想指定交易额的情况下使用,如果既配置了trade_range又配置了trade_range_strategy ,那么在启动时会聚合两个结果并去重,为最后的交易额

trade_range_strategy:
  enable_strategy: true
  ranges:
    - from: 0.1 # 0.8 SOL
      to: 1.0 # 1.0 SOL
      size: 10 #
      step: 0.05 # 随机的步长为0.05
    - from: 1 # 1 SOL
      to: 20 # 10 SOL
      size: 10 #
      step: 1 # 随机的步长为1

rpc_type

交易发送类型,建议选择 Mixed 模式以提升 IP 限制速率。

rpc_type: Mixed

blockhash_rpc_type

Blockhash RPC 类型,建议选择 Rpc。

blockhash_rpc_type: Rpc

blockhash_cache_enabled

是否启用 blockhash 缓存,建议启用,降低节点压力。

blockhash_cache_enabled: true

blockhash_cache_ttl_ms

Blockhash 缓存过期时间,单位毫秒。

blockhash_cache_ttl_ms: 1000

thread_count

bot查询交易的系统线程数。

thread_count: 6

max_concurrent

每个线程的最大并发网络 IO 数。

max_concurrent: 4

log_rate_limit

是否启用日志速率限制打印,主要是一些jito的rpc返回的错误信息或者异常信息,如果需要调试可以打开

log_rate_limit: false

log_opportunities

是否打印套利机会。

log_opportunities: false

log_trade_execution

是否打印交易执行日志。

log_trade_execution: false

enable_separate_wallet

是否启用独立小费钱包,如果启用,那么每次交易都会使用一个独立的钱包进行小费交易,否则会使用主钱包进行小费发送给jito,会导致限速。

enable_separate_wallet: true

separate_wallet_size

生成的随机钱包个数,主要针对jito对发送小费的钱包限速的解决方案,如果你的机会比较多,建议生成更多的临时钱包,降低限速命中概率,默认值为2000

separate_wallet_size
: 2000

only_direct_routes

是否只使用直接路由,如果启用只会有单跳出现,否则会寻找多跳,但是多跳对jup的性能有一些要求,会慢一点。

only_direct_routes: false

check_transaction_size

是否检查交易大小,暂时没有用处。

check_transaction_size: false

dynamic_compute_unit_limit

是否启用动态计算单元限制,如果启用,那么会模拟交易cu消耗,并设置到交易中

dynamic_compute_unit_limit: true

如果关闭那么请设置以下两个参数,根据

single_swap_compute_unit_limit,代表在一个交易里面单个swap你给多少cu限制

loan_compute_unit_limit,代表,如果交易里出现闪电贷,你给闪电贷多少cu

这样做的好处就是,无论是多跳还是单跳,我们都根据最后的swap路径都可以给出合适的cu,无论是单跳还是多跳,或者交易里有闪电贷或者没有,进行更加精细的CU限制

single_swap_compute_unit_limit: 80000

loan_compute_unit_limit: 100000

cu_limit_percentage

计算单元限制百分比,有时候,模拟的cu偏大,可以设置百分比,比如0.98,那么会按照模拟cu的98%,并设置到交易中。

cu_limit_percentage: 0.98

ip_addrs

版本>=1.0.7 的时候,可以直接将此参数,注释掉,那么系统会自动扫描网卡里面配置的所有IP,如果不想用所有的IP,那么可以手动配置(公网)

 ip_addrs:
   - "127.0.0.1"

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速度

compute_unit_limit: 180000

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消耗较多,有时候资金也不一定能借的出来,所以建议预留小单资金,默认开启

enable_kamino: true

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

blind_send_trade: true
#盲发预期利润,会按照这个利润一直发送交易 单位sol lamports
blind_expect_min_profit_threshold: 5000

#盲发预期利润百分比,预期利润百分比开启后,固定blind_expect_min_profit_threshold 将失效,按照交易额度来控制给jito的小费比率,也就是
#毛利润 = 交易额 *(1+blind_expect_profit_percent)
#jito 小费 = 毛利 * static_tip_percentage,建议保守和冲刺都要有,找机会
#是否开启盲发
blind_expect_profit_percent:
  - 0.000001 # 超保守策略: 交易100 SOL,预期利润0.0001 SOL (≈$0.007)  =>  约 $0.13
  - 0.000002 # 超保守策略: 交易100 SOL,预期利润0.0002 SOL (≈$0.014) =>  约 $0.26
  - 0.000005 # 超保守策略: 交易100 SOL,预期利润0.0005 SOL (≈$0.035) => 约 $0.65
  - 0.00001 # 保守策略: 交易100 SOL,预期利润0.001 SOL (≈$0.07) =>  约 $1.30
  - 0.00002 # 保守策略: 交易100 SOL,预期利润0.002 SOL (≈$0.14) => 约 $2.60
  - 0.00005 # 保守策略: 交易100 SOL,预期利润0.005 SOL (≈$0.35) => 约 $6.50
  - 0.0001 # 中等策略: 交易100 SOL,预期利润0.01 SOL (≈$0.7) =>  约 $13.00
  - 0.0002 # 中等策略: 交易100 SOL,预期利润0.02 SOL (≈$1.4) =>  约 $26.00
  - 0.0005 # 中等策略: 交易100 SOL,预期利润0.05 SOL (≈$3.5) =>  约 $65.00

Last updated