Releases: Agoric/agoric-sdk
YMax Alpha 1.3
Among the many updates (below) in YMax Alpha 3, the focus is:
- feat(smartWallet): save, invoke offerResult without involving Zoe by @dckc in #11746
- feat: delegate control of invitation-only ymax0 beta to an admin smartWallet by @dckc in #11748
Release Artifacts
g-4-ymax-alpha3.zip, attached, is extracted from a ci artifact as detailed in #11748 (comment)
eval-ymax-control-main-nmcq.js is based on the same process but with a production-use address: agoric run src/portfolio-control.build.js --ymaxControlAddress=agoric1e80twfutmrm3wrk3fysjcnef4j82mq8dn6nmcq.
eval-ymax-control-devnet-hku7.js is the analog for devnet.
What's Changed
- build: update deploy-cli.ts to accept multiple peers by @frazarshad in #11607
- Add YMAX e2e-test(s) to Workflow by @amessbee in #11581
- chore: add factory contract address for AVALANCHE by @rabi-siddique in #11608
- feat: pass abi-encoded gasAmount in axelar gmp payload by @rabi-siddique in #11610
- chore(portfolio-deploy): shrink aux bundle from 2,268K to 708K by @dckc in #11612
- fix(client-utils): Vstorage client utility misreports values in non-chronological order by @usmanmani1122 in #11616
- chore: Sync Endo 2025-07-11 by @kriskowal in #11594
- docs(portfolio-contract): Commit Messages w.r.t. Last Release by @dckc in #11620
- feat(portfolio-contract): resolve USDC issuer/brand by @dckc in #11628
- remove Axios patches by @turadg in #11611
- build(deps): update
package.jsontolerna@8by @michaelfig in #11503 - feat(portfolio-contract): set target allocation by @dckc in #11621
- feat(portfolio-contract): claim rewards on Aave, Compound by @frazarshad in #11603
- refactor: update axelarGmp contract and tests to use nonce by @rabi-siddique in #11660
- chore(deps): use
@lerna-liteinstead by @michaelfig in #11655 - test(a3p-integration): adopt
use-upgrade-21image by @mujahidkay in #11617 - feat: beefy protocol for ymax by @frazarshad in #11657
- feat: prune old ymax0 vstorage nodes (builder, core-eval) by @dckc in #11665
- fix(portfolio-contract): don't make new storage nodes on each update by @dckc in #11667
- test(portfolio-deploy): un-skip contract deployment swingset test by @dckc in #11676
- chore: add reward/aUSDC addresses by @amessbee in #11679
- update axelar config to include missing addresses and add a test for missing factory addresses by @rabi-siddique in #11682
- chore: add aUSDC addresses by @amessbee in #11684
- docs(portfolio-contract): create sequence diagrams for several user stories by @LuqiPan in #11583
- ci(Mergify): configuration update by @mhofman in #11686
- chore(a3p-integration): Fix an exchange-rate typo in the k:param-change README by @gibson042 in #11673
- chore: update core eval to remove old instance of contract by @rabi-siddique in #11680
- feat(inter-protocol): Add core-eval builder for depositing reserve withdrawal invitations by @gibson042 in #11678
- chore: update axelar gas receiver addr by @rabi-siddique in #11691
- docs(portfolio-contract): Improve CONTRIBUTING.md formatting by @gibson042 in #11683
- Close transcript span synchronously by @mhofman in #11658
- test: ymax alpha 2 a3p-integration by @dckc in #11695
- ci: fix notify for integration test-docker-build by @mhofman in #11368
- test(a3p-integration): update deps by @mujahidkay in #11700
- ci(nix-check): reenable magic-nix-cache by @michaelfig in #11697
- bump lint deps by @turadg in #11701
- feat: pass axelar gmp addresses via privateArgs by @rabi-siddique in #11699
- chore(portfolio-contract): ymax0.portfolios updates on creation by @dckc in #11688
- chore: add deposit LCA for each portfolio by @dckc in #11690
- chore: move getTargetAllocation to reader facet by @rabi-siddique in #11712
- chore(portfolio-deploy): step-by-step instructions to get addresses by @LuqiPan in #11705
- eslint perf improvements by @turadg in #11703
- unpatch node-fetch by @turadg in #11734
- chore: remove not supported chains in tests by @rabi-siddique in #11740
- remove patches from a3p proposals by @turadg in #11743
- docs(portfolio-contract): docs to articulate EE's responsibilities by @LuqiPan in #11744
- fix type coverage script by @turadg in #11427
- test: ymax baggage snapshot to track exo state changes by @dckc in #11689
- docs(swingset-liveslots): Document
stateShapeCapDatain dkind/vkind descriptor records by @gibson042 in #11694 - docs: add
corepackinstructions by @mujahidkay in #11750 - feat(smartWallet): save, invoke offerResult without involving Zoe by @dckc in #11746
- test(portfolio-deploy): Restart Contract by @amessbee in #11745
- chore(cosmos): remove
zcfandwalletFactoryupgrade core proposals by @mujahidkay in #11754 - ymax planner by @turadg in #11723
- feat: delegate control of invitation-only ymax0 beta to an admin smartWallet by @dckc in #11748
Full Changelog: ymax-v0.1.1-alpha...ymax-v0.1.3-alpha
YMax Alpha 1.1
What's Changed
- feat(portfolio-contract): resolve USDC issuer/brand by @dckc in #11632
- ymax a3p test with USDC resolved by @amessbee in #11633
Full Changelog: ymax-v0.1-alpha...ymax-v0.1.1-alpha
Release Artifacts
were built in ci; see #11633 (comment)
note: some, but not all, of the bundles / core eval scripts are attached
YMax Alpha 1
A smart contract for managing diversified stablecoin yield portfolios across multiple chains and yield protocols. Also known as YMax, this proof-of-concept enables portfolio rebalancing across different yield protocols.
Build
Using Makefile
make 3-in-1
~/projects/agoric-sdk/multichain-testing$ make 3-in-1
# make ADDR=agoric1yupasge4528pgkszg9v328x4faxtkldsnygwjl fund-wallet
(cd ../packages/portfolio-deploy; yarn build)
dist/portfolio.contract.bundle.js 933.6kb
⚡ Done in 38ms
agoric run ../packages/portfolio-deploy/src/portfolio.build.js
agoric: run: running /home/connolly/projects/agoric-sdk/packages/portfolio-deploy/src/portfolio.build.js
creating eval-ymax0-permit.json
creating eval-ymax0.js
You can now run a governance submission command like:
agd tx gov submit-proposal swingset-core-eval eval-ymax0-permit.json eval-ymax0.js \
--title="Enable <something>" --description="Evaluate eval-ymax0.js" --deposit=1000000ubld \
--gas=auto --gas-adjustment=1.2
Remember to install bundles before submitting the proposal:
agd tx swingset install-bundle @/home/connolly/.agoric/cache/b1-1cfec33f0aea5488aefbbe6b861bf5211081ea139f1bc8bd03540c7b35d6dcb7342b5be675e183cbf2b9d3cd0f9098a2a5e4cf349ce56f11df33835d26d938d7.json
agd tx swingset install-bundle @/home/connolly/.agoric/cache/b1-d217fb17508ebe5c94e9ab432a9d6f5aea5fba810f7e5d7cc1785a6235e378e8eb117199624eb2f0061fc39126150d6f833617d0c2c26a979b36b0bb81d88a61.json
agoric run ../packages/portfolio-deploy/src/chain-info.build.js
agoric: run: running /home/connolly/projects/agoric-sdk/packages/portfolio-deploy/src/chain-info.build.js
using static mainnet config
configured chains: [ 'agoric', 'axelar', 'noble' ]
creating eval-chain-info-permit.json
creating eval-chain-info.js
You can now run a governance submission command like:
agd tx gov submit-proposal swingset-core-eval eval-chain-info-permit.json eval-chain-info.js \
--title="Enable <something>" --description="Evaluate eval-chain-info.js" --deposit=1000000ubld \
--gas=auto --gas-adjustment=1.2
Remember to install bundles before submitting the proposal:
agd tx swingset install-bundle @/home/connolly/.agoric/cache/b1-2127a1e2f296c89c04280272f3e110f4e4b56d98804200d001c9e49d9926e7d3130c81995ab3976a5962cd2199abeb2915a6c458c8700a2116bc6c01639e1f73.json
agoric run ../packages/portfolio-deploy/src/access-token-setup.build.js \
--beneficiary=agoric16nwqe7452za92rwvnldmfdqr34n5rzhphe9sjy
agoric: run: running /home/connolly/projects/agoric-sdk/packages/portfolio-deploy/src/access-token-setup.build.js
CONFIG: {
qty: 50000000,
beneficiary: 'agoric16nwqe7452za92rwvnldmfdqr34n5rzhphe9sjy'
}
creating eval-access-token-setup-permit.json
creating eval-access-token-setup.js
You can now run a governance submission command like:
agd tx gov submit-proposal swingset-core-eval eval-access-token-setup-permit.json eval-access-token-setup.js \
--title="Enable <something>" --description="Evaluate eval-access-token-setup.js" --deposit=1000000ubld \
--gas=auto --gas-adjustment=1.2
Remember to install bundles before submitting the proposal:
agd tx swingset install-bundle @/home/connolly/.agoric/cache/b1-06934dae7861f141432664315f14def6ca9dc2790dba3fab70246ae1d1cf4f9bbe4688406eb9b8e60153da16a89af4d3105f17d6a40873d836f74051c7c9e954.jsonagoric-upgrade-21
The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-21 release. This release is primarily intended for migrating cosmos-sdk to v0.47.17 and enabling IST to BLD transitioning for inter protocol sunset, and some client-utils, orchestration and fast USDC improvements.
The full set of changes in this release can be found at #11511 and reviewed in detail at agoric-upgrade-20...agoric-upgrade-21.
Important
Note that Agoric SDK no longer supports Node 18. Please make sure you're on one of the supported versions as outlined in the README.
The release now also requires the use of corepack (part of Node.js). Please run corepack enable before building.
This release has satisfied all pre-release/testnet validation checks, and is now recommended for chains to upgrade from the previous agoric-upgrade-20 release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-20 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.
Cosmos Upgrade Handler Name: agoric-upgrade-21
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-21
Git Commit: e4dd46857133403d584bcf822a81817b355532f9
@agoric/cosmos package version: v0.35.0-u21.0
Docker: ghcr.io/agoric/agoric-sdk:63
As shown in go.mod this release is based on:
ibc-go v7.10.0
cosmos-sdk v0.47.17
cometbft v0.37.15
How to upgrade
Presuming that your node is running agoric-upgrade-20, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-21 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.
After installing Node.js, run corepack enable.
Important
Agoric SDK no longer supports Node 18, as mentioned in the README above.
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-21
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.
agoric-upgrade-21-rc0
The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-21-rc0 release. This release is primarily intended for migrating cosmos-sdk to v0.47.17 and enabling IST to BLD transitioning for inter protocol sunset, and some client-utils, orchestration and fast USDC improvements.
The full set of changes in this release can be found at #11511 and reviewed in detail at agoric-upgrade-20...agoric-upgrade-21-rc0.
Important
Note that Agoric SDK no longer supports Node 18. Please make sure you're on one of the supported versions as outlined in the README.
Assuming this release satisfies all pre-release/testnet validation checks, it will be promoted to agoric-upgrade-21, and recommended for chains to upgrade from the previous agoric-upgrade-20 release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-20 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.
Cosmos Upgrade Handler Name: agoric-upgrade-21
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-21-rc0
Git Commit: e4dd46857133403d584bcf822a81817b355532f9
@agoric/cosmos package version: v0.35.0-u21.0
Docker: ghcr.io/agoric/agoric-sdk:63
As shown in go.mod this release is based on:
ibc-go v7.10.0
cosmos-sdk v0.47.17
cometbft v0.37.15
How to upgrade
Presuming that your node is running agoric-upgrade-20, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-21-rc0 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.
Important
Agoric SDK no longer supports Node 18, as mentioned in the README above.
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-21-rc0
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.
Fast USDC CCTP Beta
What's Changed
Since fast-usdc-rc2 12 Mar 2025, this release:
-
adds support for EVM destinations (ethereum, Avalanche C-Chain, optimism OP Mainnet, Arbitrum One, base, Polygon PoS) via noble using CCTP
- adds per-destination fee support
- including
relayFeethat is not remitted to liquidity providers
- including
- adds orchestration support for
depositForBurn() - adds some orchestration support for non-cosmos chains
- adds per-destination fee support
-
adds retrying of forwarding for up to an hour to mitigate IBC relayer availability risks
-
remediates existing cases where the liquidity pool wasn't replenished because of transaction batching
-
minimize Fast USDC heap growth (#10955)
Full Changelog: fast-usdc-rc2...fast-usdc-cctp-b1
Bundles, Core Eval Assets
Supplemental assets are taken from the a3p-integration artifact from the a ci job for #11370
sha256:f88d7c482208912b9c9a017c9fa6e187e123644e7fa42b4988ecd056ea601f2e
New Contributors
- @muhammadahmadasifbhatti made their first contribution in #11233
agoric-upgrade-20
The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-20 release. This release is primarily intended to upgrade orchestration vats, fix memory leaks, and some mainnet sustainability and platform enhancements.
The full set of changes in this release can be found at #11280 and reviewed in detail at agoric-upgrade-19...agoric-upgrade-20.
This release has satisfied all pre-release/testnet validation checks, and is now recommended for chains to upgrade from the previous agoric-upgrade-19 release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-19 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.
Cosmos Upgrade Handler Name: agoric-upgrade-20
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-20
Git Commit: 8e4207fa19dabf76c1f91f8779b5b5b93570ecea
@agoric/cosmos package version: 0.35.0-u20.0
Docker: ghcr.io/agoric/agoric-sdk:62
As shown in go.mod this release is based on:
ibc-go v6.3.1
cosmos-sdk v0.46.16
cometbft v0.34.35
How to upgrade
Presuming that your node is running agoric-upgrade-19, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-20 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-20
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.
agoric-upgrade-20-rc0
The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-20-rc0 release. This release is primarily intended to upgrade orchestration vats, fix memory leaks, and some mainnet sustainability and platform enhancements.
The full set of changes in this release can be found at #11280 and reviewed in detail at agoric-upgrade-19...agoric-upgrade-20-rc0.
Assuming this release satisfies all pre-release/testnet validation checks, it will be promoted to agoric-upgrade-20, and recommended for chains to upgrade from the previous agoric-upgrade-19 release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-19 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.
Cosmos Upgrade Handler Name: agoric-upgrade-20
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-20-rc0
Git Commit: 8e4207fa19dabf76c1f91f8779b5b5b93570ecea
@agoric/cosmos package version: 0.35.0-u20.0
Docker: ghcr.io/agoric/agoric-sdk:62
As shown in go.mod this release is based on:
ibc-go v6.3.1
cosmos-sdk v0.46.16
cometbft v0.34.35
How to upgrade
Presuming that your node is running agoric-upgrade-19, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-20-rc0 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-20-rc0
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.
PSM MintLimit maintenance
PSM maintenance; didn't go thru full ci.
To build the bundle, after yarn build as usual:
~/projects/agoric-sdk/packages/inter-protocol$ yarn bundle-source --elide-comments --cache-json ./bundles/ src/psm/psm.js psm
yarn run v1.22.22
$ /home/connolly/projects/agoric-sdk/node_modules/.bin/bundle-source --elide-comments --cache-json ./bundles/ src/psm/psm.js psm
Done in 1.92s.agoric-upgrade-19
The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-19 release. This release is primarily intended for contract upgrades, some kernel improvements and misc fixes.
The full set of changes in this release can be found at #11043, #11072, #11090 and #11115. And reviewed in detail as agoric-upgrade-18a...agoric-upgrade-19.
This release has satisfied all pre-release/testnet validation checks, and is now recommended for chains to upgrade from the previous agoric-upgrade-18a release. As a chain-halting upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-18a 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.
MAINNET
Cosmos Upgrade Handler Name: agoric-upgrade-19-mainnet
EMERYNET
Cosmos Upgrade Handler Name: agoric-upgrade-19-emerynet
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-19
Git Commit: f0ae74b84cb6de3724bfdcd18b4bea7e8199dee1
@agoric/cosmos package version: 0.35.0-u19.2
Docker: ghcr.io/agoric/agoric-sdk:61
As shown in go.mod this release is based on:
ibc-go v6.3.1
cosmos-sdk v0.46.16
cometbft v0.34.35
How to upgrade
Presuming that your node is running agoric-upgrade-18a, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-19 has been reached, your node will halt automatically allowing you to upgrade the agoric stack.
Prerequisites
Important
Agoric SDK now requires Golang version 1.22.12 or greater. To check your Golang version, examine the output produced by running go version in your build environment.
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-19
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.