github Agoric/agoric-sdk agoric-upgrade-18-rc6

pre-release2 days ago

The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-18-rc6 release. This release is primarily intended to deploy governance/network upgrades and provide validator node memory improvements.

The following new features are included in this release:

  • #10258, #10133, #10134 and more: enable EC membership changes and change EC slate from 6 to 3 members
  • #9716 and more: MN Sustainability
  • #8400, #10020, #9595 and more: Oracle price improvements (reduces memory and diskspace growth for new price feeds)

The release contains at least the following fixes:

  • #10292: Fixes a case with AmountMath.isGTE involving invitations with common descriptions but distinct instance handles
  • #4103: Make xsnap exit quietly upon command pipe EOF
  • #9039: Change processUpgradeVat to delete c-list entries
  • #10455: add missing slog type
  • #10454: remove addInstance call from add-auction.js
  • #10534: bump cosmossdk.io/math to v1.4.0
  • #10551: fixes event name typo in telemetry
  • #10635: fixes empty context persisting when remaining beans are negative after run finish
  • #10615: don't reschedule auction's price notifier if we already have one (issue details)
  • #10634: add dATOM brand name to DEVNET config
  • #10680: Record contract instances that will be replaced so they can be managed later (issue details)
  • #10672: fixes timer-poll run.id in telemetry
  • #10668: Don't reschedule vault's priceNotifier if one exists
  • #10694: Save the contractKit for the auctioneer before overwriting it
  • #10696: add proposal w/300 E(chainTimerService).getTimerBrand() calls
  • #10704: use backport of cosmos-sdk v0.46.15
  • #10770: [new since rc5] update to CometBFT with ping fix
  • #10758: [new since rc5] avoid slotToVal memory leak for watched promises
  • #10752: [new since rc5] Add core-eval for terminating v110 zcf-b1-9f877-stkATOM-USD_price_feed-governor
  • #10749: [new since rc5] save the outgoing EC Charter instance and kit
  • #10764: [new since rc5] upgrade all orchestration vats to new liveslots
  • #10767: [new since rc5] Support arbitrary core eval builder arguments
  • #10765: [new since rc5] Add phase to cosmic-swingset-run-{start,finish} slog entries

The full set of changes in this release can be found at #10382, #10527, #10548, #10656, #10693, #10716 and #10773, and reviewed in detail as agoric-upgrade-17...agoric-upgrade-18-rc6.

Assuming this release satisfies all pre-release/testnet validation checks, it will be promoted to agoric-upgrade-18, and recommended for chains to upgrade from the previous agoric-upgrade-17 release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-17 to this new version (after the chain halts due to reaching the height required in a governance proposal).

State-sync

State-sync snapshots now only include minimal data to restore a node. However there are still continued performance issues related to state-sync. In particular, we've observed that on some deployments, the snapshot taking and restoring process can take multiple hours, require about 20GB of temporary free disk space, and 16GB of memory.

Cosmos Upgrade Handler Name

Below is the cosmos upgrade handler name for this release. This is the name that can be used in governance proposals to deploy this upgrade.

for emerynet
Cosmos Upgrade Handler Name: agoric-upgrade-18-emerynet-rc3
for devnet
Cosmos Upgrade Handler Name: agoric-upgrade-18-devnet
for mainnet
Cosmos Upgrade Handler Name: agoric-upgrade-18-mainnet

Tags

Below is the git information related to this software release. Note the git tag does not always match the cosmos upgrade handler name.

Git Tag: agoric-upgrade-18-rc6
Git Commit: f8c45b8a2e29a51522a81a6692af25b2d7f6b50f
@agoric/cosmos package version: v0.35.0-u18.5
Docker: ghcr.io/agoric/agoric-sdk:56

As shown in go.mod this release is based on:

ibc-go v6.3.1
cosmos-sdk v0.46.16
cometbft v0.34.30

How to upgrade

Presuming that your node is running agoric-upgrade-17, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-18-rc6 has been reached, your node will halt automatically allowing you to upgrade the agoric stack.

Prerequisites

Install supported versions of Go, Node.js, and a compiler such as gcc or clang as documented in the README.

Make sure that the environment running the agd service has the same Node.js version as the environment used for building. In particular, if using nvm to manage Node.js version, the service environment should enable nvm and use the same version.

Building

# (stop the agd service)
cd agoric-sdk
git fetch --all
git checkout agoric-upgrade-18-rc6
git clean -xdf && git submodule foreach --recursive git clean -xdf
./bin/agd build
# (start the agd service)

Do not copy the agd script or Go binary to another location. If you would like to have an executable agd in another location, then create a symlink in that location pointing to agoric-sdk/bin/agd.

Troubleshooting module ... was compiled against a different Node.js version and SyntaxError issues

The agd service is not using the same version of Node.js as the one used when building. The most likely cause is that nvm was used to manage the Node.js version in the shell when building. Either install the required version of Node.js globally using the system's package manager, or enable nvm in the environment of the agd service.

Troubleshooting repoconfig.sh: No such file or directory

Unlike typical cosmos-sdk chains where the daemon is a single executable file, Agoric's use of cosmos-sdk depends on many components of agoric-sdk at runtime. Copying agd to /usr/local/bin or the like is unlikely to produce a working installation. For more detail, see: #7825

Troubleshooting Cannot find dependency ... in systemd

If you have LimitNOFILE=4096 in your systemd unit file, change it to LimitNOFILE=65536. For more detail, see #7817

Specifying --upgrade-info for the software upgrade proposal

The ./scripts/gen-upgrade-proposal.sh is designed to aid in composing a agd tx submit-proposal software-upgrade ... command. In particular, it captures package checksums to verify integrity of downloaded software.

Don't miss a new agoric-sdk release

NewReleases is sending notifications on new releases.