跳转至内容

安装与设置

Hummingbot Gateway 是一个 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

设置密码后,您应该在右上角看到 Gateway: 🟢 ONLINE

注意

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

从源码安装

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

安装先决条件

安装以下依赖项:

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

提示

新版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:

sudo npm install -g pnpm

安装并设置Gateway

  1. 克隆Gateway仓库并进入文件夹:

    # 克隆仓库
    git clone https://github.com/hummingbot/gateway.gitcd gateway

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

    pnpm installpnpm build

运行设置脚本

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

运行脚本:

pnpm run setup

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

  • server.yml - Gateway服务器配置
  • chains/ - 链和网络配置
  • connectors/ - DEX连接器配置
  • tokens/ - 每个链/网络的代币列表
  • pools/ - 每个DEX连接器的池列表

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

可选:生成证书

注意

生成证书是可选的。默认情况下,Gateway在开发模式(HTTP)下运行,不需要证书。只有在您想在生产模式(HTTPS)下运行Gateway时才需要证书。

如果要启用HTTPS模式以进行安全通信:

  1. 启动您的Hummingbot客户端并运行gateway generate-certs
  2. 在提示时输入安全密码短语
  3. 记录证书存储的certs_path
  4. 运行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.ymlgateway_use_ssl: false 时与 Hummingbot 兼容

生产模式 (HTTPS) - 可选

  • 不使用 --dev 标志启动
  • 暴露 HTTPS (加密) REST 端点
  • 需要 SSL 证书
  • 在日志中显示 🟢 指示器
  • conf_client.ymlgateway_use_ssl: true 时与 Hummingbot 兼容

注意

不再需要 HTTPS 来连接 Hummingbot。默认情况下,Gateway 和 Hummingbot 都配置为使用 HTTP 以简化设置。您可以在 Hummingbot 的 conf_client.yml 中更改 gateway_use_ssl 设置以在 HTTP 和 HTTPS 模式之间切换。

开发模式 (默认)

对于开发模式 (HTTP),这现在是默认模式并与 Hummingbot 兼容:

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: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):

  1. 确保 SSL 证书已正确配置(参见上面的"可选:生成证书"部分)
  2. 在 Hummingbot 的 conf_client.yml 中设置 gateway_use_ssl: true
  3. 在不使用 --dev 标志的情况下运行 Gateway:
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 正在启动于 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,请检查:

  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 启动 Gateway 开发模式
  2. 打开浏览器并导航到 http://localhost:15888/docs
  3. 您将看到 Swagger UI 界面,其中包含按类别分组的所有可用端点

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

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