diff --git a/RELEASES.md b/RELEASES.md index c9e529b6ef8..0f5c4d315f9 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,5 +1,144 @@ # Release Notes +## [v1.9.12](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.12) + +This version is backwards compatible to [v1.9.0](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.0). It is optional, but encouraged. The supported plugin version is `24`. + +### Networking + +- Removed linger setting on P2P connections +- Improved error message when failing to calculate peer uptimes +- Removed `EngineType` from P2P response messages +- Added context cancellation during dynamic IP updates +- Reduced the maximum P2P reconnect delay from 1 hour to 1 minute + +### Consensus + +- Added support to switch from `Avalanche` consensus to `Snowman` consensus +- Added support for routing consensus messages to either `Avalanche` or `Snowman` consensus on the same chain +- Removed usage of deferred evaluation of the `handler.Consensus` in the `Avalanche` `OnFinished` callback +- Dropped inbound `Avalanche` consensus messages after switching to `Snowman` consensus +- Renamed the `Avalanche` VM metrics prefix from `avalanche_{chainID}_vm_` to `avalanche_{chainID}_vm_avalanche` +- Replaced `consensus` and `decision` dispatchers with `block`, `tx`, and `vertex` dispatchers +- Removed `Avalanche` bootstrapping restarts during the switch to `Snowman` consensus + +### AVM + +- Added `avm` block execution manager +- Added `avm` block builder +- Refactored `avm` transaction syntactic verification +- Refactored `avm` transaction semantic verification +- Refactored `avm` transaction execution +- Added `avm` mempool gossip +- Removed block timer interface from `avm` `mempool` +- Moved `toEngine` channel into the `avm` `mempool` +- Added `GetUTXOFromID` to the `avm` `state.Chain` interface +- Added unpopulated `MerkleRoot` to `avm` blocks +- Added `avm` transaction based metrics +- Replaced error strings with error interfaces in the `avm` mempool + +### PlatformVM + +- Added logs when the local nodes stake amount changes +- Moved `platformvm` `message` package into `components` +- Replaced error strings with error interfaces in the `platformvm` mempool + +### Warp + +- Added `ID` method to `warp.UnsignedMessage` +- Improved `warp.Signature` verification error descriptions + +### Miscellaneous + +- Improved `merkledb` locking to allow concurrent read access through `trieView`s +- Fixed `Banff` transaction signing with ledger when using the wallet +- Emitted github artifacts after successful builds +- Added non-blocking bounded queue +- Converted the `x.Parser` helper to be a `block.Parser` interface from a `tx.Parser` interface + +### Cleanup + +- Separated dockerhub image publishing from the kurtosis test workflow +- Exported various errors to use in testing +- Removed the `vms/components/state` package +- Replaced ad-hoc linked hashmaps with the standard data-structure +- Removed `usr/local/lib/avalanche` from deb packages +- Standardized usage of `constants.UnitTestID` + +### Examples + +- Added P-chain `RemoveSubnetValidatorTx` example using the wallet +- Added X-chain `CreateAssetTx` example using the wallet + +### Configs + +- Added support to specify `HTTP` server timeouts + - `--http-read-timeout` + - `--http-read-header-timeout` + - `--http-write-timeout` + - `--http-idle-timeout` + +### APIs + +- Added `avm` block APIs + - `avm.getBlock` + - `avm.getBlockByHeight` + - `avm.getHeight` +- Converted `avm` APIs to only surface accepted state +- Deprecated all `ipcs` APIs + - `ipcs.publishBlockchain` + - `ipcs.unpublishBlockchain` + - `ipcs.getPublishedBlockchains` +- Deprecated all `keystore` APIs + - `keystore.createUser` + - `keystore.deleteUser` + - `keystore.listUsers` + - `keystore.importUser` + - `keystore.exportUser` +- Deprecated the `avm/pubsub` API endpoint +- Deprecated various `avm` APIs + - `avm.getAddressTxs` + - `avm.getBalance` + - `avm.getAllBalances` + - `avm.createAsset` + - `avm.createFixedCapAsset` + - `avm.createVariableCapAsset` + - `avm.createNFTAsset` + - `avm.createAddress` + - `avm.listAddresses` + - `avm.exportKey` + - `avm.importKey` + - `avm.mint` + - `avm.sendNFT` + - `avm.mintNFT` + - `avm.import` + - `avm.export` + - `avm.send` + - `avm.sendMultiple` +- Deprecated the `avm/wallet` API endpoint + - `wallet.issueTx` + - `wallet.send` + - `wallet.sendMultiple` +- Deprecated various `platformvm` APIs + - `platform.exportKey` + - `platform.importKey` + - `platform.getBalance` + - `platform.createAddress` + - `platform.listAddresses` + - `platform.getSubnets` + - `platform.addValidator` + - `platform.addDelegator` + - `platform.addSubnetValidator` + - `platform.createSubnet` + - `platform.exportAVAX` + - `platform.importAVAX` + - `platform.createBlockchain` + - `platform.getBlockchains` + - `platform.getStake` + - `platform.getMaxStakeAmount` + - `platform.getRewardUTXOs` +- Deprecated the `stake` field in the `platform.getTotalStake` response in favor of `weight` + ## [v1.9.11](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.11) This version is backwards compatible to [v1.9.0](https://github.com/ava-labs/avalanchego/releases/tag/v1.9.0). It is optional, but encouraged. The supported plugin version is `24`. diff --git a/go.mod b/go.mod index b78e75ba02a..e1e5a438fbf 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/Microsoft/go-winio v0.5.2 github.com/NYTimes/gziphandler v1.1.1 github.com/ava-labs/avalanche-network-runner-sdk v0.3.0 - github.com/ava-labs/coreth v0.11.8-rc.3 + github.com/ava-labs/coreth v0.11.9-rc.0 github.com/ava-labs/ledger-avalanche/go v0.0.0-20230105152938-00a24d05a8c7 github.com/btcsuite/btcd/btcutil v1.1.3 github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 diff --git a/go.sum b/go.sum index 6496d0a1192..99766a6af14 100644 --- a/go.sum +++ b/go.sum @@ -57,8 +57,8 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/ava-labs/avalanche-network-runner-sdk v0.3.0 h1:TVi9JEdKNU/RevYZ9PyW4pULbEdS+KQDA9Ki2DUvuAs= github.com/ava-labs/avalanche-network-runner-sdk v0.3.0/go.mod h1:SgKJvtqvgo/Bl/c8fxEHCLaSxEbzimYfBopcfrajxQk= -github.com/ava-labs/coreth v0.11.8-rc.3 h1:pS+OTFPc9edcFuCJIQGn5TdyAZncT9Hhs9jCcmm7+PM= -github.com/ava-labs/coreth v0.11.8-rc.3/go.mod h1:pc44yvJD4jTPIwkPI64pUXyJDvQ/UAqkbmhXOx78PXA= +github.com/ava-labs/coreth v0.11.9-rc.0 h1:7oK5DWtvDEMKEaduw/34r5kdwUssRsFszCl1FFUvvPc= +github.com/ava-labs/coreth v0.11.9-rc.0/go.mod h1:y41I9mWK04s8oObvQeYjkdoidtPhkPqV8prRPN6zrd4= github.com/ava-labs/ledger-avalanche/go v0.0.0-20230105152938-00a24d05a8c7 h1:EdxD90j5sClfL5Ngpz2TlnbnkNYdFPDXa0jDOjam65c= github.com/ava-labs/ledger-avalanche/go v0.0.0-20230105152938-00a24d05a8c7/go.mod h1:XhiXSrh90sHUbkERzaxEftCmUz53eCijshDLZ4fByVM= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= diff --git a/scripts/constants.sh b/scripts/constants.sh index 51d318dd2b9..6cd4df8d428 100755 --- a/scripts/constants.sh +++ b/scripts/constants.sh @@ -9,7 +9,7 @@ AVALANCHE_PATH=$( cd "$( dirname "${BASH_SOURCE[0]}" )"; cd .. && pwd ) # Direct avalanchego_path="$AVALANCHE_PATH/build/avalanchego" plugin_dir=${PLUGIN_DIR:-$HOME/.avalanchego/plugins} evm_path=${EVM_PATH:-$plugin_dir/evm} -coreth_version=${CORETH_VERSION:-'v0.11.8-rc.3'} +coreth_version=${CORETH_VERSION:-'v0.11.9-rc.0'} # Set the PATHS GOPATH="$(go env GOPATH)" diff --git a/version/compatibility.json b/version/compatibility.json index 6509b43ce4b..03581876090 100644 --- a/version/compatibility.json +++ b/version/compatibility.json @@ -1,7 +1,8 @@ { "24": [ "v1.9.10", - "v1.9.11" + "v1.9.11", + "v1.9.12" ], "23": [ "v1.9.9" diff --git a/version/constants.go b/version/constants.go index 324f7825b5b..9b48da42007 100644 --- a/version/constants.go +++ b/version/constants.go @@ -21,7 +21,7 @@ var ( Current = &Semantic{ Major: 1, Minor: 9, - Patch: 11, + Patch: 12, } CurrentApp = &Application{ Major: Current.Major,