Skip to content

Releases: ava-labs/avalanchego

Apricot Phase 4 - Fuji Pre-release - eth_gasPrice Hotfix

16 Sep 23:08
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 patches the eth_gasPrice call on the C-chain API to prevent a performance bug.

Apricot Phase 4 - Fuji Pre-release

16 Sep 15:10
Compare
Choose a tag to compare
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 a contention limiter to the C-chain and P-chain, introduces a block based fee on the C-chain, and tunes some dynamic fee parameters on the C-chain.

The changes in the upgrade go into effect at 5 PM EDT, September 16th 2021 on the Fuji testnet. After Fuji is updated and verified, a mainnet compatible release will be published.

All Fuji nodes should upgrade before 5 PM EDT, September 16th 2021.

Upgrades

  • Introduced Snowman++ on the P-chain and C-chain.
  • Introduced mempool gossiping to the P-chain and C-chain using the VM<->VM communication layer.
  • Added a block based fee to C-chain blocks.
  • Set the minimum gas price to 25 nAVAX and the maximum gas price to 1000 nAVAX in the C-chain dynamic fee mechanism.
  • Added metrics for the number of blocks built and the number of failed build block attempts.

Apricot Phase 3 - Patch 3

09 Sep 21:25
Compare
Choose a tag to compare

v1.5.3

This version is backwards compatible with prior v1.5.x versions.

Uptime

  • Changed minimum uptime requirement to receive a staking reward from 60% to 80%.

Networking

  • Added 3 new network messages: AppRequest, AppResponse and AppGossip. These messages allow instances of a blockchain to send arbitrary data to each other as defined by their VM. Previously, instances of a blockchain could only communicate with one another by issuing blocks.
  • Upon receipt of a Pong message, disconnect from the sender if their version is incompatible.
  • Prepended method named in common.Sender with Send for clarity (e.g. Put --> SendPut).

P-Chain

  • Added functionality to track changes in validator weight by block.
  • Added API method GetValidatorsAt which allows for retrieval of a subnet's (or the Primary Network's) validator set at a given P-Chain height.

C-Chain

  • Incorporate changes from Geth v1.10.8
  • Remove references to Ancients

Consensus

  • Added method Timestamp() to the snowman.Block interface.

Local Networks

  • Updated the start time of the validators in the local genesis. The end time for validators specified in the local config in versions before v1.5.3 is Sep. 10, 2021 00:00:00 UTC. Because of this, you must upgrade to AvalancheGo v1.5.3 in order to run a local network after this time.

Config Options

  • Added AvalancheGo config option consensus-app-gossip-size, which defines the number of peers an AppGossip message is gossiped to.
  • Added C-Chain config option log-level. Options are: "trace", "debug", "info", "warn", "error", "crit". Defaults to "debug" (as before.)

Apricot Phase 3 - Patch 2

24 Aug 08:42
f2e51d7
Compare
Choose a tag to compare

This update is backwards compatible with v1.5.0. Please see the expected update times in the v1.5.0 release.

Coreth

AVM

  • Introduced stateless codec generation for improved tooling.

Consensus

  • Added additional logging around bubbling votes.

Apricot Phase 3 - Patch 1 - Hotfix eth_call API

20 Aug 23:25
da46723
Compare
Choose a tag to compare

This update is a hotfix for v1.5.1 that allows using the eth_call API request without enforcing the externally owned account check.

Apricot Phase 3 - Patch 1

20 Aug 20:59
dc6c8c7
Compare
Choose a tag to compare

This update is backwards compatible with v1.5.0. Please see the expected update times in the v1.5.0 release.

Subnets

  • Added subnetIDs to the handshake message. This notifies peers about which subnet's a node is interesting in syncing.
  • Optimized subnet container gossiping.

AVM

  • Fixed avm.GetTx's JSON endpoint to properly report amounts on UTXOs.

Bootstrapping

  • Fixed busy loop that could occur if a node's internet dropped during bootstrapping, causing the node to report a fatal error.

RPCChainVM

  • Improved caching of unverified blocks.

Coreth

  • Updated to Geth v1.10.7.

Apricot Phase 3 - Dynamic Fees

17 Aug 23:36
e496883
Compare
Choose a tag to compare

This change is not backwards compatible with previous releases.

This upgrade adds dynamic fees to the C-chain, along with various other improvements.

The v1.5.x changes go into effect at 10 AM EDT, August 24th 2021 on Mainnet.

Network Upgrades

  • Added dynamic fee calculations to the C-chain.
  • Increased CreateSubnetTx and CreateChainTx fees.
  • Fixed heap corruption bug in delegator validation.
  • Enforced MaxStakeWeight for delegation transactions.

Client Upgrades

  • Added transaction indexing capabilities to the X-chain to enable historical lookups of transactions by address and asset.
  • Added ./avalanchego as the default command in the docker image.
  • Used static dependency versions in the docker image.
  • Removed database migration support and deamon runner.
  • Refactored node config parsing.
  • Optimized container gossiping sampling.
  • Added the ability to statically build the AvalancheGo and EVM binaries.
  • Simplified the Block interface to only expose the parent block's ID rather than fetching the full parent block.
  • Added additional metrics for pending jobs in the consensus engines.
  • Refactored P-chain statuses to handle blockchain validation statuses separately from transaction confirmation statuses.

