v1.7.11
This version is backwards compatible to v1.7.0. It is optional, but encouraged.
The first startup of the C-Chain will cause an increase in CPU and IO usage due to an index update. This index update runs in the background and does not impact restart time.
State Sync
- Added state syncer engine to facilitate VM state syncing, rather than full historical syncing
- Added
GetStateSummaryFrontier
,StateSummaryFrontier
,GetAcceptedStateSummary
,AcceptedStateSummary
as P2P messages - Updated
Ancestors
message specification to expect an empty response if the container is unknown - Added
--state-sync-ips
and--state-sync-ids
flags to allow manual overrides of which nodes to query for accepted state summaries - Updated networking library to permanently track all manually tracked peers, rather than just beacons
- Added state sync support to the
metervm
- Added state sync support to the
proposervm
- Added state sync support to the
rpcchainvm
- Added beta state sync support to
coreth
ProposerVM
- Prevented rejected blocks from overwriting the
proposervm
height index - Optimized
proposervm
block rewind to utilize the height index if available - Ensured
proposervm
height index is marked as repaired inInitialize
if it is fully repaired on startup - Removed
--reset-proposervm-height-index
. The height index will be reset upon first restart - Optimized
proposervm
height index resetting to periodically flush deletions
Bug Fixes
- Fixed IPC message issuance and restructured consensus event callbacks to be checked at compile time
- Fixed
coreth
metrics initialization - Fixed bootstrapping startup logic to correctly startup if initially connected to enough stake
- Fixed
coreth
panic during metrics collection - Fixed panic on concurrent map read/write in P-chain wallet SDK
- Fixed
rpcchainvm
panic by sanitizing http response codes - Fixed incorrect JSON tag on
platformvm.BaseTx
- Fixed
AppRequest
,AppResponse
, andAppGossip
stringers used in logging
API/Client
- Supported client implementations pointing to non-standard URIs
- Introduced
ids.NodeID
type to standardize logging and simplify API service and client implementations - Changed client implementations to use standard types rather than
string
s wherever possible - Added
subnetID
as an argument toplatform.getTotalStake
- Added
connected
to the subnet validators in responses toplatform.getCurrentValidators
andplatform.getPendingValidators
- Add missing
admin
API client methods - Improved
indexer
API client implementation to avoid encoding edge cases
Networking
- Added
--snow-mixed-query-num-push-vdr
and--snow-mixed-query-num-push-non-vdr
to allow parameterization of sending push queries- By default, non-validators now send only pull queries, not push queries.
- By default, validators now send both pull queries and push queries upon inserting a container into consensus. Previously, nodes sent only push queries.
- Added metrics to track the amount of over gossipping of
peerlist
messages - Added custom message queueing support to outbound
Peer
messages - Reused
Ping
messages to avoid needless memory allocations
Logging
- Replaced AvalancheGo's internal logger with uber-go/zap.
- Replaced AvalancheGo's log rotation with lumberjack.
- Renamed
log-display-highlight
tolog-format
and addedjson
option. - Added
log-rotater-max-size
,log-rotater-max-files
,log-rotater-max-age
,log-rotater-compress-enabled
options for log rotation.
Miscellaneous
- Added
--data-dir
flag to easily move all default file locations to a custom location - Standardized RPC specification of timestamp fields
- Logged health checks whenever a failing health check is queried
- Added callback support for the validator set manager
- Increased
coreth
trie tip buffer size to 32 - Added CPU usage metrics for AvalancheGo and all sub-processes
- Added Disk IO usage metrics for AvalancheGo and all sub-processes
Cleanup
- Refactored easily separable
platformvm
files into separate smaller packages - Simplified default version parsing
- Fixed various typos
- Converted some structs to interfaces to better support mocked testing
- Refactored IP utils
Documentation
- Increased recommended disk size to 1 TB
- Updated issue template
- Documented additional
snowman.Block
invariants