Releases: ava-labs/avalanchego
Banff - Elastic Subnets - Fuji Startup Pre-release
Please note that this release is unable to run mainnet - and will display "mainnet is not supported" if attempted to run with a mainnet configuration.
This upgrade performs post-upgrade cleanup to the C-chain. Additionally, this release fixes the startup for nodes that didn't update in time for the prior Fuji upgrade.
The changes in the upgrade go into effect at 3 PM EDT, October 4th 2022 on the Fuji testnet.
All Fuji nodes should upgrade before 3 PM EDT, October 4th 2022.
The supported plugin version is 16
.
Upgrades
- Activated P2P serialization format change to Protobuf
- Activated non-AVAX
ImportTx
/ExportTx
s to/from the P-chain - Activated
Banff*
blocks on the P-chain - Deactivated
Apricot*
blocks on the P-chain - Activated
RemoveSubnetValidatorTx
s on the P-chain - Activated
TransformSubnetTx
s on the P-chain - Activated
AddPermissionlessValidatorTx
s on the P-chain - Activated
AddPermissionlessDelegatorTx
s on the P-chain - Deactivated ANT
ImportTx
/ExportTx
s on the C-chain - Deactivated ANT precompiles on the C-chain
Deprecations
- Ubuntu 18.04 releases are deprecated and will not be provided for
>=v1.9.1
Miscellaneous
- Fixed locked input signing in the P-chain wallet
- Removed assertions from the logger interface
- Removed
--assertions-enabled
flag - Fixed typo in
--bootstrap-max-time-get-ancestors
flag - Standardized exported P-Chain codec usage
- Improved isolation and execution of the E2E tests
- Updated the linked hashmap implementation to use generics
Banff - Elastic Subnets - Fuji Post Upgrade Pre-release
Please note that this release is unable to run mainnet - and will display "mainnet is not supported" if attempted to run with a mainnet configuration.
This upgrade performs post-upgrade cleanup to the C-chain.
The changes in the upgrade go into effect at 3 PM EDT, October 4th 2022 on the Fuji testnet.
All Fuji nodes should upgrade before 3 PM EDT, October 4th 2022.
The supported plugin version is 16
.
Upgrades
- Activated P2P serialization format change to Protobuf
- Activated non-AVAX
ImportTx
/ExportTx
s to/from the P-chain - Activated
Banff*
blocks on the P-chain - Deactivated
Apricot*
blocks on the P-chain - Activated
RemoveSubnetValidatorTx
s on the P-chain - Activated
TransformSubnetTx
s on the P-chain - Activated
AddPermissionlessValidatorTx
s on the P-chain - Activated
AddPermissionlessDelegatorTx
s on the P-chain - Deactivated ANT
ImportTx
/ExportTx
s on the C-chain - Deactivated ANT precompiles on the C-chain
Deprecations
- Ubuntu 18.04 releases are deprecated and will not be provided for
>=v1.9.1
Miscellaneous
- Fixed locked input signing in the P-chain wallet
- Removed assertions from the logger interface
- Removed
--assertions-enabled
flag - Fixed typo in
--bootstrap-max-time-get-ancestors
flag - Standardized exported P-Chain codec usage
- Improved isolation and execution of the E2E tests
- Updated the linked hashmap implementation to use generics
Banff - Elastic Subnets - Fuji Pre-release
Please note that this release is unable to run mainnet - and will display "mainnet is not supported" if attempted to run with a mainnet configuration.
This upgrade adds support for creating Proof-of-Stake Subnets.
The changes in the upgrade go into effect at 10 AM EDT, October 3rd 2022 on the Fuji testnet. After Fuji is updated and verified, a mainnet compatible release will be published.
All Fuji nodes should upgrade before 10 AM EDT, October 3rd 2022.
The supported plugin version is 16
.
Upgrades
- Activated P2P serialization format change to Protobuf
- Activated non-AVAX
ImportTx
/ExportTx
s to/from the P-chain - Activated
Banff*
blocks on the P-chain - Deactivated
Apricot*
blocks on the P-chain - Activated
RemoveSubnetValidatorTx
s on the P-chain - Activated
TransformSubnetTx
s on the P-chain - Activated
AddPermissionlessValidatorTx
s on the P-chain - Activated
AddPermissionlessDelegatorTx
s on the P-chain - Deactivated ANT
ImportTx
/ExportTx
s on the C-chain - Deactivated ANT precompiles on the C-chain
Deprecations
- Ubuntu 18.04 releases are deprecated and will not be provided for
>=v1.9.1
Miscellaneous
- Fixed locked input signing in the P-chain wallet
- Removed assertions from the logger interface
- Removed
--assertions-enabled
flag - Fixed typo in
--bootstrap-max-time-get-ancestors
flag - Standardized exported P-Chain codec usage
- Improved isolation and execution of the E2E tests
- Updated the linked hashmap implementation to use generics
Apricot Phase 6 - P2P Protobuf
This version is backwards compatible to v1.8.0. It is optional, but encouraged. The supported plugin version is 16
.
BLS
- Added BLS key file at
--staking-signer-key-file
- Exposed BLS proof of possession in the
info.getNodeID
API - Added BLS proof of possession to
AddPermissionlessValidatorTx
s for the Primary Network
The default value of --staking-signer-key-file
is ~/.avalanchego/staking/signer.key
. If the key file doesn't exist, it will be populated with a new key.
Networking
- Added P2P proto support to be activated in a future release
- Fixed inbound bandwidth spike after leaving the validation set
- Removed support for
ChitsV2
messages - Removed
ContainerID
s fromPut
andPushQuery
messages - Added
pending_timeouts
metric to track the number of active timeouts a node is tracking - Fixed overflow in gzip decompression
- Optimized memory usage in
peer.MessageQueue
Miscellaneous
- Fixed bootstrapping ETA metric
- Removed unused
unknown_txs_count
metric - Replaced duplicated code with generic implementations
Coreth
- Added failure reason to bad block API
Apricot Phase 6 - Fix Cache Regression
Please upgrade your node as soon as possible.
The supported plugin version is 16
.
Fixes
- Fixed stale block reference by evicting blocks upon successful verification
Coreth
- Removed check for Apricot Phase6 incompatible fork to unblock nodes that did not upgrade ahead of the activation time
Apricot Phase 6 - Caching Improvements
Please upgrade your node as soon as possible.
The supported plugin version is 16
.
Caching
- Added temporarily invalid block caching to reduce repeated network requests
- Added caching to the proposervm's inner block parsing
Coreth
- Reduced the log level of
BAD BLOCK
s fromERROR
toDEBUG
- Deprecated Native Asset Call
Apricot Phase 6 - Bootstrapping Improvements
Please upgrade your node as soon as possible.
The changes in v1.8.x
go into effect at 4 PM EDT on September 6th, 2022 on both Fuji and Mainnet. You should upgrade your node before the changes go into effect, otherwise they may experience loss of uptime.
The supported plugin version is 16
.
Coreth
- Fixed live-lock in bootstrapping, after performing state-sync, by properly reporting
database.ErrNotFound
inGetBlockIDAtHeight
rather than a formatted error - Increased the log level of
BAD BLOCK
s fromDEBUG
toERROR
- Fixed typo in Chain Config
String
function
Apricot Phase 6 - Logging Improvements
Please upgrade your node as soon as possible.
The changes in v1.8.x
go into effect at 4 PM EDT on September 6th, 2022 on both Fuji and Mainnet. You should upgrade your node before the changes go into effect, otherwise they may experience loss of uptime.
The supported plugin version is 16
.
Miscellaneous
- Reduced the severity of not quickly connecting to bootstrap nodes from
FATAL
toWARN
Coreth
- Reduced the log level of
BAD BLOCK
s fromERROR
toDEBUG
- Added Apricot Phase6 to Chain Config
String
function
Apricot Phase 6
This is a mandatory security upgrade. Please upgrade your node as soon as possible.
The changes in the upgrade go into effect at 4 PM EDT on September 6th, 2022 on both Fuji and Mainnet. You should upgrade your node before the changes go into effect, otherwise they may experience loss of uptime.
You may see some extraneous ERROR logs ("BAD BLOCK") on your node after upgrading. These may continue until the Apricot Phase 6 activation (at 4 PM EDT on September 6th).
The supported plugin version is 16
.
PlatformVM APIs
- Fixed
GetBlock
API when requesting the encoding asjson
- Changed the json key in
AddSubnetValidatorTx
s fromsubnet
tosubnetID
- Added multiple asset support to
getBalance
- Updated
PermissionlessValidator
s returned fromgetCurrentValidators
andgetPendingValidators
to includevalidationRewardOwner
anddelegationRewardOwner
- Deprecated
rewardOwner
inPermissionlessValidator
s returned fromgetCurrentValidators
andgetPendingValidators
- Added
subnetID
argument togetCurrentSupply
- Added multiple asset support to
getStake
- Added
subnetID
argument togetMinStake
PlatformVM Structures
- Renamed existing blocks
ProposalBlock
->ApricotProposalBlock
AbortBlock
->ApricotAbortBlock
CommitBlock
->ApricotCommitBlock
StandardBlock
->ApricotStandardBlock
AtomicBlock
->ApricotAtomicBlock
- Added new block types to be enabled in a future release
BlueberryProposalBlock
- Introduces a
Time
field and an unusedTxs
field before the remainingApricotProposalBlock
fields
- Introduces a
BlueberryAbortBlock
- Introduces a
Time
field before the remainingApricotAbortBlock
fields
- Introduces a
BlueberryCommitBlock
- Introduces a
Time
field before the remainingApricotCommitBlock
fields
- Introduces a
BlueberryStandardBlock
- Introduces a
Time
field before the remainingApricotStandardBlock
fields
- Introduces a
- Added new transaction types to be enabled in a future release
RemoveSubnetValidatorTx
- Can be included into
BlueberryStandardBlock
s - Allows a subnet owner to remove a validator from their subnet
- Can be included into
TransformSubnetTx
- Can be included into
BlueberryStandardBlock
s - Allows a subnet owner to convert their subnet into a permissionless subnet
- Can be included into
AddPermissionlessValidatorTx
- Can be included into
BlueberryStandardBlock
s - Adds a new validator to the requested permissionless subnet
- Can be included into
AddPermissionlessDelegatorTx
- Can be included into
BlueberryStandardBlock
s - Adds a new delegator to the requested permissionless validator on the requested subnet
- Can be included into
PlatformVM Block Building
- Fixed race in
AdvanceTimeTx
creation to avoid unnecessary block construction - Added
block_formation_logic.md
to describe how blocks are created - Refactored
BlockBuilder
intoApricotBlockBuilder
- Added
BlueberryBlockBuilder
- Added
OptionBlock
builder visitor - Refactored
Mempool
issuance and removal logic to use transaction visitors
PlatformVM Block Execution
- Added support for executing
AddValidatorTx
,AddDelegatorTx
, andAddSubnetValidatorTx
inside of aBlueberryStandardBlock
- Refactored time advancement into a standard state modification structure
- Refactored
ProposalTxExecutor
to abstract state diff creation - Standardized upgrade checking rules
- Refactored subnet authorization checking
Wallet
- Added support for new transaction types in the P-chain wallet
- Fixed fee amounts used in the Primary Network wallet to reduce unnecessary fee burning
Networking
- Defined
p2p.proto
to be used for future network messages - Added
--network-tls-key-log-file-unsafe
to support inspecting p2p messages - Added
avalanche_network_accept_failed
metrics to track networkingAccept
errors
Miscellaneous
- Removed reserved fields from proto files and renumbered the existing fields
- Added generic dynamically resized ring buffer
- Updated gRPC version to
v1.49.0
to fix non-deterministic errors reported in therpcchainvm
- Removed
--signature-verification-enabled
flag - Removed dead code
ids.QueueSet
timer.Repeater
timer.NewStagedTimer
timer.TimedMeter
Coreth
- Incorrectly deprecated Native Asset Call
- Migrated to go-ethereum v1.10.23
- Added API to fetch Chain Config
v1.7.18 - Chapelco
This version is backwards compatible to v1.7.0. It is optional, but encouraged. The supported plugin version is 15
.
Fixes
- Fixed bug in
codeToFetch
database accessors that caused an error when starting/stopping state sync - Fixed rare BAD BLOCK errors during C-chain bootstrapping
- Fixed platformvm
couldn't get preferred block state
log due to attempted block building during bootstrapping - Fixed platformvm
failed to fetch next staker to reward
error log due to an incorrectlastAcceptedID
reference - Fixed AWS AMI creation
PlatformVM
- Refactored platformvm metrics handling
- Refactored platformvm block creation
- Introduced support to prevent empty nodeID use on the P-chain to be activated in a future upgrade
Coreth
- Updated gas price estimation to limit lookback window based on block timestamps
- Added metrics for processed/accepted gas
- Simplified syntactic block verification
- Ensured statedb errors during block processing are logged
- Removed deprecated gossiper/block building logic from pre-Apricot Phase 4
- Added marshal function for duration to improve config output
Miscellaneous
- Updated local network genesis to use a newer start time
- Updated minimum golang version to go1.18.1
- Removed support for RocksDB
- Bumped go-ethereum version to v1.10.21
- Added various additional tests
- Introduced additional database invariants for all database implementations
- Added retries to windows CI installations
- Removed useless ID aliasing during chain creation