Bor v1.3.3-beta introduces PIP-32 - Ability to prune ancient block data along with a few bug fixes and observability improvements.
Ancient block pruning
This version of bor enables node operators to prune the ancient/historical block data if required. Note that this is different from state pruning, which prunes unused/inactive state from the db. The aim is to remove historical block data (headers, body, and receipts) from the freezer database as they are no longer used for chain verification. This also means that your node will no longer be able to serve RPC queries for those blocks (RPC operators shouldn't ideally use this).
It is available as a sub-command bor snapshot prune-block [options...]
and the number of blocks to keep (post pruning) is configurable via block-amount-reserved
flag. More details and usage info can be found in the PR itself (#1216).
Important points to note:
- This version is backwards in-compatible if pruning is performed (at least once) on the node.
- This feature is only enabled in
hash
based storage scheme for now and won't work forpath
based scheme.
Huge shout-out to @jsvisa who initiated the efforts and did most of the implementation in bor.
Bug fixes
- eth/tracers: avoid data race when tracing block with bor tx by @easyfold in #1214
- eth: explicitly commented the code were bor could get into snap-sync mode by @pratikspatil024 in #1243
- ethstats: added error handeling in ethstats.go which prevents node to panic by @pratikspatil024 in #1249
- eth: explicitly commented the code were bor could get into snap-sync mode 2.0 by @pratikspatil024 in #1247
Observability
- eth/internal: add
debug.peerStats
for stats related to all connected peers by @manav2401 in #1252
Misc
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #1225
- Merge master by @anshalshukla in #1241
- Backmerge Master to develop after 1.3.2 release by @pratikspatil024 in #1250
New Contributors
Full Changelog: v1.3.2...v1.3.3-beta