Bor v2.7.1 is a maintenance release that brings significant performance, stability, and network efficiency improvements. All node operators are encouraged to update.
Key Highlights:
Network & Transaction Propagation
The maximum transaction packet size (`maxTxPacketSize`) has been increased from 100KB to 1MB. The previous limit was insufficient for Polygon's high-throughput blocks, often requiring the transactions from a single block to be split into five or more messages. This enhancement allows a full block's worth of transactions to be propagated in a single message, drastically reducing mempool synchronization latency across the network. Additionally, a related fix increases the transaction announcement limit (`maxTxAnnounces`) to prevent bottlenecks during periods of high a transaction volume.
Performance & Database Optimizations
This release includes several key performance boosts:
• EVM Performance: Optimizations from Geth's EVM have been ported to Bor, including a more efficient, array-based stack and a fast-path dispatch for common opcodes. These changes accelerate transaction processing.
• Database Tuning: The PebbleDB write path and pathdb state handling have been tuned to reduce write stalls and improve I/O efficiency. A new safe state carry-over mechanism reuses dirty state more effectively across flushes, further improving performance.
• State-Sync Optimization: The State-Sync Response Collector (SRC) buffer has been reduced from 500ms to 100ms. This allows worker threads to spend more time on transaction execution instead of waiting, which is a crucial adjustment for future block time reductions.
Stability and Security Fixes
• Goroutine Leak Fix: A significant goroutine leak in the witness request path has been resolved. The leak occurred when peers disconnected or stopped responding, which could lead to increased memory consumption and node instability over time.
• gRPC Security Update: The `gRPC` dependency has been updated to v1.79.3, which includes a security fix for a server authorization bypass vulnerability caused by malformed request paths.
• Packaging Fix: A bug in the post-removal scripts for packaged installations (`.deb`/`.rpm`) has been corrected.
## What's Changed * build(deps): bump google.golang.org/grpc from 1.77.0 to 1.79.3 by @dependabot[bot] in https://github.com/0xPolygon/bor/pull/2148 * eth, eth/protocols/eth: fix goroutine leaks in witness request path by @cffls in https://github.com/0xPolygon/bor/pull/2157 * eth/protocols/eth: increase maxTxPacketSize from 100 KB to 1 MB by @lucca30 in https://github.com/0xPolygon/bor/pull/2160 * v2.7.0 to develop by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/2167 * core/vm: port GEVM performance optimisations by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2143 * core/blockstm: remove old UpdateDeps DAG algorithm by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2168 * ethdb, triedb: tune pebble write path and add safe pathdb state carry-over by @marcello33 in https://github.com/0xPolygon/bor/pull/2170 * p2p: add debug logs around peer disconnect by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2169 * Update maxTxAnnounces to match maxQueuedTxAnns by @cffls in https://github.com/0xPolygon/bor/pull/2171 * Fixes for the postrm scripts by @djpolygon in https://github.com/0xPolygon/bor/pull/2178 * Adjust SRC buffer from 500ms to 100ms by @cffls in https://github.com/0xPolygon/bor/pull/2179 * v2.7.1 by @cffls in https://github.com/0xPolygon/bor/pull/2186 **Full Changelog**: https://github.com/0xPolygon/bor/compare/v2.7.0...v2.7.1