[Proposal #65] agoric-upgrade-13: smart-wallet auto-provisioning, interchain stack,

:wave: Hello Agoric Validators & BLD Community,

Agoric OpCo is happy to announce that a new software release, agoric-upgrade-13, is now available for the agoric-3 chain. :raised_hands:

Release details:

  • Auto smart-wallet provisioning

    • This feature eliminates a known friction point for users; the need to provision a smart wallet before interacting with contracts on the Agoric chain, by charging for and provisioning a user’s smart wallet as part of their transaction cost on the first transaction they make with an Agoric contract. Specifically, it adds 1 IST to the charged fee during a wallet spend action (e.g., creating a vault on Inter protocol) where no existing smart wallet is detected against the user’s Agoric1 address. The amount is a parameter governed by BLD Stakers.
    • Switching the provision fee to IST also drives a longer term UX goal to ensure users can transact in system only with IST
  • Interchain stack

    • Agoric smart contracts will soon be able to seamlessly orchestrate activity cross-chain by connecting to the IBC module and managing Interchain Accounts
    • To prepare for this capability, the Agoric chain needs to make a series of incremental upgrades to get to ibc-go V7 by February 2024.
    • This upgrade contains a bump to ibc-go V4 on our pathway to that goal. It entails upgrading tendermint to cometbft 0.34.27, cosmos-sdk to 0.45.16 and ibc-go to 4.5.1

We’ve prepared the following:

Upgrade Handlers:

Emerynet: agorictest-upgrade-13
Mainnet: agoric-upgrade-13

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 newest 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 entire community can follow progress towards launch.

:three: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.

:four:Testnet Lead (or another validator) create a mainnet proposal, if needed seek support from the community for deposit.

Calculating an upgrade height

GitHub - Agoric/estimator 4 2

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-13"

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-13.

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-13"

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

Important note 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-13 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 and 16GB of memory during a state-sync restore, and the process can take almost an hour depending on the characteristics of the machine.

3 Likes

Update: Emerynet was successfully upgraded to agorictest-upgrade-13

I did testing of IBC transactions with testnet tokens.
Created IBC channel between emerynet and devnet and tested IBC transfers to both sides.

Agoric Emerynet → Agoric Devnet
Emerynet Tx hash
https://explorer.kjnodes.com/agoric-testnet/tx/F1953E32201EDEB809650DB3009D42D48379936603C4942E51D31F229FB530E6

Devnet Tx hash
https://devnet.explorer.agoric.net/agoric/tx/85BFCF1D3F9AC76FB1A29F541BC315A5FB5DDCC8352150D87E8684CAFD5488C0

Agoric Devnet → Agoric Emerynet

Devnet tx hash
https://devnet.explorer.agoric.net/agoric/tx/46D772E1EE3B1AF1103D69FFCAE42378E6E1CEBE921FD1E414AFA1C7A4105707

Emerynet tx hash
https://explorer.kjnodes.com/agoric-testnet/tx/302EAF1EF0D84901C243360F05A71AA19AAF5090AF9FE4F50F090B1FB104F8A0

1 Like

We have testnet on-chain governance with proposal #24 :white_check_mark:

Update: After a successful Emerynet period with milestone tests led by Hindsight, @joeleiAfish, @Kristaps_Jahimovics, and testing complete by OpCo engineering, the agoric-upgrade-13 release has been updated with the rc tag removed and is now ready to be proposed to mainnet.

agoric-upgrade-13 is now in the voting period.

Voting ends: 03:19 UTC

Upgrade height: Block 13017175

Proposal 65 has passed! This means that the Agoric chain will be upgraded to agoric-upgrade-13. The upgrade height is expected to arrive on Dec. 21st around 13:00 UTC.

The chain upgrade was successful! The upgrade process took 14 minutes to go from upgrade height to new blocks.

Big thanks to the validators for coordinating another smooth upgrade of the Agoric chain! :raised_hands: