跳至内容

安装与设置

Hummingbot 网关是一个 API/CLI 客户端,提供标准化的 REST 接口,用于与区块链网络和去中心化交易所(DEX)进行交互。它通过统一的接口实现了与这些协议的语言无关交互。

安装网关主要有两种方式:

  1. Docker 安装(推荐大多数用户使用)
  2. 源码安装(适用于开发者和高级用户)

使用 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

docker attach hummingbot

设置密码后,您应该在右上角看到 网关:🟢 在线

注意

默认情况下,网关以开发模式运行(DEV=true),使用 HTTP 以便于设置。对于需要 HTTPS 的生产环境,请设置 DEV=false 并确保正确配置证书。

从源码安装

您可以独立安装网关,然后手动将其链接到 Hummingbot。这些说明假设您已在安装网关的机器上安装了 Hummingbot,无论是通过源码还是 Docker 安装。有关如何安装 Hummingbot,请参见 安装。

安装先决条件

安装以下依赖项:

  • NodeJS(v20.0.0 或更高版本)
  • pnpm 包管理器

提示

新版网关使用 pnpm 替代 npm,因为它能更高效地处理依赖关系,并节省磁盘空间。由于网关引入了多个具有冗余依赖的库,pnpm 为所有包创建一个单一的内容寻址存储,显著减少了安装体积并提升了性能。

从命令行界面(CLI):

首先,使用 sudo 管理员前缀安装 NodeJS 20 或更高版本:

# For Ubuntu 20+
sudo apt update && sudo apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

然后安装 pnpm:

sudo npm install -g pnpm

安装并设置网关

  1. 克隆网关代码仓库并进入该文件夹:

    # Clone repository
    git clone https://github.com/hummingbot/gateway.git
    cd gateway
    

  2. 安装并构建 package.json 中定义的 JavaScript 依赖项:

    pnpm install
    pnpm build
    

运行设置脚本

位于网关根目录的 gateway-setup.sh 脚本会将默认的网关配置文件从 /src/templates 复制到 /conf/ 文件夹。

运行脚本:

pnpm run setup

脚本将提示您选择要更新的配置选项:

  • server.yml - 网关服务器配置
  • chains/ - 链和网络配置
  • connectors/ - 去中心化交易所(DEX)连接器配置
  • tokens/ - 每条链/网络的代币列表
  • pools/ - 每个 DEX 连接器的池列表

对于全新安装,请选择所有选项。脚本将保留任何现有的钱包配置和 defaultWallet 设置。

可选:生成证书

注意

生成证书是可选操作。默认情况下,网关以开发模式(HTTP)运行,无需证书。只有在希望以生产模式(HTTPS)运行网关时才需要证书。

如果希望启用 HTTPS 模式以实现安全通信:

  1. 启动您的 Hummingbot 客户端 并运行 gateway generate-certs
  2. 提示时输入一个安全的密码短语
  3. 记下证书存储位置的 certs_path
  4. 当运行 pnpm run setup 时,选择链接证书并提供路径

要将 Hummingbot 连接到以 HTTPS 模式运行的网关,请在 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 兼容

注意

连接到 Hummingbot 不再强制要求使用 HTTPS。默认情况下,Gateway 和 Hummingbot 均配置为使用 HTTP,以便更轻松地完成设置。您可以在 Hummingbot 的 conf_client.yml 文件中修改 gateway_use_ssl 设置,以在 HTTP 和 HTTPS 模式之间切换。

开发模式(默认)

对于当前作为默认模式且与 Hummingbot 配合使用的开发模式(HTTP):

pnpm start --passphrase=<PASSPHRASE> --dev

或者直接运行:

pnpm start --passphrase=<PASSPHRASE>

处理钱包操作的接口需要提供密码短语。

如果服务器已成功启动,您应该会看到以下内容:

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:15888
2025-04-04 10:09:59 | info |    Checking for processes using port 15888...
2025-04-04 10:09:59 | info |    No process found using port 15888
2025-04-04 10:09:59 | info |    🔴 Running in development mode with (unsafe!) HTTP endpoints
2025-04-04 10:09:59 | info |    Read token file from conf/lists/solana.json, content length: 619791
2025-04-04 10:09:59 | info |    Parsed token count: 3859
2025-04-04 10:09:59 | info |    Loaded 3859 tokens for mainnet-beta
2025-04-04 10:09:59 | info |    📓 Documentation available at http://localhost:15888/docs

生产模式(可选)

对于需要 SSL 证书的生产模式(HTTPS):

  1. 确保已正确配置 SSL 证书(参见上方“可选:生成证书”部分)
  2. 在 Hummingbot 的 conf_client.yml 中设置 gateway_use_ssl: true
  3. 运行 Gateway 时不带 --dev 参数:
pnpm start --passphrase=<PASSPHRASE> --prod

如果服务器已成功启动,您应该会看到以下内容:

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 starting at https://localhost:15888
2025-04-04 10:12:32 | info |    Checking for processes using port 15888...
2025-04-04 10:12:32 | info |    No process found using port 15888
2025-04-04 10:12:32 | info |    🟢 Running in secured mode with behind HTTPS endpoints
2025-04-04 10:12:33 | info |    Read token file from conf/lists/solana.json, content length: 619791
2025-04-04 10:12:33 | info |    Parsed token count: 3859
2025-04-04 10:12:33 | info |    Loaded 3859 tokens for mainnet-beta
2025-04-04 10:12:33 | info |    📓 Documentation available at https://localhost:15888/docs

连接到 Hummingbot

一旦 Gateway 启动运行,请返回您的 Hummingbot 客户端,或如果已退出则重新启动。在右上角,如果 Hummingbot 客户端已成功连接到 Gateway,您应看到 GATEWAY: 🟢 ONLINE

如果显示 GATEWAY: OFFLINE,请检查以下事项:

  1. Gateway 是否正在 15888 端口上运行
  2. Hummingbot 的 conf_client.yml 中的 gateway_use_ssl 设置是否与您的 Gateway 模式匹配(HTTP 为 false,HTTPS 为 true)
  3. 如果使用 HTTPS,请确保 Gateway 和 Hummingbot 中均已正确配置证书

交互式 Swagger 文档

swagger

Gateway 在开发模式下运行时,通过 Swagger UI 提供交互式 API 文档。该界面允许您:

  1. 浏览所有可用的 API 接口
  2. 直接在浏览器中测试 API 调用
  3. 查看请求/响应的数据结构
  4. 执行实时 API 调用

要访问 Swagger 文档:

  1. 使用 pnpm start --passphrase=<PASSPHRASE> --dev 以开发模式启动网关
  2. 打开浏览器并访问 http://localhost:15888/docs
  3. 您将看到 Swagger UI 界面,其中所有可用的端点按类别分组

文档中的每个端点都显示详细信息(方法、路径、描述、参数、请求/响应示例),并允许您通过填写参数直接测试 API 调用,查看服务器的响应。

该文档由网关路由文件自动生成,确保始终与最新的 API 变更保持同步。