Updated APIs

  • Added GetAddressTxs to the avm API.
  • Added SetLoggerLevel and GetLoggerLevel to the Admin API to allow fine grained tuning of log levels while the node is still running.
  • Added GetConfig to the Admin API to allow fetching the node config that the node is currently using.
  • Updated platformvm.Client to allow specifying nodeIDs in GetCurrentValidators and GetPendingValidators and generalized the response to GetStake.

Updated CLI Arguments

  • Removed fetch-only.
  • Added JSON config parsing to avm VM.
    • Added indexTransactions
    • Added indexAllowIncomplete

Apricot Phase 3 - Fuji Pre-release

13 Aug 23:59
Compare
Choose a tag to compare
Pre-release

Please note that this release is unable to run mainnet - and will display "this node version doesn't support mainnet" if attempted to run with a mainnet configuration.

This change is not backwards compatible with previous releases.

This upgrade adds dynamic fees to the C-chain, along with various other improvements.

The changes in the upgrade go into effect at 3 PM EDT, August 16th 2021 on the Fuji testnet. After Fuji is updated and verified, a mainnet compatible release will be published.

Network Upgrades

  • Added dynamic fee calculations to the C-chain.
  • Increased CreateSubnetTx and CreateChainTx fees.
  • Fixed heap corruption bug in delegator validation.
  • Enforced MaxStakeWeight for delegation transactions.

Client Upgrades

  • Added transaction indexing capabilities to the X-chain to enable historical lookups of transactions by address and asset.
  • Added ./avalanchego as the default command in the docker image.
  • Used static dependency versions in the docker image.
  • Removed database migration support and deamon runner.
  • Refactored node config parsing.
  • Optimized container gossiping sampling.
  • Added the ability to statically build the AvalancheGo and EVM binaries.
  • Simplified the Block interface to only expose the parent block's ID rather than fetching the full parent block.
  • Added additional metrics for pending jobs in the consensus engines.
  • Refactored P-chain statuses to handle blockchain validation statuses separately from transaction confirmation statuses.

Updated APIs

  • Added GetAddressTxs to the avm API.
  • Added SetLoggerLevel and GetLoggerLevel to the Admin API to allow fine grained tuning of log levels while the node is still running.
  • Added GetConfig to the Admin API to allow fetching the node config that the node is currently using.
  • Updated platformvm.Client to allow specifying nodeIDs in GetCurrentValidators and GetPendingValidators and generalized the response to GetStake.

Updated CLI Arguments

  • Removed fetch-only.
  • Added JSON config parsing to avm VM.
    • Added indexTransactions
    • Added indexAllowIncomplete

Apricot Phase 2 - Patch 12

30 Jul 01:03
cae93d9
Compare
Choose a tag to compare

This update is backwards compatible. It is optional, but encouraged.

X-Chain

  • Added formatting argument "json" to API method GetTx, which returns the JSON representation of the queried transaction
  • Added interface type assertions

API

  • Added method GetNodeVersion to Info API client

Prometheus Metrics

  • Fixed and renamed metrics for bytes not sent due to compression
  • Added metrics for bytes not received due to compression
  • Added helper struct noAverager to metrics package

Database

  • Updated/added benchmarks

Shared Memory

  • Replaced Put and Remove with Apply to allow for future atomic transaction optimization

Apricot Phase 2 - Patch 11

29 Jul 01:28
07676d9
Compare
Choose a tag to compare

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

C-Chain

  • This release enables snapshots by default. You should expect high CPU/disk usage for about an hour when you run v1.4.11 for the first time due to snapshot generation. (The actual amount of time depends on your computer.)
  • This release fixes edge cases around reprocessing blocks after restarts.

Config Flags

Removed

  • conn-meter-reset-duration
  • conn-meter-max-conns

Added

  • inbound-connection-throtting-cooldown
  • inbound-connection-throttling-max-recent
  • network-compression-enabled

Prometheus Metrics

Many Prometheus metrics were renamed, and many histograms were replaced with a count and a gauge.
See here for updated Grafana Dashboards.

This release also adds helper methods to the utils/metric package.

RocksDB

RocksDB is no longer built by default when running the build script, and it is not included in publicly released binaries. To build AvalancheGo with RocksDB, run export ROCKSDBALLOWED=1 in your terminal and then scripts/build.sh. You must do this before you can use --db-type=rocksdb.

The RocksDB database now places/looks for its files in a subdirectory rocksdb.
Note that if you previously ran with RocksDB, you'll need to move the existing files.

Message Compression

Nodes now compress some P2P messages.

If a peer is version >= v1.4.11, Put, Push Query, Peer List and Multiput messages sent to the peer are compressed using gzip before being sent over the network.

This reduces AvalancheGo's bandwidth usage.

Inbound Connection Throttling

Refactored inbound connection rate-limiting and enable it by default.

General Improvements

  • Refactor and improve performance of iteration over a database served by gRPC to a plugin.
  • On Linux, clean up subprocesses if AvalancheGo dies ungracefully
  • Refactor P2P message definitions and move them from the network package.
  • Add VM aliases to the HTTP API server
  • Replace 1024 with units.KiB, etc.
  • Update protogen scripts to support running in docker.
  • Improve partition tolerance by processing chits in order of the creation of the corresponding queries.

Fuji IPs

Update the bootstrap IPs for the Fuji Testnet. The previous IPs are deprecated and will be shut down after the next network upgrade.