边缘订阅者连接
连接到 DoubleZero 即表示我同意 DoubleZero 使用条款。请注意,数据仅供您内部使用,不得转发(参见第 2(e) 条)。
步骤 1:DoubleZero 设置
1. 完成设置
安装 Solana CLI。
按照设置说明安装和配置 DoubleZero 客户端。
如果您之前已设置过 DoubleZero,请确保您拥有最新的 Doublezero-Solana CLI,运行 sudo apt update && sudo apt install doublezero-solana
2. 配置防火墙
允许 GRE、BGP、PIM 和分片流量。
iptables:
sudo iptables -A OUTPUT -p gre -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -p pim -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -p udp --dport 7733 -j ACCEPT
sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT
UFW:
sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero1 proto pim from any to any
sudo ufw allow in on doublezero1 to any port 7733 proto udp
sudo ufw allow in on doublezero0 to any port 44880 proto udp
3. 启用协调器
协调器监控链上状态,并在您的席位被分配时自动配置隧道。默认情况下未启用。
doublezero enable
步骤 2:设置您的钱包
1. 创建 Solana 密钥对
doublezero-solana CLI 使用标准 Solana 密钥对进行链上席位管理。如果您还没有密钥对:
solana-keygen new
这将写入 ~/.config/solana/id.json。如需使用不同路径,请向任何 doublezero-solana 命令传递 --keypair <path>。
打印您的钱包地址:
solana address
2. 为钱包充值
您的钱包需要两种代币:
- SOL — 用于 Solana 交易费用。将 SOL 转入上面打印的钱包地址。
- USDC — 用于席位资金。CLI 从您钱包的关联代币账户(ATA)中提取主网 USDC 铸币(
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)。
步骤 3:购买席位
1. 查找最近的设备
在购买席位之前,找到距离您机器延迟最低的设备:
doublezero latency
记下延迟最低结果中的设备代码(例如 <Device_Name>)。您在购买席位时将使用此代码。
2. 查看定价
在投入资金之前查看当前设备定价。定价由两部分组成:基础都会区价格和每设备溢价。价格每个纪元更新。您也可以在此处查看定价和可用性。
所有设备:
doublezero-solana shreds price
特定设备:
doublezero-solana shreds price --device-code <Device_Name>
doublezero-solana shreds price --device <PUBKEY>
某个都会区的所有设备:
doublezero-solana shreds price --metro <PUBKEY>
输出列:Device Code、Metro Code、Metro Name、Status、Settled Seats、Available Seats、Base Price (USDC)、Premium (USDC)、Epoch Price (USDC)。
纪元价格是该设备上每个纪元一个席位的总费用(基础 + 溢价)。使用 --wide 显示完整公钥,或使用 --json 输出 JSON 格式。
3. 购买席位
通过一条命令购买席位。此操作将初始化您的席位、为托管账户充值并请求分配:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount <Cost_Of_Seat>
参数:
| 标志 | 描述 |
|---|---|
--device <PUBKEY> |
通过公钥指定目标设备(与 --device-code 互斥) |
--device-code <CODE> |
通过可读代码指定目标设备(例如 <Device_Name>) |
--client-ip <IP> |
您机器的公网 IPv4 地址 |
--amount <USDC> |
充值的 USDC 金额(十进制格式,例如 100 = 100 USDC)。必须满足最低纪元价格。 |
--source-token-account <PUBKEY> |
自定义 USDC 来源账户(默认为您钱包的 ATA) |
--accept-partial-epoch |
跳过纪元剩余时间警告(见下文) |
--fee-payer <PATH> |
使用不同的钱包支付 SOL 交易费用 |
--dry-run |
模拟交易而不实际执行 |
--with-compute-unit-price <PRICE> |
设置计算单元价格,以在拥堵时更快被包含 |
一旦您的席位被分配,守护进程会自动建立 GRE 隧道。使用以下命令检查您的连接:
doublezero status
纪元时间
席位按 Solana 纪元分配(约 2 天)。如果您付款时当前纪元剩余不足 10%,CLI 会警告您的席位将立即分配,但仅覆盖当前纪元的剩余部分。下一个纪元开始时,将从您的托管账户中单独扣除一笔费用。
建议一次性充值超过 1 个纪元的费用,以免失去您的席位。您可以在此处查看当前纪元的剩余时间。
您可以使用 --accept-partial-epoch 跳过此警告。
保持托管账户充足
如果在结算时您的托管账户余额低于纪元价格,您的席位将不会被分配,隧道将被拆除,您将失去累积的任期。任期决定您在未来纪元中的优先级——失去任期意味着您将作为新用户重新竞争。
您可以向此账户超额充值以资助多个纪元。每次结算从您的托管账户中扣除一个纪元的价格,剩余余额结转。例如,充值 5 倍的每纪元价格可以保持您的席位最多活跃 5 个纪元而无需再次充值。
要随时为托管账户充值,请再次运行 shreds pay:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount 500
请注意,Target_IP 必须是接收分片数据的机器上的公网 IPv4 地址。您可以在目标机器上运行 curl -4 ifconfig.me 等命令来获取此地址。
监控席位
本节详细介绍如何通过 CLI 查看席位。您也可以使用 https://data.malbeclabs.com/api/v1/docs 来监控席位,并协助管理您的托管账户。
查看您的活跃席位和托管余额:
您的所有席位:
doublezero-solana shreds list
按设备筛选:
doublezero-solana shreds list --device-code <Device_Name>
按客户端 IP 筛选:
doublezero-solana shreds list --client-ip <Target_IP>
按钱包筛选:
doublezero-solana shreds list --withdraw-authority <PUBKEY>
输出列:Device Code、Client IP、Tenure、Balance (USDC)、Est. Epochs Paid。
"Est. Epochs Paid" 列显示按当前定价,您的当前余额可覆盖多少个纪元。如果价格变动,此估算值会相应调整。
提取资金
关闭您的托管账户并将剩余 USDC 退还到您的钱包:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP>
您可以通过 --device <PUBKEY> 或 --device-code <CODE> 来指定设备,与其他命令相同。
将退款发送到不同的代币账户:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--refund-token-account <PUBKEY>
提取意味着您将失去席位和累积的任期。
分片地址(IP 与端口)
Leader 分片和高质押 Retransmit 分片将通过 doublezero1 接口的端口 7733 到达。doublezero0 接口用于单播流量。端口 5765 是来自分片发布者的心跳监控——其中不包含分片数据。
对于分片消费,IP 地址标识组播流,端口标识该流上的 UDP 服务。
以下所有分片流都使用 doublezero1 上的 UDP 端口 7733。
您可以使用以下命令查看任何组播组的 IP:
doublezero multicast group list
Leader 分片
edge-solana-shreds:233.84.178.1:7733
Root 分片
edge-solana-root:233.84.178.16:7733
Retransmit 分片
edge-solana-retrans-eu:233.84.178.12:7733edge-solana-retrans-apac:233.84.178.13:7733edge-solana-retrans-amer:233.84.178.14:7733
GRE 隧道头部 — XDP
通过网络传输的分片流量是 GRE 封装的。在将数据送入您现有的处理管道(例如基于 XDP 的分片重组器)之前,您可能需要剥离 GRE 头部。
工具和仪表板
边缘排行榜
排行榜对比 DoubleZero Edge 和其他提供商之间的分片传输速度,使用槽级数据实时比较性能。使用此仪表板可以查看 Edge 分片相对于其他提供商的胜率。您可以仅查看 leader 分片的结果,也可以查看完整数据流的对比。您还可以按区域深入查看预期性能。
边缘发布者
仪表板左上角的"Publishing Shreds"指标显示在 DoubleZero Edge 上发布 leader 分片的所有 Solana 验证者的总质押权重百分比。您可以查看网络上每个发布者的详细信息。
边缘订阅者、设备和活动
您可以在此页面轻松搜索您的客户端 IP 以查看已订阅的席位和状态。点击特定席位订阅可查看付款历史和活动。您还可以在设备页面查看可用设备,在活动页面查看所有最近的活动。
数据 API 文档
如需以编程方式访问数据端点,请参阅 API 文档:https://data.malbeclabs.com/api/v1/docs。
故障排除
如果您遇到此处未涵盖的问题,请在尝试自行解决之前通过您现有的渠道联系我们。如果您没有渠道,请搜索 Discord 并在需要时提交工单。
确保您的客户端是最新的:
运行:sudo apt update && sudo apt install doublezero-solana
托管余额不足
如果在结算时您的托管余额低于纪元价格,席位将不会被分配,隧道将被拆除,任期将丢失。请在下次结算之前使用 shreds pay 充值。
付款后席位未分配
- 您可能在纪元后期才付款——席位将在下一个纪元生效。
- 该设备上的所有席位可能已被更高任期的在位者占据。使用
shreds price检查可用席位。 - 如果您在结算前提取了资金,则该席位不符合条件。
隧道未建立
- 验证守护进程正在运行:
sudo systemctl status doublezerod - 验证协调器已启用:
doublezero enable - 验证防火墙规则已就位(GRE、BGP、PIM、
doublezero1上的分片流量、doublezero0上的端口 44880) - 验证您的席位在当前纪元中处于活跃状态:
doublezero-solana shreds list - 检查您的连接状态:
doublezero status
守护进程的客户端 IP 从您主机的公网 IP 自动发现——请验证它与您在席位命令中使用的 --client-ip 一致。
纪元警告提示
当纪元剩余不足 10% 时,CLI 会发出警告。您的选项:
- 如果您希望立即获得席位,使用
--accept-partial-epoch接受 - 等待下一个纪元以获得完整纪元的覆盖
"金额低于当前价格"
pay 命令会根据最低纪元价格(都会区基础价格 + 设备溢价)验证您的金额。使用 shreds price 检查当前定价并增加您的金额。
"组播用户已存在"
您已经通过其他路径拥有一个活跃的订阅。请先使用 doublezero disconnect 断开连接,然后重试 shreds pay。