Skip to content

Releases: ava-labs/avalanchego

Apricot Phase 0 - Upgrade 1 - Patch 3

08 Mar 23:14
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged. The patch includes stability and monitoring improvements.

  • Adjusted [network, router, consensus] health check parameters to remove flaky health checks.
  • Simplified C-chain block handling.

Apricot Phase 0 - Upgrade 1 - Patch 2

06 Mar 18:58
93d00d3
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged. The patch includes stability, performance, and monitoring improvements.

  • Added IP aliases in the network library to avoid repeated SYN calls.
  • Fixed bootstrap message handling when bootstrapping from yourself.
  • Simplified AdvanceTimeTx issuance.
  • Added new consensus health checks.
  • Adding node health logging.
  • Added health responses to health GET requests.
  • Consolidated incoming message logs.
  • Added error logging to the LevelDB wrapper.
  • Added error codes to the rpcdb to avoid string parsing.
  • Improved C-chain handling of canonical chain to reduce the number of reorgs.
  • Improved C-chain handling of mock calls performed on the pending block.

Apricot Phase 0 - Upgrade 1 - Patch 1

26 Feb 23:30
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged. The patch includes stability, performance, and monitoring improvements. Note that this update removes network-timeout-increase and network-timeout-reduction as command line arguments.

Change summary:

  • Added UTXOs to the platformvm.getStake response.
  • Added benchlist reporting to the info.peers response.
  • Added additional health checks into the networking layer.
  • Added percent of stake connected as a reported metric.
  • Added bootstrapping restart logic to ensure the node has caught up to the current tip, even during times of high throughput.
  • Added subnet-wide bootstrapping to ensure that a chain won't fall behind due to another chain bootstrapping.
  • Prevented verification of rejected blocks to avoid unnecessary computation.
  • Removed gossiping of non-preferred blocks to the network.
  • Switched the network timeout calculator to use an EWMA of the observed network latency.
  • Removed Get requests from the network latency calculations.
  • Cleaned up the benchlisting algorithm.
  • Cleaned up handling of dropped messages on send.
  • Cleaned up outstanding request and timeout logic.
  • Generalized performance tracking to allow for prefixing of profile names.
  • Added additional caching to the Avalanche bootstrapping traversal.
  • Fixed ansible linting.

The added command line arguments mainly consist of configurations of health checks. Additionally, the modified network latency calculations changed the name of some command line args.

Added command line arguments:

  • network-timeout-halflife
  • network-timeout-coefficient
  • network-health-min-conn-peers
  • network-health-max-time-since-msg-received
  • network-health-max-time-since-msg-sent
  • network-health-max-portion-send-queue-full
  • network-health-max-send-fail-rate
  • network-health-max-time-since-no-requests
  • router-health-max-drop-rate
  • router-health-max-outstanding-requests
  • health-check-frequency
  • health-check-averager-halflife
  • bootstrap-retry-enabled
  • bootstrap-retry-max-attempts

Removed command line arguments:

  • network-timeout-increase
  • network-timeout-reduction

Apricot Phase 0 - Upgrade 1

12 Feb 06:20
5214e00
Compare
Choose a tag to compare

Please note that this patch is not backwards compatible with previous releases. This upgrade fixes performance issues related to interchange transfers between X, C, and P chains. We urge everyone in the community to upgrade as soon as possible in order to ensure that their nodes are not affected. Also note that nodes may take several extra minutes to connect after the upgrade and the process should be allowed to complete uninterrupted.

The primary components to this upgrade include:

  • Fixed atomic import validation on C-Chain
  • Added rule exception logic to allow atomic bonus blocks
  • Added fail-fast logic into Shared Memory if duplicated deletes are issued
  • Fixed issue where polls could stall in snowman because of a failure to clear requests
  • Fixed BAD BLOCK issue in coreth due to unknown ancestors
  • Fixed a race condition in the repair canonical chain script in coreth
  • Limited number of processing blocks in Snowman and processing txs in Avalanche
  • Updated networking timeout default values and benchlist settings
  • Verified there was no safety violation after the initial network instability

Apricot Phase 0 - Patch 5

08 Feb 20:30
3c9f1cb
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged. The patch includes stability improvements.

  • Fixed a potential deadlock when registering new chains that could cause the P-chain and http(s) endpoint to block.
  • Repairs TxID -> Block Height indexing in the C-chain.
  • Added graceful handling of empty contract deployments in the debug_traceTransaction API in the C-chain.
  • Improved error handling in the C-chain.

Apricot Phase 0 - Patch 4

05 Feb 02:39
31f0780
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged. The patch includes CLI upgrades, API bug fixes, stability improvements, and performance improvements.

  • Fixed an issue where C-chain block indexes could map to unaccepted blocks at a given height.
  • Fixed VM crash when the RPCChainVM experienced high API loads.
  • Fixed optimistic vote bubbling in the Avalanche Engine to correctly pass votes through processing vertices.
  • Added field IncludePartial to the AVM's GetBalance and GetAllBalances API methods. This changes the default behavior to only return the balances of spendable and uniquely owned assets.
  • Added the ability to specify custom genesis configs for custom network IDs.
  • Added additional IPC API functionality.
  • Added additional caching to the RPCChainVM.
  • Improved plugin directory lookup to always work with the binary releases.

Apricot Phase 0 - Patch 3

15 Jan 20:14
aab344f
Compare
Choose a tag to compare

This update is optional but encouraged. The patch includes minor bug fixes relating to APIs.

  • Fixed hanging call when attempting to filter C-chain logs.
  • Fixed C-chain client to call the proper multi-coin API.
  • Added getAtomicUTXOs to avm and platformvm API clients.

Apricot Phase 0 - Patch 2

09 Jan 20:03
1e7b7ae
Compare
Choose a tag to compare

This update is optional but encouraged. The patch includes bug fixes and performance improvements.

  • Fixed bootstrapping processing cache to reduce duplicated traversals when bootstrapping Avalanche.
  • Optimized P-chain verification during bootstrapping.
  • Fixed maximum benchlist calculation to use the proper input values.
  • Removed extra linter runs from CI.
  • Added Height to the snowman.Block interface.

Apricot Phase 0 - Patch 1

18 Dec 23:24
f76f1fd
Compare
Choose a tag to compare

This update is optional but encouraged. The patch includes minor bug fixes, performance improvements, and preparations for the remaining Apricot upgrades.

  • Fixed a node crash bug when users disabled the Health API.
  • Fixed a bug in uptime tracking that could over report a node's uptime.
  • Refactored vertex parsing to use a Codec.
  • Separated stateful and stateless vertex management.
  • Added per-field slice length checking to the Codec.
  • Introduced a new codec type that groups TypeIDs together.
  • Introduced message limit flags to the CLI.
  • Introduced a semanticdb package to be used during a future database migration.
  • Added Epoch tracking to the chain context.
  • Improved some of the error messages returned during transaction validation.
  • Reduced GC pressure in the version DB.

Apricot Phase 0

05 Dec 19:21
34c7ebd
Compare
Choose a tag to compare

Please note that this upgrade is not backwards compatible with previous releases. Upgrades must be performed no later than Monday, December 7th at 11 p.m. UTC (6 p.m. EST). The upgrade, which was originally scheduled around mid December, is now being expedited to fix an important token unlocking bug. We urge everyone in the community to upgrade as soon as possible in order to ensure that their nodes are not affected.

There are two primary components to this upgrade:

  • General preparations for our upcoming Apricot network upgrade, called the Apricot Phase Zero Upgrade
  • Fixing an issue that prevented stake-able locked outputs from being unlocked after their locktime had passed