Hi all, we have released new stable versions of PoS clients for the upcoming Lisovo/LisovoPro HF on Mainnet.
The hardfork will happen on block 83756500, at around 2 PM UTC, March 4th, 2026.
Bor
Bor v2.6.0 release defines the upcoming Lisovo/LisovoPro hardfork, includes performance improvements, and upstream updates from go-ethereum.
The Mainnet Lisovo/LisovoPro Hardfork will happen on block 83756500, at around 2 PM UTC, March 4th, 2026.
The changes included in this HF are:
-
CLZOpcode Support -
P256Gas Cost Updates
With regards to upstream updates, we are rolling out changes up to go-ethereum v1.16.8
Other major changes include:
-
Security fixes
-
Go bump
-
Bugs fixes
-
Implementation of PIP-82 (changes in
BurntContract) -
Peer Consensus-Based Witness Verification (#1766)
-
Dynamic EIP-1559 Parameters (#1989)
-
Transaction Rebroadcast Mechanism (#1992, #2028, #2037)
-
Validator Set Overrides (#1958)
-
Witness Memory Cache (#1962)
-
Block Production Metrics (#1991)
-
Late Block Build Time (#1963)
-
Pruner Reorg Handling (#1916)
-
Race Condition Fixes (#1946)
-
Witness Protocol Concurrency Fix (#2023)
Also, the release includes minor bug fixes (crash in eth_simulateV1, stateless mode stability, state-sync support for the tracer, …), more tests, and improvements to code quality.
What’s Changed
-
eth/protocols/wit: made protocol version consistent by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1940
-
chore: fix function name in comment and correct spelling error in config.go by @findfluctuate in https://github.com/0xPolygon/bor/pull/1956
-
chore: remove repetitive word in comment by @liuyueyangxmu in https://github.com/0xPolygon/bor/pull/1909
-
core/txpool: added nil checks to prevent crash in stateless mode by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1961
-
Enforce patch code coverage by @cffls in https://github.com/0xPolygon/bor/pull/1964
-
backport v2.5.6 into develop by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1971
-
core, eth: added LRU memory cache to save witnesses in memory by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1962
-
consensus/bor: ensure late blocks have sufficient build time by @cffls in https://github.com/0xPolygon/bor/pull/1963
-
backport v2.5.7 by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1985
-
Return nil from heimdall mock on milestone/checkpoint by @cffls in https://github.com/0xPolygon/bor/pull/1988
-
fix randomly failing TestCalcBaseFeeDelhi by @cffls in https://github.com/0xPolygon/bor/pull/1987
-
Increase veblop timeout to 8 seconds by @cffls in https://github.com/0xPolygon/bor/pull/1986
-
fix(rpc): eth_simulateV1 method handler crash by @ChanHongMing in https://github.com/0xPolygon/bor/pull/1955
-
BP Metrics by @lucca30 in https://github.com/0xPolygon/bor/pull/1991
-
txpool: add stuck transaction rebroadcast mechanism by @cffls in https://github.com/0xPolygon/bor/pull/1992
-
fix: add bor hfs to description and readheadertimeout in config by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2003
-
init: CLAUDE.md file by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2000
-
consensus/eip1559: add missing bhilai HF tests by @manav2401 in https://github.com/0xPolygon/bor/pull/1990
-
Validator Set Overrides on Config by @lucca30 in https://github.com/0xPolygon/bor/pull/1958
-
Add Claude Assistant Workflows by @adamdossa in https://github.com/0xPolygon/bor/pull/2006
-
bind, params: fix bind/v2 tests and warn about invalid config/flag by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2007
-
Switch to GCR for our CI / CD instead of Docker Hub by @adamdossa in https://github.com/0xPolygon/bor/pull/2011
-
fix(ci): use custom kurtosis branch by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2012
-
eth: implemented peer consensus based witness verification by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/1766
-
Various improvements by @marcello33 in https://github.com/0xPolygon/bor/pull/1950
-
ci: load kurtosis images from gcr instead of docker hub by @leovct in https://github.com/0xPolygon/bor/pull/2014
-
Dynamic EIP-1559 params setup by @lucca30 in https://github.com/0xPolygon/bor/pull/1989
-
Test validator’s ability to rewind upon span rotation by @cffls in https://github.com/0xPolygon/bor/pull/1960
-
geth upstream v1.16.7 by @Raneet10 in https://github.com/0xPolygon/bor/pull/1974
-
eth/tracers: include state sync tx in traces post-Madhugiri by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2010
-
eth: fix concurrent map writes panic in witness protocol by @cffls in https://github.com/0xPolygon/bor/pull/2023
-
backport v2.5.8 by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/2025
-
upstream v1.16.8 by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/2024
-
fix(api): tracers tests for state-sync tx by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2026
-
Updating enodes for mainnet and amoy by @sanketsaagar in https://github.com/0xPolygon/bor/pull/2021
-
pruner: covering reorg scenarios by @lucca30 in https://github.com/0xPolygon/bor/pull/1916
-
geth upstream v1.16.4 by @marcello33 in https://github.com/0xPolygon/bor/pull/1839
-
Enable rebroadcast by default by @cffls in https://github.com/0xPolygon/bor/pull/2028
-
Fix race conditions detected in make test-race by @cffls in https://github.com/0xPolygon/bor/pull/2027
-
revert: P256VerifyGas to 3450 by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2030
-
fix(ci): test-state-sync by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2032
-
Enable rebroadcast by default by @cffls in https://github.com/0xPolygon/bor/pull/2037
-
Install polycli in kurtosis e2e by @cffls in https://github.com/0xPolygon/bor/pull/2036
-
lisovo: CLZ opcode and P256 gas cost changes by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2040
-
consensus/misc/eip4844: small update to fix simulatev1 crash by @pratikspatil024 in https://github.com/0xPolygon/bor/pull/2054
-
core, internal, params: lisovoPro HF and version bump by @marcello33 in https://github.com/0xPolygon/bor/pull/2055
-
consensus/bor: fix goroutine leak in runMilestoneFetcher when Heimdall is unreachable by @cffls in https://github.com/0xPolygon/bor/pull/2056
-
fix(shutdown): cancel in-flight Heimdall queries on engine shutdown by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2058
-
consensus/bor: fix sub-second late block detection producing empty blocks by @cffls in https://github.com/0xPolygon/bor/pull/2060
-
fix(core): cap verifyPendingHeaders to prevent OOM from unbounded header reads by @kamuikatsurgi in https://github.com/0xPolygon/bor/pull/2057
-
builder, internal, params: pip-82 and lisovo HF in mainnet by @marcello33 in https://github.com/0xPolygon/bor/pull/2064
-
v2.6.0 by @marcello33 in https://github.com/0xPolygon/bor/pull/2065
-
core/stateless: fix witness RLP backward compat with WIT/0 peers by @cffls in #2068
New Contributors
-
@findfluctuate made their first contribution in https://github.com/0xPolygon/bor/pull/1956
-
@liuyueyangxmu made their first contribution in https://github.com/0xPolygon/bor/pull/1909
-
@ChanHongMing made their first contribution in https://github.com/0xPolygon/bor/pull/1955
Full Changelog: https://github.com/0xPolygon/bor/compare/v2.5.9…v2.6.0
Steps for upgrading Bor node
-
Stop bor service
sudo service bor stop -
Install Bor with a version tag, network name (mainnet/amoy), and node type (sentry, validator, or archive).
# Replace the node type curl -L https://raw.githubusercontent.com/0xpolygon/install/main/bor.sh | bash -s -- v2.6.0 <network> <node_type> -
Check bor version
/usr/bin/bor version # It should print # v2.6.0 -
Restart bor service
sudo service bor start
Erigon
The corresponding Erigon version (ready for the Mainnet LisovoPro HF) is Erigon v3.4.0
Docker Images
You can find the latest docker images here:
Bor: https://hub.docker.com/r/0xpolygon/bor/tags
Erigon: https://hub.docker.com/r/0xpolygon/erigon/tags
Thanks,
Polygon Team