maticnetwork/bor - v2.0.4

Published: Jun 12, 2025

Release Summary

This release incorporates the latest upstream changes from Geth, specifically versions 1.14.12 and 1.14.13.

A major new feature enabled in this version is Snap Synchronization. This mode drastically reduces the time required for initial syncing by downloading recent state and chain data from peers instead of re-executing the entire transaction history like traditional Geth full sync. Initial tests on specific hardware configurations show sync times around 30 hours on Polygon mainnet, a significant improvement.

To utilize snap sync, ensure your node is configured with PBSS and PebbleDB. Simply start your node with the
`--syncmode snap`
flag.

Additionally, this release includes foundational work to make consensus verification stateless. This is a step towards enabling full stateless block verification in the future and also supports the new snap synchronization mechanism.

The release also contains various bug fixes and other improvements.

Release Notes

This release contains upstream merge from geth, few bug fixes, and improvements.

It contains upstream merge from geth including releases [Gei Hinnom (v1.14.12)](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.12) and [Schwarzschild (v1.14.13)](https://github.com/ethereum/go-ethereum/releases/tag/v1.14.13). 

Additionally, it enables a long time due feature, the `snap` syncing mechanism. Snap sync instead of re-executing all blocks (like in full sync) downloads the recent most state and chain data from it's peer(s) (trusting them to deliver correct data) making the syncing time from scratch significantly less. Initial benchmarks on a n2d-standard-8 (8 vCPUs, 32 GB Memory) with an SSD disk shows ~30 hours of sync time on Polygon mainnet at the time of this release. More details about snap sync can be found [here](https://geth.ethereum.org/docs/fundamentals/sync-modes#snap-sync). Note that the node should be started with PBSS + PebbleDB in order to be able to use snap sync. To get started, set the `syncmode` flag to `snap`. 

This release also makes consensus verification in bor stateless to enable full stateless block verification in future and also support snap sync

## What's Changed
* fix mocks generation and remove reflection by @marcello33 in https://github.com/maticnetwork/bor/pull/1504
* fix nil pointer dereference on DoCall by @marcello33 in https://github.com/maticnetwork/bor/pull/1506
* Sec fixes by @marcello33 in https://github.com/maticnetwork/bor/pull/1508
* Updating packager by @djpolygon in https://github.com/maticnetwork/bor/pull/1527
* chore: fix function name in comment by @shangchengbabaiban in https://github.com/maticnetwork/bor/pull/1529
* Fix ci by @cffls in https://github.com/maticnetwork/bor/pull/1530
* consensus/bor: add span store abstraction for stateless verification by @manav2401 in https://github.com/maticnetwork/bor/pull/1472
* eth, internal/cli: allow bor to run in snap sync by @manav2401 in https://github.com/maticnetwork/bor/pull/1532
* Upstream merge v1.14.13 by @manav2401 in https://github.com/maticnetwork/bor/pull/1499
* Backport master to develop (v2.2.0) by @manav2401 in https://github.com/maticnetwork/bor/pull/1535
* consensus/bor: remove state root calculation from bor consensus by @manav2401 in https://github.com/maticnetwork/bor/pull/1539
* Backport master to develop by @manav2401 in https://github.com/maticnetwork/bor/pull/1542

## New Contributors
* @shangchengbabaiban made their first contribution in https://github.com/maticnetwork/bor/pull/1529

**Full Changelog**: https://github.com/maticnetwork/bor/compare/v2.0.3...v2.0.4

Links

Back to maticnetwork/bor releases