Releases: ava-labs/avalanchego
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
Durango.2 - Push Gossip Redesign
This version is backwards compatible to v1.11.0. It is optional, but strongly encouraged.
The plugin version is updated to 34
all plugins must update to be compatible.
APIs
- Removed the
ipc
API - Removed the
auth
API - Removed most
keystore
related methods from theplatform
APIplatform.importKey
platform.createAddress
platform.addValidator
platform.addDelegator
platform.addSubnetValidator
platform.createSubnet
platform.exportAVAX
platform.importAVAX
platform.createBlockchain
- Added push gossip metrics:
gossip_tracking{type="sent"}
gossip_tracking{type="unsent"}
gossip_tracking_lifetime_average
to the following namespaces:avalanche_P_vm_tx
avalanche_X_vm_avalanche_tx
avalanche_C_vm_sdk_atomic_tx_gossip
avalanche_C_vm_sdk_eth_tx_gossip
- Removed metrics:
avalanche_C_vm_eth_gossip_atomic_sent
avalanche_C_vm_eth_gossip_eth_txs_sent
avalanche_C_vm_eth_regossip_eth_txs_queued_attempts
avalanche_C_vm_eth_regossip_eth_txs_queued_local_tx_count
avalanche_C_vm_eth_regossip_eth_txs_queued_remote_tx_count
Configs
- Removed:
api-ipcs-enabled
ipcs-chain-ids
ipcs-path
api-auth-required
api-auth-password
api-auth-password-file
consensus-app-gossip-validator-size
consensus-app-gossip-non-validator-size
consensus-app-gossip-peer-size
- Removed subnet configs:
appGossipValidatorSize
appGossipNonValidatorSize
appGossipPeerSize
- Added X-chain and P-chain networking configs:
push-gossip-num-validators
push-gossip-num-peers
push-regossip-num-validators
push-regossip-num-peers
push-gossip-discarded-cache-size
push-gossip-max-regossip-frequency
push-gossip-frequency
- Removed X-chain and P-chain networking configs:
legacy-push-gossip-cache-size
- Added C-chain configs:
push-gossip-num-validators
push-gossip-num-peers
push-regossip-num-validators
push-regossip-num-peers
push-gossip-frequency
pull-gossip-frequency
tx-pool-lifetime
- Removed C-chain configs:
tx-pool-journal
tx-pool-rejournal
remote-gossip-only-enabled
regossip-max-txs
remote-tx-gossip-only-enabled
tx-regossip-max-size
Fixes
- Fixed mempool push gossip amplification
What's Changed
- Remove deprecated IPC API by @StephenButtolph in #2760
vms/platformvm
: Remove all keystore APIs exceptExportKey
andListAddresses
by @dhrubabasu in #2761- Remove Deprecated Auth API by @StephenButtolph in #2759
- Remove
defaultAddress
helper from platformvm service tests by @dhrubabasu in #2767 - [trace] upgrade opentelemetry to v1.22.0 by @bianyuanop in #2702
- Reenable the upgrade tests by @StephenButtolph in #2769
- [network/p2p] Redesign Push Gossip by @patrick-ogrady in #2772
- Move AppGossip configs from SubnetConfig into ChainConfig by @StephenButtolph in #2785
merkledb
-- move compressedKey declaration to avoid usage of stale values in loop by @danlaine in #2777merkledb
-- fixhasValue
inrecordNodeDeleted
by @danlaine in #2779merkledb
-- rename metrics and add missing call by @danlaine in #2781merkledb
-- style nit, remove var namenewView
to reduce shadowing by @danlaine in #2784merkledb
style nits by @danlaine in #2783merkledb
comment accuracy fixes by @danlaine in #2780- Increase gossip size on first push by @StephenButtolph in #2787
Full Changelog: v1.11.0...v1.11.2