[Proposal #74] agoric-upgrade-15

:wave: Hello Agoric Validators & BLD Community,

Agoric OpCo engineers have released the agoric-upgrade-15 software upgrade for the agoric-3 chain. agoric-upgrade-15 includes fixes for the RPC issues found following agoric-upgrade-14.

Note this release is primarily introducing fixes and is not the planned upgrade that addresses the chain performance considerations previously discussed or the feature additions to support orchestration. Those will now be included in the next upgrade.

Release details:

The following new features are included in this release:

  • #9224: add a feature flag to use the CometBFT “LocalClient”

The release contains at least the following fixes:

  • #9239: enhance smart wallet behavior when invitation creation fails

The full set of changes in this release can be found at #9268.

We’ve prepared the following:

Upgrade Handlers:

Emerynet: agorictest-upgrade-15
Mainnet: agoric-upgrade-15

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.

Note: Ensure that you’re up to date on golang and node versions for this release, and that you’ve upgraded to the latest version of Cosmovisor that supports the upgrade handler.

:zero: – Choose a testnet coordinator to kick off the Emerynet upgrade. Traditionally, the testnet coordinator submits the on-chain proposal for mainnet software upgrade.

:one: Evaluate core mainnet functionality. This could include:

  • Exercising the new VM functionality of the release by participating in the upgrade
  • Restarting your node after a successful upgrade
  • Exercising on-chain governance parameters
  • Creating a state-sync snapshot
  • Spinning up a node using a state-sync snapshot

:two: – Keep the community updated on testnet progress by posting updates to this thread and/or sharing details in Discord so that the community can follow progress towards launch.

:three: – Coordinate with your fellow validators to determine if this release is ready to be promoted to mainnet. When the milestone checklist is completed by validators Agoric OpCo will remove the pre-release tag.

:four: – 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-15"

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//agoric-sdk-$COMMIT_ID?checksum=$CHECKSUM\"},\"source\":\"$ZIPURL?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-15.

Creating a Mainnet upgrade proposal:

Confirm the commit hash and upgrade name BEFORE submitting a proposal.

Please note the changes to the instructions, in particular the value of UPGRADE_TO and UPGRADE_INFO.

# Edit as needed

FROM_WALLET=yourwallet

UPGRADE_HEIGHT="1234-get-blockheight-from-estimator"

# Verify values

UPGRADE_TO="agoric-upgrade-15"

CHAIN_ID="agoric-3"

COMMIT_ID=$(git rev-parse HEAD)

ZIP_URL="[https://github.com/Agoric/agoric-sdk/archive/${COMMIT_ID}.zip](https://github.com/Agoric/agoric-sdk/archive/$%7BCOMMIT_ID%7D.zip)"

CHECKSUM=sha256:$(curl -L "$ZIP_URL" -o- | shasum -a 256 | cut -d' ' -f1)

UPGRADE_INFO="{\"binaries\":{\"any\":\"$ZIP_URL//agoric-sdk-${COMMIT_ID}?checksum=$CHECKSUM\"},\"source\":\"$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

Important reminder for anyone generating state-sync snapshots or restoring from state-sync

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-15 to obtain a complete DB.

We are aware of continued performance issues related to state-sync. In particular, we’ve observed that on the agoric-3 chain, the current implementation can require 100 GB of free disk space on /tmp and 16GB of memory during a state-sync restore. The process can take over an hour depending on the characteristics of the machine, and we’ve observed that setting a longer trusted blocks window is necessary during restore (e.g. 5000 blocks).

Tested IBC transfer from emerynet to devnet and back which was successful. Here are the txs of emerynet to devnet transfer.

Emerynet tx: BB48167934F21E8A5C664779DFD57421E578A275CFBFBD270AC082C3984BA0D8
Devnet tx: 790A2E44793686177A484652D6CD1529F895ACE15B7B7FE063F8B048C58BC5FC

Used Agoric CLI Relayer, and used Hermes client to send the transactions.

After successful agoric-upgrade-15 testing on Emerynet and agreement from Emerynet validators Agoric OpCo has removed the rc tag and the agoric-upgrade-15 release is ready for mainnet!

Validators please coordinate with your peers to plan the upgrade for agoric mainnet.

The Agoric-15 upgrade propsal is live for voting!

Voting end 2024-05-10 09:59 PT
Blockheight for upgrade is ~ Monday 15008615

1 Like

Update: The chain upgrade was successful!

Thanks to all the validators for another smooth upgrade. See you all for agoric-upgrade-16!