Releases: ava-labs/avalanchego
Etna - Reinventing Subnets - 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 upgrade consists of the following Avalanche Community Proposals (ACPs):
- ACP-77 Reinventing Subnets
- ACP-103 Add Dynamic Fees to the P-Chain
- ACP-118 Warp Signature Interface Standard
- ACP-125 Reduce C-Chain minimum base fee from 25 nAVAX to 1 nAVAX
- ACP-131 Activate Cancun EIPs on C-Chain and Subnet-EVM chains
- ACP-151 Use current block P-Chain height as context for state verification
The changes in the upgrade go into effect at 11 AM ET (4 PM UTC) on Monday, November 25th, 2024 on the Fuji testnet.
All Fuji nodes must upgrade before 11 AM ET, November 25th 2024.
The plugin version is unchanged at 38
and is compatible with version v1.11.13
.
Full Changelog: v1.11.13...v1.12.0-fuji
Durango.13 - Etna Compatible
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is updated to 38
all plugins must update to be compatible.
APIs
- Added
platform.getL1Validator
- Added
platform.getProposedHeight
- Updated
platform.getValidatorsAt
to accept"proposed"
as validheight
input
Configs
- Added P-chain configs
"l1-weights-cache-size"
"l1-inactive-validators-cache-size"
"l1-subnet-id-node-id-cache-size"
Fixes
- Fixed metrics initialization in the RPCChainVM. This could cause crashes during startup if metrics were requested during VM initialization.
- Fixed compilation on macos 14.7 and higher
- Fixed avalanchego wallet usage with ledger >=v0.8.4
- Fixed missing
NodeIDs
argument in theinfo.peers
client implementation - Fixed
getSubnetID
state tracing
What's Changed
- [testing] Double image build timeout for bootstrap monitor e2e by @marun in #3468
- [antithesis] Double the duration of sanity checks by @marun in #3475
- Properly initialize metrics in rpcchainVM by @yacovm in #3477
- Cleanup editorconfig by @dhrubabasu in #3473
- Update avalanche ledger go package by @sukantoraymond in #3456
- [testing] Enable config of log format for bootstrap monitor by @marun in #3467
- cache signatures only in acp118 handler by @ceyonur in #3474
- Introduce and use
database.WithDefault
by @StephenButtolph in #3478 - Evict recentlyAccepted blocks based on wall-clock time by @iansuvak in #3460
- fix improper use of FailNow in testing by @tsachiherman in #3479
- [ACP 151] Use current block's P-Chain height as context for verifying state of the inner block by @iansuvak in #3459
- [tmpnet] Add --start-network to support hypersdk MODE=run by @marun in #3465
- [e2e] Check network health after bootstrap checks by @marun in #3466
- ACP-77: Add ConversionID to state by @StephenButtolph in #3481
- Make bootstrapping handle its own timeouts by @yacovm in #3410
- Wrap
TestDiffExpiry
sub-tests int.Run
by @StephenButtolph in #3483 - Move RPC metrics registration after its client's initialization by @yacovm in #3488
- database: add applicable dbtests for linkeddb by @darioush in #3486
- Add SoV Excess to P-chain state by @StephenButtolph in #3482
- Remove deprecated X-chain pubsub server by @StephenButtolph in #3490
- Update SoV struct to align with latest ACP-77 spec by @StephenButtolph in #3492
- Register VM and snowman metrics after chain creation by @yacovm in #3489
- Skip Flaky Test by @joshua-kim in #3495
- Add request to update
releases.md
in PR template by @ceyonur in #3476 - ACP-77: Update P-chain state staker tests by @StephenButtolph in #3494
- ACP-77: Write subnet public key diffs to state by @StephenButtolph in #3487
- Add
Deregister
tometrics.MultiGatherer
interface by @StephenButtolph in #3498 - ACP-77: Add subnetIDNodeID struct by @StephenButtolph in #3499
- Use subnet public key diffs after Etna is activated by @StephenButtolph in #3502
- Split
writeCurrentStakers
into multiple functions by @StephenButtolph in #3500 - [tmpnet] Refactor bootstrap monitor kubernetes functions for reuse by @marun in #3446
- Add NumSubnets to the validator manager interface by @StephenButtolph in #3504
- Clarify partial sync flag by @michaelkaplan13 in #3505
- Update BLST to v0.3.13 by @yacovm in #3506
- Restrict public keys prior to TLS handshake by @yacovm in #3501
- ACP-77: Filter the inactive validator from block proposals and tx gossip by @StephenButtolph in #3509
- [testing] Enable bootstrap testing of partial sync by @marun in #3508
- Rename
constantsAreUnmodified
toimmutableFieldsAreUnmodified
by @StephenButtolph in #3513 - Accept info.Peers args by @cam-schultz in #3515
- Return shallow copy of validator set in platformVM's validator manager by @yacovm in #3512
- Add
ValidatorWeightDiff
Add
andSub
helpers by @StephenButtolph in #3514 - ACP-77: Add caching to SoV DB helpers by @StephenButtolph in #3516
- Add script to configure metrics and log collection from a local node by @marun in #3517
- ACP-77: Implement validator state by @StephenButtolph in #3388
- ACP-77: Reduce block gossip log level by @StephenButtolph in #3519
- ACP-77: Implement ids.ID#Append by @StephenButtolph in #3518
- ACP-103: Document and update genesis test fee configs by @StephenButtolph in #3520
- ACP-77: Deactivate SoVs without sufficient fees by @StephenButtolph in #3412
- ACP-77: Allow legacy validator removal after conversion by @StephenButtolph in #3521
- ACP-77: Refactor e2e test by @StephenButtolph in #3522
- ACP-77: Update
ConvertSubnetTx
by @StephenButtolph in #3397 - Remove stutter in P-chain wallet builder by @StephenButtolph in #3524
- Clarify EndAccumulatedFee comment by @michaelkaplan13 in #3523
- [tmpnet] Misc cleanup for monitoring tooling by @marun in #3527
- Remove P-chain txsmock package by @StephenButtolph in #3528
- Unexport all P-Chain visitors by @StephenButtolph in #3525
- Standardize P-Chain tx visitor order by @StephenButtolph in #3529
- ACP-77: Implement
RegisterSubnetValidatorTx
by @StephenButtolph in #3420 - ACP-77: Refactor P-Chain configs by @StephenButtolph in #3533
- Add additional BLS benchmarks by @StephenButtolph in #3538
- ACP-77: Refactor subnet auth verification by @StephenButtolph in #3537
- ACP-77: Implement
SetSubnetValidatorWeightTx
by @StephenButtolph in #3421 - Rename error to be more generic by @StephenButtolph in #3543
- fix getSubnetIDTag in traced state by @ceyonur in #3542
- Add
platform.getSubnetOnlyValidator
API by @StephenButtolph in #3540 - Add SoV deactivation owner support to the P-chain wallet by @StephenButtolph in #3541
- ACP-77: Implement Warp message verification by @StephenButtolph in #3423
- ACP-77: Current validators API for SoV by @ceyonur in #3404
- ACP-77: Implement Warp message signing by @StephenButtolph in #3428
- ACP-77: Implement IncreaseBalanceTx by @StephenButtolph in #3429
- ACP-77: Implement DisableSubnetValidatorTx by @StephenButtolph in #3440
- Improve P-Chain error messages by @StephenButtolph in #3536
- Add Etna logging by @StephenButtolph in #3454
- Add Etna P-chain metrics by @StephenButtolph in #3458
- Clarify benched field by @samliok in #3545
- [tmpnet] Watch for and report FATAL log entries on node startup by @marun in #3535
- Allow non primary network validators to request all peers by @cam-schultz in #3491
- Add
platform.getProposedHeight
API by @iansuvak in http...
Durango.12 - Etna Prep
This version is backwards compatible to v1.11.0. It is optional, but strongly encouraged.
The plugin version is unchanged at 37
and is compatible with version v1.11.11
.
What's Changed
- Implement
ConvertSubnetTx
by @dhrubabasu in #3217 - [e2e] Emit a duration-scoped grafana link for each test by @marun in #3340
- [tmpnet] Avoid calling Stat in advance of Read/Open by @marun in #3356
- UnmarshalFrom support in codec.Codec by @containerman17 in #3335
- Include stacktrace in shutdown timeout message by @StephenButtolph in #3360
- [testing] Cleanup ginkgo imports by @marun in #3362
- Abort query if not enough stake is connected by @yacovm in #3345
- Enable skipping build of the image with race-detection enabled by @marun in #3357
- Log a fatal before exit if node cannot be created by @aaronbuchwald in #3375
- Avoid including 'failed' in debug log messages by @marun in #3361
- Dump stacktrace upon SIGABRT by @yacovm in #3366
- Add AccruedFees to state.Chain interface by @StephenButtolph in #3371
- Add SoV state struct by @StephenButtolph in #3370
- Replace iterator equality helper by @StephenButtolph in #3380
- Use math.Ln2 where possible by @StephenButtolph in #3383
- Implement ExpiryEntry by @StephenButtolph in #3382
- Implement iterator deduplicator by @StephenButtolph in #3381
- Disable Etna by default on local networks by @michaelkaplan13 in #3364
- Implement ACP-77 fee calculations by @StephenButtolph in #3367
- feat(GitHub): migrate configure-aws-credentials steps to IAM role assumption by @adutchak in #3377
- Add Expiry Replay Protection by @StephenButtolph in #3379
- chore: remove redundant symbol in tests/antithesis/README.md by @tiaoxizhan in #3387
- Grc 243 migrate static aws credentials by @adutchak in #3386
- chore: fix comment by @cocoyeal in #3389
- ACP-77: Update
SecondsUntil
to prevent under-charging by @StephenButtolph in #3395 - Fix node initialization in snowman test by @yacovm in #3398
- Update to latest coreth dependency version by @yacovm in #3399
- Update ubuntu versions by @StephenButtolph in #3401
- Remove ami support by @StephenButtolph in #3402
- Implement acp-77 fee configs by @StephenButtolph in #3396
- Ensure slices are zeroed by @StephenButtolph in #3407
- Move
validators.TestManager
tovalidatorstest.Manager
by @StephenButtolph in #3408 - Fix
TestSubnetValidatorBLSKeyDiffAfterExpiry
by @StephenButtolph in #3409 - Remove subnetIDs from uptime manager by @ceyonur in #3235
- Simplify common.Engine API by @yacovm in #3406
- Bound GetNextStakerChangeTime for ACP-77 by @StephenButtolph in #3411
- Migrate
x/sync
top2p
by @joshua-kim in #3106 - Remove stale expiries in AdvanceTimeTo by @StephenButtolph in #3415
- Remove mocked iterator by @StephenButtolph in #3417
- Parsing acp-77 warp payloads by @darioush in #3270
- Set local C-Chain genesis timestamp to InitiallyActiveTime by @michaelkaplan13 in #3413
- Fix gossip unit test by @joshua-kim in #3422
- [e2e] Add wallet balance logging to staking rewards test by @marun in #3426
- [e2e] Enable supplying ginkgo seed to e2e test script by @marun in #3432
- [antithesis] Add curl to antithesis images by @marun in #3433
- ACP-118: Implement p2p handler by @joshua-kim in #3434
- ACP-77: Update warp messages to align with spec changes by @StephenButtolph in #3430
- [ci] Add test binary and image to support bootstrap testing by @marun in #3352
- Change misleading protobuf comments by @yacovm in #3435
- Bump golang to 1.22.8 by @marun in #3436
- Remove unused metrics registry from sync ManagerConfig by @aaronbuchwald in #3439
- Shrink proposerVM minRecentlyAcceptedWindowSize to 0 by @iansuvak in #3431
- Publish last accepted height through chits by @yacovm in #3441
- Include untracked files for clean branch by @StephenButtolph in #3442
- [testing] Fix bootstrap monitor e2e image build error check by @marun in #3443
- ACP-77: Allow xsvm to sign arbitrary warp messages by @StephenButtolph in #3448
- Use netip.AddrPort rather than string for node.ProcessContext by @StephenButtolph in #3449
- Remove unused
meteredHandler
struct type by @joshua-kim in #3450 - Add ACP-118 caching support by @StephenButtolph in #3451
- [testing] Enable verbose image build output for bootstrap-monitor e2e by @marun in #3461
- Remove unexpected block unwrapping by @StephenButtolph in #3455
- [ci] Update MacOS jobs to macos-14 by @marun in #3462
- ACP-77: Include validator capacity into the fee config by @StephenButtolph in #3464
- Update versions for v1.11.12 by @StephenButtolph in #3470
New Contributors
- @containerman17 made their first contribution in #3335
- @michaelkaplan13 made their first contribution in #3364
- @adutchak made their first contribution in #3377
- @tiaoxizhan made their first contribution in #3387
Full Changelog: v1.11.11...v1.11.12
Durango.11 - SoV Networking
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is updated to 37
all plugins must update to be compatible.
APIs
- Updated JSON marshalling of the
Memo
field to follow best practices - Added
info.upgrades
- Added
platform.getFeeConfig
- Added
platform.getFeeState
- Deprecated subnet uptimes
info.uptimes
with non-primary network subnetIDs is deprecatedinfo.peers
observedSubnetUptimes
is deprecatedplatform.getCurrentValidators
uptime
andconnected
are deprecated for non-primary network subnetIDs.avalanche_network_node_subnet_uptime_weighted_average
metric is deprecatedavalanche_network_node_subnet_uptime_rewarding_stake
metric is deprecated
- Added
avalanche_network_tracked_peers
metric - Added
avalanche_network_tracked_subnets
metric - Removed
avalanche_network_tracked_ips
metric - Added disconnected validators to the health check result
Configs
- Added upgrade config
--upgrade-file
--upgrade-file-content
- Added dynamic fees config
--dynamic-fees-bandwidth-weight
--dynamic-fees-read-weight
--dynamic-fees-write-weight
--dynamic-fees-compute-weight
--dynamic-fees-max-gas-capacity
--dynamic-fees-max-gas-per-second
--dynamic-fees-target-gas-per-second
--dynamic-fees-min-gas-price
--dynamic-fees-excess-conversion-constant
Fixes
- Fixed panic when tracing is enabled
- Removed duplicate block signature verifications during bootstrapping
- Fixed racy timer clearing in message throttling
What's Changed
- [ci] Remove defunct network outage sim workflow by @marun in #3234
- chore: allow test-only imports in
*test
and/tests/**
packages by @ARR4N in #3229 - Add benchmarks for add and sub fee dimensions by @abi87 in #3222
- Remove deadcode by @dhrubabasu in #3086
- Parallelize BatchedParseBlock by @yacovm in #3227
- [ci] Lint on non-test code importing packages from /tests by @marun in #3214
- Merge unlocked stake outputs by @StephenButtolph in #3231
- ACP 118 reference implementation by @cam-schultz in #3218
- Storage OpenBSD/adJ by @vtamara in #2809
- Remove unused error from fee calculator creation by @StephenButtolph in #3245
- Rename Transitive snowman to Engine snowman by @yacovm in #3244
- Simplify static fee calculations by @StephenButtolph in #3240
- Remove targetBlockSize arg by @StephenButtolph in #3249
- Add dynamic fees config by @StephenButtolph in #3250
- Remove unused Samplers by @dhrubabasu in #3219
- Inline
verifier
struct creation by @dhrubabasu in #3252 - Add fee.State to P-chain state by @StephenButtolph in #3248
- Fix comparison comment in snowflake algorithms by @yacovm in #3256
- Add network upgrade config by @aaronbuchwald in #3207
- [vms/platformvm] Add
VerifyWithContext
toBlock
s by @dhrubabasu in #3236 - [ci] Switch to v2 of docker compose plugin by @marun in #3259
- Minimize signature verification when bootstrapping by @yacovm in #3255
- [vms/platformvm] Add tracking of a Subnet manager by @dhrubabasu in #3126
- Remove trackedSubnet check for explicitly named peers in network.Send() by @iansuvak in #3258
- refactor: introduce
*test
packages in lieu of//go:build test
by @ARR4N in #3238 - [e2e] Enhance post-test bootstrap checks by @marun in #3253
- [e2e] Abstract usage of ginkgo with a new test context by @marun in #3254
- Update code owners by @StephenButtolph in #3262
- [antithesis] Refactor image build for reuse by other repos by @marun in #3198
- Expose upgrade config in the info API by @StephenButtolph in #3266
- [antithesis] Ensure references to pushed images are qualified by @marun in #3264
- Fix spelling by @nnsW3 in #3267
- refactor: rename
*test.Test*
identifiers by @ARR4N in #3260 - Separate e2e tests by etna activation by @StephenButtolph in #3268
- Implement P-chain ACP-103 complexity calculations by @StephenButtolph in #3209
- Implement dynamic fee calculator by @StephenButtolph in #3211
- [tmpnet] Add Network.GetNetworkID() to get ID of a running network by @marun in #3269
- Disable
TransformSubnetTx
post-Etna by @dhrubabasu in #3152 - [tmpnet] Fail node health check if node is not running by @marun in #3274
- [tmpnet] Enable network restart to simplify iteration by @marun in #3272
- Add StoppedTimer helper by @marun in #3280
- Fix race in timer stoppage by @StephenButtolph in #3281
- [tmpnet] Add check for vm binaries to network and node start by @marun in #3273
- Refactor P-chain Builder by @StephenButtolph in #3282
- chore: fix some comments by @drawdrop in #3289
- Update write path of tmpnet subnet config by @aaronbuchwald in #3290
- add network upgrades to chain ctx by @ceyonur in #3283
- Implement dynamic fee builder by @StephenButtolph in #3232
- bump coreth past upgrade schedule refactor by @darioush in #3278
- Remove cross-chain requests by @darioush in #3277
- wallet: obtain subnet owners by using P-Chain's getSubnet API call by @felipemadero in #3247
- [antithesis] Add tmpnet support to workloads to simplify development by @marun in #3215
- Refactor e2e tests for P-chain tests by @StephenButtolph in #3295
- Fix e2e tests to support dynamic fees by @StephenButtolph in #3296
- Improve error message of dynamic fee calculations by @StephenButtolph in #3297
- Reduce dynamic fees variability to ease testing by @StephenButtolph in #3298
- deprecate uptime apis by @ceyonur in #3226
- [antithesis] Fix broken flag handling and improve image testing by @marun in #3299
- Add P-chain fee APIs by @StephenButtolph in #3286
- [tmpnet] Add support for checking rpcchainvm version compatibility by @marun in #3276
- Rename gas price calculation function by @StephenButtolph in #3302
- Remove duplicate fork definitions by @StephenButtolph in #3304
- Restrict
Owner
usage after a Subnet manager is set by @dhrubabasu in #3147 - SoV networking support by @StephenButtolph in #2951
- [antithesis] Enable custom plugin dir for subnet-evm by @marun in #3305
- Refactor state tests to always use initialized state by @StephenButtolph in #3310
- Remove mock for
Versions
interface by @dhrubabasu in #3312 - Allow P-chain wallet to be used by the platformvm by @StephenButtolph in #3314
- Remove crosschain leftovers by @ceyonur in #3309
- Rename race condition image tags by @cam-schultz in #3311
- Add .String() to Fork testing utility by @StephenButtolph in #3315
- [antithesis] Update schedule to make room for subnet-evm by @marun in #3317
- [tmpnet] Update monitoring urls from *-experimental to *-poc by @marun in #3306
- Add statetest to replace common test...
Durango.10 - Block Status Removal
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is updated to 36
all plugins must update to be compatible.
APIs
- Renamed
avalanche_{vmName}_plugin_.*
metrics toavalanche_{vmName}_.*
- Renamed
avalanche_{vmName}_rpcchainvm_.*
metrics toavalanche_rpcchainvm_.*
Fixes
- Updated local network validator start times
- Fixed block building timer recalculation when anyone can propose
What's Changed
- Refactor rpcchainvm metrics registration by @StephenButtolph in #3170
- Add example reward calculator usage by @StephenButtolph in #3171
- Send AppErrors from p2p SDK by @joshua-kim in #2753
- build(tests): require
//go:build test
tag if importing test packages outside of_test.go
files by @ARR4N in #3173 - Include VM path in plugin version error by @StephenButtolph in #3178
- [ci] Simplify ci monitoring with custom actions by @marun in #3161
- [vms/avm] Replace
strings.Replace
withfmt.Sprintf
in tests by @dhrubabasu in #3177 - Changes to support teleporter e2e tests by @feuGeneA in #3179
- Reduce usage of
getBlock
in consensus by @StephenButtolph in #3151 - [ci] Enable run-monitored-tmpnet-cmd reuse by other repos by @marun in #3186
- Restructured fee calculator API by @abi87 in #3145
- P-Chain: Block-level fee Calculator by @abi87 in #3032
- [ci] Allow antithesis test setups to be triggered independently by @marun in #3183
- [antithesis] Fix image version separator in triggering workflows by @marun in #3191
- Remove
block.Status
by @StephenButtolph in #3158 - [antithesis] Refactor compose config generation to simplify reuse by @marun in #3184
- [antithesis] Add schedule for workflows by @marun in #3192
- Update
golangci-lint
tov1.59.1
by @dhrubabasu in #3195 - [ci] Ensure monitoring action compatibility for other repos by @marun in #3193
- chore: fix some comments for struct field by @linghuying in #3194
- [antithesis] Configure workload history by @marun in #3196
- [vms/proposervm] Set build block time correctly when anyone can propose by @dhrubabasu in #3197
- chore: fix comment by @polymaer in #3201
- Make math.Add64 and math.Mul64 generic by @StephenButtolph in #3205
- Implement ACP-103 fee package by @StephenButtolph in #3203
- [antithesis] Fix job duration by @marun in #3206
- [vms/platformvm]
RegisterDUnsignedTxsTypes
->RegisterDurangoUnsignedTxsTypes
by @dhrubabasu in #3212 - chore: fix some comments by @yingshanghuangqiao in #3213
- Fix typos by @omahs in #3208
- Cleanup fee.staticCalculator by @StephenButtolph in #3210
- typo by @meaghanfitzgerald in #3220
- add getSubnet to p-chain api reference by @felipemadero in #3204
- [ci] Update fuzz workflows to target master branch by @marun in #3221
- Cleanup wallet tests by @StephenButtolph in #3230
- Update local validator start time by @ceyonur in #3224
New Contributors
- @feuGeneA made their first contribution in #3179
- @linghuying made their first contribution in #3194
- @polymaer made their first contribution in #3201
- @yingshanghuangqiao made their first contribution in #3213
- @omahs made their first contribution in #3208
Full Changelog: v1.11.9...v1.11.10
Durango.9 - Consensus Engine Improvements
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is unchanged at 35
and is compatible with versions v1.11.3-v1.11.8
.
APIs
- Updated health metrics to use labels rather than namespaces
- Added consensus poll termination metrics
Configs
- Added
--version-json
flag to output version information in json format
Fixes
- Fixed incorrect WARN log that could previously be emitted during start on nodes with slower disks
- Fixed incorrect ERROR log that could previously be emitted if a peer tracking a subnet connects during shutdown
- Fixed ledger dependency on erased commit
- Fixed protobuf dependency to resolve compilation issues in some cases
- Fixed C-chain filename logging
What's Changed
- Error driven snowflake multi counter by @aaronbuchwald in #3092
- [antithesis] Add ci jobs to trigger test runs by @marun in #3076
- bump ledger-avalanche dependency to current main branch by @felipemadero in #3115
- [antithesis] Fix image publication job by quoting default tag value by @marun in #3112
- [e2e] Fix excessively verbose output from virtuous test by @marun in #3116
- Remove .Status() from .IsPreferred() by @StephenButtolph in #3111
- Add early termination metrics case by case by @aaronbuchwald in #3093
- Update C-chain wallet context by @StephenButtolph in #3118
- Standardize wallet tx acceptance polling by @StephenButtolph in #3110
- [antithesis] Remove assertions incompatible with fault injection by @marun in #3104
- Use health labels by @StephenButtolph in #3122
- Remove
Decided
from theConsensus
interface by @StephenButtolph in #3123 - Remove .Status() from .Accepted() by @StephenButtolph in #3124
- Refactor
event.Blocker
intojob.Scheduler
by @StephenButtolph in #3125 - Remove block lookup from
deliver
by @StephenButtolph in #3130 - [chains/atomic] Remove a nested if statement by @dhrubabasu in #3135
- [vms/platformvm] Minor grammer fixes in
state
struct code comments by @dhrubabasu in #3136 - bump protobuf (fixes some build issues) by @darioush in #3142
- Emit version in JSON format for --json-version by @marun in #3129
- Repackaged NextBlockTime and GetNextStakerChangeTime by @abi87 in #3134
- [vms/platformvm] Cleanup execution config tests by @dhrubabasu in #3137
- [tmpnet] Enable bootstrap of subnets with disjoint validator sets by @marun in #3138
- Simplify dependency registration by @StephenButtolph in #3139
- Replace
wasIssued
withshouldIssueBlock
by @StephenButtolph in #3131 - Remove parent lookup from issue by @StephenButtolph in #3132
- Remove status usage from consensus by @StephenButtolph in #3140
- Fix bootstrapping warn log by @joshua-kim in #3156
- chore: fix some comment by @hattizai in #3144
- [ci] Add actionlint job by @marun in #3160
- check router is closing in requests by @ceyonur in #3157
- Use
ids.Empty
instead ofids.ID{}
by @dhrubabasu in #3166 - Replace usage of utils.Err with errors.Join by @joshua-kim in #3167
Full Changelog: v1.11.8...v1.11.9
Durango.8 - Metrics Overhaul
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is unchanged at 35
and is compatible with versions v1.11.3-v1.11.7
.
APIs
- Redesigned metrics to use labels rather than custom namespaces.
What's Changed
- Remove avalanche metrics registerer from consensus context by @StephenButtolph in #3087
- Remove rejection from
consensus.Add
by @StephenButtolph in #3084 - [vms/platformvm] Rename
txstest.Builder
totxstest.WalletFactory
by @dhrubabasu in #2890 - Small metrics cleanup by @StephenButtolph in #3088
- Fix race in test by @StephenButtolph in #3089
- Implement error driven snowflake hardcoded to support a single beta by @aaronbuchwald in #2978
- Replace all chain namespaces with labels by @StephenButtolph in #3053
- add a metrics gauge for built block slot by @tsachiherman in #3048
- [ci] Switch to gh workers for arm64 by @marun in #3090
- [ci] Ensure focal arm64 builds all have their required dependencies by @marun in #3091
- X-chain - consolidate tx creation in unit tests by @abi87 in #2736
- Use netip.AddrPort rather than ips.IPPort by @StephenButtolph in #3094
Full Changelog: v1.11.7...v1.11.8
Durango.7 - Metrics Overhaul Preparation
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is unchanged at 35
and is compatible with versions v1.11.3-v1.11.6
.
APIs
- Added peer's
trackedSubnets
that are not locally tracked to the response frominfo.peers
Configs
- Changed the undocumented
pebble
option for--db-type
to bepebbledb
and documented the option
Fixes
- Removed repeated DB compaction during bootstrapping that caused a significant regression in bootstrapping times
- Fixed C-Chain state-sync crash
- Fixed C-Chain state-sync ETA calculation
- Fixed Subnet owner reported by
platform.getSubnets
after a subnet's owner was rotated
What's Changed
- Expose canonical warp formatting function by @StephenButtolph in #3049
- Remove subnet filter from Peer.TrackedSubnets() by @StephenButtolph in #2975
- Remove optional gatherer by @StephenButtolph in #3052
- [vms/platformvm] Return the correct owner in
platform.GetSubnets
after transfer by @dhrubabasu in #3054 - Add metrics client by @StephenButtolph in #3057
- [vms/platformvm] Replace
GetSubnets
withGetSubnetIDs
inState
by @dhrubabasu in #3055 - Implement
constants.VMName
by @StephenButtolph in #3058 - [testing] Remove superfluous gomega dep by @marun in #3063
- [antithesis] Enable workload instrumentation by @marun in #3059
- Add pebbledb to docs by @StephenButtolph in #3061
- [ci] Remove perpetually failing govulncheck job by @marun in #3069
- Remove api namespace by @StephenButtolph in #3066
- Remove unused metrics namespaces by @StephenButtolph in #3062
- Only compact after executing a large number of blocks by @StephenButtolph in #3065
- Remove network namespace by @StephenButtolph in #3067
- Remove db namespace by @StephenButtolph in #3068
- Remove averager metrics namespace by @StephenButtolph in #3072
- chore: fix function name by @stellrust in #3075
- Select metric by label in e2e tests by @StephenButtolph in #3073
- [tmpnet] Bootstrap subnets with a single node by @marun in #3005
- [antithesis] Skip push for builder image by @marun in #3070
- Implement label gatherer by @StephenButtolph in #3074
New Contributors
- @stellrust made their first contribution in #3075
Full Changelog: v1.11.6...v1.11.7
Durango.6 - Bootstrapping Execution Improvements
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is unchanged at 35
and is compatible with versions v1.11.3-v1.11.5
.
APIs
- Updated cache metrics:
*_cache_put_sum
was replaced with*_cache_put_time
*_cache_get_sum
was replaced with*_cache_get_time
*_cache_hit
and*_cache_miss
were removed and*_cache_get_count
added aresult
label
- Updated db metrics:
*_db_{method}_count
were replaced with*_db_calls
with amethod
label*_db_{method}_sum
were replaced with*_db_duration
with amethod
label*_db_{method}_size_count
were deleted*_db_{method}_size_sum
were replaced with*_db_size
with amethod
label
- Updated p2p message compression metrics:
avalanche_network_codec_{type}_{op}_{direction}_time_count
were replaced withavalanche_network_codec_compressed_count
withdirection
,op
, andtype
labels
- Updated p2p message metrics:
avalanche_network_{op}_{io}
were replaced withavalanche_network_msgs
withcompressed:"false"
,io
, andop
labelsavalanche_network_{op}_{io}_bytes
were replaced withavalanche_network_msgs_bytes
withio
andop
labelsavalanche_network_{op}_compression_saved_{io}_bytes_sum
were replaced withavalanche_network_msgs_bytes_saved
withio
andop
labelsavalanche_network_{op}_compression_saved_{io}_bytes_count
were replaced withavalanche_network_msgs
withcompressed:"true"
,io
, andop
labelsavalanche_network_{op}_failed
were replaced withavalanche_network_msgs_failed_to_send
with anop
label
- Updated p2p sdk message metrics:
*_p2p_{op}_count
were replaced with*_p2p_msg_count
with anop
label*_p2p_{op}_time
were replaced with*_p2p_msg_time
with anop
label
- Updated consensus message queue metrics:
avalanche_{chainID}_handler_unprocessed_msgs_{op}
were replaced withavalanche_{chainID}_handler_unprocessed_msgs_count
with anop
labelavalanche_{chainID}_handler_async_unprocessed_msgs_{op}
were replaced withavalanche_{chainID}_handler_unprocessed_msgs_count
with anop
label
- Updated consensus handler metrics:
avalanche_{chainID}_handler_{op}_count
were replaced withavalanche_{chainID}_handler_messages
with anop
labelavalanche_{chainID}_handler_{op}_msg_handling_count
was deletedavalanche_{chainID}_handler_{op}_msg_handling_sum
were replaced withavalanche_{chainID}_handler_message_handling_time
with anop
labelavalanche_{chainID}_handler_{op}_sum
were replaced withavalanche_{chainID}_handler_locking_time
- Updated consensus sender metrics:
avalanche_{chainID}_{op}_failed_benched
were replaced withavalanche_{chainID}_failed_benched
with anop
label
- Updated consensus latency metrics:
avalanche_{chainID}_lat_{op}_count
were replaced withavalanche_{chainID}_response_messages
with anop
labelavalanche_{chainID}_lat_{op}_sum
were replaced withavalanche_{chainID}_response_message_latencies
with anop
label
- Updated X-chain metrics:
avalanche_X_vm_avalanche_{tx}_txs_accepted
were replaced withavalanche_X_vm_avalanche_txs_accepted
with atx
label
- Updated P-chain metrics:
avalanche_P_vm_{tx}_txs_accepted
were replaced withavalanche_P_vm_txs_accepted
with atx
labelavalanche_P_vm_{blk}_blks_accepted
were replaced withavalanche_P_vm_blks_accepted
with ablk
label
Fixes
- Fixed performance regression while executing blocks in bootstrapping
- Fixed peer connection tracking in the P-chain and C-chain to re-enable tx pull gossip
- Fixed C-chain deadlock while executing blocks in bootstrapping after aborting state sync
- Fixed negative ETA while fetching blocks after aborting state sync
- Fixed C-chain snapshot initialization after state sync
- Fixed panic when running avalanchego in environments with an incorrectly implemented monotonic clock
- Fixed memory corruption when accessing keys and values from released pebbledb iterators
- Fixed prefixdb compaction when specifying a
nil
limit
What's Changed
- Consolidate record poll by @aaronbuchwald in #2970
- Update metercacher to use vectors by @StephenButtolph in #2979
- Reduce p2p sdk metrics by @StephenButtolph in #2980
- Use vectors in message queue metrics by @StephenButtolph in #2985
- Use vectors for p2p message metrics by @StephenButtolph in #2983
- Simplify gossip metrics by @StephenButtolph in #2984
- Use vectors for message handler metrics by @StephenButtolph in #2987
- Use vector in message sender by @StephenButtolph in #2988
- Simplify go version maintenance by @marun in #2977
- Use vector for router latency metrics by @StephenButtolph in #2989
- Use vectors for accepted tx and block metrics by @StephenButtolph in #2990
- fix: version application error by @jujube in #2995
- Chore: fix some typos. by @hattizai in #2993
- Cleanup meterdb metrics by @StephenButtolph in #2991
- Cleanup compression metrics by @StephenButtolph in #2992
- Fix antithesis image publication by @marun in #2998
- Remove unused
Metadata
struct by @dhrubabasu in #3001 - prefixdb: fix bug with Compact nil limit by @a1k0n in #3000
- Update go version to 1.21.10 by @marun in #3004
- vms/txs/mempool: unify avm and platformvm mempool implementations by @lebdron in #2994
- Use gauges for time metrics by @StephenButtolph in #3009
- Chore: fix typos. by @cocoyeal in #3010
- [antithesis] Refactor existing job to support xsvm test setup by @marun in #2976
- chore: fix some function names by @cartnavoy in #3015
- Mark nodes as connected to the P-chain networking stack by @StephenButtolph in #2981
- [antithesis] Ensure images with a prefix are pushed by @marun in #3016
- boostrapper: compact blocks before iterating them by @a1k0n in #2997
- Remove pre-Durango networking checks by @StephenButtolph in #3018
- Repackaged upgrades times into upgrade package by @abi87 in #3019
- Standardize peer logs by @StephenButtolph in #3017
- Fix pebbledb memory corruption by @StephenButtolph in #3020
- [vms/avm] fix linter error in benchmark : Use of weak random number generator by @tsachiherman in #3023
- Simplify sampler interface by @StephenButtolph in #3026
- [build] Update linter version by @tsachiherman in #3024
- fix broken link. by @cocoyeal in #3028
gossipping
->gossiping
by @dhrubabasu in #3033- [tmpnet] Ensure tmpnet compatibility with windows by @marun in #3002
- Fix negative ETA caused by rollback in vm.SetState by @StephenButtolph in #3036
- [tmpnet] Enable single node networks by @marun in #3003
- P-chain - introducing fees calculators by @abi87 in #2698
- Change default staking key from RSA 4096 to secp256r1 by @StephenButtolph in #3025
- Fix ACP links by @dhrubabasu in #3037
- Prevent unnecessary bandwidth from activated ACPs by @dhrubabasu in #3031
- [antithesis] Add test setup for xsvm by @marun in #2982
- [antithesis] Ensure node image is pushed by @marun in #3042
- Cleanup fee config passing by @StephenButtolph in #3043
- Fix typo fix by @StephenButtolph in #3044
- Grab iterator at previously executed height by @StephenButtolph in #3045
- Verify signatures during Parse by @StephenButtolph in #3046
New Contributors
Durango.5 - Bootstrapping Optimizations
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is unchanged at 35
and is compatible with versions v1.11.3-v1.11.4
.
APIs
- Renamed metric
avalanche_network_validator_ips
toavalanche_network_tracked_ips
Configs
- Removed
--snow-virtuous-commit-threshold
- Removed
--snow-rogue-commit-threshold
Fixes
- Fixed increased outbound PeerList messages when specifying custom bootstrap IDs
- Fixed CPU spike when disconnected from the network during bootstrapping fetching
- Fixed topological sort in vote calculation
- Fixed job dependency handling for transitively rejected blocks
- Prevented creation of unnecessary consensus polls during the issuance of a block
What's Changed
- Remove duplicate metrics increment by @StephenButtolph in #2926
- Optimize merkledb metrics by @StephenButtolph in #2927
- Optimize intermediateNodeDB.constructDBKey by @StephenButtolph in #2928
- [vms/proposervm] Remove
getForkHeight()
by @dhrubabasu in #2929 - Improve logging of startup and errors in bootstrapping by @StephenButtolph in #2933
- Add hashing interface to merkledb by @StephenButtolph in #2930
- Assign instead of append to
keys
slice by @danlaine in #2932 - Remove uptimes from Pong messages by @StephenButtolph in #2936
- Enable creation of multi-arch docker images by @marun in #2914
- Improve networking README by @StephenButtolph in #2937
- Specify golang patch version in go.mod by @StephenButtolph in #2938
- Include consensus decisions into logs by @StephenButtolph in #2943
- CI: ensure image build job is compatible with merge queue by @marun in #2941
- Remove unused
validators.Manager
mock by @StephenButtolph in #2944 - Split ManuallyTrack into ManuallyTrack and ManuallyGossip by @StephenButtolph in #2940
- Sync primary network checkpoints during bootstrapping by @StephenButtolph in #2752
- [ci] Add govulncheck job and update x/net as per its recommendation by @marun in #2948
- [tmpnet] Add network reuse to e2e fixture by @marun in #2935
e2e
: Add basic warp test with xsvm by @marun in #2043- Improve bootstrapping peer selection by @StephenButtolph in #2946
- Cleanup avalanche bootstrapping fetching by @StephenButtolph in #2947
- Add manager validator set callbacks by @StephenButtolph in #2950
- chore: fix function names in comment by @socialsister in #2957
- [ci] Fix conditional guarding monitoring configuration by @marun in #2959
- Cleanup consensus engine tests by @StephenButtolph in #2953
- Improve and test getProcessingAncestor by @StephenButtolph in #2956
- Exit topological sort earlier by @StephenButtolph in #2965
- Consolidate beta by @aaronbuchwald in #2949
- Abandon decided blocks by @StephenButtolph in #2968
- Bump bufbuild/buf-setup-action from 1.30.0 to 1.31.0 by @dependabot in #2923
- Cleanup test block creation by @StephenButtolph in #2973
New Contributors
- @socialsister made their first contribution in #2957
Full Changelog: v1.11.4...v1.11.5