Skip to content

Releases: ava-labs/avalanchego

Banff - Elastic Subnets - Fuji Startup Pre-release

03 Oct 23:28
a1fc209
Compare
Choose a tag to compare

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/ExportTxs to/from the P-chain
  • Activated Banff* blocks on the P-chain
  • Deactivated Apricot* blocks on the P-chain
  • Activated RemoveSubnetValidatorTxs on the P-chain
  • Activated TransformSubnetTxs on the P-chain
  • Activated AddPermissionlessValidatorTxs on the P-chain
  • Activated AddPermissionlessDelegatorTxs on the P-chain
  • Deactivated ANT ImportTx/ExportTxs 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

03 Oct 21:27
43542b0
Compare
Choose a tag to compare

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/ExportTxs to/from the P-chain
  • Activated Banff* blocks on the P-chain
  • Deactivated Apricot* blocks on the P-chain
  • Activated RemoveSubnetValidatorTxs on the P-chain
  • Activated TransformSubnetTxs on the P-chain
  • Activated AddPermissionlessValidatorTxs on the P-chain
  • Activated AddPermissionlessDelegatorTxs on the P-chain
  • Deactivated ANT ImportTx/ExportTxs 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

29 Sep 14:19
6733c25
Compare
Choose a tag to compare

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/ExportTxs to/from the P-chain
  • Activated Banff* blocks on the P-chain
  • Deactivated Apricot* blocks on the P-chain
  • Activated RemoveSubnetValidatorTxs on the P-chain
  • Activated TransformSubnetTxs on the P-chain
  • Activated AddPermissionlessValidatorTxs on the P-chain
  • Activated AddPermissionlessDelegatorTxs on the P-chain
  • Deactivated ANT ImportTx/ExportTxs 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

22 Sep 00:26
fd85f55
Compare
Choose a tag to compare

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 AddPermissionlessValidatorTxs 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 ContainerIDs from Put and PushQuery 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

08 Sep 17:58
9dae07f
Compare
Choose a tag to compare

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

07 Sep 03:54
7c98e2b
Compare
Choose a tag to compare

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 BLOCKs from ERROR to DEBUG
  • Deprecated Native Asset Call

Apricot Phase 6 - Bootstrapping Improvements

06 Sep 03:30
e11d47c
Compare
Choose a tag to compare

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 in GetBlockIDAtHeight rather than a formatted error
  • Increased the log level of BAD BLOCKs from DEBUG to ERROR
  • Fixed typo in Chain Config String function

Apricot Phase 6 - Logging Improvements

05 Sep 10:46
2b97a83
Compare
Choose a tag to compare

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 to WARN

Coreth

  • Reduced the log level of BAD BLOCKs from ERROR to DEBUG
  • Added Apricot Phase6 to Chain Config String function

Apricot Phase 6

05 Sep 04:31
db21c3b
Compare
Choose a tag to compare

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 as json
  • Changed the json key in AddSubnetValidatorTxs from subnet to subnetID
  • Added multiple asset support to getBalance
  • Updated PermissionlessValidators returned from getCurrentValidators and getPendingValidators to include validationRewardOwner and delegationRewardOwner
  • Deprecated rewardOwner in PermissionlessValidators returned from getCurrentValidators and getPendingValidators
  • Added subnetID argument to getCurrentSupply
  • Added multiple asset support to getStake
  • Added subnetID argument to getMinStake

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 unused Txs field before the remaining ApricotProposalBlock fields
    • BlueberryAbortBlock
      • Introduces a Time field before the remaining ApricotAbortBlock fields
    • BlueberryCommitBlock
      • Introduces a Time field before the remaining ApricotCommitBlock fields
    • BlueberryStandardBlock
      • Introduces a Time field before the remaining ApricotStandardBlock fields
  • Added new transaction types to be enabled in a future release
    • RemoveSubnetValidatorTx
      • Can be included into BlueberryStandardBlocks
      • Allows a subnet owner to remove a validator from their subnet
    • TransformSubnetTx
      • Can be included into BlueberryStandardBlocks
      • Allows a subnet owner to convert their subnet into a permissionless subnet
    • AddPermissionlessValidatorTx
      • Can be included into BlueberryStandardBlocks
      • Adds a new validator to the requested permissionless subnet
    • AddPermissionlessDelegatorTx
      • Can be included into BlueberryStandardBlocks
      • Adds a new delegator to the requested permissionless validator on the requested subnet

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 into ApricotBlockBuilder
  • 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, and AddSubnetValidatorTx inside of a BlueberryStandardBlock
  • 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 networking Accept 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 the rpcchainvm
  • 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

19 Aug 08:48
b6d5827
Compare
Choose a tag to compare

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 incorrect lastAcceptedID 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