Releases: ava-labs/avalanchego
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
Durango.4 - Interval Tree Bootstrapping
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 version v1.11.3
.
APIs
- Removed metrics for each chainID:
avalanche_{chainID}_bs_eta_fetching_complete
avalanche_{chainID}_block_eta_execution_complete
avalanche_{chainID}_block_jobs_cache_get_count
avalanche_{chainID}_block_jobs_cache_get_sum
avalanche_{chainID}_block_jobs_cache_hit
avalanche_{chainID}_block_jobs_cache_len
avalanche_{chainID}_block_jobs_cache_miss
avalanche_{chainID}_block_jobs_cache_portion_filled
avalanche_{chainID}_block_jobs_cache_put_count
avalanche_{chainID}_block_jobs_cache_put_sum
- Added finer grained tracing of merkledb trie construction and hashing
- renamed
MerkleDB.view.calculateNodeIDs
toMerkleDB.view.applyValueChanges
- Added
MerkleDB.view.calculateNodeChanges
- Added
MerkleDB.view.hashChangedNodes
- renamed
Fixes
- Fixed p2p SDK handling of cancelled
AppRequest
messages - Fixed merkledb crash recovery
What's Changed
- Bump github.com/consensys/gnark-crypto from 0.10.0 to 0.12.1 by @dependabot in #2862
- Push antithesis images by @StephenButtolph in #2864
- Revert removal of legacy P-chain block parsing by @StephenButtolph in #2866
tmpnet
: Ensure nodes are properly detached from the parent process by @marun in #2859- indicies -> indices by @StephenButtolph in #2873
- Reindex P-chain blocks by @StephenButtolph in #2869
- Add detail to tmpnet metrics documentation by @marun in #2854
- docs migration by @meaghanfitzgerald in #2845
- Implement interval tree to replace bootstrapping jobs queue by @StephenButtolph in #2756
- Cleanup codec constants by @abi87 in #2699
- Update health API readme by @StephenButtolph in #2875
tmpnet
: Improve subnet configuration by @marun in #2871- Add tests for inefficient string formatting by @StephenButtolph in #2878
- [vms/platformvm] Declare
maxPageSize
inservice.go
by @dhrubabasu in #2881 - [vms/platformvm] Use
wallet
sdk intxstest.Builder
by @abi87 in #2751 - Optimize encodeUint by @StephenButtolph in #2882
- [components/avax] Remove
AtomicUTXOManager
interface by @dhrubabasu in #2884 - Remove merkledb codec struct by @StephenButtolph in #2883
- [vms/platformvm] Minimize exported functions in
txstest
by @dhrubabasu in #2888 ci
: Skip monitoring if secrets are not present by @marun in #2880- Optimize merkledb hashing by @StephenButtolph in #2886
- [vms/platformvm] Miscellaneous testing cleanups by @dhrubabasu in #2891
- Move functions around so that encode and decode are next to each other by @StephenButtolph in #2892
- Remove memory alloc from encodeDBNode by @StephenButtolph in #2893
- Interval tree syncing integration by @StephenButtolph in #2855
- Optimize hashing of leaf nodes by @StephenButtolph in #2894
- Improve performance of marshalling small keys by @StephenButtolph in #2895
- Improve tracing of merkledb trie updates by @StephenButtolph in #2897
- Remove usage of bytes.Buffer and bytes.Reader by @StephenButtolph in #2896
- Optimize key creation in hashing by @StephenButtolph in #2899
- Move bootstrapping queue out of common by @StephenButtolph in #2856
- Conditionally allocate WaitGroup memory by @StephenButtolph in #2901
- Reuse key buffers during hashing by @StephenButtolph in #2902
- Remove AddEphemeralNode by @joshua-kim in #2887
- Rename linkedhashmap package to
linked
by @StephenButtolph in #2907 - [tmpnet] Misc cleanup to support xsvm warp test PR by @marun in #2903
- Implement generic
linked.List
by @StephenButtolph in #2908 - Remove full message from error logs by @StephenButtolph in #2912
- Use generic linked list by @StephenButtolph in #2909
- Avoid allocating new list entries by @StephenButtolph in #2910
- Remove
linked.Hashmap
locking by @StephenButtolph in #2911 - Fix MerkleDB crash recovery by @StephenButtolph in #2913
- Remove cancellation for Send*AppRequest messages by @StephenButtolph in #2915
- Add
.Clear()
tolinked.Hashmap
by @StephenButtolph in #2917 - Allow pre-allocating
linked.Hashmap
by @StephenButtolph in #2918 - Fix comment and remove unneeded allocation by @StephenButtolph in #2919
- Implement
utils.BytesPool
to replacesync.Pool
for byte slices by @StephenButtolph in #2920 - Refactor
MerkleDB.commitChanges
by @StephenButtolph in #2921 - Remove value_node_db batch by @StephenButtolph in #2922
- Remove memory allocations from merkledb iteration by @StephenButtolph in #2925
Full Changelog: v1.11.3...v1.11.4
Durango.3 - Legacy Gossip Removal
This version is backwards compatible to v1.11.0. It is optional, but encouraged.
The plugin version is updated to 35
all plugins must update to be compatible.
APIs
- Removed:
platform.GetPendingValidators
platform.GetMaxStakeAmount
Configs
- Removed avalanchego configs:
network-peer-list-validator-gossip-size
network-peer-list-non-validator-gossip-size
network-peer-list-peers-gossip-size
network-peer-list-gossip-frequency
consensus-accepted-frontier-gossip-validator-size
consensus-accepted-frontier-gossip-non-validator-size
consensus-accepted-frontier-gossip-peer-size
consensus-on-accept-gossip-validator-size
consensus-on-accept-gossip-non-validator-size
consensus-on-accept-gossip-peer-size
- Added P-chain, X-chain, and C-chain configs:
push-gossip-percent-stake
Fixes
- Fixed p2p SDK validator sampling to only return connected validators
What's Changed
- Cleanup BLS naming and documentation by @StephenButtolph in #2798
- Add BLS keys + signers config for local network by @Nuttymoon in #2794
- Remove double spaces by @StephenButtolph in #2802
- [vms/platformvm] Remove
platform.getMaxStakeAmount
by @dhrubabasu in #2795 - Remove unused engine interface by @StephenButtolph in #2811
- Cleanup Duplicate Transitive Constructor by @joshua-kim in #2812
- Update minimum golang version to v1.21.8 by @StephenButtolph in #2814
- Cleanup consensus metrics by @StephenButtolph in #2815
- Remove peerlist push gossip by @StephenButtolph in #2791
- Remove bitmaskCodec by @StephenButtolph in #2792
- Use
BaseTx
in P-chain wallet by @dhrubabasu in #2731 - Remove put gossip by @StephenButtolph in #2790
- [vms/platformvm] Remove
GetPendingValidators
API by @dhrubabasu in #2817 - [vms/platformvm] Remove
ErrFutureStakeTime
check inVerifyTx
by @dhrubabasu in #2797 - Remove pre-Durango block building logic and verification by @StephenButtolph in #2823
- Remove pre-Durango checks in BLS key verification by @StephenButtolph in #2824
- [snow/networking] Enforce
PreferredIDAtHeight
inChits
messages by @dhrubabasu in #2827 - Combine AppGossip and AppGossipSpecific by @StephenButtolph in #2836
- [network/peer] Disconnect from peers who only send legacy version field by @dhrubabasu in #2830
- [vms/avm] Cleanup
GetTx
+ remove state pruning logic by @dhrubabasu in #2826 - [vms/avm] Remove
snow.Context
fromNetwork
by @dhrubabasu in #2834 - [vms/platformvm] Remove state pruning logic by @dhrubabasu in #2825
- Prevent zero length values in slices and maps in codec by @StephenButtolph in #2819
- [utils/compression] Remove gzip compressor by @dhrubabasu in #2839
- Remove legacy p2p message handling by @dhrubabasu in #2833
- Remove Durango codec check by @StephenButtolph in #2818
- Remove Pre-Durango TLS certificate parsing logic by @dhrubabasu in #2831
- Remove engine type handling for everything other than GetAncestors by @StephenButtolph in #2800
- P-chain: Improve GetValidatorsSet error expressivity by @abi87 in #2808
- Add antithesis PoC workload by @StephenButtolph in #2796
- Add Antithesis docker compose file by @StephenButtolph in #2838
- merkledb metric naming nits by @danlaine in #2844
- Allow configuring push gossip to send txs to validators by stake by @StephenButtolph in #2835
- update merkledb readme to specify key length is in bits by @danlaine in #2840
tmpnet
: Add a UUID to temporary networks to support metrics collection by @marun in #2763- packer build by @Dirrk in #2806
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #2849
- Bump bufbuild/buf-setup-action from 1.29.0 to 1.30.0 by @dependabot in #2842
- Remove verify height index by @aaronbuchwald in #2634
- Dynamic Fees - Add E Upgrade boilerplate by @abi87 in #2597
tmpnet
: Enable collection of logs and metrics by @marun in #2820- P-Chain - repackaged wallet backends by @abi87 in #2757
- X-Chain - repackaged wallet backends by @abi87 in #2762
- Remove fallback validator height indexing by @StephenButtolph in #2801
tmpnet
: Reuse dynamically-allocated API port across restarts by @marun in #2857- Remove useless bootstrapping metric by @StephenButtolph in #2858
- Remove duplicate log by @StephenButtolph in #2860
New Contributors
- @Nuttymoon made their first contribution in #2794
- @Dirrk made their first contribution in #2806
Full Changelog: v1.11.2...v1.11.3