如何设置 DoubleZero
术语说明
刚接触 DoubleZero?请参阅术语表了解 doublezerod、IBRL 和 DZD 等术语的定义。
连接到 DoubleZero 即表示我同意 DoubleZero 服务条款
前提条件
Warning
对于验证者:DoubleZero 需要直接安装在您的验证者主机上,而不是在容器中。
- 具有公共 IP 地址的互联网连接(无 NAT)
- x86_64 服务器
- 支持的操作系统:Ubuntu 22.04+ 或 Debian 11+,或 Rocky Linux / RHEL 9+
- 运行 DoubleZero 的服务器上的 Root 或 sudo 权限
- 可选但有用:用于调试的 jq 和 curl
连接到 DoubleZero
DoubleZero Testnet 和 DoubleZero Mainnet-Beta 是物理上独立的网络。请在安装过程中选择合适的网络。
加入 DoubleZero 时,您将建立一个 DoubleZero 身份,由一个称为 DoubleZero ID 的公钥表示。此密钥是 DoubleZero 识别您机器的方式之一。
1. 安装 DoubleZero 软件包
当前版本
| 软件包 | Mainnet-Beta | Testnet |
|---|---|---|
doublezero |
MAINNET_CLIENT_VERSION |
TESTNET_CLIENT_VERSION |
根据您的操作系统按照以下步骤操作:
Ubuntu / Debian
当前推荐的 Mainnet-Beta 部署方式:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
当前推荐的 Testnet 部署方式:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero
Rocky Linux / RHEL
当前推荐的 Mainnet-Beta 部署方式:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
当前推荐的 Testnet 部署方式:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero
仅限现有用户:将软件包从 Testnet 切换到 Mainnet-Beta,或从 Mainnet-Beta 切换到 Testnet
当您从上述某个软件包仓库安装时,它特定于 DoubleZero Testnet 或 DoubleZero Mainnet Beta。如果您在任何时候切换网络,您需要移除之前安装的软件包仓库并更新到目标仓库。
本示例将演示从 Testnet 迁移到 Mainnet-Beta 的过程
同样的步骤也可用于从 Mainnet-Beta 迁移到 Testnet,只需将步骤 3 替换为上述 Testnet 的安装命令即可。
-
查找旧的仓库文件
首先,找到系统上现有的 DoubleZero 仓库配置文件:
find /etc/apt | grep doublezerofind /usr/share/keyrings/ | grep doublezero -
移除旧的仓库文件
移除在上一步中找到的旧仓库文件,例如
sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list sudo rm /usr/share/keyrings/malbeclabs-doublezero-archive-keyring.gpg -
从新仓库安装
添加新的 Mainnet-Beta 仓库并安装最新软件包:
curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash sudo apt-get install doublezero=<current_recomended_version_above>
检查 doublezerod 的状态
软件包安装后,会安装、激活并启动一个新的 systemd 单元。要查看状态,您可以运行:
sudo systemctl status doublezerod
配置 GRE 和 BGP 防火墙
DoubleZero 使用 GRE 隧道(IP 协议 47)和 BGP 路由(链路本地地址上的 tcp/179)。请确保您的防火墙允许这些协议:
通过 iptables 允许 GRE 和 BGP:
sudo iptables -A INPUT -p gre -j ACCEPT
sudo iptables -A OUTPUT -p gre -j ACCEPT
sudo iptables -A INPUT -i doublezero0 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero0 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
或通过 UFW 允许 GRE 和 BGP:
sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
2. 创建新的 DoubleZero 身份
使用以下命令在您的服务器上创建 DoubleZero 身份:
doublezero keygen
Info
如果您有想要使用的现有 ID,可以按照以下可选步骤操作。
创建 doublezero 配置目录
mkdir -p ~/.config/doublezero
将您想要与 DoubleZero 一起使用的 id.json 复制或链接到 doublezero 配置目录。
sudo cp </path/to/id.json> ~/.config/doublezero/
3. 获取服务器的 DoubleZero 身份
查看您的 DoubleZero 身份。此身份将用于在您的机器和 DoubleZero 之间创建连接
doublezero address
输出:
YourDoubleZeroAddress11111111111111111111111111111
4. 检查 doublezerod 是否已发现 DZ 设备
在连接之前,请确保 doublezerod 已发现并 ping 通每个可用的 DZ 测试网交换机:
doublezero latency
示例输出:
$ doublezero latency
pubkey | name | ip | min | max | avg | reachable
96AfeBT6UqUmREmPeFZxw6PbLrbfET51NxBFCCsVAnek | la2-dz01 | 207.45.216.134 | 0.38ms | 0.45ms | 0.42ms | true
CCTSmqMkxJh3Zpa9gQ8rCzhY7GiTqK7KnSLBYrRriuan | ny5-dz01 | 64.86.249.22 | 68.81ms | 68.87ms | 68.85ms | true
BX6DYCzJt3XKRc1Z3N8AMSSqctV6aDdJryFMGThNSxDn | ty2-dz01 | 180.87.154.78 | 112.16ms | 112.25ms | 112.22ms | true
55tfaZ1kRGxugv7MAuinXP4rHATcGTbNyEKrNsbuVLx2 | ld4-dz01 | 195.219.120.66 | 138.15ms | 138.21ms | 138.17ms | true
3uGKPEjinn74vd9LHtC4VJvAMAZZgU9qX9rPxtc6pF2k | ams-dz001 | 195.219.138.50 | 141.84ms | 141.97ms | 141.91ms | true
65DqsEiFucoFWPLHnwbVHY1mp3d7MNM2gNjDTgtYZtFQ | frk-dz01 | 195.219.220.58 | 143.52ms | 143.62ms | 143.58ms | true
9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01 | 180.87.102.98 | 176.66ms | 176.76ms | 176.72ms | true
如果输出中没有返回设备,请等待 10-20 秒后重试。
5. 断开 DoubleZero 连接
在接下来的章节中,您将设置 DoubleZero 环境。为确保成功,请断开当前会话。这将避免与机器上打开多个隧道相关的问题。
检查
doublezero status
如果状态为 up,运行:
doublezero disconnect
下一步:租户
连接到 DoubleZero 的方式会因您的使用场景而异。在 DoubleZero 上,租户是具有相似用户配置文件的群组。例如区块链、数据传输层等。
点击此处选择您的租户
可选:启用 Prometheus 指标
熟悉 Prometheus 指标的运营者可能希望为 DoubleZero 监控启用它们。这提供了对 DoubleZero 客户端性能、连接状态和运行健康状况的可视化。
可用的指标
DoubleZero 公开了几个关键指标: - 构建信息:版本、提交哈希和构建日期 - 会话状态:DoubleZero 会话是否处于活动状态 - 连接指标:延迟和连接信息 - 性能数据:吞吐量和错误率
启用 Prometheus 指标
要在 DoubleZero 客户端上启用 Prometheus 指标,请按照以下步骤操作:
1. 修改 doublezerod systemd 服务启动命令
创建或编辑 systemd 覆盖配置:
sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf
替换为以下配置:
请注意 -env 标志需要指向 testnet 或 mainnet-beta,具体取决于您要从哪个网络收集数据。在示例代码块中使用的是 testnet。如果需要,您可以将其替换为 mainnet-beta。
[Service]
ExecStart=
ExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod.sock -env testnet -metrics-enable -metrics-addr localhost:2113
2. 重新加载并重启服务
sudo systemctl daemon-reload
sudo systemctl restart doublezerod
sudo systemctl status doublezerod
3. 验证指标是否可用
测试指标端点是否正在响应:
curl -s localhost:2113/metrics | grep doublezero
预期输出:
# HELP doublezero_build_info Build information of the client
# TYPE doublezero_build_info gauge
doublezero_build_info{commit="0d684e1b",date="2025-09-10T16:30:25Z",version="0.6.4"} 1
# HELP doublezero_session_is_up Status of session to doublezero
# TYPE doublezero_session_is_up gauge
doublezero_session_is_up 0
故障排除
如果指标未显示:
- 检查服务状态:
sudo systemctl status doublezerod - 验证配置:
sudo systemctl cat doublezerod - 检查日志:
sudo journalctl -u doublezerod -f - 测试端点:
curl -v localhost:2113/metrics - 验证端口:
netstat -tlnp | grep 2113
配置 Prometheus 服务器
配置和安全性超出了本文档的范围。 Grafana 是一个出色的可视化选项,其文档可在此处获取,详细说明了如何收集 Prometheus 指标。
Grafana 仪表板(可选)
为了可视化,您可以使用 DoubleZero 指标创建 Grafana 仪表板。常见的面板包括: - 会话状态随时间的变化 - 构建信息 - 连接延迟趋势 - 错误率监控