以 IBRL 模式连接验证器测试网
连接到 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),并视为在发送后次日收到(经确认传输)。如果本协议的任何条款被认定为无效或不可执行,本协议的其余条款仍将保持完全效力。任何一方对本协议任何违约或违反的放弃不构成对任何其他或后续违约或违反的放弃。任何一方均不对因不可抗力、地震、供应短缺、运输困难、劳资纠纷、暴乱、战争、火灾、流行病以及超出其控制范围的类似事件(无论是否可预见)导致的任何延迟或履行失败承担责任。本协议连同任何附件构成双方之间的完整协议,取代之前或同期关于本协议主题的所有协议或陈述(无论书面或口头)。本协议不得修改或修订,除非经双方正式授权代表书面签署。
以 IBRL 模式连接到测试网
Note
IBRL 模式不需要重启验证器客户端,因为它使用您现有的公共 IP 地址。
Solana 测试网验证器将完成到 DoubleZero 测试网的连接,本页面将对此进行详细说明。
每个 Solana 验证器都有自己的身份密钥对;从中提取的公钥称为节点 ID。这是验证器在 Solana 网络上的唯一标识。
在确定 DoubleZeroID 和节点 ID 后,您将证明对机器的所有权。这是通过创建一条包含 DoubleZeroID 的消息并使用验证器的身份密钥进行签名来完成的。生成的加密签名可作为您控制该验证器的可验证证明。
最后,您将向 DoubleZero 提交一个连接请求。此请求传达的信息是:"这是我的身份,这是所有权证明,这是我打算如何连接。" DoubleZero 会验证此信息、接受证明,并在 DoubleZero 上为验证器配置网络访问。
本指南允许注册 1 个主验证器,同时最多注册 3 台备份/故障转移机器。
前提条件
- 已安装 Solana CLI 并添加到 $PATH
- 对于验证器:拥有访问验证器身份密钥对文件(例如 validator-keypair.json)的权限(在 sol 用户下)
- 对于验证器:验证被连接的 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. 确认客户端网络
请在继续之前按照设置说明进行操作。安装测试网软件包 — 测试网和主网 Beta 使用不同的软件包仓库。
设置的最后一步是断开网络连接。这是为了确保您的机器上只有一个到 DoubleZero 的隧道处于打开状态,且该隧道连接到正确的网络。
确认客户端在测试网上:
doublezero status
Network 列应显示 testnet。如果显示为 mainnet-beta,或者您安装了错误的软件包,请使用故障排除中的一键切换方法。
大约 30 秒后,您将看到可用的 DoubleZero 设备:
doublezero latency
doublezero latency
pubkey | code | ip | min | max | avg | reachable
6E1fuqbDBG5ejhYEGKHNkWG5mSTczjy4R77XCKEdUtpb | nyc-dz001 | 64.86.249.22 | 2.44ms | 2.63ms | 2.50ms | true
CT8mP6RUoRcAB67HjKV9am7SBTCpxaJEwfQrSjVLdZfD | lax-dz001 | 207.45.216.134 | 71.97ms | 72.01ms | 71.99ms | true
Cpt3doj17dCF6bEhvc7VeAuZbXLD88a1EboTyE8uj6ZL | lon-dz001 | 195.219.120.66 | 71.94ms | 72.08ms | 72.00ms | true
4Wr7PQr5kyqCNJo3RKa8675K7ZtQ6fBUeorcexgp49Zp | ams-dz001 | 195.219.138.50 | 76.55ms | 76.65ms | 76.61ms | true
29ghthsKeH2ZCUmN2sUvhJtpEXn2ZxqAuq4sZFBFZmEs | fra-dz001 | 195.219.220.58 | 83.01ms | 83.10ms | 83.05ms | true
hWffRFpLrsZoF5r9qJS6AL2D9TEmSvPUBEbDrLc111Y | fra-dz-001-x | 195.12.227.250 | 84.87ms | 84.91ms | 84.89ms | true
8jyamHfu3rumSEJt9YhtYw3J4a7aKeiztdqux17irGSj | prg-dz-001-x | 195.12.228.250 | 95.27ms | 95.30ms | 95.29ms | true
5tqXoiQtZmuL6CjhgAC6vA49JRUsgB9Gsqh4fNjEhftU | tyo-dz001 | 180.87.154.78 | 180.96ms | 181.08ms | 181.02ms | true
D3ZjDiLzvrGi5NJGzmM7b3YZg6e2DrUcBCQznJr3KfC8 | sin-dz001 | 180.87.102.98 | 220.87ms | 221.14ms | 220.97ms | 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. 证明验证器所有权
设置好 DoubleZero 环境后,现在可以证明您的验证器所有权。
您在主验证器设置中创建的 DoubleZero ID 必须在所有备份机器上使用。
主机器上的 ID 可以通过 doublezero address 找到。所有集群中的机器上的 ~/.config/doublezero/id.json 中必须包含相同的 ID。
为此,您首先需要验证运行命令的机器是否为您的主验证器:
doublezero-solana passport find-validator -ut
这将验证验证器已在 gossip 中注册并出现在出块计划中。
预期输出:
Connected to Solana: testnet
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 -ut
预期输出:
Connected to Solana: testnet
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 -ut \
--doublezero-address YourDoubleZeroAddress11111111111111111111111111111 \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444>
示例输出:
DoubleZero Passport - Prepare Validator Access Request
Connected to Solana: testnet
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> -ut \
--primary-validator-id ValidatorIdentity111111111111111111111111111 \
--backup-validator-ids ValidatorIdentity222222222222222222222222222,ValidatorIdentity33333333333333333333333333,ValidatorIdentity444444444444444444444444444 \
--signature Signature111111rrNykTByK2DgJET3U6MdjSa7xgFivS9AHyhdSG6AbYTeczUNJSjYPwBGqpmNGkoWk9NvS3W7 --doublezero-address YourDoubleZeroAddress11111111111111111111111111111
输出:
此输出可用于在 Solana 浏览器上查看交易。请确保将浏览器切换到测试网。此验证是可选的。
Request Solana validator access: Transaction22222222VaB8FMqM2wEBXyV5THpKRXWrPtDQxmTjHJHiAWteVYTsc7Gjz4hdXxvYoZXGeHkrEayp
如果成功,DoubleZero 将注册主验证器及其备份。