Repository navigation
Releases: ava-labs/avalanchego
Release list
Helicon.1 - Improved Snapshot Performance
This version is backwards compatible to 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 viaERROR/FATALlogging - Updated the minimum Go version from
1.25.10to1.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:
restakedValidationRewardsandrestakedDelegateeRewardsfields toplatform.getCurrentValidatorsresults 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
transitionafter 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
snapshotgeneration, without which SAE block execution lags on largehashdbarchives. - New Firewood archival nodes commit genesis state on all chains.
- SAE
eth_estimateGasandeth_createAccessListnow include the minimum gas limit that the mempool requires for the transaction's size. Large transactions signed with the estimate were previously rejected withinsufficient gas limit for tx size.
What's Changed
- chore: prep next release v1.15.1 by @JonathanOppenheimer in #5942
- fix(cchain): allow arbitrary Firewood commit intervals by @JonathanOppenheimer in #5881
- Move protocol primitives to platform package by @joshua-kim in #5737
- chore(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 by @dependabot[bot] in #5947
- fix(secp256k1): compute key address and bytes eagerly to avoid data race by @JonathanOppenheimer in #5921
- feat(sae): executor health feeds
VM.HealthCheck()by @Radeonares32 in #5934 - [tmpnet] Stop waiting for health after node exit by @maru-ava in #5950
- platformvm: Refactor unimplemented tx visitor by @rrazvan1 in #5829
- ci(docker): retry go mod download on transient proxy.golang.org failures by @rkuris in #5972
- [ci] Cache task from master pushes by @maru-ava in #5933
- chore: set up SAE-L1 integration directory by @ARR4N in #5974
- Revert "platformvm: Refactor unimplemented tx visitor (#5829)" by @rrazvan1 in #5975
- feat(platformvm): add local_delegated_staked metric by @rkuris in #5917
- build: bump golangci-lint to v2.12.2 by @JonathanOppenheimer in #5856
- feat(rpc): Re-execute blocks between commits by @alarso16 in #5954
- feat(rpc): bound concurrent historical state re-execution by @JonathanOppenheimer in #5966
- fix(cchain): Register Firewood metrics by @alarso16 in #5971
- [ci] Ensure golang installation for image build workflows by @maru-ava in #6001
- [ci] Prevent Task source builds in CI by @maru-ava in #6003
- [ci] Simplify C-Chain re-execution benchmark workflows by @maru-ava in #6005
- build: update go to v1.26.8 by @JonathanOppenheimer in #5872
- fix: Include geth metrics by @alarso16 in #6006
- test(graft): skip known flaky tests pending graft deletion by @JonathanOppenheimer in #6014
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.37.0 to 1.45.0 by @dependabot[bot] in #5996
- test(sae):
TestDebugIntermediateRootsmempool flake by @alarso16 in #6029 - refactor: replace utils.PointerTo with go1.26's new(expr) by @JonathanOppenheimer in #5874
- chore: remove stale nosec directives by @JonathanOppenheimer in #5885
- fix(sae): don't report a gas-time gap after restart by @JonathanOppenheimer in #6008
- Update zstd dependency to Klauspost by @joshua-kim in #6004
- docs: document auto-renewed validator fields in getCurrentValidators by @alejandro99so in #6023
- Allow reexecution of pre-AP5 blocks by @StephenButtolph in #6009
- chore: bump
libevmversion go fixsnapshotgeneration blocking SAE execution by @ARR4N in #6038 - fix: race in SAE test of "pending" block resolution by @ARR4N in #6039
- Copy go.work into docker images to fully download dependencies by @StephenButtolph in #6040
- test(warp): remove coreth warp e2e coverage by @JonathanOppenheimer in #5955
- chore(upgrade): activate Helicon on local networks by @JonathanOppenheimer in #5945
- fix: Force Firewood to commit genesis root by @alarso16 in #6018
- blockdb: Validate index initialization by @DracoLi in #5959
- fix(blockdb): validate indexed block heights by @DracoLi in #5961
- test: wait for SAE block execution after receipts by @JonathanOppenheimer in #6044
- fix(saevm): include size-based minimum in eth_estimateGas and eth_createAccessList by @JonathanOppenheimer in #6012
- chore: setup v1.15.1 release by @JonathanOppenheimer in #6048
New Contributors
- @Radeonares32 made their first contribution in #5934
Full Changelog: v1.15.0...v1.15.1
Helicon: Continuous Execution & Auto-Renewed Staking
This release schedules the activation of the Helicon network upgrade at 11 AM ET (3 PM UTC) on Tuesday, September 22nd, 2026 on Mainnet.
All Mainnet nodes must upgrade before 11 AM ET, September 22nd 2026.
This release updates the plugin version to 46. All plugins must update to remain compatible.
Features
Helicon activates the following Avalanche Community Proposals (ACPs):
- ACP-194 C-Chain Async Execution
- ACP-236 Auto-Renewed Staking
- ACP-267 Validator Uptime Requirements Increase
- ACP-273 Reduce Minimum Validator Staking Duration
- ACP-283 Dynamic Minimum C-Chain Gas Price
- ACP-285 Reduce Minimum Consumption Rate
Other features:
- Subnet-EVM can set the initial ACP-226 minimum block delay at genesis via
InitialMinDelayMSin the chain config.
C-Chain State Sync
C-Chain state sync is not supported immediately around the Helicon activation. A node that is state syncing when Helicon activates may stall.
After Helicon activates, state sync has the following limitations:
- Restarting a node mid-state sync will restart the sync from the beginning.
- Disabling state sync after partially state syncing may result in an unrecoverable
FATALerror. - If
state-schemeisfirewood, the node cannot state sync. A new Firewood node on Mainnet or Fuji MUST setstate-sync-enabledtofalseor will shut down with aFATALerror. - On custom networks, a new node starts on the pre-Helicon Coreth VM and bootstraps by executing all blocks.
If encountering one of these FATAL errors, the only way to recover is by deleting the database and restarting.
APIs
C-Chain RPCs
-
Named blocks under SAE:
pendingis the last executed block by default. Withapi-resolve-pending-to-last-executedset tofalse,pendingis the last accepted block.latestis the last executed block.safeandfinalizedare both the last settled block.
-
The
avax.getAtomicTxStatusRPC is deprecated. Useavax.getAtomicTx. -
The
admin,warp, andpersonalAPI namespaces are removed. -
The
eth_accounts,eth_coinbase, andeth_etherbaseRPCs are removed. -
The following
debugRPCs are removed:debug_dumpBlockdebug_preimagedebug_getBadBlocksdebug_accountRangedebug_storageRangeAtdebug_getModifiedAccountsByNumberdebug_getModifiedAccountsByHashdebug_getAccessibleState
If you rely on any of these
debugRPCs, open an issue describing your use case.
Metrics
- Histogram
avalanche_snowman_consensus_latencieshas 8 buckets instead of 4, each a second wide. - Added
avalanche_evm_transition_sae_last_executed_heightandavalanche_evm_transition_sae_last_settled_heightgauges, exposing SAE execution and settlement heights. - Added SAE execution-pressure metrics:
avalanche_evm_transition_sae_execution_queue_duration_seconds(histogram): time from a block's acceptance into the execution queue until its execution completes.avalanche_evm_transition_sae_execute_block_duration_seconds(histogram): wall time to execute a single block, including the state commit and post-execution work.avalanche_evm_transition_sae_execution_queue_blocks(gauge): number of accepted blocks that have not yet completed execution.avalanche_evm_transition_sae_execution_queue_gas_limit(gauge): worst-case gas of accepted blocks that have not yet completed execution. Worst-case gas is the sum of transaction gas limits and end-of-block operation gas.avalanche_evm_transition_sae_executed_gas_charged_total(counter): cumulative gas charged by executed blocks. Charged gas is the sum of transaction gas used and end-of-block operation gas.avalanche_evm_transition_sae_executed_gas_limit_total(counter): cumulative worst-case gas of executed blocks.
- Added
avalanche_evm_transition_sae_in_memory_blocks(gauge): number of SAE blocks still live in memory (created but not yet garbage collected). - Added
avalanche_evm_transition_sae_accepted_gas_limit_total(counter): cumulative worst-case gas of blocks accepted into the execution queue; the acceptance-side counterpart ofexecuted_gas_limit_total. - Added SAE gas-time and pricing metrics:
avalanche_evm_transition_sae_last_executed_gas_time_seconds(gauge): gas time reached by the latest executed block, as a Unix timestamp.avalanche_evm_transition_sae_gas_time_wall_time_gap_seconds(gauge): gas time minus wall time when the latest block finished executing. A negative value means gas time lags wall time.avalanche_evm_transition_sae_worst_case_base_fee(gauge): worst-case base fee admitted by consensus for the latest executed block.avalanche_evm_transition_sae_executed_base_fee(gauge): base fee realized by execution of the latest executed block.avalanche_evm_transition_sae_worst_case_gas_excess(gauge): worst-case gas excess simulated for the latest executed block.avalanche_evm_transition_sae_executed_gas_excess(gauge): gas excess realized by execution of the latest executed block.avalanche_evm_transition_sae_gas_target(gauge): ACP-176 gas target in force as of the latest executed block.
- Added
avalanche_evm_transition_cchain_min_block_delay_seconds(gauge): ACP-226 minimum block delay currently in force, taken from the most recently executed block. - Renamed Coreth and Subnet-EVM state-sync p2p metrics:
avalanche_{vmName}_eth_net_tracked_peers->avalanche_{vmName}_sdk_sync_peer_tracker_num_tracked_peersavalanche_{vmName}_eth_net_responsive_peers->avalanche_{vmName}_sdk_sync_peer_tracker_num_responsive_peersavalanche_{vmName}_eth_net_average_bandwidth->avalanche_{vmName}_sdk_sync_peer_tracker_average_bandwidth
- Added Firewood state-sync proof metrics. All carry the label
proof_type="range|change". The duration histograms also carry the labelresult="success|failure".- Server-side histograms:
avalanche_{vmName}_sync_server_sync_proof_generation_seconds,avalanche_{vmName}_sync_server_sync_generated_proof_size_bytes, andavalanche_{vmName}_sync_server_sync_proof_shrink_new_key_limit - Client-side histograms:
avalanche_{vmName}_sync_firewood_sync_proof_verification_seconds,avalanche_{vmName}_sync_firewood_sync_proof_commit_seconds, andavalanche_{vmName}_sync_firewood_sync_received_proof_size_bytes - Client-side gauge:
avalanche_{vmName}_sync_firewood_sync_request_key_limit
- Server-side histograms:
NOTE: {vmName} is evm for Coreth and subnetevm for Subnet-EVM. The sae and cchain metrics exist only on the C-Chain.
Configs
New
helicon-min-stake-duration(only on local/custom networks)min-price-targetfor C-Chainapisfor C-Chain. Lists the JSON-RPC APIs that the node serves. See the C-Chain config reference for the names and defaults.api-resolve-pending-to-last-executedfor C-Chain. Defaults totrue, which resolvespendingto the last executed block. Set it tofalseto resolvependingto the last accepted block.
Changed
state-sync-idsin Coreth and Subnet-EVM configs is now a JSON array of node IDs (["NodeID-..."]) instead of a comma-separated string.api-max-durationfor C-Chain accepts only a duration string (for example"30s") after Helicon. The node rejects a number.0means no limit.state-sync-enabledfor C-Chain defaults totrueafter Helicon.commit-intervalfor C-Chain must be4096on Mainnet and Fuji after Helicon.
Deprecated in C-Chain
eth-apisis deprecated. The node maps it ontoapisand logs a warning. If the config also setsapis, the node ignoreseth-apis. Names whose methods no longer exist, such asadminanddebug, log a warning. Any other unknown name is a fatal error. The next release will removeeth-apis.
Removed from C-Chain
After Helicon activates, the C-Chain ignores the following options. The node logs a warning for each unrecognized option and starts.
skip-upgrade-checkadmin-api-enabledadmin-api-dirwarp-api-enabledcontinuous-profiler-dircontinuous-profiler-frequencycontinuous-profiler-max-filesrpc-gas-cap(fixed at 50,000,000)rpc-tx-fee-cap(fixed at 100 AVAX)trie-dirty-cachetrie-dirty-commit-targettrie-prefetcher-parallelismpreimages-enabledsnapshot-waitsnapshot-verification-enabledaccepted-queue-limitpopulate-missing-tries-parallelismprune-warp-db-enabledhistorical-proof-query-windowmetrics-expensive-enabledprice-options-slow-fee-percentageprice-options-fast-fee-percentageprice-options-max-tiptx-pool-price-limittx-pool-price-bumptx-pool-lifetimews-cpu-refill-ratews-cpu-max-storedallow-unfinalized-queriesallow-unprotected-tx-hasheskeystore-directorykeystore-external-signerkeystore-insecure-unlock-allowedpush-gossip-percent-stakepush-gossip-num-validatorspush-gossip-num-peerspush-regossip-num-validatorspush-regossip-num-peerspush-gossip-frequencypull-gossip-frequencyregossip-frequencylog-level- ...
Helicon: Continuous Execution & Auto-Renewed Staking | 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 release schedules the activation of the following Avalanche Community Proposals (ACPs):
- ACP-194 C-Chain Continuous Execution
- ACP-236 Auto-Renewed Staking
- ACP-267 Validator Uptime Requirements Increase
- ACP-273 Reduce Minimum Validator Staking Duration
- ACP-283 Dynamic Minimum C-Chain Gas Price
- ACP-285 Reduce Minimum Consumption Rate
The ACPs in this upgrade go into effect at 11 AM ET (3 PM UTC) on Tuesday, July 28th, 2026 on the Fuji Testnet.
All Fuji nodes must upgrade before 11 AM ET, July 28th 2026.
Missing Features
After Helicon activates, this version does not support C-Chain state sync. A version supporting state sync will be released prior to scheduling the Mainnet Helicon upgrade.
APIs
The wallet now supports the transaction types:
NewAddAutoRenewedValidatorTxNewSetAutoRenewedValidatorConfigTx
C-Chain RPCs
- All RPCs that rely on state, if called after a block is accepted, will return after the block is executed.
- The
adminAPI namespace is deprecated. - The
warpAPI namespace is deprecated. - The
avax.getAtomicTxStatusRPC is deprecated. - All APIs that rely on state of pending blocks is deprecated.
- In the
debugnamespace, the following APIs are deprecated:debug_dumpBlockdebug_preimagedebug_getBadBlocksdebug_accountRangedebug_storageRangeAtdebug_getModifiedAccountsByNumberdebug_getModifiedAccountsByHashdebug_getAccessibleState
Metrics
- Histogram
avalanche_snowman_consensus_latenciescreates 8 buckets instead of 4, each a second wide. - Added
avalanche_evm_sae_last_executed_heightandavalanche_evm_sae_last_settled_heightgauges, exposing SAE async-execution and settlement heights. - Added SAE execution-pressure metrics:
avalanche_evm_sae_execution_queue_duration_seconds(histogram): time from a block's acceptance into the execution queue until its execution completes.avalanche_evm_sae_execute_block_duration_seconds(histogram): wall-clock time to execute a single block, including state commit and post-execution work.avalanche_evm_sae_execution_queue_blocks(gauge): number of accepted blocks that have not yet completed execution.avalanche_evm_sae_execution_queue_gas_limit(gauge): sum of the gas limits of accepted blocks that have not yet completed execution.avalanche_evm_sae_executed_gas_charged_total(counter): cumulative gas charged by executed blocks (transaction gas used plus end-of-block operation gas).avalanche_evm_sae_executed_gas_limit_total(counter): cumulative gas limit (worst-case gas) of executed blocks.
- Added
avalanche_evm_sae_in_memory_blocks(gauge): number of SAE blocks still live in memory (created but not yet garbage collected). - Added
avalanche_evm_sae_accepted_gas_limit_total(counter): cumulative gas limit (worst-case gas) of blocks accepted into the execution queue; the acceptance-side counterpart ofexecuted_gas_limit_total. - Added SAE gas-time and pricing metrics:
avalanche_evm_sae_last_executed_gas_time_seconds(gauge): gas time reached by the latest executed block, as a Unix timestamp.avalanche_evm_sae_gas_time_wall_time_gap_seconds(gauge): gas time minus wall time, observed when the latest block finished executing; negative when gas time lags the wall clock.avalanche_evm_sae_worst_case_base_fee(gauge): worst-case base fee admitted by consensus for the latest enqueued block.avalanche_evm_sae_executed_base_fee(gauge): base fee realized by execution of the latest executed block.avalanche_evm_sae_worst_case_gas_excess(gauge): worst-case gas excess admitted by consensus for the latest enqueued block.avalanche_evm_sae_executed_gas_excess(gauge): gas excess realized by execution of the latest executed block.avalanche_evm_sae_gas_target(gauge): ACP-176 gas target in force as of the latest enqueued block.
- Added
avalanche_evm_cchain_min_block_delay_seconds(gauge): ACP-226 minimum block delay currently in force, taken from the most recently executed block. - Renamed Coreth and Subnet-EVM state-sync p2p metrics:
avalanche_{vmName}_eth_net_tracked_peers->avalanche_{vmName}_sdk_sync_peer_tracker_num_tracked_peersavalanche_{vmName}_eth_net_responsive_peers->avalanche_{vmName}_sdk_sync_peer_tracker_num_responsive_peersavalanche_{vmName}_eth_net_average_bandwidth->avalanche_{vmName}_sdk_sync_peer_tracker_average_bandwidth
NOTE: {vmName} is evm for Coreth/C-Chain and subnetevm for Subnet-EVM chains
Configs
New
helicon-min-stake-duration(only on local networks)min-price-targetfor C-Chain
Deprecated in C-Chain
skip-upgrade-checkadmin-api-enabledadmin-api-dirwarp-api-enabledcontinuous-profiler-dircontinuous-profiler-frequencycontinuous-profiler-max-filesrpc-gas-caprpc-tx-fee-captrie-dirty-cachetrie-dirty-commit-targettrie-prefetcher-parallelismpreimages-enabledsnapshot-waitsnapshot-verification-enabledaccepted-queue-limitpopulate-missing-tries-parallelismprune-warp-db-enabledhistorical-proof-query-windowmetrics-expensive-enabledprice-options-slow-fee-percentageprice-options-fast-fee-percentageprice-options-max-tiptx-pool-price-limittx-pool-price-bumptx-pool-lifetimeapi-max-durationws-cpu-refill-ratews-cpu-max-storedallow-unfinalized-queriesallow-unprotected-tx-hasheskeystore-directorykeystore-external-signerkeystore-insecure-unlock-allowedpush-gossip-percent-stakepush-gossip-num-validatorspush-gossip-num-peerspush-regossip-num-validatorspush-regossip-num-peerspush-gossip-frequencypull-gossip-frequencyregossip-frequencylog-levellog-json-formatenable-db-inspecting-apienable-profiling-apioffline-pruning-bloom-filter-sizemax-outbound-active-requestsstate-sync-skip-resumestate-sync-server-trie-cachestate-sync-commit-intervalstate-sync-min-blocksstate-sync-request-sizeinspect-databaseaccepted-cache-sizestate-historyskip-tx-indexinghttp-body-limitbatch-response-max-size
Features
- Subnet-EVM allows providing the initial block delay at genesis via
InitialMinDelayMSin the chain config. - Add
transitionvmas a type of VM that can swap between two different implementations at a specific fork.
Fixes
- Updated minimum Go version from
v1.25.8tov1.25.10. - Archival nodes with re-execution will correctly skip atomic transaction application.
- Fixed bug where code syncer could finish with improper disk artifacts.
- P-Chain
ERRORlogs during close are downgraded toWARN.
Full Changelog: v1.14.2...v1.15.0-fuji
What's Changed
- Prep Firewood x/sync for EVM by @alarso16 in #4794
- [ci] Migrate reexec tasks to a script to simplify maintenance by @maru-ava in #4761
- refactor: Share EVM Utils by @alarso16 in #4739
- ci: ensure generated files up to date in CI by @JonathanOppenheimer in #4782
- fix: Always register Firewood metrics when enabled by @alarso16 in #4793
- refactor: directly embed files in
graftby @JonathanOppenheimer in #4795 - chore: remove end year from license headers by @JonathanOppenheimer in #4812
- test(reexecute): add firewood chaos test [2/2] by @RodrigoVillar in #4695
- refactor: Firewood Config helper by @alarso16 in #4811
- chore(chaos): remove chaos test from PR CI by @RodrigoVillar in #4817
- feat(reexecution): collect leveldb and meterdb metrics by @DracoLi in #4804
- refactor: warp e2e tests no longer in single function by @JonathanOppenheimer in #4798
- build: bundle subnet-evm releasing into releasing workflow by @JonathanOppenheimer in #4675
- fix: warp e2e flake by @JonathanOppenheimer in #4818
- Provide a useful default for disk percentage by @StephenButtolph in #4822
- refactor: Use
state.Databaseto generate tries in sync test helpers by @alarso16 in #4814 - chore: cleanup
graft/evmpost subnet-evm merge by @JonathanOppenheimer in #4752 - test: fix
TestUptimeSignaturesflake by @JonathanOppenheimer in https://github.com/ava-labs/avalanchego/p...
Granite.2 - Benchlist Redesign
This version is backwards compatible to v1.14.0. It is optional, but encouraged.
The plugin version is updated to 45; all plugins must update to be compatible.
Breaking Changes
- Removed
graft/subnet-evm/compatibility.jsonin favor of using a single source of truth inversion/compatibility.json. External tools that relied on this file should now useversion/compatibility.jsonfrom the main AvalancheGo repository.
Config
- Added:
--simplex-max-network-delay--simplex-max-rebroadcast-wait--benchlist-halflife--benchlist-unbench-probability--benchlist-bench-probabilitysnowParametersin subnet configssimplexParametersin subnet configs
- Deprecated:
consensusParametersin subnet configs
- Removed:
--benchlist-fail-threshold--benchlist-min-failing-durationpull-gossip-poll-sizefrom the X-chain and P-chain configsproposerMinBlockDelayfrom subnet configs
API
- Added
avalanche_snowman_consensus_latencieshistogram for each chain
Fixes
- Fixed potential FATAL during startup due to an incorrect initialization of remaining disk space
- Fixed crash in
TraceCallwithBlockOverrides - Fixed snapshot generation shutdown race
- Downgraded flaky
ERRORlog toWARNif recently bootstrapped - Updated minimum Go version from 1.24 to
v1.25.8
Consensus
- Redesigned benchlisting with predicated failure rates
- Added health checks to ensure average block acceptance times are reasonable
- Introduced Simplex consensus engine and parameters (experimental)
Firewood
- Enabled Firewood deferred persistence for non-pruning nodes
- Fixed Firewood metrics registration
- Unsupported APIs now return an error when Firewood is enabled
- Updated Firewood to v0.3.1 (from v0.0.18)
What's Changed
- Prep Firewood x/sync for EVM by @alarso16 in #4794
- [ci] Migrate reexec tasks to a script to simplify maintenance by @maru-ava in #4761
- refactor: Share EVM Utils by @alarso16 in #4739
- ci: ensure generated files up to date in CI by @JonathanOppenheimer in #4782
- fix: Always register Firewood metrics when enabled by @alarso16 in #4793
- refactor: directly embed files in
graftby @JonathanOppenheimer in #4795 - chore: remove end year from license headers by @JonathanOppenheimer in #4812
- test(reexecute): add firewood chaos test [2/2] by @RodrigoVillar in #4695
- refactor: Firewood Config helper by @alarso16 in #4811
- chore(chaos): remove chaos test from PR CI by @RodrigoVillar in #4817
- feat(reexecution): collect leveldb and meterdb metrics by @DracoLi in #4804
- refactor: warp e2e tests no longer in single function by @JonathanOppenheimer in #4798
- build: bundle subnet-evm releasing into releasing workflow by @JonathanOppenheimer in #4675
- fix: warp e2e flake by @JonathanOppenheimer in #4818
- Provide a useful default for disk percentage by @StephenButtolph in #4822
- refactor: Use
state.Databaseto generate tries in sync test helpers by @alarso16 in #4814 - chore: cleanup
graft/evmpost subnet-evm merge by @JonathanOppenheimer in #4752 - test: fix
TestUptimeSignaturesflake by @JonathanOppenheimer in #4826 - test: add Coreth + Firewood archive UT by @RodrigoVillar in #4820
- Introduce gossip system helper by @StephenButtolph in #4819
- test: fix
TestAtomicSyncerVM/StateSyncFromScratchTestflake by @JonathanOppenheimer in #4825 - [direnv] Enable global envrc customization by @maru-ava in #4821
- fix(c-chain-reexecution): support genesis execution by @Elvis339 in #4841
- Remove
ProposerMinBlockDelayfrom subnet configs by @StephenButtolph in #4824 - fix(eth/tracers): fix crash in TraceCall with BlockOverrides by @dmkulazhenko in #4657
- Fix flake in
TestWaitForEvent/WaitForEvent_build_block_after_re-orgby @yacovm in #4789 - fix: apply TraceCall fix in both coreth and subnet-evm by @JonathanOppenheimer in #4846
- Fix race in tests on VM Shutdown by @alarso16 in #4852
- refactor: use vms/evm customrawdb in subnet-evm by @alarso16 in #4851
- test: enable c-chain <-> subnet e2e warp tests by @JonathanOppenheimer in #4799
- refactor: align
PointerTofunctions by @JonathanOppenheimer in #4741 - chore: cleanup customtypes by @alarso16 in #4844
- chore: retype
DelayExcessby @JonathanOppenheimer in #4833 - refactor: share triedb by @alarso16 in #4843
- refactor: Share core/state by @alarso16 in #4863
- test(reexecution): add additional Firewood archival tests by @RodrigoVillar in #4853
- build: bump to go 1.24.12 by @JonathanOppenheimer in #4867
- test: Fix
TestResyncNewRootAfterDeletesflake by @JonathanOppenheimer in #4850 - refactor: granite cleanup - remove
GetWarpValidatorSetby @JonathanOppenheimer in #4858 - [nix] Update golang flake input for nix 2.25+ by @maru-ava in #4875
- feat(vm_reexecute): add pprof profiling support by @Elvis339 in #4790
- refactor: granite cleanup - remove pre-granite test-cases by @JonathanOppenheimer in #4860
- refactor(sync): reorganize state sync packages by @powerslider in #4857
- Simplex nits & bug fixes by @samliok in #4885
- feat: add Sync to database.HeightIndex by @DracoLi in #4839
- refactor: granite cleanup - remove
remoteDelayExcessby @JonathanOppenheimer in #4859 - refactor: share log package by @JonathanOppenheimer in #4886
- perf: Share proposal between hash and commit by @alarso16 in #4697
- refactor: remove strict mode in ABI by @alarso16 in #4884
- Firewood v0.1.0 by @alarso16 in #4893
- Return range proofs for change proof requests during Firewood sync by @alarso16 in #4834
- feat: Add interface between x/sync and EVM syncers by @alarso16 in #4832
- Add test coverage for acp118 replay protection by @joshua-kim in #4889
- refactor: remove UnpackInput by @alarso16 in #4901
- refactor: share EVM rpc package by @JonathanOppenheimer in #4786
- refactor: share version across codebase by @JonathanOppenheimer in #4891
- Update vms/README.md by @meaghanfitzgerald in #4904
- [ci] Support running re-execution benchmark with arbitrary version of Firewood by @Elvis339 in #4650
- test: address geth flakes by @JonathanOppenheimer in #4902
- refactor: Use libevm accounts/abi by @alarso16 in #4865
- [ci] Simplify run-monitored-tmpnet-cmd to use custom actions by @maru-ava in #4897
- [tools] Allow ./tools path to be used for local tools by @maru-ava in #4896
- test: Ensure code hashes are retrieved in Firewood by @alarso16 in #4915
- Add proposervm block delay logs by @yacovm in #4917
- Update consensus logs by @StephenButtolph in #4920
- Add go workspace by @maru-ava in #4899
- Create histogram for consensus latencies by @yacovm in #4924
- refactor(graft/evm): extract unified
messagepackage fromcorethandsubnet-evmby @powerslider in #4882 - Move x/sync and firewood to database by @alarso16 in https://github.com/ava-labs/avalanchego/...
Granite.1 - Grafting EVM Repos
This version is backwards compatible to v1.14.0. It is optional, but encouraged.
The plugin version is unchanged at 44 and is compatible with version v1.14.0.
Config
- Added:
--system-tracker-disk-required-available-space-percentage--system-tracker-disk-warning-available-space-percentage
- Deprecated:
--system-tracker-disk-required-available-space--system-tracker-disk-warning-threshold-available-space
EVM
- Removed
avax.versionAPI - Removed
customethclientpackage in favor ofethclientpackage and temporary type registrations (WithTempRegisteredLibEVMExtras)- Removed blockHook extension in
ethclientpackage.
- Removed blockHook extension in
- Enabled Firewood to run with pruning disabled.
- This change modified the filepath of Firewood. Any nodes using Firewood will need to resync.
What's Changed
The changelog is omitted, as the Coreth and Subnet-EVM repositories were grafted into the repository.
Full Changelog: v1.14.0...v1.14.1
Granite - Improving ICM and Dynamic Block Times
This release schedules the activation of the following Avalanche Community Proposals (ACPs):
- ACP-181 P-Chain Epoched Views
- ACP-204 Precompile for secp256r1 Curve Support
- ACP-226 Dynamic Minimum Block Times
The ACPs in this upgrade go into effect at 11 AM ET (4 PM UTC) on Wednesday, November 19th, 2025 on Mainnet.
All Mainnet nodes must upgrade before 11 AM ET, November 19th 2025.
The plugin version is updated to 44; all plugins must update to be compatible.
LibEVM Hook Registration
This release includes changes for how EVM modifications are registered with libevm. For consumers of avalanchego as a library, manual registration of libevm callbacks is now required.
APIs
- Added support for specifying multiple
Avalanche-Api-Routeheaders for more complex routing. - Added proposervm gRPC, connectrpc, and jsonrpc APIs for
GetProposedHeightandGetCurrentEpoch.- The gRPC and connectrpc APIs are routed by adding a second
Avalanche-Api-Routeheader with the valueproposervm. - The jsonrpc APIs are added to all chains with the base endpoint
/proposervm.
- The gRPC and connectrpc APIs are routed by adding a second
- Added platformvm
platform.GetAllValidatorsAtAPI.
Configs
- Changed default
proposerMinBlockDelayfor L1s (other than Primary Network) to 0.
Fixes
- Improved bootstrapping ETA predictions.
What's Changed
- Remove schedule trigger for w/ container job that evaluates to empty matrix by @aaronbuchwald in #4218
- chore: remove unzip mention by @RodrigoVillar in #4226
- refactor(load): simulator contract by @RodrigoVillar in #4181
- Remove firewood entry from PR triggers due to flakes by @aaronbuchwald in #4227
- Write grafana link to logs and github step summary by @aaronbuchwald in #4219
- Disambiguate source vs exec variable names in reexecute tasks by @aaronbuchwald in #4200
- Push benchmark re-execute results on master workflow dispatch by @aaronbuchwald in #4224
- Add newline to workflow dispatch by @aaronbuchwald in #4229
- Add back empty schedule entry for reexecute w/ container job by @aaronbuchwald in #4230
- Comment out schedule trigger for re-execution on w/container by @aaronbuchwald in #4234
- Add timeout parameter to C-Chain re-execution jobs by @aaronbuchwald in #4223
- feat: add parameters to disable metrics by @qusuyan in #4214
- feat(load): add firewood flag by @RodrigoVillar in #4235
- fix(load): totalSupply overflow by @RodrigoVillar in #4244
- Add runner name as metric label and benchmark name param by @aaronbuchwald in #4243
- fix(load): update nonce regardless of tx execution result by @RodrigoVillar in #4245
- Fix manual workflow quoted timeout minutes by @aaronbuchwald in #4250
- BlockDB Compression by @DracoLi in #4201
- Pass x/sync proofs as bytes by @alarso16 in #4246
- feat(load): parameterize worker count by @RodrigoVillar in #4248
- Add back schedule trigger to gh native by @aaronbuchwald in #4253
- Remove compare benchmark that uses gh action cache by @aaronbuchwald in #4252
- Delete gRPC client for MerkleDB by @alarso16 in #4251
- style(gas): rename to unit-agnostic duration by @alarso16 in #4258
- Fix testifylint config by @StephenButtolph in #4260
- Remove unnecessary field from MaybeBytes by @alarso16 in #4259
- fix: time remaining should use better estimates by @rkuris in #4196
- [tmpnet] Add optional stack traces to errors originating from tmpnet by @maru-ava in #4262
- [tmpnet] Use Api Node Instead of URI in CreateSubnets by @samliok in #4263
- [tmpnet] Upgrade prometheus agent version to avoid use of bitnami images by @maru-ava in #4269
- Add public network support to tmpnet by @felipemadero in #4267
- Remove proof details from x/sync by @alarso16 in #4247
- Don't unmarshal Stateless Block in XSVM by @samliok in #4279
- chore: fix some typos in comment by @joemicky in #4276
- Update config.md by @meaghanfitzgerald in #4278
- test(load): add firewood workflow by @RodrigoVillar in #4268
- chore: fix some function names by @zhoujiaweii in #4288
- test(reexecute/c): disable metrics collection by default by @RodrigoVillar in #4272
- uplift: Migrate ACP-176 Implementation by @ceyonur in #4291
- Handle ACP176 excess overflow during scaling by @StephenButtolph in #4294
- Implement ACP-226 Math by @ceyonur in #4289
- [monitoring] Clean up monitoring configuration in preparation for grafana cloud migration by @maru-ava in #4149
- Replace Coreth/ACP-176 package import by @ceyonur in #4301
- Simplex Block Builder Component by @samliok in #4159
- ACP-226: add initial delay excess by @ceyonur in #4300
- ignore debug files in gitignore by @samliok in #4303
- Pass block tracker in deserialize block by @samliok in #4266
- Remove comment/fail on benchmark perf alerts by @aaronbuchwald in #4308
- Add HeightIndex interface to database by @DracoLi in #4133
- Upgrade to Go 1.24 by @alarso16 in #4304
- Move task args to cli instead of run_env by @aaronbuchwald in #4309
- Replace reflect.TypeOf with reflect.TypeFor by @StephenButtolph in #4311
- Consolidate scheduled runs by @aaronbuchwald in #4313
- Fix array type check in reflect codec by @StephenButtolph in #4312
- [tooling] Switch to go 1.24's
go toolto manage CLI dependencies by @maru-ava in #4316 - Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /tools by @dependabot[bot] in #4319
- Fix waitForProposerWindow by @StephenButtolph in #4321
- Add test-unit-fast task by @StephenButtolph in #4323
- Granite ACP-176 by @alarso16 in #4336
- refactor(metervm): remove mockable clock by @RodrigoVillar in #4338
- Remove premature optimization in validator manager by @StephenButtolph in #4346
- Refactor Warp Verification Tests by @StephenButtolph in #4335
- Replace
mockable.MaxTimewithupgrade.UnscheduledActivationTimeby @StephenButtolph in #4322 - fix(load): only modify non-reserved slots by @RodrigoVillar in #4283
- chore: fix a large number of spelling issues in comments by @letreturn in #4353
- Update daily re-execution benchmark by @aaronbuchwald in #4340
- Implement GetProposedHeight API in Proposervm by @geoff-vball in #4222
- Remove UptimeManager#IsConnected by @joshua-kim in #4333
- Set
activationTimeequal toupgrade.InitiallyActiveTimeforpropservmby @JonathanOppenheimer in #4351 - Support all validator set diffs by height by @geoff-vball in #4342
- Use
acp226.DelayExcessrather thanuint64by @StephenButtolph in #4358 - Add generics to x/sync by @alarso16 in #4275
- Improve C-Chain Re-Execution RE...
Granite - Improving ICM and Dynamic Block Times - 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 release schedules the activation of the following Avalanche Community Proposals (ACPs):
- ACP-181 P-Chain Epoched Views
- ACP-204 Precompile for secp256r1 Curve Support
- ACP-226 Dynamic Minimum Block Times
The ACPs in this upgrade go into effect at 11 AM ET (3 PM UTC) on Wednesday, October 29th, 2025 on the Fuji testnet.
All Fuji nodes must upgrade before 11 AM ET, October 29th 2025.
libevm Hook Registration
This release includes changes for how EVM modifications are registered with libevm. For consumers of avalanchego as a library, manual registration of libevm callbacks is now required.
The plugin version is updated to 44 all plugins must update to be compatible.
APIs
- Added support for specifying multiple
Avalanche-Api-Routeheaders for more complex routing. - Added proposervm gRPC, connectrpc, and jsonrpc APIs for
GetProposedHeightandGetCurrentEpoch.- The gRPC and connectrpc APIs are routed by adding a second
Avalanche-Api-Routeheader with the valueproposervm. - The jsonrpc APIs are added to all chains with the base endpoint
/proposervm.
- The gRPC and connectrpc APIs are routed by adding a second
- Added platformvm
platform.GetAllValidatorsAtAPI.
Configs
- Changed default
proposerMinBlockDelayfor L1s (other than Primary Network) to 0.
Fixes
- Improved bootstrapping ETA predications.
What's Changed
- Remove schedule trigger for w/ container job that evaluates to empty matrix by @aaronbuchwald in #4218
- chore: remove unzip mention by @RodrigoVillar in #4226
- refactor(load): simulator contract by @RodrigoVillar in #4181
- Remove firewood entry from PR triggers due to flakes by @aaronbuchwald in #4227
- Write grafana link to logs and github step summary by @aaronbuchwald in #4219
- Disambiguate source vs exec variable names in reexecute tasks by @aaronbuchwald in #4200
- Push benchmark re-execute results on master workflow dispatch by @aaronbuchwald in #4224
- Add newline to workflow dispatch by @aaronbuchwald in #4229
- Add back empty schedule entry for reexecute w/ container job by @aaronbuchwald in #4230
- Comment out schedule trigger for re-execution on w/container by @aaronbuchwald in #4234
- Add timeout parameter to C-Chain re-execution jobs by @aaronbuchwald in #4223
- feat: add parameters to disable metrics by @qusuyan in #4214
- feat(load): add firewood flag by @RodrigoVillar in #4235
- fix(load): totalSupply overflow by @RodrigoVillar in #4244
- Add runner name as metric label and benchmark name param by @aaronbuchwald in #4243
- fix(load): update nonce regardless of tx execution result by @RodrigoVillar in #4245
- Fix manual workflow quoted timeout minutes by @aaronbuchwald in #4250
- BlockDB Compression by @DracoLi in #4201
- Pass x/sync proofs as bytes by @alarso16 in #4246
- feat(load): parameterize worker count by @RodrigoVillar in #4248
- Add back schedule trigger to gh native by @aaronbuchwald in #4253
- Remove compare benchmark that uses gh action cache by @aaronbuchwald in #4252
- Delete gRPC client for MerkleDB by @alarso16 in #4251
- style(gas): rename to unit-agnostic duration by @alarso16 in #4258
- Fix testifylint config by @StephenButtolph in #4260
- Remove unnecessary field from MaybeBytes by @alarso16 in #4259
- fix: time remaining should use better estimates by @rkuris in #4196
- [tmpnet] Add optional stack traces to errors originating from tmpnet by @maru-ava in #4262
- [tmpnet] Use Api Node Instead of URI in CreateSubnets by @samliok in #4263
- [tmpnet] Upgrade prometheus agent version to avoid use of bitnami images by @maru-ava in #4269
- Add public network support to tmpnet by @felipemadero in #4267
- Remove proof details from x/sync by @alarso16 in #4247
- Don't unmarshal Stateless Block in XSVM by @samliok in #4279
- chore: fix some typos in comment by @joemicky in #4276
- Update config.md by @meaghanfitzgerald in #4278
- test(load): add firewood workflow by @RodrigoVillar in #4268
- chore: fix some function names by @zhoujiaweii in #4288
- test(reexecute/c): disable metrics collection by default by @RodrigoVillar in #4272
- uplift: Migrate ACP-176 Implementation by @ceyonur in #4291
- Handle ACP176 excess overflow during scaling by @StephenButtolph in #4294
- Implement ACP-226 Math by @ceyonur in #4289
- [monitoring] Clean up monitoring configuration in preparation for grafana cloud migration by @maru-ava in #4149
- Replace Coreth/ACP-176 package import by @ceyonur in #4301
- Simplex Block Builder Component by @samliok in #4159
- ACP-226: add initial delay excess by @ceyonur in #4300
- ignore debug files in gitignore by @samliok in #4303
- Pass block tracker in deserialize block by @samliok in #4266
- Remove comment/fail on benchmark perf alerts by @aaronbuchwald in #4308
- Add HeightIndex interface to database by @DracoLi in #4133
- Upgrade to Go 1.24 by @alarso16 in #4304
- Move task args to cli instead of run_env by @aaronbuchwald in #4309
- Replace reflect.TypeOf with reflect.TypeFor by @StephenButtolph in #4311
- Consolidate scheduled runs by @aaronbuchwald in #4313
- Fix array type check in reflect codec by @StephenButtolph in #4312
- [tooling] Switch to go 1.24's
go toolto manage CLI dependencies by @maru-ava in #4316 - Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.4.0 in /tools by @dependabot[bot] in #4319
- Fix waitForProposerWindow by @StephenButtolph in #4321
- Add test-unit-fast task by @StephenButtolph in #4323
- Granite ACP-176 by @alarso16 in #4336
- refactor(metervm): remove mockable clock by @RodrigoVillar in #4338
- Remove premature optimization in validator manager by @StephenButtolph in #4346
- Refactor Warp Verification Tests by @StephenButtolph in #4335
- Replace
mockable.MaxTimewithupgrade.UnscheduledActivationTimeby @StephenButtolph in #4322 - fix(load): only modify non-reserved slots by @RodrigoVillar in #4283
- chore: fix a large number of spelling issues in comments by @letreturn in #4353
- Update daily re-execution benchmark by @aaronbuchwald in #4340
- Implement GetProposedHeight API in Proposervm by @geoff-vball in #4222
- Remove UptimeManager#IsConnected by @joshua-kim in #4333
- Set
activationTimeequal toupgrade.InitiallyActiveTimeforpropservmby @JonathanOppenheimer in #4351 - Support all validator set diffs by height by @geoff-vball in #4342
- Use
acp226.DelayExcessrather thanuint64by @StephenButtolph in https://gith...
Fortuna.5 - Mempool Rate Limiting Improvements
This version is backwards compatible to v1.13.0. It is optional, but encouraged.
The plugin version is unchanged at 43 and is compatible with version v1.13.4.
Configs
- Replaced
pull-gossip-throttling-limitwithpull-gossip-requests-per-validatorin the X-Chain and P-Chain configs
Fixes
- Fixed Firewood performance regression
- Fixed duplicate C-Chain eth gossip registration
- Fixed various C-Chain atomic mempool edge cases
What's Changed
- Separate re-execution job params for PR from schedule by @aaronbuchwald in #4151
- chore: fix a typo in gossip,go by @Galoretka in #4154
- Add @joshua-kim as CODEOWNER to testing-related packages by @JuanLeon2 in #4118
- refactor(load): remove context from test interface by @RodrigoVillar in #4157
- Move C-Chain benchmark to custom action and add ARC + GH runner triggers by @aaronbuchwald in #4165
- Use EmptyVoteMetadata in Simplex Proto Messages by @samliok in #4174
- feat(load): add token test by @RodrigoVillar in #4171
- Fix typo in comment - PChainHeight context by @yacovm in #4176
- chore: fix function name by @yinwenyu6 in #4178
- chore: fix typo by @kks-code in #4179
- Migrate predicate package from evm repos by @JonathanOppenheimer in #4147
- feat: add eviction callback in LRU cache by @DracoLi in #4088
config/config.md:Added Env Variable representation of flags + improved UI design by @navillanueva in #4110- Storage Component For Simplex by @samliok in #4122
- Block Database by @DracoLi in #4027
- Change cache path to tmp included in gitignore by @aaronbuchwald in #4183
- Add optional step to archive post-reexecution state to S3 by @aaronbuchwald in #4172
- Rename height field to numBlocks by @samliok in #4184
- refactor: replace []byte(fmt.Sprintf) with fmt.Appendf by @queryfast in #4161
- Make Draco the codeowner of the blockdb by @StephenButtolph in #4187
- Add redundant import alias linting by @StephenButtolph in #4191
- Add config option for AWS S3 read only credential duration by @aaronbuchwald in #4192
- fix: blockdb file eviction race issue by @DracoLi in #4186
- Count throttled requests as hits by @joshua-kim in #4199
- Rename Engine Types by @samliok in #4193
- Add s5cmd progress bar by @RodrigoVillar in #4204
- Update block + validator + pgo checkpoints to 2025-08-23 by @StephenButtolph in #4205
- Remove buf lint action by @joshua-kim in #4189
- Add ability to create zstd compressor with compression level by @DracoLi in #4203
- Dynamically update mempool gossip request rate limit by @joshua-kim in #4162
- Add support for passing config and predefined configs to VM re-execution tests by @aaronbuchwald in #4180
New Contributors
- @Galoretka made their first contribution in #4154
- @JuanLeon2 made their first contribution in #4118
- @yinwenyu6 made their first contribution in #4178
- @kks-code made their first contribution in #4179
- @navillanueva made their first contribution in #4110
- @queryfast made their first contribution in #4161
Full Changelog: v1.13.4...v1.13.5
Fortuna.4 - Cubist Signer Integration
This version is backwards compatible to v1.13.0. It is optional, but encouraged.
The plugin version is updated to 43 all plugins must update to be compatible.
Configs
- Added
staking-rpc-signer-endpointflag.
What's Changed
- Bump golang.org/x/oauth2 from 0.21.0 to 0.27.0 by @dependabot[bot] in #4100
- [tmpnet] Enable externally accessible URIs for kube-hosted nodes by @maru-ava in #4016
- [antithesis] Enable reuse of banff e2e test for antithesis testing by @marun in #3554
- feat(load2): add contract tests by @RodrigoVillar in #4071
- Add test to re-execute specified range of mainnet C-Chain blocks by @aaronbuchwald in #4019
- [tmpnet] Enable installation of chaos mesh to local kind cluster by @maru-ava in #3674
- Update release notes and bump version to
v1.13.4by @StephenButtolph in #4113 - Update reexecute c-chain range cronjob to run daily by @aaronbuchwald in #4115
- Remove Stale References of the toEngine Channel by @samliok in #4101
- Add step to push benchmark results to gh-pages by @aaronbuchwald in #4103
- ci: remove load 1.0 by @RodrigoVillar in #4106
- Simplex QuorumCertificate and BLS aggregator by @samliok in #4091
- Update codeowners of reexecution changes by @aaronbuchwald in #4116
- refactor: use maps.Copy for cleaner map handling by @jishudashu in #4119
- refactor: remove load 1.0 by @RodrigoVillar in #4112
- Enable Cubist Signer integration by @geoff-vball in #3965
- Split action benchmark comparison and push to gh-pages by @aaronbuchwald in #4130
- Remove external-data-json-path from benchmark push step by @aaronbuchwald in #4134
- With golangci-lint v2.2.2 using http.NewRequest is discouraged by @StephenButtolph in #4136
- Add runner input to run c-chain reexecution benchmark on arbitrary target by @aaronbuchwald in #4121
- Remove flaky dial throttler tests by @aaronbuchwald in #4139
- Remove gitignore line that ignores the
database/dbtestpackage by @StephenButtolph in #4142 - chore: Update header year to 2025 by @JonathanOppenheimer in #4140
- feat(load): add trie stress test by @RodrigoVillar in #4137
- Parameterize values in transfer tests by @RodrigoVillar in #4144
- uplift: Add combined metrics package from evm repositories by @JonathanOppenheimer in #4135
- docs: load by @RodrigoVillar in #4132
- chore: fix minor typo in comment by @lechpzn in #4150
- fix metrics tests by @joshua-kim in #4146
- Update coreth to v0.15.3-rc.5 by @StephenButtolph in #4153
New Contributors
- @jishudashu made their first contribution in #4119
- @lechpzn made their first contribution in #4150
Full Changelog: v1.13.3...v1.13.4
Fortuna.3 - ToEngine Channel Removal
This version is backwards compatible to v1.13.0. It is optional, but encouraged.
The plugin version is updated to 42 all plugins must update to be compatible.
This release removes the support for running on Windows. Any users running on Windows should utilize Windows Subsystem for Linux.
APIs
- Converted HTTP2 support to route by the
Avalanche-Api-Routeheader. - Added
avalanche_snowman_blks_built_time_skewmetric. - Added p2p
bloomfilter_hit_ratemetrics for the P-chain, X-chain, C-chain atomic, and C-chain mempools.
Fixes
- Fixed HTTP2 update request handling.
- Fixed plugin handling of special errors during HTTP request handling.
- Fixed plugin forwarding of HTTP headers.
- Fixed C-chain shared memory UTXO parsing by the Primary Network Wallet.
What's Changed
- chore: move windows from tier 3 to unsupported by @aaronbuchwald in #4031
- [tmpnet] Run kube load test under a service account to validate RBAC by @maru-ava in #4030
- Add block timeskew metric by @yacovm in #4034
- refactor: use maps.Copy for cleaner map handling by @gopherorg in #4042
- Fix bug in rpcchainvm where
io.EOFis not propagated correctly by @joshua-kim in #4035 - chore: fix some minor issues in the comments by @alongdate in #4045
- Update golangci-lint to v2 by @joshua-kim in #4037
- Simplex VerifiedBlock and BlockDeserializer by @samliok in #4009
- Load Framework 2 by @RodrigoVillar in #3996
- Rename test_util -> util_test by @samliok in #4054
- Replace toEngine channel with a dedicated subscription API by @yacovm in #3999
- Ensure that headers added by the server are propagated by @joshua-kim in #4060
- Update coreth to v0.15.3-rc.0 by @StephenButtolph in #4062
- Add default validator set function to snowtest.context by @JonathanOppenheimer in #4065
- Fix flake in TestNotifierReSubscribeAtPrefChange by @yacovm in #4067
- Support header-based routing by @joshua-kim in #4036
- Simplify json-rpc client handling by @StephenButtolph in #4079
- Update coreth to v0.15.3-rc.1 by @StephenButtolph in #4080
- feat: add default flag options by @RodrigoVillar in #4044
- chore: fix some function names in comment by @shangchenglumetro in #4053
- chore: fix some inconsistent comments by @jingchanglu in #4068
- refactor: use the built-in max/min to simplify the code by @socialsister in #4087
- Comm Component for Simplex by @samliok in #3998
- ci(load-tests): add GitHub Actions workflow for load testing on k8s by @Elvis339 in #4051
- Update run monitored tmpnet cmd to make dashboard param configurable by @aaronbuchwald in #4089
- Add WritePrometheusServiceDiscoveryConfigFile helper by @aaronbuchwald in #4072
- [nix] Update to 25.05 by @maru-ava in #4050
- chore: replace polling with subscription-based acceptance by @RodrigoVillar in #4059
- Add Verification + Tracking Logic To Simplex Blocks by @samliok in #4052
- Fix wrong pkg import for Primary Wallet by @0xJohnnyGault in #4096
- [tmpnet] Source tmpnet defaults from a configmap by @maru-ava in #4057
- Throttle platformVM block building until normal ops by @yacovm in #4097
- fix: add throttle to error retries by @alarso16 in #4098
- Measure bloom filter AppGossip hit rate by @yacovm in #4085
New Contributors
- @gopherorg made their first contribution in #4042
- @alongdate made their first contribution in #4045
- @JonathanOppenheimer made their first contribution in #4065
- @shangchenglumetro made their first contribution in #4053
- @jingchanglu made their first contribution in #4068
- @0xJohnnyGault made their first contribution in #4096
Full Changelog: v1.13.2...v1.13.3