This version is backwards compatible to v1.9.0. It is optional, but encouraged. The supported plugin version is 20
.
This version modifies the db format. The db format is compatible with v1.9.3, but not v1.9.2 or earlier. After running a node with v1.9.4 attempting to run a node with a version earlier than v1.9.3 may report a fatal error on startup.
PeerList Gossip Optimization
- Added gossip tracking to the
peer
instance to only gossip newIP
s to a connection - Added
PeerListAck
message to report whichTxID
s provided by thePeerList
message were tracked - Added
TxID
s to thePeerList
message to unique-ify nodeIDs across validation periods - Added
TxID
mappings to the gossip tracker
Validator Set Tracking
- Renamed
GetValidators
toGet
on thevalidators.Manager
interface - Removed
Set
,AddWeight
,RemoveWeight
, andContains
from thevalidators.Manager
interface - Added
Add
to thevalidators.Manager
interface - Removed
Set
from thevalidators.Set
interface - Added
Add
andGet
to thevalidators.Set
interface - Modified
validators.Set#Sample
to returnids.NodeID
rather thanvaldiators.Validator
- Replaced the
validators.Validator
interface with a struct - Added a
BLS
public key field tovalidators.Validator
- Added a
TxID
field tovalidators.Validator
- Improved and documented error handling within the
validators.Set
interface - Added
BLS
public keys to the result ofGetValidatorSet
- Added
BuildBlockWithContext
as an optional VM method to build blocks at a specific P-chain height - Added
VerifyWithContext
as an optional block method to verify blocks at a specific P-chain height
Uptime Tracking
- Added ConnectedSubnet message handling to the chain handler
- Added SubnetConnector interface and implemented it in the platformvm
- Added subnet uptimes to p2p
pong
messages - Added subnet uptimes to
platform.getCurrentValidators
- Added
subnetID
as an argument toinfo.Uptime
Fixes
- Fixed incorrect context cancellation of escaped contexts from grpc servers
- Fixed race condition between API initialization and shutdown
- Fixed race condition between NAT traversal initialization and shutdown
- Fixed race condition during beacon connection tracking
- Added race detection to the E2E tests
- Added additional message and sender tests
Coreth
- Improved header and logs caching using maximum accepted depth cache
- Added config option to perform database inspection on startup
- Added configurable transaction indexing to reduce disk usage
- Added special case to allow transactions using Nick's Method to bypass API level replay protection
- Added counter metrics for number of accepted/processed logs
APIs
- Added indices to the return values of
GetLastAccepted
andGetContainerByID
on theindexer
API client - Removed unnecessary locking from the
info
API
Chain Data
- Added
ChainDataDir
to thesnow.Context
to allow blockchains to canonically access disk outside avalanchego's database - Added
--chain-data-dir
as a CLI flag to specify the base directory for allChainDataDir
s
Miscellaneous
- Removed
Version
from thepeer.Network
interface - Removed
Pong
from thepeer.Network
interface - Reduced memory allocations inside the system throttler
- Added
CChainID
to thesnow.Context
- Converted all sorting to utilize generics
- Converted all set management to utilize generics