Contributor Documentation
Terminology
New to DoubleZero? See the Glossary for definitions of key terms like DZD, DZX, and CYOA.
Welcome to the DoubleZero contributor documentation. This section covers everything you need to become a network contributor.
Interested in becoming a network contributor?
Review the Requirements & Architecture page to understand the hardware, bandwidth, and connectivity needed to contribute to the DoubleZero network.
Onboarding Checklist
Use this checklist to track your progress. All items must be complete before your contribution is technically operational.
Phase 1: Prerequisites
- DoubleZero CLI installed on a management server
- Hardware procured and meets requirements
- Data center rack space and power available (4U, 4KW recommended)
- DZD physically installed with management connectivity
- Public IPv4 block allocated for DZ protocol (see DZ Prefix Rules)
Phase 2: Account Setup
- Service keypair generated (
doublezero keygen) - Metrics publisher keypair generated
- Service key submitted to DZF for authorization
- Contributor account created onchain (verify with
doublezero contributor list) - Access granted to malbeclabs/contributors repository
Phase 3: Device Provisioning
- Base device configuration applied (from contributors repo)
- Device created onchain (
doublezero device create) - Device interfaces registered
- Loopback interfaces created (Loopback255 vpnv4, Loopback256 ipv4)
- CYOA/DIA interfaces configured (if edge/hybrid device)
Phase 4: Link Establishment & Agent Installation
- WAN links created (if applicable)
- DZX link created (status:
requested) - DZX link accepted by peer contributor
- Config Agent installed and running
- Config Agent receiving configuration from controller
- Telemetry Agent installed and running
- Metrics publisher registered onchain
- Telemetry submissions visible on ledger
Phase 5: Link Burn-in
- All links drained for 24-hour burn-in period
- metrics.doublezero.xyz shows zero loss and zero errors for 24h
- Links undrained after clean burn-in
Phase 6: Verification & Activation
-
doublezero device listshows your device (withmax_users = 0) -
doublezero link listshows your links - Config Agent logs show successful config pulls
- Telemetry Agent logs show successful metric submissions
- Coordinate with DZ/Malbec Labs to run connectivity test (connect, receive routes, route over DZ)
- After test passes, set
max_usersto 96 viadoublezero device update
Getting Help
As part of onboarding, DZF will add you to the contributor Slack channels:
| Channel | Purpose |
|---|---|
| #dz-contributor-announcements | Official communications from DZF and Malbec Labs — CLI/agent upgrades, breaking changes, security announcements. Monitor for critical updates; ask questions in threads. |
| #dz-contributor-incidents | Unplanned service-impacting events. Incidents are posted automatically via the API/web form with severity and affected devices/links. Discussion and troubleshooting happens in threads. |
| #dz-contributor-maintenance | Planned maintenance activities (upgrades, repairs). Scheduled via the API/web form with planned start/end times. Discussion in threads. |
| #dz-contributor-ops | Open discussion for all contributors — operational questions, CLI help, sharing runbooks and playbooks. |
You will also get a private DZ/Malbec Labs channel for direct support for your organization.
DZ Prefix Rules
Critical: DZ Prefix Pool Usage
The DZ prefix pool you provide is managed by the DoubleZero protocol for IP allocation.
How DZ prefixes are used:
- First IP: Reserved for your device (assigned to Loopback100 interface)
- Remaining IPs: Allocated to specific user types connecting to your DZD:
IBRLWithAllocatedIPusersEdgeFilteringusers- Multicast publishers
- IBRL users: Do NOT consume from this pool (they use their own public IP)
You CANNOT use these addresses for:
- Your own network equipment
- Point-to-point links on DIA interfaces
- Management interfaces
- Any infrastructure outside the DZ protocol
Requirements:
- Must be globally routable (public) IPv4 addresses
- Private IP ranges (10.x, 172.16-31.x, 192.168.x) are rejected by the smart contract
- Minimum size: /29 (8 addresses), larger prefixes preferred (e.g., /28, /27)
- The entire block must be available - do not pre-allocate any addresses
If you need addresses for your own equipment (DIA interface IPs, management, etc.), use a separate address pool.
Quick Reference: Key Terms
New to DoubleZero? Here are the essential terms (see full Glossary):
| Term | Definition |
|---|---|
| DZD | DoubleZero Device - your physical Arista switch running DZ agents |
| DZX | DoubleZero Exchange - metro interconnect point where contributors peer |
| CYOA | Choose Your Own Adventure - user connectivity method (GREOverDIA, GREOverFabric, etc.) |
| DIA | Direct Internet Access - internet connectivity required by all DZDs for controller and telemetry, commonly used as a CYOA type for user connectivity on edge/hybrid devices |
| WAN Link | Link between your own DZDs (same contributor) |
| DZX Link | Link to another contributor's DZD (requires mutual acceptance) |
| Config Agent | Polls controller, applies configuration to your DZD |
| Telemetry Agent | Collects TWAMP latency/loss metrics, submits to onchain ledger |
| Service Key | Your contributor identity key for CLI operations |
| Metrics Publisher Key | Key for signing telemetry submissions onchain |
Documentation Structure
| Guide | Description |
|---|---|
| Requirements & Architecture | Hardware specs, network architecture, bandwidth options |
| Device Provisioning | Step-by-step: keys → repo access → device → links → agents |
| Operations | Agent upgrades, link management, monitoring |
| Glossary | All DoubleZero terminology defined |
Network Basics for Non-Network Engineers
If you're not from a network engineering background, here's a primer on concepts used in this documentation:
IP Addressing
- IPv4 address: A unique identifier for a device on a network (e.g.,
192.168.1.1) - CIDR notation (
/29,/24): Indicates subnet size./29= 8 addresses,/24= 256 addresses - Public IP: Routable on the internet; Private IP: Internal networks only (10.x, 172.16-31.x, 192.168.x)
Network Layers
- Layer 1 (Physical): Cables, optics, wavelengths
- Layer 2 (Data Link): Switches, VLANs, MAC addresses
- Layer 3 (Network): Routers, IP addresses, routing protocols
Common Terms
- MTU: Maximum Transmission Unit - largest packet size (typically 9000 bytes for WAN links)
- VLAN: Virtual LAN - logically separates traffic on shared infrastructure
- VRF: Virtual Routing and Forwarding - isolates routing tables on same device
- BGP: Border Gateway Protocol - inter-network route exchange
- GRE: Generic Routing Encapsulation - tunneling protocol for overlay networks
- TWAMP: Two-Way Active Measurement Protocol - measures latency/loss between devices
DoubleZero-Specific
- Onchain: In DoubleZero, device registrations, link configurations, and telemetry are recorded on the DoubleZero ledger — making network state transparent and verifiable by all participants
- Controller: Service that derives DZD configuration from onchain state on the DoubleZero ledger
Ready to begin? Start with Requirements & Architecture.