Releases: ava-labs/avalanchego
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
Fortuna.2 - VM HTTP2 Support
This version is backwards compatible to v1.13.0. It is optional, but encouraged.
The plugin version is updated to 41 all plugins must update to be compatible.
APIs
- Added initial support for HTTP2 connections into VMs
- Removed native support for gzip compression of HTTP requests
Fixes
- Fixed message timeout handling on L1s configured with
validatorOnly=true - Fixed segfault on ARM64 when profiling is enabled
What's Changed
- chore(tests/load): C-chain load testing by @qdm12 in #3914
- Improve comments on message Ops by @StephenButtolph in #3987
- Remove requestID expectation for UnrequestedOps by @StephenButtolph in #3989
- Add Simplex Messages To p2p.proto by @samliok in #3976
- [tmpnet] Enable exclusive scheduling by @maru-ava in #3988
- [testing] Add local kube support for load tests by @RodrigoVillar in #3986
- Add a label to XSVM tests by @joshua-kim in #3991
- [tmpnet] Avoid port forwarding when running in a kube cluster by @maru-ava in #3997
- Add support for VM HTTP2 handlers by @joshua-kim in #3294
- Move HTTP2 routing information into headers by @joshua-kim in #4001
- Clarify field names for simplex p2p messages by @samliok in #4002
- Remove gzip middleware from API server by @mpignatelli12 in #4005
- fix: allow for load tests to run in-cluster by @RodrigoVillar in #4003
- chore: update libevm version by @alarso16 in #4006
- Add support for XSVM grpc server reflection by @joshua-kim in #4010
- fix: update log commands for stopping collectors by @RodrigoVillar in #4011
- [tmpnet] Enure node config is saved on restart for both runtimes by @maru-ava in #4015
- BLS Components for Simplex by @samliok in #3993
- Capitalize secrets references by @StephenButtolph in #4018
- build: update
libevmtov1.13.14-0.3.0.rc.1by @alarso16 in #4023 - Allow internal messages from disallowed nodeIDs by @StephenButtolph in #4024
- optimize historical range by @rrazvan1 in #3658
New Contributors
- @mpignatelli12 made their first contribution in #4005
- @alarso16 made their first contribution in #4006
Full Changelog: v1.13.1...v1.13.2
Fortuna.1 - LibEVM Migration
This version is backwards compatible to v1.13.0. It is optional, but encouraged.
The plugin version is updated to 40 all plugins must update to be compatible.
APIs
- Removed
avm.getAddressTxsapi - Added L1 validators to
platformvm.GetCurrentValidatorsclient implementation
Configs
- Removed
--tracing-enabledand addeddisabledas an option to--tracing-exporter-type - Removed AVM indexer configs
index-transactionsindex-allow-incomplete
What's Changed
- Export tmpnet functions for CLI interface by @felipemadero in #3727
- Use IPv4 addresses if possible by @StephenButtolph in #3812
- [ci] Source shellcheck from nix instead of installing via script by @maru-ava in #3811
- [ci] Use SHAs instead of tags for 3rd-party github actions by @maru-ava in #3822
- [tmpnet] Add collector log path to readiness check log output by @maru-ava in #3823
- Add context for errors in proposervm
repairAcceptedChainByHeightby @joshua-kim in #3818 - [ci] Enable run-monitored-tmpnet-cmd to use a remote flake file by @maru-ava in #3820
- Add context to errors in
avmby @joshua-kim in #3821 - Remove block reindexing after Etna by @StephenButtolph in #3813
- Update protobuf dependencies to the same version as nix packages by @maru-ava in #3828
- update: platformvm config doc by @ashucoder9 in #3694
- Expose merkledb defaults by @joshua-kim in #3748
- [tmpnet] Add table of contents to README by @maru-ava in #3837
- fix(metrics): fix c-chain metrics not reporting by @darioush in #3835
- [tmpnet] Update script to run instead of install by @maru-ava in #3830
- [ci] Update to use commit SHAs for non-floating tags by @maru-ava in #3834
- [ci] Configure action/setup-go to read golang version from go.mod by @maru-ava in #3825
- [nix] Install protobuf codegen binaries in the dev shell by @maru-ava in #3829
- [tmpnet] Remove obsolete readme content by @maru-ava in #3827
- [docs] Document requirement to install modern bash on macos by @maru-ava in #3841
- refactor: use the built-in max/min to simplify the code by @evenevent in #3844
- Update BLST to v0.3.14 to support Go 1.24 by @yacovm in #3846
- chore: allow individuals to extend
direnvconfig by @ARR4N in #3847 - [tmpnet] s/Network.ChainConfigs/Network.PrimaryChainConfigs/ by @maru-ava in #3854
- Remove plugins/ from .gitignore by @maru-ava in #3862
- fix: record wrong nil
errby @tinyfoxy in #3851 - [tmpnet] Provide genesis, subnet and chain config via content flags by @maru-ava in #3857
- Make sure inner state summary accept is called by @aaronbuchwald in #3831
- avoid tmpnet to create empty genesis on disk by @felipemadero in #3868
- Remove GetAddressTxs by @joshua-kim in #3872
- [tmpnet] Fixed faulty error handling on bootstrap failure by @maru-ava in #3873
- Set
subnets.Config.ConsensusParametersto serialize with omitempty by @maru-ava in #3874 - [tmpnet] Update rpc version check to tolerate usage of
go runby @maru-ava in #3869 - Update coreth to v0.15.1-rc.0 by @StephenButtolph in #3875
- [tmpnet] Ensure Node has a reference to Network by @maru-ava in #3870
- [tooling] Simplify avalanchego build script by @maru-ava in #3861
- Simplify P-Chain block has changes check by @StephenButtolph in #3880
- [tmpnet] Switch back to using maps for subnet config by @maru-ava in #3877
- [tmpnet] Refactor runtime configuration in preparation for kube by @maru-ava in #3867
- [tooling] Add scripts that build+run tools and put them in the path by @maru-ava in #3878
- [tooling] Add support for the Task (go-task) task runner by @maru-ava in #3863
- [Docs] Fix links and make paths absolute by @martineckardt in #3885
- Remove unused constant checkIndexedFrequency by @yacovm in #3887
- [tmpnet] Unify start network flag usage between e2e and tmpnetctl by @maru-ava in #3871
- [tmpnet] Avoid serializing the node data directory by @maru-ava in #3881
- [tmpnet] Rename NodeProcess to ProcessRuntime by @maru-ava in #3890
- wrap db in initDatabase with corruptable db by @ceyonur in #3892
- [tmpnet] Switch FlagsMap from map[string]any to map[string]string by @maru-ava in #3884
- [tmpnet] Ensure tmpnet methods always have a logger by @maru-ava in #3893
- [tmpnet] Ensure all node runtime methods accept a context by @maru-ava in #3894
- [tmpnet] Move WaitForHealthy from a function to a tmpnet.Node method by @maru-ava in #3896
- Grant marun ownership of tooling configuration by @maru-ava in #3895
- Bump golang.org/x/net from 0.36.0 to 0.38.0 by @dependabot in #3889
- Fix typos by @omahs in #3908
- Fix typos and add missing hyphens in README files by @Dimitrolito in #3583
- Fix typos in iterator.go by @Marcofann in #3809
- Use EstimateBaseFee in e2e tests by @StephenButtolph in #3782
- docs: fix flag name to
--proposervm-min-block-delayby @ceyonur in #3911 - fix rpcchainvm handling for arbitrary length http body by @joshua-kim in #3910
- Add git to nix packages by @StephenButtolph in #3912
- refactor: use the built-in max/min to simplify the code by @careworry in #3913
- Update codeowners by @joshua-kim in #3915
- [tmpnet] Delegate writing of the flag file to the runtime by @maru-ava in #3897
- [tmpnet] Move monitoring label handling to node by @maru-ava in #3898
- Move database creation to database factory package by @ceyonur in #3899
- Update owner of CODEOWNERS by @StephenButtolph in #3920
- update merkledb codeowners by @rrazvan1 in #3919
- chore: fix some comments by @standstaff in #3584
- Support UnmarshalJSON for
ExporterTypeby @RodrigoVillar in #3565 - Fix change/range proofs + simplify the code by @rrazvan1 in #3688
- [ci] Fix windows build job by reverting to use build script by @maru-ava in #3921
- update: service.md for callouts by @ashucoder9 in #3832
- Reintroduce P-chain block reindexing by @StephenButtolph in #3883
- Bump bufbuild/buf-action from 1.1.0 to 1.1.1 by @dependabot in #3855
- Bump github/codeql-action from 3.28.13 to 3.28.16 by @dependabot in #3916
- Ensure HTTP headers are propagated through the rpcchainvm by @joshua-kim in #3917
- Document acp-118 message verification by @StephenButtolph in #3925
- Add P-Chain state test by @StephenButtolph in #3924
- Document ACP-77 handling of 0 weight requests by @StephenButtolph in #3926
- Refactor cache implementations by @StephenButtolph in #3239
- Fix
proposerMinBlockDelaylocation i...
Fortuna - C-Chain Fee Overhaul
This upgrade consists of the following Avalanche Community Proposal (ACP):
- ACP-176 Dynamic EVM Gas Limits and Price Discovery Updates
The ACP in this upgrade goes into effect at 11 AM ET (3 PM UTC) on Tuesday, April 8th, 2025 on Mainnet.
All Fortuna supporting Mainnet nodes should upgrade before 11 AM ET, April 8th 2025.
The plugin version is unchanged at 39 and is compatible with version v1.12.2.
Ubuntu Focal Deprecation
Because Ubuntu 20.04 is reaching the end of its support window, the binaries attached to this release do not support Ubuntu 20.04 (Focal).
APIs
- Added ProposerVM block timestamp metrics:
avalanche_proposervm_last_accepted_timestamp - Added network health check to alert if a primary network validator has no ingress connections. Runs a configurable time after startup or 10 minutes by default.
Configs
- Added:
--proposervm-min-block-duration--network-no-ingress-connections-grace-periodto configure how long after startup it is expected for a Mainnet validator to have received an ingress connection.
What's Changed
- Implement traversal based early termination by @yacovm in #3337
- Add networked-signer tests by @richardpringle in #3613
- Remove unused code by @yacovm in #3682
- chore(proposervm): timestamp metrics for block acceptance by @ARR4N in #3680
- remove dependency of validator.State from BitSetSignature.Verify by @tsachiherman in #3679
- [docker] Optimize build time by copying and downloading deps first by @maru-ava in #3683
- fix: broken link in README.md by @DeVikingMark in #3681
- [docker] Silence remaining InvalidDefaultArgInFrom warnings by @maru-ava in #3684
- [tmpnet] Update subnet configuration in README by @maru-ava in #3686
- testing: improve e2e test bootstrapping by @tsachiherman in #3690
- [tmpnet] Update URI and StakingAddress usage in support of kube by @marun in #3665
- [tmpnet] Re-enable reuse of dynamically allocated API ports by @maru-ava in #3697
- fix spelling issues by @futreall in #3700
- fix: correct typos in parser.go and tmpnet documentation by @avorylli in #3712
- fix: typos in documentation files by @maximevtush in #3710
- Fail fast in tests if avalancheGo executable isn't an absolute path by @yacovm in #3707
- [ci] Fix metrics link annotation emitted for e2e and upgrade jobs by @maru-ava in #3713
- Remove Mock Mempool by @joshua-kim in #3687
- cleanup(tmpnet): resolve chainconfig post-etna TODO by @darioush in #3720
- Update to go 1.23.6 by @joshua-kim in #3722
- docs: Fix grammatical errors and improve clarity in documentation and comments by @VolodymyrBg in #3716
- [testing] Replace script-based tool installation with nix by @maru-ava in #3691
- Remove unnecessary function by @richardpringle in #3723
- bump coreth to master by @darioush in #3724
- Make
bls.Signerapi fallible by @richardpringle in #3696 - Add comment to seemingly dead code by @richardpringle in #3721
- Bump coreth by @richardpringle in #3728
- Comment on the need for
CGO_ENABLED=1to support cross-compilation by @maru-ava in #3735 - [ci] Update to golangci-lint version compatible with go 1.23 by @maru-ava in #3739
- [testing] Provide more logging context for SynchronizedBeforeSuite by @maru-ava in #3741
- refactor: export PeerSample by @Elvis339 in #3745
- [antithesis] Set AVAGO_PLUGIN_DIR for VM images by @maru-ava in #3751
- [ci] Drop support for Ubuntu 20.04 by @maru-ava in #3737
- Fix spelling errors in
majority.go,minority.go,compressor.go, andlogger.goby @tomasandroil in #3738 - [ci] Simplify tmpnet monitoring action by @maru-ava in #3736
- Remove apostrophe from Dockerfile comments by @aaronbuchwald in #3706
- fix error 404 link README.md by @futreall in #3750
- fix: typos in documentation files by @leopardracer in #3733
- Add With and WithOptions receivers to the Logger interface by @iansuvak in #3729
- [tmpnet] Minimize duration of tx acceptance for e2e testing by @maru-ava in #3685
- Remove unused
ForceCreateChainfunction fromtestManagerby @strmfos in #3755 - chore: make function comments match function names by @rustco in #3757
- L1 validator eviction block validity by @StephenButtolph in #3758
- Add ACP-176 e2e tests by @StephenButtolph in #3749
- [tmpnet] Deploy collectors with golang to simplify cross-repo use by @maru-ava in #3692
- fix spelling issues config_test.go by @futreall in #3760
- [tmpnet] Add check for collection of logs and metrics to custom github action by @maru-ava in #3740
- Deprecate the
snow.Context.Lockby @StephenButtolph in #3762 - Name F-Upgrade Fortuna by @StephenButtolph in #3761
- Add CodecID to ICM README by @iansuvak in #3759
- Update CODEOWNERS s/marun/maru-ava/ by @maru-ava in #3768
- Support caller-defined namespaces in merkledb by @joshua-kim in #3747
- Fix empty standard block check by @StephenButtolph in #3775
- Enable empty standard block check by @StephenButtolph in #3776
- Restrict ProposerVM P-chain height advancement by @StephenButtolph in #3777
- Add canoto serialization support to the block context by @aaronbuchwald in #3709
- Remove support for AVM tx checksums by @joshua-kim in #3774
- [ci] Disable monitoring for jobs of PRs of fork branches by @maru-ava in #3781
- Update db_test.go by @sky-coderay in #3765
- chore: fix some function names in comment by @tcpdumppy in #3773
- Implement ACP-118 Aggregator by @joshua-kim in #3394
- Print git commit version upon startup by @yacovm in #3771
- chore(nix): add darwin.apple_sdk.frameworks.Security by @darioush in #3769
- Add comment to SendConfig documenting how to broadcast by @aaronbuchwald in #3783
- refactor: use a more straightforward return value by @fuyangpengqi in #3726
- [ci] Stop emitting grafana link as an annotation by @maru-ava in #3767
- Remove Etna activation banner by @StephenButtolph in #3789
- Upgrade canoto to v0.13.3 by @tsachiherman in #3790
- Healthcheck for zero ingress connection count by @yacovm in #3719
- Timely halt Avalanche engine by @yacovm in #3792
- [docker] Update all images to debian12/bookworm by @maru-ava in #3798
- [ci] Move monitoring check from github action to code by @maru-ava in #3766
- [tmpnet] Start kind cluster with golang by @maru-ava in #3780
- Fix flake TestIngressConnCount by @yacovm in #3799
- [tmpnet] Rename tmpnetctl main package from cmd to tmpnetctl by @maru-ava in #3787
- Improve check-clean CI script by @StephenButtolph in #3800
- Bump golang.org/x/net from ...