AvalancheGo v1.15.1 is an optional but recommended maintenance release. It is fully backward compatible with v1.15.0, and the plugin version remains unchanged at 46.
Key Highlights & Fixes
This release includes several important improvements and critical fixes, particularly for the C-Chain and the State-of-the-Art EVM (SAE).
Critical C-Chain RPC Fix:
A major bug in `eth_estimateGas` and `eth_createAccessList` has been resolved. These RPCs were not including the minimum gas required for a transaction's size, leading to a high failure rate (`insufficient gas limit for tx size`) for transactions submitted to API nodes after the Helicon upgrade. The estimates now correctly include this size-based minimum, restoring reliable transaction submission.
SAE Health and Performance:
The `VM.HealthCheck()` will now report if the SAE executor is stalled, providing a clear health signal for node operators. Previously, this issue was only visible in error logs. Additionally, a performance issue causing SAE block execution to lag due to slow snapshot generation has been fixed.
Historical State Queries:
A fix has been implemented for an issue that caused historical state queries to fail on some API nodes. This was related to an error in the SAE re-executing pre-ApricotPhase5 C-Chain blocks.
Monitoring & API Enhancements
New Delegation Metric:
A new gauge, avalanche_platformvm_local_delegated_staked, has been added. This allows node operators to directly monitor the total amount of AVAX delegated to their node via the metrics endpoint, without needing to poll the API.
Validator API Update:
The `platform.getCurrentValidators` API response now includes `restakedValidationRewards` and `restakedDelegateeRewards` fields, providing information on rewards for validators that use the new auto-renew functionality.
Metrics Persistence:
Go-ethereum metrics are now correctly routed post-transition to SAE, ensuring they remain available after a node restart.
Other Notable Changes
Local Network Incompatibility:
The Helicon upgrade is now activated from genesis on local networks. This makes new local networks incompatible with those created on previous versions.
Go Version:
The minimum required Go version has been updated to 1.26.8.
This version is backwards compatible to [v1.15.0](https://github.com/ava-labs/avalanchego/releases/tag/v1.15.0). It is optional, but encouraged. The plugin version is unchanged at `46` and is compatible with version `v1.15.0`. ## Features - SAE `VM.HealthCheck()` reports a stalled executor, previously only surfaced via `ERROR` / `FATAL` logging - Updated the minimum Go version from `1.25.10` to `1.26.8`. - Helicon is now active from genesis on local networks. A local network started on a previous version is not compatible with this version. ## APIs - Added: - `restakedValidationRewards` and `restakedDelegateeRewards` fields to `platform.getCurrentValidators` results for auto-renewed validators ## Metrics - Added `avalanche_platformvm_local_delegated_staked` (gauge): amount (in nAVAX) of AVAX delegated to this node on the Primary Network. - Route all go-ethereum metrics to `transition` after transition, allowing use after node restart. ## Fixes - Fixed SAE re-execution of pre-ApricotPhase5 C-Chain blocks containing cross-chain transactions, which caused historical state queries to fail on some API nodes. - Timely cancellation of `snapshot` generation, without which SAE block execution lags on large `hashdb` archives. - New Firewood archival nodes commit genesis state on all chains. - SAE `eth_estimateGas` and `eth_createAccessList` now include the minimum gas limit that the mempool requires for the transaction's size. Large transactions signed with the estimate were previously rejected with `insufficient gas limit for tx size`. ## What's Changed - chore: prep next release v1.15.1 by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5942 - fix(cchain): allow arbitrary Firewood commit intervals by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5881 - Move protocol primitives to platform package by @joshua-kim in https://github.com/ava-labs/avalanchego/pull/5737 - chore(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 by @dependabot[bot] in https://github.com/ava-labs/avalanchego/pull/5947 - fix(secp256k1): compute key address and bytes eagerly to avoid data race by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5921 - feat(sae): executor health feeds `VM.HealthCheck()` by @Radeonares32 in https://github.com/ava-labs/avalanchego/pull/5934 - [tmpnet] Stop waiting for health after node exit by @maru-ava in https://github.com/ava-labs/avalanchego/pull/5950 - platformvm: Refactor unimplemented tx visitor by @rrazvan1 in https://github.com/ava-labs/avalanchego/pull/5829 - ci(docker): retry go mod download on transient proxy.golang.org failures by @rkuris in https://github.com/ava-labs/avalanchego/pull/5972 - [ci] Cache task from master pushes by @maru-ava in https://github.com/ava-labs/avalanchego/pull/5933 - chore: set up SAE-L1 integration directory by @ARR4N in https://github.com/ava-labs/avalanchego/pull/5974 - Revert "platformvm: Refactor unimplemented tx visitor (#5829)" by @rrazvan1 in https://github.com/ava-labs/avalanchego/pull/5975 - feat(platformvm): add local_delegated_staked metric by @rkuris in https://github.com/ava-labs/avalanchego/pull/5917 - build: bump golangci-lint to v2.12.2 by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5856 - feat(rpc): Re-execute blocks between commits by @alarso16 in https://github.com/ava-labs/avalanchego/pull/5954 - feat(rpc): bound concurrent historical state re-execution by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5966 - fix(cchain): Register Firewood metrics by @alarso16 in https://github.com/ava-labs/avalanchego/pull/5971 - [ci] Ensure golang installation for image build workflows by @maru-ava in https://github.com/ava-labs/avalanchego/pull/6001 - [ci] Prevent Task source builds in CI by @maru-ava in https://github.com/ava-labs/avalanchego/pull/6003 - [ci] Simplify C-Chain re-execution benchmark workflows by @maru-ava in https://github.com/ava-labs/avalanchego/pull/6005 - build: update go to v1.26.8 by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5872 - fix: Include geth metrics by @alarso16 in https://github.com/ava-labs/avalanchego/pull/6006 - test(graft): skip known flaky tests pending graft deletion by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/6014 - chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.37.0 to 1.45.0 by @dependabot[bot] in https://github.com/ava-labs/avalanchego/pull/5996 - test(sae): `TestDebugIntermediateRoots` mempool flake by @alarso16 in https://github.com/ava-labs/avalanchego/pull/6029 - refactor: replace utils.PointerTo with go1.26's new(expr) by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5874 - chore: remove stale nosec directives by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5885 - fix(sae): don't report a gas-time gap after restart by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/6008 - Update zstd dependency to Klauspost by @joshua-kim in https://github.com/ava-labs/avalanchego/pull/6004 - docs: document auto-renewed validator fields in getCurrentValidators by @alejandro99so in https://github.com/ava-labs/avalanchego/pull/6023 - Allow reexecution of pre-AP5 blocks by @StephenButtolph in https://github.com/ava-labs/avalanchego/pull/6009 - chore: bump `libevm` version go fix `snapshot` generation blocking SAE execution by @ARR4N in https://github.com/ava-labs/avalanchego/pull/6038 - fix: race in SAE test of "pending" block resolution by @ARR4N in https://github.com/ava-labs/avalanchego/pull/6039 - Copy go.work into docker images to fully download dependencies by @StephenButtolph in https://github.com/ava-labs/avalanchego/pull/6040 - test(warp): remove coreth warp e2e coverage by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5955 - chore(upgrade): activate Helicon on local networks by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/5945 - fix: Force Firewood to commit genesis root by @alarso16 in https://github.com/ava-labs/avalanchego/pull/6018 - blockdb: Validate index initialization by @DracoLi in https://github.com/ava-labs/avalanchego/pull/5959 - fix(blockdb): validate indexed block heights by @DracoLi in https://github.com/ava-labs/avalanchego/pull/5961 - test: wait for SAE block execution after receipts by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/6044 - fix(saevm): include size-based minimum in eth_estimateGas and eth_createAccessList by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/6012 - chore: setup v1.15.1 release by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/pull/6048 ## New Contributors - @Radeonares32 made their first contribution in https://github.com/ava-labs/avalanchego/pull/5934 **Full Changelog**: https://github.com/ava-labs/avalanchego/compare/v1.15.0...v1.15.1