Hello Agoric Validators & BLD Community,
Agoric OpCo is happy to announce that a new software release, agoric-upgrade-12, is now available for the agoric-3 chain.
Release details:
- Reduce the BlockParams.MaxBytes consensus parameter to 5MB
- Enable restore from State Sync with larger payloads, which was previously broken
- Avoid a potential consensus failure when the node is restarted during busy blocks
- Allow a brand new chain to be launched with a functioning walletFactory contract (previously this only worked for chain upgrades)
- Allow usage of outbound IBC in JS smart contracts
We’ve prepared the following:
Upgrade Handlers:
Emerynet: agorictest-upgrade-12
Mainnet: agoric-upgrade-12
Important note for anyone generating state-sync snapshots for use by new nodes:
In order to produce state-sync snapshots, beginning with agoric-upgrade-11 your node must have a “complete” JS database. If your DB isn’t complete, the state-sync generation process will fail. If you have been running a node continuously since the Mainnet 1B upgrade (agoric-upgrade-10), then your DB will be complete.
If you created your node from a state-sync restore before agoric-upgrade-11, or if you used a community snapshot that had itself restored from state-sync, then your DB will not be complete. You can restore from state-sync with agoric-upgrade-12 to obtain a complete DB.
Recommended Testnet Milestones
By running long-lived testnets and using that environment to evaluate software before promoting it to mainnet, validators play a vital role in maintaining a healthy, robust network for the Agoric community. Qualifying or certifying any new software release as production ready requires significant testing, and Agoric OpCo recommends that validators evaluate the following milestones before launching an on-chain governance proposal on the agoric-3 mainnet.
– Choose a testnet coordinator to kick off the Emerynet upgrade. Traditionally, the testnet coordinator submits the on-chain proposal for mainnet software upgrade.
– Ensure that you’re up to date on golang and node versions for this release, and that you’ve upgraded to the newest version of Cosmovisor that supports the upgrade handler.
– Evaluate core mainnet functionality. This could include:
- Creating a state-sync snapshot
- Spinning up a node using a state-sync snapshot
- Exercising the new VM functionality of the release by participating in the upgrade
- Restarting your node after a successful upgrade
- Making IBC transactions with testnet tokens
- Exercising on-chain governance parameters
– Keep the community updated on testnet progress by posting updates to this thread and/or sharing details in Discord so that the entire community can follow progress towards launch.
– Coordinate with your fellow validators to determine if this release is ready to be promoted to mainnet and, when ready, the Testnet Coordinator should notify the OpCo team that they’d like the pre-release tag removed.
– Testnet Lead (or another validator) create a mainnet proposal, if needed seek support from the community for deposit.
Calculating an upgrade height
Creating an Emerynet upgrade proposal:
Confirm the commit hash and upgrade name BEFORE submitting a proposal.
# Edit as needed
FROM_WALLET=yourwallet
UPGRADE_HEIGHT="1234-get-blockheight-from-estimator"
# Verify values
UPGRADE_TO="agorictest-upgrade-12"
CHAIN_ID="agoric-emerynet-8"
COMMIT_ID=$(git rev-parse HEAD)
ZIP_URL="https://github.com/Agoric/agoric-sdk/archive/${COMMIT_ID}.zip"
CHECKSUM=sha256:$(curl -L "$ZIP_URL" -o- | shasum -a 256 | cut -d' ' -f1)
UPGRADE_INFO="{\"binaries\":{\"any\":\"$ZIP_URL?checksum=$CHECKSUM\"}}"
agd tx gov submit-proposal software-upgrade $UPGRADE_TO --upgrade-info="$UPGRADE_INFO" --upgrade-height="$UPGRADE_HEIGHT" --title="Upgrade to $UPGRADE_TO" --description="This proposal if voted will upgrade the chain to $UPGRADE_TO" --from=$FROM_WALLET --chain-id=$CHAIN_ID
When the testnet milestones are complete and validators have fully qualified the release on Emerynet, the testnet coordinator should inform Agoric OpCo to promote the release from rc to final and update tags accordingly, then create and submit a similar on-chain proposal to upgrade the agoric-3 chain to agoric-upgrade-12.
Creating a Mainnet upgrade proposal:
Confirm the commit hash and upgrade name BEFORE submitting a proposal.
# Edit as needed
FROM_WALLET=yourwallet
UPGRADE_HEIGHT="1234-get-blockheight-from-estimator"
# Verify values
UPGRADE_TO="agoric-upgrade-12"
CHAIN_ID="agoric-3"
COMMIT_ID=$(git rev-parse HEAD)
ZIP_URL="https://github.com/Agoric/agoric-sdk/archive/${COMMIT_ID}.zip"
CHECKSUM=sha256:$(curl -L "$ZIP_URL" -o- | shasum -a 256 | cut -d' ' -f1)
UPGRADE_INFO="{\"binaries\":{\"any\":\"$ZIP_URL?checksum=$CHECKSUM\"}}"
agd tx gov submit-proposal software-upgrade $UPGRADE_TO --upgrade-info="$UPGRADE_INFO" --upgrade-height="$UPGRADE_HEIGHT" --title="Upgrade to $UPGRADE_TO" --description="This proposal if voted will upgrade the chain to $UPGRADE_TO" --from=$FROM_WALLET --chain-id=$CHAIN_ID