以 IBRL 模式连接验证者
连接到 DoubleZero 即表示我同意 DoubleZero 服务条款
连接到 DoubleZero 测试网即表示我同意此处所列的评估协议条款(点击展开)
DoubleZero 测试网 评估协议
通过访问或使用解决方案(定义见下文),您同意自首次访问之日起("生效日期"),本评估协议("协议")规定了 DoubleZero Foundation("DZF")在评估基础上向您("用户"或"您")提供解决方案访问权限的条款和条件。鉴于双方在此作出的相互承诺,您同意以下条款:
1. 定义。
1.1 "保密信息" 是指任何一方向另一方披露的被标注为保密的,或应被合理理解为保密的任何及所有信息,包括但不限于解决方案、产品计划、商业计划、商业秘密、技术或任何其他专有信息。
1.2 "解决方案" 是指 DoubleZero 面向 web3 项目的高性能网络基础设施的测试网版本("测试网")及相关的集成带宽的边缘过滤服务("信息服务")、DZ 软件(定义见下文)、DZF 提供的与 DZ 软件相关的任何及所有材料("文档"),以及 DZF 根据本协议向用户提供的其他材料。
2. 访问。
2.1 解决方案访问。 根据本协议的条款和条件,DZF 将通过互联网向用户提供解决方案访问权限。用户的访问权限为非排他性、不可转让的有限使用,仅用于评估信息服务。对于构成解决方案的任何软件("DZ 软件"),DZF 特此授予用户在评估期间内一项有限的、可撤销的许可,用于复制、下载、制作合理数量的副本、运行和部署(如适用)此类 DZ 软件,且仅限于文档所预期的方式。
2.2 限制。 用户可以根据本协议从生效日期起至 DZF 终止之日("评估期")使用解决方案。用户理解,在评估期结束后使用解决方案的任何权利将受双方之间单独的商业协议约束,包括费用支付。用户不得且不得允许任何第三方:(i) 基于解决方案或其任何部分修改或创建任何衍生作品;(ii) 除本协议明确许可外复制解决方案;(iii) 转授权、分发、出售、出借、出租、租赁、转让或授予解决方案的全部或任何部分的任何权利,或以服务局方式或其他方式向第三方提供解决方案的访问权限,但通过用户的平台或产品提供信息服务且非以独立方式提供的除外;或 (iv) 以本协议规定以外的方式使用解决方案。
2.3 所有权。 DZF 保留对解决方案的所有权利、所有权和利益,包括知识产权。
3 反馈。 DZF 可能会定期要求用户提供关于解决方案使用、运行和功能的反馈("反馈"),用户同意向 DZF 提供此类反馈。用户特此授予 DZF 非排他性、全球性、永久性、不可撤销、免版税、已全额支付、可完全转授权和可转让的权利和许可,以将反馈纳入任何产品和服务,制造、使用、销售、要约销售、进口和以其他方式利用此类产品和服务,以及以其他方式不受限制地使用、复制、分发和利用反馈。
4. 期限和终止。
4.1 期限。 本协议自生效日期起生效,并在评估期内持续有效。任何一方均可出于便利原因,无论有无理由,在向另一方发出书面通知(电子邮件即可)后立即终止本协议。
4.1 终止效果。 因任何原因终止本协议后:(i) 授予用户的权利将立即终止;(ii) 用户应立即停止使用解决方案,并归还或销毁其控制下的所有文档和任何 DZ 软件;(iii) 各方应及时归还或销毁另一方的所有保密信息和财产;以及 (iv) 第 2.2、2.3、3、4.2 和第 5 至第 8 条将继续有效。
5. 保密。 各方同意仅为履行本协议项下的义务和行使权利而使用另一方的保密信息,不得披露或允许披露,除非本协议另有许可。但任何一方均可向其有知情需要且受不低于本协议保密义务约束的人员、律师和其他代表披露保密信息;以及法律要求时(在此情况下,接收方应事先通知披露方并给予其对抗披露的机会,并在适用法律许可的范围内将此类披露降至最低)。本第 5 条的保密义务不适用于以下信息:(a) 非因接收方过错而已成为或变为公知的信息;(b) 接收方在披露方披露之前已适当知悉且不受限制的信息;(c) 由具有合法授权的其他人适当披露给接收方且不受限制的信息;或 (d) 接收方在未使用或参考披露方保密信息的情况下独立开发的信息。各方同意在保护另一方保密信息免遭未经授权使用和披露方面尽到适当注意义务。在实际或威胁违反本条规定或本协议所含许可的情况下,非违约方有权寻求即时禁令和其他衡平法救济,同时不放弃可用的任何其他权利或补救措施。用户有责任将解决方案以及提供解决方案访问权限的任何密码、助记词或代码的保密作为 DZF 的保密信息加以维护。本协议中的任何内容均不限制或约束 DZF 使用有关解决方案性能、可用性、使用、完整性和安全性数据的权利或能力。如果任何一方违反或威胁违反本第 5 条的规定,各方同意非违约方将无法获得充分的法律救济,因此有权获得即时禁令和其他衡平法救济,无需保证金,也无需证明实际金钱损失。
6. 保证免责声明;责任限制。
6.1 保证免责声明。 解决方案按"原样"提供,不提供任何形式的保证。DZF 不就解决方案和文档作出任何明示、暗示、法定或其他方面的保证,包括其状况、与任何描述的一致性,且 DZF 明确否认所有关于适销性、特定用途适用性、所有权和不侵权的暗示保证。
6.2 责任限制。 除违反第 2.1、2.2 和第 5 条外,在任何情况下,任何一方均不对另一方承担间接、附带、特殊或其他后果性损害赔偿责任,包括但不限于利润损失或使用损失或数据丢失的损害赔偿,无论该等损害是由您或任何第三方遭受的,由本协议引起或与之相关的,无论是基于合同、侵权或其他诉讼,即使另一方已被告知此类损害的可能性。在任何情况下,DZF 因本协议引起或与之相关的总责任不超过一百美元($100),无论是基于合同、侵权或其他诉讼。上述限制将在本协议中任何有限补救措施的基本目的失败的情况下继续适用。 双方同意上述限制代表本协议项下风险的合理分配。
7. 适用法律。 本协议及由本协议引起或与之相关的所有事项应受开曼群岛法律管辖、解释和构建。如果因本协议引起或与之相关的争议、纠纷或索赔("争议"),相关方应酌情向其他方发出 30 天的争议通知("争议通知")。如果在争议通知送达后 30 天届满时争议仍未解决,相关方可按本协议规定启动仲裁程序。如果在争议通知送达后 30 天届满时争议仍然存在,争议应通过开曼国际调解与仲裁中心 (CI-MAC) 管理的仲裁解决,按照本协议签订之日有效的 CI-MAC 仲裁规则("仲裁规则")进行,该仲裁规则被视为通过引用纳入本条款,并受仲裁法(经修订)管辖。仲裁地点为开曼群岛大开曼乔治城,受开曼群岛法律管辖。仲裁语言为英语。仲裁应由根据仲裁规则指定的独任仲裁员裁决。仲裁员作出的任何裁决或决定应以书面形式作出,对双方具有最终约束力且不得上诉,基于所获裁决的判决可在具有管辖权的任何法院登记或执行。不得在任何司法管辖区的任何法院提起基于本协议引起或与之相关的任何索赔的法律诉讼或衡平法诉讼。如果有必要通过诉讼或仲裁来执行本协议条款,胜诉方有权要求败诉方支付其律师费。各方放弃其可能拥有的主张不方便法院原则的任何权利、主张其不受此类仲裁或法院管辖权约束的权利或在根据本协议提起的任何程序中对管辖地提出异议的权利。
8. 一般条款。 未经 DZF 事先书面同意,用户不得转让本协议。DZF 可自由转让本协议。根据本协议需要发送的所有通知应通过电子邮件发送(致 DZF:legal@doublezero.xyz),并视为发送次日收到(经确认传输)。如果本协议的任何条款被认定为无效或不可执行,本协议的其余条款将继续完全有效。任何一方对本协议任何违约或违反的放弃不构成对任何其他或后续违约或违反的放弃。任何一方均不对因天灾、地震、供应短缺、运输困难、劳资纠纷、骚乱、战争、火灾、流行病及类似的超出其控制范围的事件(无论是否可预见)导致的任何延迟或未能履行承担责任。本协议连同任何附件构成双方之间的完整协议,并取代所有先前或同期关于本协议主题的书面或口头协议或陈述。本协议不得修改或修订,除非经双方正式授权代表签署的书面文件。
选择与您的 Solana 集群匹配的 DoubleZero 网络:mainnet-beta 或 testnet。按照安装说明安装对应的软件包,并在以下所有命令中使用相同的网络。
Note
IBRL 模式不需要重启验证者客户端,因为它使用您现有的公网 IP 地址。
Solana 验证者通过本页面的步骤以 IBRL 模式连接到 DoubleZero。
每个 Solana 验证者都有自己的身份密钥对;从中提取的公钥称为节点 ID。这是验证者在 Solana 网络上的唯一指纹。
在确定 DoubleZeroID 和节点 ID 后,您将证明对机器的所有权。这通过创建一条包含 DoubleZeroID 并使用验证者身份密钥签名的消息来完成。由此产生的加密签名可作为您控制该验证者的可验证证明。
最后,您将向 DoubleZero 提交一个连接请求。该请求传达的信息是:"这是我的身份,这是所有权证明,以及我打算如何连接。" DoubleZero 会验证这些信息、接受证明,并在 DoubleZero 上为该验证者配置网络访问。
本指南允许 1 个主验证者注册自身,同时最多注册 3 个备份/故障转移机器。
前提条件
- 已安装 Solana CLI 并在 $PATH 中
- 对于验证者:有权限访问 sol 用户下的验证者身份密钥对文件(例如 validator-keypair.json)
- 对于验证者:确认要连接的 Solana 验证者身份密钥上至少有 1 SOL
- 防火墙规则允许 DoubleZero 和 Solana RPC 所需的出站连接,包括 GRE(ip proto 47)和 BGP(169.254.0.0/16 on tcp/179)
Info
验证者 ID 将与 Solana gossip 进行核对以确定目标 IP。目标 IP 和 DoubleZero ID 随后将用于在您的机器与目标 DoubleZero 设备之间建立 GRE 隧道。
注意:如果您在同一 IP 上同时有一个垃圾 ID 和主 ID,则只有主 ID 会用于机器注册。这是因为垃圾 ID 不会出现在 gossip 中,因此无法用于验证目标机器的 IP。
1. 确认客户端网络
请在继续之前按照安装说明操作。安装 mainnet-beta 或 testnet 对应的软件包。它们使用不同的软件包仓库。
安装的最后一步是断开网络连接。这是为了确保您的机器上仅有一条到 DoubleZero 的隧道处于打开状态,且该隧道连接到正确的网络。
确认客户端在您所选的网络上:
doublezero status
Network 列应显示 mainnet-beta 或 testnet,与您的 Solana 集群一致。如果显示错误,或您安装了错误的软件包,请使用故障排除中的切换方法。
大约 30 秒后,您将看到可用的 DoubleZero 设备:
doublezero latency
示例输出(mainnet-beta;testnet 看起来相同但设备较少):
pubkey | code | ip | min | max | avg | reachable
2hPMFJHh5BPX42ygBvuYYJfCv9q7g3rRR3ZRsUgtaqUi | dz-ny7-sw01 | 137.239.213.162 | 1.74ms | 1.92ms | 1.84ms | true
ETdwWpdQ7fXDHH5ea8feMmWxnZZvSKi4xDvuEGcpEvq3 | dz-ny5-sw01 | 137.239.213.170 | 1.88ms | 4.39ms | 2.72ms | true
8J691gPwzy9FzUZQ4SmC6jJcY7By8kZXfbJwRfQ8ns31 | nyc002-dz002 | 38.122.35.137 | 2.45ms | 3.30ms | 2.74ms | true
8gisbwJnNhMNEWz587cAJMtSSFuWeNFtiufPuBTVqF2Z | dz-ny7-sw02 | 142.215.184.122 | 1.88ms | 5.13ms | 3.02ms | true
uzyg9iYw2FEbtdTHaDb5HoeEWYAPRPQgvsgyd873qPS | nyc001-dz002 | 4.42.212.122 | 3.17ms | 3.63ms | 3.33ms | true
FEML4XsDPN3WfmyFAXzE2xzyYqSB9kFCRrMik8JqN6kT | nyc001-dz001 | 38.104.167.29 | 2.33ms | 5.46ms | 3.39ms | true
9oKLaL6Hwno5TyAFutTbbkNrzxm1fw9fhzkiUHgsxgGx | dz-dc10-sw01 | 137.239.200.186 | 6.84ms | 7.01ms | 6.91ms | true
DESzDP8GkSTpQLkrUegLkt4S2ynGfZX5bTDzZf3sEE58 | was001-dz002 | 38.88.214.133 | 7.39ms | 7.44ms | 7.41ms | true
HHNCpqB7CwHVLxAiB1S86ko6gJRzLCtw78K1tc7ZpT5P | was001-dz001 | 66.198.11.74 | 7.67ms | 7.85ms | 7.76ms | true
9LFtjDzohKvCBzSquQD4YtL3HwuvkKBDE7KSzb8ztV2b | dz-mtl11-sw01 | 134.195.161.10 | 9.88ms | 10.01ms | 9.95ms | true
9M7FfYYyjM4wGinKPofZRNmQFcCjCKRbXscGBUiXvXnG | dz-tor1-sw01 | 209.42.165.10 | 14.52ms | 14.53ms | 14.52ms | true
2. 开放端口 44880
用户需要开放端口 44880 以使用某些路由功能。
要开放端口 44880,您可以更新 IP tables,例如:
sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero0 -p udp --dport 44880 -j ACCEPT
注意 -i doublezero0、-o doublezero0 标志,这些标志将此规则限制为仅适用于 DoubleZero 接口
或使用 UFW,例如:
sudo ufw allow in on doublezero0 to any port 44880 proto udp
sudo ufw allow out on doublezero0 to any port 44880 proto udp
注意 in on doublezero0、out on doublezero0 标志,这些标志将此规则限制为仅适用于 DoubleZero 接口
3. 证明验证者所有权
网络标志
以下 Passport 命令使用 -u mainnet-beta。在测试网上,请改用 -u testnet(或 -ut)。
设置好 DoubleZero 环境后,现在是证明您的验证者所有权的时候了。
您在安装主验证者时创建的 DoubleZero ID 必须在所有备份机器上使用。
您主机器上的 ID 可以通过 doublezero address 查看。相同的 ID 必须存在于集群中所有机器的 ~/.config/doublezero/id.json 中。
为此,您首先需要验证运行命令的机器是否为您的主验证者:
doublezero-solana passport find-validator -u mainnet-beta
这将验证该验证者已在 gossip 中注册并出现在出块计划中。
预期输出:
Connected to Solana: mainnet
DoubleZero ID: YourDoubleZeroAddress11111111111111111111111111111
Detected public IP: 11.11.11.111
Validator ID: ValidatorIdentity111111111111111111111111111
Gossip IP: 11.11.11.111
In Leader scheduler
✅ This validator can connect as a primary in DoubleZero 🖥️ 💎. It is a leader scheduled validator.
Info
无论是一台还是多台机器,工作流程都相同。 如果只注册一台机器,请在本页所有命令中排除 "--backup-validator-ids" 或 "backup_ids=" 参数。
现在,在您计划运行主验证者的所有备份机器上执行以下命令:
doublezero-solana passport find-validator -u mainnet-beta
预期输出:
Connected to Solana: mainnet
DoubleZero ID: YourDoubleZeroAddress11111111111111111111111111111
Detected public IP: 22.22.22.222
Validator ID: ValidatorIdentity222222222222222222222222222
Gossip IP: 22.22.22.222
In Not in Leader scheduler
✅ This validator can only connect as a backup in DoubleZero 🖥️ 🛟. It is not leader scheduled and cannot act as a primary validator.
您现在需要在所有计划使用主验证者投票账户和身份的备份机器上运行此命令。
准备连接
在主验证者机器上运行以下命令。这台机器是您拥有活跃质押、在出块计划中、主验证者 ID 出现在该机器的 solana gossip 中的那台机器:
doublezero-solana passport prepare-validator-access -u mainnet-beta \
--doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444>
示例输出:
DoubleZero Passport - Prepare Validator Access Request
Connected to Solana: mainnet-beta
Primary validator 🖥️ 💎:
ID: ValidatorIdentity111111111111111111111111111
Gossip: ✅ OK 11.11.11.111)
Leader scheduler: ✅ OK (Stake: 1,050,000.00 SOL)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity222222222222222222222222222
Gossip: ✅ OK (22.22.22.222)
Leader scheduler: ✅ OK (not a leader scheduled validator)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity333333333333333333333333333
Gossip: ✅ OK (33.33.33.333)
Leader scheduler: ✅ OK (not a leader scheduled validator)
Backup validator 🖥️ 🛡️:
ID: ValidatorIdentity444444444444444444444444444
Gossip: ✅ OK (33.33.33.333)
Leader scheduler: ✅ OK (not a leader scheduled validator)
To request access, sign the following message with your validator's identity key:
solana sign-offchain-message \
service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
-k <identity-keypair-file.json>
4. 生成签名
在上一步结束时,我们收到了 solana sign-offchain-message 的预格式化输出。
根据上述输出,我们将在主验证者机器上运行此命令。
solana sign-offchain-message \
service_key=YourDoubleZeroAddress11111111111111111111111111111,backup_ids=ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
-k <identity-keypair-file.json>
输出:
Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7
5. 在 DoubleZero 中发起连接请求
使用 request-validator-access 命令在 Solana 上创建一个用于连接请求的账户。DoubleZero Sentinel 代理会检测到新账户,验证其身份和签名,并在 DoubleZero 中创建访问通行证,以便服务器可以建立连接。
使用节点 ID、DoubleZeroID 和签名。
Note
在此示例中,我们使用 -k /home/user/.config/solana/id.json 来查找验证者身份。请使用适合您本地部署的路径。
doublezero-solana passport request-validator-access -k <path to keypair> -u mainnet-beta \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
--signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111
输出:
此输出可用于在 Solana 浏览器上查看交易。请确保将浏览器设置为与您的集群匹配的 mainnet-beta 或 testnet。此验证是可选的。
Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp
如果成功,DoubleZero 将注册主验证者及其备份节点。您现在可以在访问通行证中注册的 IP 之间进行故障转移。当切换到以此方式注册的备份节点时,DoubleZero 将自动维持连接。
6. 以 IBRL 模式连接
在服务器上,使用将连接到 DoubleZero 的用户,运行 connect 命令以建立到 DoubleZero 的连接。
doublezero connect ibrl
您应该会看到指示配置过程的输出,例如:
DoubleZero Service Provisioning
🔗 Start Provisioning User...
Public IP detected: 137.184.101.183 - If you want to use a different IP, you can specify it with `--client-ip x.x.x.x`
🔍 Provisioning User for IP: 137.184.101.183
User account created
Connected to device: nyc-dz001
The user has been successfully activated
Service provisioned with status: ok
✅ User Provisioned
验证您的连接:
doublezero status
输出:
Note
检查此输出。注意 Tunnel src 和 DoubleZero IP 与您机器上的公网 IPv4 地址匹配。
Tunnel status | Last Session Update | Tunnel Name | Tunnel src | Tunnel dst | Doublezero IP | User Type | Current Device | Lowest Latency Device | Metro | Network
up | 2025-10-20 12:12:55 UTC | doublezero0 | 11.11.11.111 | 12.34.56.789 | 11.11.11.111 | IBRL | ams-dz001 | ✅ ams-dz001 | Amsterdam | mainnet-beta
(当您在测试网上连接时,Network 显示 testnet。)
状态为 up 表示您已成功连接。
您可以通过运行以下命令查看 DoubleZero 上其他用户传播的路由:
ip route
default via 149.28.38.1 dev enp1s0 proto dhcp src 149.28.38.64 metric 100
5.39.216.186 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
5.39.251.201 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
5.39.251.202 via 169.254.0.68 dev doublezero0 proto bgp src 149.28.38.64
...
下一步:通过组播发布 Shreds
如果您已完成此设置并计划通过组播发布 shreds,请继续阅读下一页。