raptor.solanatracker.io 托管服务使用相同的路由引擎,以及相同的 HTTP 和 WebSocket API。
- 目前免费。 二进制文件不收费,也不需要 API 密钥或许可证密钥,下载后直接运行。
- 没有限制。 想运行多少实例都可以,能处理多少请求只取决于你的硬件。
- 可以转售。 在前面加上你自己的 API,收取访问费用,或添加你自己的平台费。
从 GitHub 下载
适用于 Linux 和 macOS 的最新版本,附校验和与发布说明。
报告问题
Bug 和功能请求提交到 GitHub 仓库,使用问题请到 Discord 咨询。
使用 Raptor 不一定要自托管。托管 API 目前同样免费,无需任何配置。想要独立的容量、自己的基础设施,或不依赖共享服务时,再选择自托管。
二进制文件的功能
开箱即用时,二进制文件提供报价和兑换交易构建。另外四项功能默认关闭,需要手动开启。
请求已关闭的端点会返回
404。
Raptor 通过 Yellowstone gRPC 流式接收账户更新来保持池状态最新,因此启动后只使用很少的 RPC。
系统要求
- 一台 Linux 或 macOS 服务器。
- Linux:x86-64,glibc 2.30 或更新版本,例如 Ubuntu 20.04+、Debian 11+ 或 RHEL 9+。
- macOS:Apple Silicon 或 Intel。
- 一个 Solana RPC 端点,通过
RPC_URL设置。 - 一个 Yellowstone gRPC 端点,通过
YELLOWSTONE_ENDPOINT设置;如果服务商要求,还需设置YELLOWSTONE_TOKEN。没有它 Raptor 无法启动。 - 一个可写的池缓存目录。 默认是二进制文件旁边的
.r_cache。设置RAPTOR_POOL_DATA_DIR可使用其他目录。 - 出站 HTTPS。 启动时,Raptor 会从 Solana Tracker 下载当前的池索引,之后通过 Yellowstone 保持更新。
安装
1
选择适合服务器的文件
每个发布版本都为每个平台提供一个 zip 文件,命名为
raptor-<version>-<platform>.zip。2
下载并校验
以下命令会下载最新版本,并用发布的 校验通过时输出
checksums.txt 校验。raptor-<version>-<platform>.zip: OK。如果输出其他内容,请删除 zip 文件并重新下载。把 raptor.sig 和 raptor 放在同一目录。二进制文件用它来确认自身未被修改。3
确认可以运行
xattr -d com.apple.quarantine raptor 清除隔离标记。运行
设置端点并启动服务器。0.0.0.0:8080。设置 BIND_ADDR 可以修改,例如 BIND_ADDR=127.0.0.1:9000。
开启除套利外的所有可选功能:
等待服务就绪
Raptor 要先索引池才能路由。索引完成前,/quote 返回 503 和 Server warming up。/ready 在 Raptor 可以提供报价后返回 200,在此之前返回 503:
/health 在服务器启动后立即返回 OK,即使仍在索引。把负载均衡器的健康检查指向 /ready,这样实例只有在可以报价时才会接收流量。
发起第一次报价
https://raptor.solanatracker.io 替换为你的服务器地址后,概览中的所有示例都可以用于你的实例。
可选功能
每个标志都有对应的环境变量。开关类变量设为1、true、yes 或 on 都会开启功能。
WebSocket 流式传输
ws://your-server:8080/stream 获取实时报价,或连接 /stream/swap 获取附带待签名交易的报价。最佳路由变化时 Raptor 会推送更新,客户端无需轮询。消息格式见 WebSocket。
发送和追踪交易
POST /send-transaction 和 GET /transaction/{signature}。Raptor 通过 QUIC 使用 Yellowstone Jet 把已签名交易直接发送给即将出块的 leader,并持续重发,直到交易上链或过期。请求和响应格式见发送和追踪交易。
服务器需要能通过出站 UDP 访问 Solana 验证者,以使用 QUIC。
一次调用完成报价和兑换
POST /quote-and-swap,在一个请求中完成报价和交易构建。对不需要先展示报价的机器人和后端,可以省去一次往返。参见一次请求完成报价和兑换。
套利
/quote 接受相同的 mint 作为输入和输出,例如 SOL 换 SOL。Raptor 随后会寻找一条经过多个池、换回数量多于投入的循环,详见套利。
不开启此标志时,相同 mint 的报价返回 400 和 Circular arbitrage is disabled。
限制 Raptor 的路由范围
默认情况下,Raptor 会经过所有支持的 DEX 和池进行路由。下面这些过滤器在整个实例范围内缩小路由范围。DEX 过滤器还会减少 Raptor 从 Yellowstone 接收的数据流,从而节省内存和带宽。调用方还可以在每个请求上通过dexes 和 pools 进一步收窄路由。
DEX 名称不区分大小写,并接受多种写法,因此
raydium-clmm、raydium_clmm 和 "Raydium CLMM" 都指同一个 DEX。raydium 和 meteora 匹配该 DEX 的所有池类型,orca 匹配 Whirlpool。包含列表和排除列表只需设置其中一个;两者都设置时,以包含列表为准。
# 表示注释开始。组合使用多个过滤器时,池必须全部通过。
运行多个实例
每个实例独立运行,使用自己的 Yellowstone 流,因此可以按需在负载均衡器后面放任意数量的实例。 每个报价都带有签名的quoteId。默认情况下,/swap 只接受同一实例生成的报价。如果负载均衡器可能把客户端的 /quote 和 /swap 发往不同实例,请为所有实例设置相同的密钥:
openssl rand -hex 32 生成一个密钥,并妥善保管。
内存和性能
小型服务器请使用
--low-memory。Pump.fun 这类发射台有数百万个联合曲线池,低内存模式会把它们放在磁盘上。
启动选项
作为服务运行
- systemd
- Docker
把 把配置写入 启动并跟踪日志:
raptor 和 raptor.sig 放到 /opt/raptor,然后创建 /etc/systemd/system/raptor.service:/opt/raptor/raptor.env,每行一个 NAME=value:更新
用同样的方式下载新版本,替换raptor 和 raptor.sig,然后重启。不同版本之间保留池缓存目录。发布说明见 GitHub 和最近更新。
要无停机更新多个实例,为它们设置相同的 RAPTOR_QUOTE_SECRET,然后逐个重启。每个实例在 /ready 返回 200 后重新加入负载均衡器。
配置参考
标志的值两种写法都可以:--workers 8 或 --workers=8。
故障排查
Raptor 退出并提示“RPC_URL environment variable is required”
Raptor 退出并提示“RPC_URL environment variable is required”
在运行 Raptor 的环境中设置
RPC_URL 和 YELLOWSTONE_ENDPOINT。使用 systemd 时,把它们写入 EnvironmentFile,因为 shell 中导出的变量不会传给服务。/quote 返回 503 和“Server warming up”
/quote 返回 503 和“Server warming up”
Raptor 还在索引池。等
/ready 返回 200。如果一直不返回,检查日志中是否有 Yellowstone 连接错误,并确认服务器可以发起出站 HTTPS 请求。/stream、/send-transaction 或 /quote-and-swap 返回 404
/stream、/send-transaction 或 /quote-and-swap 返回 404
该功能未开启。启动 Raptor 时加上
--enable-websocket、--enable-yellowstone-jet 或 --enable-quote-and-swap。/swap 拒绝其他实例生成的报价
/swap 拒绝其他实例生成的报价
在所有实例上设置相同的
RAPTOR_QUOTE_SECRET,或把每个客户端的 /quote 和 /swap 发往同一个实例。Linux 报错“GLIBC_2.30 not found”
Linux 报错“GLIBC_2.30 not found”
二进制文件需要 glibc 2.30 或更新版本。请使用 Ubuntu 20.04+、Debian 11+ 或更新的发行版,或运行上面的 Docker 镜像。
RPC 服务商对 Raptor 限流
RPC 服务商对 Raptor 限流
把
--rpc-rate-limit 设为低于套餐的每秒请求数。Raptor 的 RPC 调用大多发生在启动时,之后主要从 Yellowstone 读取数据。常见问题
二进制文件需要 API 密钥或许可证吗?
二进制文件需要 API 密钥或许可证吗?
不需要。二进制文件目前免费:下载后直接运行。没有密钥,也没有请求限制。
可以转售我的实例的访问权限吗?
可以转售我的实例的访问权限吗?
可以。你可以在自己的 API 后面运行它,收取访问费用,并通过
feeAccount 和 feeBps 添加自己的平台费。它能替代 Metis 二进制文件吗?
它能替代 Metis 二进制文件吗?
可以。Raptor 的角色相同:一个自托管的聚合器,负责报价和构建兑换交易。它不需要二进制密钥,实例数量也不限。
源代码是否公开?
源代码是否公开?
不公开。Raptor 是闭源软件,GitHub 仓库只用于托管发布版本。Bug 和功能请求可以在那里提交 issue。
我的实例发起的兑换使用同一个链上程序吗?
我的实例发起的兑换使用同一个链上程序吗?
是的。每个实例构建的交易都使用 Raptor 程序
RaptorD5ojtsqDDtJeRsunPLg6GvLYNnwKJWxYE4m87。