MainNet Release Procedure
Operational (non-technical) instructions on releasing an upgrade to MainNet
1. Protocol Upgrade Preparation
(See linked preparation docs where applicable.)
2. Keep Clear Communication
Keep the following stakeholders in the loop along the way:
Pocket Network Discord Server; Beta TestNet and MainNet
Beta TestNet: https://discord.com/channels/553741558869131266/1384591252758200330
MainNet: https://discord.com/channels/553741558869131266/1234943674903953529
Grove Pocketd Discord: https://discord.com/channels/824324475256438814/1138895490331705354
Exchanges that support Pocket Network and communicate via telegram:
https://github.com/pokt-network/poktroll/blob/main/.github/workflows/telegram-send-message.yml
Reference previous announcements:
Beta TestNet Announcement Channel: https://discord.com/channels/553741558869131266/1384589692355477696
MainNet Announcement Channel: https://discord.com/channels/553741558869131266/1384589604153331732
3. BEFORE the Day of the Upgrade
We'll use v0.1.29 as an example for this section.
Choose a height
Visit the MainNet Grafana Dashboard to get the current height of the blockchain:
https://grafana.poktroll.com/goto/8MB3RPRDg?orgId=1
Review the latest block times of the network by checking network stats, Grove's infra, or config.toml:
Grove infra: https://github.com/buildwithgrove/infrastructure/blob/dfbc02c57bbc5e61ae860393ec35d45b6a6fc3d5/environments/protocol/vultr-sgp/kubernetes-manifests/mainnet/config-files.yaml#L505
config.toml: https://github.com/pokt-network/pocket-network-genesis/blob/master/shannon/mainnet/config.toml
Typical block time: usually ~30s per block.
Account for session tokenomics overhead (can add ~1–10s depending on network traffic).
Determine a future height that gives the ecosystem a few days to prepare.
For your particular upgrade (e.g.
v0.1.29), update theheightin:tools/scripts/upgrades/upgrade_tx_v0.1.29_main.json
Determining future block height — example prompt you can use with ChatGPT:
4. ON the Day of the Upgrade
5. Update the pocketd binary
pocketd binaryOnce the upgrade is validated, update the Homebrew tap so users can install the new CLI.
Run:
Note: Make sure to update the versions in the commit message accordingly.
Reinstall the CLI:
OR:
Alternatively (first-time install):
OR:
6. How to Cancel an Upgrade
In emergency situations, you may need to cancel a pending upgrade.
Run the cancellation command:
Verify Upgrade Status
Check the current upgrade plan status (whether pending or cancelled):
Emergency Use Only
The upgrade cancellation command should only be used in emergency situations where the upgrade needs to be stopped before it executes.
Make sure to inform exchanges of the cancellation. Example announcement:
Test broadcast:
If it looks good, broadcast:
Last updated
Was this helpful?
