20250506 testnet upgrade
Background
On May 6, 2025 at approximately 15:00 UTC, Malbec Labs will perform service-impacting maintenance on the DoubleZero testnet-beta network so we can bring new functionality to users. We generally aim to conduct maintenance without impacting user traffic. However, since this maintenance will cause all DoubleZero users to change their IP addresses and move all of the smart contract components to a new private cluster, there is no practical way to make this change without a brief outage.
What's changing?
- We are moving our smart contract programs from Solana devnet to a private cluster running a Solana fork that we will refer to as the DoubleZero ledger. As a result we will be transferring SOL from the DoubleZero ledger to all of the addresses that are presently in the user allowlist. Please continue to use the same keypair you've been using on Solana devnet to interact with the new DoubleZero ledger.
- We are updating the DoubleZero client and CLI to target the new cluster by default. The client release also contains several bugfixes that have been identified since our launch.
- Network contributors will redefine their devices and links on the DoubleZero ledger. Previously this was done with centrally owned keys.
- The Controller component is being upgraded to render configuration that enables IBRL mode. When connecting with IBRL mode, validator operators will be able to user their existing public IP on both the public internet and on DoubleZero.
- The Activator component is being upgraded to allow address assignment from multiple IP prefixes when users request a new IP to be allocated.
- Network contributors will add the necessary protocol configuration to support multicast testing on testnet.
Upgrade procedure
In order to minimize downtime to your Solana testnet and/or Solana mainnet-beta validator nodes that are currently connected to DoubleZero, please follow the steps below. Most of the work can happen at any point before the maintenance event.
Reconfigure your validator to use the public IP assigned by your hosting provider
At any time between reading this notice and 2025-05-06 15:00:00 UTC: - Reconfigure your validator to bind to your hosting provider’s public IP (usually this is on bond0).
In Jito and Agave:
- Remove any specific
--bind-address
or--gossip-host
config parameters that reference your current DoubleZero IP address - Restart the validator and confirm it is using the correct IP address for both TPU and gossip.
Disconnect from DoubleZero testnet-beta
Note
If you do not manually disconnect, you will be force-disconnected prior to the maintenance starting and any attempts to generate new user contracts will be rejected.
Using doublezero package version 0.0.22, disconnect your user tunnel any time prior to 2025-05-06 15:00:00 UTC
doublezero disconnect
🚧 Stop here until after maintenance concludes
At this point, your validator should be up and running on the public internet. Once the maintenance concludes, you will be notified by the DoubleZero Foundation to proceed with the client side upgrade and reconnection.
Upgrade the DoubleZero client and CLI
After receiving notice from DoubleZero Foundation that the maintenance has concluded, please upgrade your doublezero
package.
Update apt cache:
sudo apt-get update
Upgrade doublezero package to 0.1.0
:
sudo apt-get install doublezero=0.1.0-1
Restart doublezerod
Restart doublezerod:
sudo systemctl restart doublezerod.service
Check that doublezerod has re-discovered DZ devices
Before connecting, be sure doublezerod
has discovered and pinged each of the available DZ testnet switches:
doublezero latency
Sample output:
$ 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
If no devices are returned in the output, wait 10-20 seconds and retry.
Check that you have SOL in your account on the DoubleZero ledger
In order to interact on the DoubleZero ledger, you need SOL for transaction fees. If your balance is 0, contact the DoubleZero Foundation.
doublezero balance
Sample output:
$ doublezero balance
1.9981754 SOL
Reconnect to DoubleZero testnet-beta
Note
The command to connect has changed to reflect a new mode of operation known as IBRL mode.
After receiving notice from DoubleZero Foundation that the maintenance has concluded, please reconnect to DoubleZero.
Reconnect to DZ testnet using doublezero connect ibrl
doublezero connect ibrl
This will cause your host to connect to the closest DZ testnet switch and establish a BGP session to receive routes from DoubleZero which will be installed into the main kernel routing table
Sample output:
DoubleZero Service Provisioning
🔗 Start Provisioning User...
Get your Public IP: 137.174.145.147 (If you want to specify a particular address, use the argument --client-ip x.x.x.x)
🔍 Provisioning User for IP: 137.174.145.147
Creating an account for the IP: 137.174.145.147
The Device has been selected: chi-dn-dzd3
User activated with dz_ip: 137.174.145.147
Provisioning: status: ok
/ Connected
Connecting in IBRL mode does not require restarting the Jito or Agave clients because your public IP will now be advertised to DoubleZero so that other users on DoubleZero will route via the DoubleZero network when sending to your validator. Likewise, the routes received from DoubleZero and installed in the kernel routing table cause your validator to send to other DoubleZero-enabled validators over the DoubleZero network.
Confirm connectivity by running:
doublezero status
: “Tunnel status: up”ip route
: should now contain several /32 routes for other DoubleZero users
Need help?
Please reach out to the DoubleZero team via Slack with any questions.