This patch includes network latency enhancements, database stability improvements, increased transaction reliability on the P-chain, and various other stability/usability improvements.
- Added downed node detection to temporarily bench nodes due to poor query responsiveness.
- Changed the adaptive timeout manager to be additive/additive rather than multiplicative/additive to avoid timeouts from staying unreasonably long.
- Added request latency metrics.
- Close DB instance after first unexpected error to prevent potential DB corruption.
- Removed potentially DB corruption while bootstrapping the P-chain and accepting
ProposalBlocks
. - Added
advanceTimeTx
synchrony buffer. - Reintroduce valid P-chain txs that were placed into rejected blocks.
- Track txs that were dropped due to an invalid start time in the mempool.
- Simplified NAT traversal, including no longer scanning for an available port.
- Correctly set the initial
ResponseWriter
header values in therpcchainvm
's HTTP handler. - Clean up networking go-routines immediately after close rather than waiting for a timeout.
- Added the number of peers as a direct response in
info.peers
API. - Increased bootup time allotment past the ping/pong timeout to avoid exiting the node on restart of the node.
- Updated build scripts to correctly build Linux and MacOS versions.
- Cleaned up recursive dependency chains and added more linting requirements.