安装与设置
Hummingbot Gateway 是一个 API/CLI 客户端,提供标准化的 REST 端点以与区块链网络和去中心化交易所(DEX)进行交互。它通过统一接口提供与这些协议交互的与语言无关的方法。
有两种主要的网关安装方式:
- Docker 安装(推荐给大多数用户)
- 源码安装(适用于开发者和高级用户)
使用 Docker 安装¶
这假设您想将网关与 Hummingbot 一起使用以启用 DEX 交易。Docker 过程可实现两个服务之间的无缝通信。
1 - 导航到您的 Hummingbot 目录
2 - 编辑 docker-compose.yml
并取消注释网关相关的行:
gateway:
restart: always
container_name: gateway
image: hummingbot/gateway:latest
ports:
- "15888:15888"
volumes:
- "./gateway-files/conf:/home/gateway/conf"
- "./gateway-files/logs:/home/gateway/logs"
- "./certs:/home/gateway/certs"
environment:
- GATEWAY_PASSPHRASE=admin
- DEV=true
3 - 启动两个服务
docker compose up -d
[+] Running 3/3 ✔ Network hummingbot_default Created 0.0s ✔ Container hummingbot Started 0.2s ✔ Container gateway Started
4 - 连接到 Hummingbot
设置密码后,您应该在右上角看到 Gateway: 🟢 ONLINE
。
注意
默认情况下,网关在开发模式 (DEV=true
) 下运行,该模式使用 HTTP 以便于设置。对于需要 HTTPS 的生产环境,请设置 DEV=false
并确保证书已正确配置。
从源码安装¶
您可以独立安装网关,然后手动将其链接到 Hummingbot。这些说明假定您已经在要安装网关的机器上安装了 Hummingbot,无论是从源码还是通过 Docker。有关如何安装 Hummingbot,请参见 安装。
安装先决条件¶
安装以下依赖项:
提示
新版Gateway使用pnpm而不是npm,因为它采用节省磁盘空间的方法高效处理依赖项。由于Gateway导入了多个具有冗余依赖的库,pnpm为所有包创建了一个单一的内容可寻址存储,显著减少了安装大小并提高了性能。
从CLI:
首先使用sudo
管理员前缀安装NodeJS 20+:
# 适用于Ubuntu 20+
sudo apt update && sudo apt install -y curlcurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs
之后,安装pnpm:
安装并设置Gateway¶
-
克隆Gateway仓库并进入文件夹:
-
安装并构建在
package.json
中定义的Javascript依赖项:
运行设置脚本¶
位于Gateway根目录的gateway-setup.sh
脚本,将默认的Gateway配置文件从/src/templates
复制到/conf/
文件夹。
运行脚本:
脚本将提示您选择要更新的配置:
server.yml
- Gateway服务器配置chains/
- 链和网络配置connectors/
- DEX连接器配置tokens/
- 每个链/网络的代币列表pools/
- 每个DEX连接器的池列表
对于全新安装,请选择所有选项。脚本将保留任何现有的钱包配置和defaultWallet
设置。
可选:生成证书¶
注意
生成证书是可选的。默认情况下,Gateway在开发模式(HTTP)下运行,不需要证书。只有在您想在生产模式(HTTPS)下运行Gateway时才需要证书。
如果要启用HTTPS模式以进行安全通信:
- 启动您的Hummingbot客户端并运行
gateway generate-certs
- 在提示时输入安全密码短语
- 记录证书存储的certs_path
- 运行
pnpm run setup
时,选择链接证书并提供路径
要将Hummingbot连接到运行在HTTPS模式下的Gateway,在Hummingbot的conf_client.yml
中设置gateway_use_ssl: true
。
运行网关¶
开发模式与生产模式¶
网关可以运行在两种模式之一:
开发模式 (HTTP) - 默认
- 使用
--dev
标志启动或默认启动 - 暴露 HTTP (未加密) REST 端点
- 交互式 Swagger 文档位于 http://localhost:15888/docs
- 在日志中显示 🔴 指示器
- 当
conf_client.yml
中gateway_use_ssl: false
时与 Hummingbot 兼容
生产模式 (HTTPS) - 可选
- 不使用
--dev
标志启动 - 暴露 HTTPS (加密) REST 端点
- 需要 SSL 证书
- 在日志中显示 🟢 指示器
- 当
conf_client.yml
中gateway_use_ssl: true
时与 Hummingbot 兼容
注意
不再需要 HTTPS 来连接 Hummingbot。默认情况下,Gateway 和 Hummingbot 都配置为使用 HTTP 以简化设置。您可以在 Hummingbot 的 conf_client.yml
中更改 gateway_use_ssl
设置以在 HTTP 和 HTTPS 模式之间切换。
开发模式 (默认)¶
对于开发模式 (HTTP),这现在是默认模式并与 Hummingbot 兼容:
或者简单地:
对于处理钱包操作的端点,需要密码。
如果服务器已成功启动,您应该看到:
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
╔██████╗ █████╗ ████████╗███████╗██╗ ██╗ █████╗ ██╗ ██╗██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝██║ ██║██╔══██╗╚██╗ ██╔╝██║ ███╗███████║ ██║ █████╗ ██║ █╗ ██║███████║ ╚████╔╝ ██║ ██║██╔══██║ ██║ ██╔══╝ ██║███╗██║██╔══██║ ╚██╔╝ ╚██████╔╝██║ ██║ ██║ ███████╗╚███╔███╔╝██║ ██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝2025-04-04 10:09:59 | info | ⚡️ Gateway version 2.8.0 starting at http://localhost:158882025-04-04 10:09:59 | info | Checking for processes using port 15888...2025-04-04 10:09:59 | info | No process found using port 158882025-04-04 10:09:59 | info | 🔴 Running in development mode with (unsafe!) HTTP endpoints2025-04-04 10:09:59 | info | Read token file from conf/lists/solana.json, content length: 6197912025-04-04 10:09:59 | info | 已解析代币数量: 38592025-04-04 10:09:59 | info | 已加载 3859 个代币 用于 mainnet-beta2025-04-04 10:09:59 | info | 📓 文档位于 http://localhost:15888/docs
生产模式(可选)¶
对于需要 SSL 证书的生产模式(HTTPS):
- 确保 SSL 证书已正确配置(参见上面的"可选:生成证书"部分)
- 在 Hummingbot 的
conf_client.yml
中设置gateway_use_ssl: true
- 在不使用
--dev
标志的情况下运行 Gateway:
如果服务器已成功启动,您应该看到:
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
╔██████╗ █████╗ ████████╗███████╗██╗ ██╗ █████╗ ██╗ ██╗██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝██║ ██║██╔══██╗╚██╗ ██╔╝██║ ███╗███████║ ██║ █████╗ ██║ █╗ ██║███████║ ╚████╔╝ ██║ ██║██╔══██║ ██║ ██╔══╝ ██║███╗██║██╔══██║ ╚██╔╝ ╚██████╔╝██║ ██║ ██║ ███████╗╚███╔███╔╝██║ ██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝2025-04-04 10:12:32 | info | ⚡️ Gateway version 2.8.0 正在启动于 https://localhost:158882025-04-04 10:12:32 | info | 正在检查使用端口 的进程 15888...2025-04-04 10:12:32 | info | 未找到使用端口 15888 的进程2025-04-04 10:12:32 | info | 🟢 在安全模式下运行,HTTPS 端点位于后方2025-04-04 10:12:33 | info | 从 conf/lists/solana.json 读取代币文件,内容长度: 6197912025-04-04 10:12:33 | info | 解析代币数量: 38592025-04-04 10:12:33 | info | 已为 mainnet-beta 加载 3859 个代币2025-04-04 10:12:33 | info | 📓 文档位于 https://localhost:15888/docs
正在连接到 Hummingbot¶
Gateway 运行后,返回 Hummingbot 客户端或在退出后重新启动。如果 Hummingbot 客户端成功连接到 Gateway,在右上角应会显示 GATEWAY: 🟢 ONLINE
如果看到 GATEWAY: OFFLINE,请检查:
- Gateway 正在端口 15888 上运行
- Hummingbot 的
conf_client.yml
中的gateway_use_ssl
设置与您的 Gateway 模式匹配(HTTP 为 false,HTTPS 为 true) - 如果使用 HTTPS,请确保 Gateway 和 Hummingbot 中都正确配置了证书
交互式 Swagger 文档¶
Gateway 在开发模式下运行时通过 Swagger UI 提供交互式 API 文档。此界面允许您:
- 浏览所有可用的 API 端点
- 直接从浏览器测试 API 调用
- 查看请求/响应模式
- 执行实时 API 调用
要访问 Swagger 文档:
- 使用
pnpm start --passphrase=<PASSPHRASE> --dev
启动 Gateway 开发模式 - 打开浏览器并导航到 http://localhost:15888/docs
- 您将看到 Swagger UI 界面,其中包含按类别分组的所有可用端点
文档中的每个端点都显示详细信息(方法、路径、描述、参数、请求/响应示例),并允许您通过填入参数和查看服务器响应来直接测试 API 调用。
该文档是从 Gateway 路由文件自动生成的,确保始终与最新的 API 变更保持同步。