Releases: ava-labs/avalanchego
Durango - C-Chain Warp Messaging
This upgrade consists of the following Avalanche Community Proposals (ACPs):
- ACP-23 P-Chain Native Transfers
- ACP-24 Activate Shanghai EIPs on C-Chain
- ACP-25 Virtual Machine Application Errors
- ACP-30 Integrate Avalanche Warp Messaging into the EVM
- ACP-31 Enable Subnet Ownership Transfer
- ACP-41 Remove Pending Stakers
- ACP-62 Disable AddValidatorTx and AddDelegatorTx
The changes in the upgrade go into effect at 11 AM ET (4 PM UTC) on Wednesday, March 6th, 2024 on Mainnet.
All Durango supporting Mainnet nodes should upgrade before 11 AM ET, March 6th 2024.
The plugin version is updated to 33
all plugins must update to be compatible.
APIs
- Added
platform.getSubnet
API
Configs
- Deprecated:
api-auth-required
api-auth-password
api-auth-password-file
Fixes
- Fixed potential deadlock during P-chain shutdown
- Updated the consensus engine to recover from previously misconfigured subnets without requiring a restart
What's Changed
ci
: Upgrade all workflow actions to versions using Node 20 by @marun in #2677tmpnet
: Ensure restart after chain creation by @marun in #2675- Publish docker images with race detection by @StephenButtolph in #2680
vms/platformvm
: RemoveNewRewardValidatorTx
fromBuilder
by @dhrubabasu in #2676ci
: Updated shellcheck script to support autofix by @marun in #2678- Unblock misconfigured subnets by @StephenButtolph in #2679
- Add transfer subnet ownership functionality to wallet by @felipemadero in #2659
- Add ACP-62 by @dhrubabasu in #2681
vms/platformvm
: Add missing txs totxs.Builder
by @dhrubabasu in #2663vms/platformvm
: DisableAddValidatorTx
andAddDelegatorTx
by @dhrubabasu in #2662- Remove chain router from node.Config by @StephenButtolph in #2683
- Deprecate the auth API by @StephenButtolph in #2684
- Fix P-chain Shutdown deadlock by @StephenButtolph in #2686
- Cleanup ID initialization by @StephenButtolph in #2690
- Remove unused chains#beacons field by @joshua-kim in #2692
- x/sync: Remove duplicated call to TrackBandwidth by @StephenButtolph in #2694
- Move VMAliaser into node from config by @StephenButtolph in #2689
- Fix minor errors in x/sync tests by @StephenButtolph in #2709
- Update minimum golang version to v1.21.7 by @dhrubabasu in #2710
- Check for github action updates in dependabot by @dhrubabasu in #2715
- Update
golangci-lint
tov1.56.1
by @dhrubabasu in #2714 - Add stringer to warp types by @aaronbuchwald in #2712
- Refactor
p2p.PeerTracker
by @StephenButtolph in #2701 - Bump actions/stale from 8 to 9 by @dependabot in #2719
- Bump github/codeql-action from 2 to 3 by @dependabot in #2720
- Bump bufbuild/buf-setup-action from 1.26.1 to 1.29.0 by @dependabot in #2721
- Bump aws-actions/configure-aws-credentials from 1 to 4 by @dependabot in #2722
- Manually setup golang in codeql action by @StephenButtolph in #2725
- Provide pgo file during compilation by @StephenButtolph in #2724
- P-chain - Tx builder cleanup by @abi87 in #2718
- Refactor chain manager subnets by @joshua-kim in #2711
- Replace snowball/snowflake interface with single shared snow interface by @aaronbuchwald in #2717
- Remove duplicate IP length constant by @StephenButtolph in #2733
- Add
platform.getSubnet
API by @felipemadero in #2704 - Provide BLS signature in Handshake message by @StephenButtolph in #2730
- Verify BLS signature provided in Handshake messages by @StephenButtolph in #2735
- Move UTXOs definition from primary to primary/common by @StephenButtolph in #2741
- Minimize Signer interface and document Sign by @StephenButtolph in #2740
- Revert setup-go during unit tests by @StephenButtolph in #2744
- P-chain wallet fees UTs by @abi87 in #2734
merkledb
-- generalize error case to check state that should never occur by @danlaine in #2743- Revert setup-go to v3 on all arm actions by @StephenButtolph in #2749
- Add AppError to Sender interface by @joshua-kim in #2737
- P-chain - Cleaned up fork switch in UTs by @abi87 in #2746
- X-chain wallet fees UTs by @abi87 in #2747
- Add keys values to bimap by @StephenButtolph in #2754
- fix test sender by @joshua-kim in #2755
Full Changelog: v1.10.19...v1.11.0
Durango - C-Chain Warp Messaging - 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-23 P-Chain Native Transfers
- ACP-24 Activate Shanghai EIPs on C-Chain
- ACP-25 Virtual Machine Application Errors
- ACP-30 Integrate Avalanche Warp Messaging into the EVM
- ACP-31 Enable Subnet Ownership Transfer
- ACP-41 Remove Pending Stakers
- ACP-62 Disable AddValidatorTx and AddDelegatorTx
The changes in the upgrade go into effect at 11 AM ET (4 PM UTC) on Tuesday, February 13th, 2024 on the Fuji testnet.
All Fuji nodes must upgrade before 11 AM ET, February 13th 2024.
The plugin version is updated to 32
all plugins must update to be compatible.
Configs
- Deprecated:
api-auth-required
api-auth-password
api-auth-password-file
Fixes
- Fixed potential deadlock during P-chain shutdown
- Updated the consensus engine to recover from previously misconfigured subnets without requiring a restart
What's Changed
ci
: Upgrade all workflow actions to versions using Node 20 by @marun in #2677tmpnet
: Ensure restart after chain creation by @marun in #2675- Publish docker images with race detection by @StephenButtolph in #2680
vms/platformvm
: RemoveNewRewardValidatorTx
fromBuilder
by @dhrubabasu in #2676ci
: Updated shellcheck script to support autofix by @marun in #2678- Unblock misconfigured subnets by @StephenButtolph in #2679
- Add transfer subnet ownership functionality to wallet by @felipemadero in #2659
- Add ACP-62 by @dhrubabasu in #2681
vms/platformvm
: Add missing txs totxs.Builder
by @dhrubabasu in #2663vms/platformvm
: DisableAddValidatorTx
andAddDelegatorTx
by @dhrubabasu in #2662- Remove chain router from node.Config by @StephenButtolph in #2683
- Deprecate the auth API by @StephenButtolph in #2684
- Fix P-chain Shutdown deadlock by @StephenButtolph in #2686
- Cleanup ID initialization by @StephenButtolph in #2690
- Remove unused chains#beacons field by @joshua-kim in #2692
- x/sync: Remove duplicated call to TrackBandwidth by @StephenButtolph in #2694
- Move VMAliaser into node from config by @StephenButtolph in #2689
Full Changelog: v1.10.19...v1.11.0-fuji
Cortina.19 - Options Before Verification
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is unchanged at 31
and is compatible with version v1.10.18
.
APIs
- Added
admin.dbGet
call to theadmin
API - Added bloom filter metrics:
bloom_filter_count
bloom_filter_entries
bloom_filter_hashes
bloom_filter_max_count
bloom_filter_reset_count
to the following namespaces:avalanche_X_vm_mempool
avalanche_P_vm_mempool
avalanche_C_vm_sdk_atomic_mempool
avalanche_C_vm_sdk_eth_mempool
Fixes
- Fixed race condition during validator set creation
- Fixed C-chain mempool bloom filter recalculation
What's Changed
vms/platformvm
: ChangeAdvanceTimeTo
to modify passed-inparentState
by @dhrubabasu in #2489vms/platformvm
: RemoveMempoolTxVerifier
by @dhrubabasu in #2362- Verify
SignedIP.Timestamp
fromPeerList
messages by @danlaine in #2587 - Fix metrics namespace by @StephenButtolph in #2632
- Add bloom filter metrics to the p2p sdk by @ceyonur in #2612
- Replace
shutdownEnvironment
witht.Cleanup()
by @dhrubabasu in #2491 - P-chain - Memo field zeroed post Durango by @abi87 in #2607
- Refactor feature extensions out of VMManager by @joshua-kim in #2578
- Remove getter for router on chain manager by @joshua-kim in #2641
- Fix
require.ErrorIs
argument order by @StephenButtolph in #2645 api/admin
: CleanupSuccessResponseTests
by @dhrubabasu in #2644- Allow calls to
Options
beforeVerify
by @StephenButtolph in #2363 - Improve logging of unexpected proposer errors by @StephenButtolph in #2646
- Disable non-security related dependabot PRs by @StephenButtolph in #2647
- Add historical fork times by @StephenButtolph in #2649
- Cleanup warp signer tests by @dhrubabasu in #2651
- Reintroduce the upgrade test against v1.10.18 by @StephenButtolph in #2652
- Cleanup database benchmarks by @dhrubabasu in #2653
- Cleanup database tests by @dhrubabasu in #2654
ci
: Add shellcheck step to lint job by @marun in #2650- Replace
closeFn
witht.Cleanup
by @dhrubabasu in #2638 - Fix TestExpiredBuildBlock by @StephenButtolph in #2655
- Add admin.dbGet API by @StephenButtolph in #2667
ci
: Update shellcheck.sh to pass all args to shellcheck by @marun in #2657vms/platformvm
: RemoveNewAdvanceTimeTx
fromBuilder
by @dhrubabasu in #2668- Log error if database returns unsorted heights by @StephenButtolph in #2670
vms/platformvm
: Movevm.Shutdown
call in tests tot.Cleanup
by @dhrubabasu in #2669e2e
: Add test ofplatform.getValidatorsAt
across nodes by @marun in #2664- Fix P-chain validator set lookup race condition by @StephenButtolph in #2672
Full Changelog: v1.10.18...v1.10.19
Cortina.18 - Optimize Peer Discovery
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is updated to 31
all plugins must update to be compatible.
APIs
- Added
info.acps
API - Added
supportedACPs
andobjectedACPs
for each peer returned byinfo.peers
- Added
txs
field toBanffProposalBlock
's json format - Added metrics:
avalanche_network_validator_ips
avalanche_network_gossipable_ips
avalanche_network_ip_bloom_count
avalanche_network_ip_bloom_entries
avalanche_network_ip_bloom_hashes
avalanche_network_ip_bloom_max_count
avalanche_network_ip_bloom_reset_count
- Added metrics related to
get_peer_list
message handling - Added p2p SDK metrics to the P-chain and X-chain
- Renamed metrics related to message handling:
version
->handshake
appRequestFailed
->appError
crossChainAppRequestFailed
->crossChainAppError
- Removed
gzip
compression time metrics - Converted p2p SDK metrics to use vectors rather than independent metrics
- Converted client name reported over the p2p network from
avalanche
toavalanchego
Configs
- Added:
--acp-support
--acp-object
snow-commit-threshold
network-peer-list-pull-gossip-frequency
network-peer-list-bloom-reset-frequency
network
to the X-chain and P-chain configs including:max-validator-set-staleness
target-gossip-size
pull-gossip-poll-size
pull-gossip-frequency
pull-gossip-throttling-period
pull-gossip-throttling-limit
expected-bloom-filter-elements
expected-bloom-filter-false-positive-probability
max-bloom-filter-false-positive-probability
legacy-push-gossip-cache-size
- Deprecated:
snow-virtuous-commit-threshold
snow-rogue-commit-threshold
network-peer-list-validator-gossip-size
network-peer-list-non-validator-gossip-size
network-peer-list-peers-gossip-size
network-peer-list-gossip-frequency
- Removed:
gzip
as an option fornetwork-compression-type
Fixes
- Fixed
platformvm.SetPreference
to correctly reset the block building timer - Fixed early bootstrapping termination
- Fixed duplicated transaction initialization in the X-chain and P-chain
- Fixed IP gossip when using dynamically allocated staking ports
- Updated
golang.org/x/exp
dependency to fix downstream compilation errors - Updated
golang.org/x/crypto
dependency to addressCVE-2023-48795
- Updated minimum golang version to address
CVE-2023-39326
- Restricted
GOPROXY
during compilation to avoiddirect
version control fallbacks - Fixed
merkledb
deletion of the empty key - Fixed
merkledb
race condition when interacting with invalidated or closed trie views - Fixed
json.Marshal
forwallet
transactions - Fixed duplicate outbound dialer for manually tracked nodes in the p2p network
What's Changed
- testing: Update to latest version of ginkgo by @marun in #2390
vms/platformvm
: Cleanup block builder tests by @dhrubabasu in #2406- Drop Pending Stakers 0 - De-duplicate staking tx verification by @abi87 in #2335
vms/platformvm
: Initialize txs inTransactions
field forBanffProposalBlock
by @dhrubabasu in #2419vms/platformvm
: MoveVerifyUniqueInputs
fromverifier
tobackend
by @dhrubabasu in #2410- Fix duplicated bootstrapper engine termination by @StephenButtolph in #2334
- allow user of
build_fuzz.sh
to specify a directory to fuzz in by @danlaine in #2414 - Update slices dependency to use Compare by @StephenButtolph in #2424
vms/platformvm
: Cleanup some block tests by @dhrubabasu in #2422- ProposerVM Extend windows 0 - Cleanup by @abi87 in #2404
vms/platformvm
: AdddecisionTxs
parameter toNewBanffProposalBlock
by @dhrubabasu in #2411- Update minimum golang version to v1.20.12 by @StephenButtolph in #2427
- Fix platformvm.SetPreference by @StephenButtolph in #2429
- Restrict GOPROXY by @StephenButtolph in #2434
- Drop Pending Stakers 1 - introduced ScheduledStaker txs by @abi87 in #2323
- Run merkledb fuzz tests every 6 hours by @danlaine in #2415
- Remove unused error by @joshua-kim in #2426
- Make
messageQueue.msgAndCtxs
a circular buffer by @danlaine in #2433 - ProposerVM Extend windows 1 - UTs Cleanup by @abi87 in #2412
- Change seed from int64 to uint64 by @StephenButtolph in #2438
- Remove usage of timer.Timer in node by @StephenButtolph in #2441
- Remove staged timer again by @StephenButtolph in #2440
merkledb
/sync
-- Disambiguate no end root from no start root by @danlaine in #2437- Drop Pending Stakers 2 - Replace txs.ScheduledStaker with txs.Staker by @abi87 in #2305
vms/platformvm
: Remove double block building logic by @dhrubabasu in #2380- Remove usage of timer.Timer in benchlist by @StephenButtolph in #2446
vms/avm
: SimplifyPeek
function in mempool by @dhrubabasu in #2449vms/platformvm
: RemovestandardBlockState
struct by @dhrubabasu in #2450- Refactor sampler seeding by @StephenButtolph in #2456
- Update tmpnet fixture to include Proof-of-Possession for initial stakers by @marun in #2391
vms/platformvm
: RemoveEnableAdding
andDisableAdding
fromMempool
interface by @dhrubabasu in #2463vms/avm
: Addexists
bool to mempoolPeek
by @dhrubabasu in #2465vms/platformvm
: RemovePeekTxs
fromMempool
interface by @dhrubabasu in #2378vms/platformvm
: AddprocessStandardTxs
helper by @dhrubabasu in #2461vms/platformvm
: ProcessatomicRequests
andonAcceptFunc
in option blocks by @dhrubabasu in #2459e2e
: Rename 'funded key' to 'pre-funded key' for consistency by @marun in #2455vms/platformvm
: SurfaceVerifyUniqueInputs
in theManager
by @dhrubabasu in #2467vms/platformvm
: AddTestBuildBlockShouldReward
test by @dhrubabasu in #2466- Switch client version to a proto type from a string by @joshua-kim in #2188
- Remove stale TODO by @danlaine in #2468
vms/platformvm
: AddTestBuildBlockDoesNotBuildWithEmptyMempool
test by @dhrubabasu in #2469vms/platformvm
: AddTestBuildBlockShouldAdvanceTime
test by @dhrubabasu in #2471vms/platformvm
: Permit usage of theTransactions
field inBanffProposalBlock
by @dhrubabasu in #2451vms/platformvm
: AddTestBuildBlockForceAdvanceTime
test by @dhrubabasu in #2472- P2P AppError handling by @joshua-kim in #2248
vms/platformvm
: Verify txs before building a block by @dhrubabasu in #2359- Refactor p2p unit tests by @joshua-kim in #2475
- Add ACP signaling by @StephenButtolph in #2476
- Refactor SDK by @joshua-kim in #2452
- Cleanup CI by @dhrubabasu in #2480
- Ensure upgrade test uses the correct binary on restart by @marun in #2478
- Prefetch Improvement by @dboehm-avalabs in #2435
- ci: run each fuzz test for 10 seconds by @dhrubabasu in #2483
- Remove nullable options by @nytzuga in #2481
merkledb
-- dynamic root by @danlaine in #2177- fix onEvictCache by @danlaine in #2484
- Remove cached node bytes from merkle nodes by @dboehm-avalabs in #2393
- Fix race in view iteration by @dboehm-avalabs in #2486
- MerkleDB -- update readme by @danlaine in #2423
- Drop Pending Stakers 3 - persi...
Cortina.17 - Optimized Block Gossip
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is unchanged at 30
and is compatible with versions v1.10.15-v1.10.16
.
APIs
- Added
avalanche_{chainID}_blks_build_accept_latency
metric - Added
avalanche_{chainID}_blks_issued{source}
metric with sources:pull_gossip
push_gossip
put_gossip
which is deprecatedbuilt
unknown
- Added
avalanche_{chainID}_issuer_stake_sum
metric - Added
avalanche_{chainID}_issuer_stake_count
metric
Configs
- Added:
--consensus-frontier-poll-frequency
- Removed:
--consensus-accepted-frontier-gossip-frequency
- Deprecated:
--consensus-accepted-frontier-gossip-validator-size
--consensus-accepted-frontier-gossip-non-validator-size
--consensus-accepted-frontier-gossip-peer-size
- Updated the default value to 1 to align with the change in default gossip frequency
--consensus-on-accept-gossip-validator-size
--consensus-on-accept-gossip-non-validator-size
--consensus-on-accept-gossip-peer-size
Fixes
- Fixed
duplicated operation on provided value
error when executing atomic operations after state syncing the C-chain - Removed usage of atomic trie after commitment
- Fixed atomic trie root overwrite during state sync
- Prevented closure of
stdout
andstderr
when shutting down the logger
What's Changed
- Remove Banff check from mempool verifier by @dhrubabasu in #2360
- Document storage growth in readme by @StephenButtolph in #2364
- Add metric for duration between block timestamp and acceptance time by @StephenButtolph in #2366
vms/platformvm
: Remove unusedwithMetrics
txheap by @dhrubabasu in #2373- Move peerTracker from x/sync to network/p2p by @joshua-kim in #2356
- Logging avoid closing standard outputs by @felipemadero in #2372
vms/platformvm
: AdjustDiff.Apply
signature by @dhrubabasu in #2368- Add bls validator info to genesis by @felipemadero in #2371
- Remove
engine.GetVM
by @StephenButtolph in #2374 vms/platformvm
: Consolidatestate
pkg mocks by @dhrubabasu in #2370- Remove common bootstrapper by @StephenButtolph in #2297
vms/platformvm
: MovetoEngine
channel to mempool by @dhrubabasu in #2333vms/avm
: Renamestates
pkg tostate
by @dhrubabasu in #2381- Implement generic bimap by @StephenButtolph in #2383
- Unexport RequestID from snowman engine by @StephenButtolph in #2384
- Add metric to track the stake weight of block providers by @StephenButtolph in #2376
- Add block source metrics to monitor gossip by @StephenButtolph in #2386
- Rename
D
toDurango
by @dhrubabasu in #2389 - Replace periodic push accepted gossip with pull preference gossip for block discovery by @StephenButtolph in #2367
- MerkleDB Remove ID from Node to reduce size and removal channel creation. by @dboehm-avalabs in #2324
- Remove method
CappedList
fromset.Set
by @danlaine in #2395 - Periodically PullGossip only from connected validators by @StephenButtolph in #2399
- Update bootstrap IPs by @StephenButtolph in #2396
- Rename
testnet
fixture totmpnet
by @marun in #2307 - Add
p2p.Network
component by @joshua-kim in #2283 vms/platformvm
: MoveGetRewardUTXOs
,GetSubnets
, andGetChains
toState
interface by @dhrubabasu in #2402- Add more descriptive formatted error by @aaronbuchwald in #2403
Full Changelog: v1.10.16...v1.10.17
Cortina.16 - Concurrent Trie Prefetching
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is unchanged at 30
and is compatible with version v1.10.15
.
APIs
- Added log level information to the result of
admin.setLoggerLevel
- Updated
info.peers
to return chain aliases forbenched
chains - Added support to sample validators of non-tracked subnets with
platform.sampleValidators
- Added
avalanche_{chainID}_max_verified_height
metric to track the highest verified block
Configs
- Added
--db-read-only
to run the node without writing to disk.- This flag is only expected to be used during testing as it will cause memory use to increase over time
- Removed
--bootstrap-retry-enabled
- Removed
--bootstrap-retry-warn-frequency
Fixes
- Fixed packing of large block requests during C-chain state sync
- Fixed order of updating acceptor tip and sending chain events to C-chain event subscribers
What's Changed
- Return log levels from admin.SetLoggerLevel by @StephenButtolph in #2250
- feat(api) : Peers function to return the PrimaryAlias of the chainID by @DoTheBestToGetTheBest in #2251
- Switch to using require.TestingT interface in SenderTest struct by @marun in #2258
- Cleanup
ipcs
Socket
test by @danlaine in #2257 - Require poll metrics to be registered by @StephenButtolph in #2260
- Track all subnet validator sets in the validator manager by @StephenButtolph in #2253
- e2e: Make NewWallet and NewEthclient regular functions by @marun in #2262
- Fix typos in docs by @vuittont60 in #2261
- Remove Token constants information from keys by @dboehm-avalabs in #2197
- Remove unused
UnsortedEquals
function by @dhrubabasu in #2264 - Document p2p package by @joshua-kim in #2254
- Use extended public key to derive ledger addresses by @felipemadero in #2246
merkledb
-- rename nit by @danlaine in #2267merkledb
-- fix nil check in test by @danlaine in #2268- Add read-only database flag (
--db-read-only
) by @danlaine in #2266 merkledb
-- remove unneeded var declarations by @danlaine in #2269- Add fuzz test for
NewIteratorWithStartAndPrefix
by @danlaine in #1992 - Return if element was deleted from
Hashmap
by @dhrubabasu in #2271 mempool.NewMempool
->mempool.New
by @dhrubabasu in #2276- e2e: Refactor suite setup and helpers to tests/fixture/e2e for reuse by coreth by @marun in #2265
- Cleanup platformvm mempool errs by @dhrubabasu in #2278
- MerkleDB:Naming and comments cleanup by @dboehm-avalabs in #2274
- Move
DropExpiredStakerTxs
to platformvm mempool by @dhrubabasu in #2279 - Cleanup
ids.NodeID
usage by @abi87 in #2280 - Genesis validators cleanup by @abi87 in #2282
- Remove Lazy Initialize on Node by @joshua-kim in #1384
- Remove sentinel node from MerkleDB proofs by @dboehm-avalabs in #2106
- Embed
noop
handler for all unhandled messages by @dhrubabasu in #2288 merkledb
-- AddClearer
interface by @danlaine in #2277- Simplify get server creation by @StephenButtolph in #2285
- Move management of platformvm preferred block to
executor.Manager
by @dhrubabasu in #2292 - Add
recentTxsLock
to platformnetwork
struct by @dhrubabasu in #2294 - e2e: More fixture refinement in support of coreth integration testing by @marun in #2275
- Add
VerifyTx
toexecutor.Manager
by @dhrubabasu in #2293 - Simplify avalanche bootstrapping by @StephenButtolph in #2286
- Replace unique slices with sets in the engine interface by @StephenButtolph in #2317
- Use zap.Stringer rather than zap.Any by @StephenButtolph in #2320
- Move
AddUnverifiedTx
logic tonetwork.IssueTx
by @dhrubabasu in #2310 - Remove
AddUnverifiedTx
fromBuilder
by @dhrubabasu in #2311 - Remove error from SDK AppGossip handler by @joshua-kim in #2252
- Rename AppRequestFailed to AppError by @joshua-kim in #2321
- Remove
Network
interface fromBuilder
by @dhrubabasu in #2312 - Update
error_code
to be sint32 instead of uint32. by @joshua-kim in #2322 - Refactor bootstrapper implementation into consensus by @StephenButtolph in #2300
- Pchain - Cleanup NodeID generation in UTs by @abi87 in #2291
- nit: loop --> variadic by @danlaine in #2316
- Update zap dependency to v1.26.0 by @danlaine in #2325
- Remove useless anon functions by @StephenButtolph in #2326
- Move
network
implementation to separate package by @dhrubabasu in #2296 - Unexport avalanche constant from common package by @StephenButtolph in #2327
- Remove
common.Config
functions by @StephenButtolph in #2328 - Move engine startup into helper function by @StephenButtolph in #2329
- Remove bootstrapping retry config by @StephenButtolph in #2301
- Export snowman bootstrapper by @StephenButtolph in #2331
- Remove common.Config from syncer.Config by @StephenButtolph in #2330
platformvm.VM
-- replaceConfig
field withvalidators.Manager
by @danlaine in #2319- Improve height monitoring by @StephenButtolph in #2347
- Cleanup snowman consensus metrics by @StephenButtolph in #2349
- Expand consensus health check by @StephenButtolph in #2354
- Reduce the size of the OracleBlock interface by @StephenButtolph in #2355
- [vms/proposervm] Update Build Heuristic by @patrick-ogrady in #2348
- Use linkedhashmap for P-Chain mempool by @gyuho in #1536
- Increase txs in pool metric when adding tx by @StephenButtolph in #2361
New Contributors
- @DoTheBestToGetTheBest made their first contribution in #2251
- @vuittont60 made their first contribution in #2261
Full Changelog: v1.10.15...v1.10.16
Cortina.15 - PebbleDB
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is updated to 30
all plugins must update to be compatible.
Configs
- Added
pebble
as an allowed option to--db-type
Fixes
- Fixed C-chain tracer API panic
What's Changed
- Reduce allocations on insert and remove by @dboehm-avalabs in #2201
merkledb
-- shift nit by @danlaine in #2218- Update
golangci-lint
tov1.55.1
by @dhrubabasu in #2228 - Add json marshal tests to existing serialization tests in
platformvm/txs
pkg by @dhrubabasu in #2227 - Move all blst function usage to
bls
pkg by @dhrubabasu in #2222 merkledb
-- don't passBranchFactor
toencodeDBNode
by @danlaine in #2217- Add
utils.Err
helper by @dhrubabasu in #2212 - Enable
perfsprint
linter by @dhrubabasu in #2229 - Trim down size of secp256k1
Factory
struct by @dhrubabasu in #2223 - Fix test typos by @dhrubabasu in #2233
- P2P AppRequestFailed protobuf definition by @joshua-kim in #2111
- Remove error from Router AppGossip by @joshua-kim in #2238
- Document host and port behavior in help text by @StephenButtolph in #2236
- Remove
database.Manager
by @danlaine in #2239 - Add
BaseTx
support to platformvm by @dhrubabasu in #2232 - Add
pebble
as valid value for--db-type
. by @danlaine in #2244 - Add nullable option to codec by @nytzuga in #2171
Full Changelog: v1.10.14...v1.10.15
Cortina.14 - Validator Set Management Redesign
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is unchanged at 29
and is compatible with version v1.10.13
.
Configs
- Deprecated
--api-ipcs-enabled
- Deprecated
--ipcs-chain-ids
- Deprecated
--ipcs-path
- Deprecated
--api-keystore-enabled
Fixes
- Fixed shutdown of timeout manager
- Fixed racy access of the shutdown time
What's Changed
- Remove build check from unit tests by @StephenButtolph in #2189
- Update cgo usage by @StephenButtolph in #2184
- Deprecate IPC configs by @danlaine in #2168
- Update P2P proto docs by @joshua-kim in #2181
- Merkle db Make Paths only refer to lists of nodes by @dboehm-avalabs in #2143
- Deprecate keystore config by @danlaine in #2195
- Add tests for BanffBlock serialization by @dhrubabasu in #2194
- Move Shutdown lock from Handler into Engines by @StephenButtolph in #2179
- Move HealthCheck lock from Handler into Engines by @StephenButtolph in #2173
- Implement Heap Map by @joshua-kim in #2137
- Move selectStartGear lock from Handler into Engines by @StephenButtolph in #2182
- Add Heap Set by @joshua-kim in #2136
- Shutdown TimeoutManager during node Shutdown by @abi87 in #1707
- Redesign validator set management to enable tracking all subnets by @ceyonur in #1857
- Update local network readme by @StephenButtolph in #2203
- Use custom codec for validator metadata by @abi87 in #1510
- Add RSA max key length test by @StephenButtolph in #2205
- Remove duplicate networking check by @StephenButtolph in #2204
- Update TestDialContext to use ManuallyTrack by @joshua-kim in #2209
- Remove contains from validator manager interface by @ceyonur in #2198
- Move the overridden manager into the node by @ceyonur in #2199
- Remove
aggregate
struct by @dhrubabasu in #2213 - Add log for ungraceful shutdown on startup by @joshua-kim in #2215
- Add pebble database implementation by @danlaine in #1999
- Add
TransferSubnetOwnershipTx
by @dhrubabasu in #2178 - Revert networking AllowConnection change by @StephenButtolph in #2219
- Fix unexpected unlock by @StephenButtolph in #2221
- Improve logging for block verification failure by @StephenButtolph in #2224
Full Changelog: v1.10.13...v1.10.14
Cortina.13 - API Locking Refactor
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is updated to 29
all plugins must update to be compatible.
Fixes
- Added
Prefetcher
to themerkledb
interface - Fixed json marshalling of
TrackedSubnets
andAllowedNodes
What's Changed
- Fix typo in block formation logic documentation by @kyoshisuki in #2158
- Marshal blocks and transactions inside API calls by @StephenButtolph in #2153
- Remove lock options from the info api by @StephenButtolph in #2149
- Remove write lock option from the avm static API by @StephenButtolph in #2154
- Remove write lock option from the avm wallet API by @StephenButtolph in #2155
- Fix json marshalling of Sets by @StephenButtolph in #2161
- Rename
removeSubnetValidatorValidation
toverifyRemoveSubnetValidatorTx
by @dhrubabasu in #2162 - Remove lock options from the IPCs api by @StephenButtolph in #2151
- Remove write lock option from the xsvm API by @StephenButtolph in #2152
- Remove lock options from the admin API by @StephenButtolph in #2150
- Remove aliasing of
math
standard lib by @dhrubabasu in #2163 - Remove write lock option from the platformvm API by @StephenButtolph in #2157
- Remove write lock option from the avm rpc API by @StephenButtolph in #2156
- Remove context lock from API VM interface by @StephenButtolph in #2165
- Use set.Of rather than set.Add by @StephenButtolph in #2164
- Bump google.golang.org/grpc from 1.55.0 to 1.58.3 by @dependabot in #2159
- [x/merkledb]
Prefetcher
interface by @patrick-ogrady in #2167 - Validator Diffs: docs and UTs cleanup by @abi87 in #2037
- MerkleDB Reduce buffer creation/memcopy on path construction by @dboehm-avalabs in #2124
- Fix some P-chain UTs by @abi87 in #2117
New Contributors
- @kyoshisuki made their first contribution in #2158
Full Changelog: v1.10.12...v1.10.13
Cortina.12 - Dual-Alpha Support
This version is backwards compatible to v1.10.0. It is optional, but encouraged.
The plugin version is unchanged at 28
and compatible with versions v1.10.9 - v1.10.11
.
APIs
- Added
avalanche_{chainID}_total_weight
metric - Added
avalanche_{chainID}_num_validators
metric - Added
avalanche_{chainID}_num_processing_ancestor_fetches_failed
metric - Added
avalanche_{chainID}_num_processing_ancestor_fetches_dropped
metric - Added
avalanche_{chainID}_num_processing_ancestor_fetches_succeeded
metric - Added
avalanche_{chainID}_num_processing_ancestor_fetches_unneeded
metric - Added
avalanche_{chainID}_num_missing_accepted_blocks
metric - Added
avalanche_{chainID}_selected_vote_index_count
metric - Added
avalanche_{chainID}_selected_vote_index_sum
metric
Configs
- Added
--snow-preference-quorum-size
flag - Added
--snow-confidence-quorum-size
flag - Added
"fx-owner-cache-size"
to the P-chain config
Fixes
- Fixed concurrent node shutdown and chain creation race
- Updated http2 implementation to patch CVE-2023-39325
- Exited
network.dial
early to avoid goroutine leak when shutting down - Reduced log level of
"failed to send peer list for handshake"
messages fromERROR
toDEBUG
- Reduced log level of
"state pruning failed"
messages fromERROR
toWARN
What's Changed
- Add last accepted height to the snowman interface by @StephenButtolph in #2091
- Delete kurtosis CI jobs by @marun in #2068
- e2e: Ensure all Issue* calls use the default context by @marun in #2069
- Remove Finalized from the consensus interface by @StephenButtolph in #2093
- Remove embedding of
verify.Verifiable
inFxCredential
by @dhrubabasu in #2089 - Clarify decidable interface simple default parameter tests by @gyuho in #2094
- snow/consensus/snowman/poll: remove "unused" no early term poller by @gyuho in #2095
- Cleanup
.golangci.yml
by @dhrubabasu in #2097 - Refactor
ancestor.Tree
by @StephenButtolph in #2099 - Update AMI runner image and instance type by @charlie-ava in #1939
- Add
tagalign
linter by @dhrubabasu in #2084 - Fix flaky BuildBlockIsIdempotent test by @StephenButtolph in #2101
- Make
network.dial
honor context cancellation. by @danlaine in #2061 - Add preference lookups by height to the consensus interface by @StephenButtolph in #2092
- Remove duplicate pullQuery method by @StephenButtolph in #2103
- Add additional validator set metrics by @aaronbuchwald in #2051
- Remove
snowball.Initialize
andsnowball.Factory
by @danlaine in #2104 - Remove initialize functions from the snowball package by @danlaine in #2105
- Remove
genesis.State
by @joshua-kim in #2112 - add
SetSubnetOwner
toChain
interface by @dhrubabasu in #2031 - Move vote bubbling before poll termination by @StephenButtolph in #2100
- testing: Switch upgrade test to testnet fixture by @marun in #1887
- Reduce archivedb key lengths by 1 byte by @StephenButtolph in #2113
- Cleanup uptime manager constructor by @abi87 in #2118
- MerkleDB Compact Path Bytes by @dboehm-avalabs in #2010
- MerkleDB Path changes cleanup by @dboehm-avalabs in #2120
- Fix consensus engine interface comments by @StephenButtolph in #2115
- Standardize consensus variable names in tests by @StephenButtolph in #2129
- Prevent bytesNeeded overflow by @StephenButtolph in #2130
- Migrate xsvm from github.com/ava-labs/xsvm by @marun in #2045
- Fix handling of wg in the networking dial test by @StephenButtolph in #2132
- Update go.mod and add update check by @StephenButtolph in #2133
- Reduce log level of failing to send a peerList message by @StephenButtolph in #2134
- RPCChainVM fail-fast health RPCs by @hexfusion in #2123
- MerkleDB allow warming node cache by @dboehm-avalabs in #2128
- Add vote bubbling metrics by @StephenButtolph in #2138
- Reduce log level of an error during Prune by @StephenButtolph in #2141
- Exit chain creation routine before shutting down chain router by @StephenButtolph in #2140
- Merkle db fix type cast bug by @dboehm-avalabs in #2142
- Add Warp Payload Types by @nytzuga in #2116
- Add height voting for chits by @StephenButtolph in #2102
- Add Heap Queue by @joshua-kim in #2135
- Add additional payload.Hash examples by @StephenButtolph in #2145
- Split Alpha into AlphaPreference and AlphaConfidence by @StephenButtolph in #2125
Full Changelog: v1.10.11...v1.10.12