Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
8ecb686
version: begin v1.16.8 release cycle
fjl Nov 4, 2025
fdfd123
core/txpool: drop peers on invalid KZG proofs
MariusVanDerWijden Dec 19, 2025
638741b
crypto/ecies: use aes blocksize
lightclient Jan 9, 2026
ce43eb9
version: release go-ethereum v1.16.8 stable
fjl Jan 13, 2026
abeb78c
Merge branch 'dos-fixes' into release/1.16
fjl Jan 13, 2026
1d1249d
feat: support bid block size check for BEP-655 (#3529)
flywukong Jan 27, 2026
5794d3c
feat: support mev bid gas check of bep 652 (#3528)
flywukong Jan 27, 2026
590ca35
eip4844.go: disable eip-7918 for bsc (#3531)
zlacfzy Jan 27, 2026
febfa17
feat: implement BEP-657 - Limit Blob Transaction Inclusion by Block N…
zlacfzy Jan 27, 2026
0ec6b80
release: prepare for release v1.7.1-beta (#3534)
allformless Jan 28, 2026
b73b3a2
tests: update version of spec-tests (#3537)
allformless Jan 30, 2026
ae2332c
eip4844_test.go: add TestBEP657 (#3541)
zlacfzy Feb 2, 2026
7a92306
eth/ethconfig: reduce timeout for sendrawtransactionsync (#3542)
allformless Feb 2, 2026
4c5825a
fix: fix nodereal builder address (#3543)
flywukong Feb 3, 2026
d1ecc07
README: disable logs indexing by default (#3544)
allformless Feb 4, 2026
3a68acf
fix: fix builder map (#3545)
flywukong Feb 4, 2026
6c103a8
consensus/parlia, core: fix race condition in early finalization (#3547)
zlacfzy Feb 4, 2026
d303aad
READMD: keep latest 3 days history logs (#3549)
allformless Feb 5, 2026
505a2ea
READMD: keep latest 3 days history logs fix (#3551)
allformless Feb 5, 2026
a096362
params: define PasteurTime (#3552)
allformless Feb 9, 2026
457539f
go.mod: upgrade otel to fix CVE-2026-24051 (#3554)
allformless Feb 9, 2026
c9c6898
miner: simplify blob eligibility check in fillTransactions (#3559)
zlacfzy Feb 11, 2026
7b836ed
rollback_test.go: fix TestTransactionRollbackBehavior (#3560)
zlacfzy Feb 11, 2026
46bee92
crypto/ecies: fix ECIES invalid-curve handling (#33669)
fengjian Jan 29, 2026
895a859
crypto/secp256k1: fix coordinate check
fjl Feb 17, 2026
95665d5
version: release go-ethereum v1.16.9
fjl Feb 17, 2026
3c7fc56
crypto/ecies: fix ECIES invalid-curve handling (#33669)
fengjian Jan 29, 2026
b753c6a
crypto/secp256k1: fix coordinate check
fjl Feb 17, 2026
bf0283a
release: prepare for release v1.6.7
allformless Feb 18, 2026
d7518fa
Merge branch 'geth-v1.16.9' into develop
allformless Feb 24, 2026
7a3162f
Merge branch 'bsc-v1.6.7' into develop
allformless Feb 24, 2026
72815c2
Merge pull request #3570 from allformless/merge-geth-v1.16.9
allformless Feb 24, 2026
f2d351c
parlia: use parent snapshot for finalized quorum (#3569)
MatusKysel Feb 24, 2026
796ed2d
fix(parlia): fix typo in vote comparison (#3573)
MatusKysel Feb 25, 2026
037a309
core/vm: cap CometBFT light client validator count to prevent DoS (#3…
MatusKysel Feb 25, 2026
badb553
core: sanitize tar paths and reject symlinks in incremental snapshot …
MatusKysel Feb 26, 2026
5e6857b
Fee history issue (#3577)
zlacfzy Feb 26, 2026
2612c6e
release: update changelog for release v1.7.1-beta (#3578)
allformless Mar 2, 2026
40a099e
fix: fix gaslimit check in trace api (#3580)
flywukong Mar 2, 2026
ece5f6f
miner: fix missing tcount increment in commitBlobTransaction (#3581)
zlacfzy Mar 2, 2026
eb5ded2
fix: superinstruction bad block (#3582)
annielz Mar 5, 2026
817060d
core: reduce cache limit for receipts (#3583)
allformless Mar 6, 2026
38ba06b
filtermaps: update checkpoints.json (#3585)
zlacfzy Mar 10, 2026
3ed9709
rlp: finalize listIterator on parse error to prevent non-advancing lo…
flywukong Mar 10, 2026
5c20e84
eth/protocols/snap: restore peers to idle pool on request revert (#33…
flywukong Mar 11, 2026
1a29cef
core/vm: align super-instruction minStack and maxStack bounds (#3584)
MatusKysel Mar 11, 2026
7f4cff1
consensus/parlia: increment nonce only when tx is included (#3591)
allformless Mar 12, 2026
224c1c8
consensus/parlia: fix TestParlia_applyTransactionTracing (#3593)
allformless Mar 13, 2026
5752bd0
changelog: add 6 bug fix entries for v1.7.1 (#3592)
allformless Mar 13, 2026
ac84609
params: set Osaka/Mendel time in Chapel testnet (#3594)
allformless Mar 13, 2026
da35ee1
Merge pull request #3535 from bnb-chain/develop
allformless Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
# Changelog
## v1.7.1
v1.7.1 is for BSC Chapel testnet [Osaka/Mendel hardfork](https://github.com/bnb-chain/BEPs/blob/master/BEPs/BEP-658.md),the hard fork time is 2026-03-24 02:30:00 AM UTC

### FEATURE
- [feat: support bid block size check for BEP-655](https://github.com/bnb-chain/bsc/pull/3529)
- [feat: support mev bid gas check of bep 652](https://github.com/bnb-chain/bsc/pull/3528)
- [eip4844.go: disable eip-7918 for bsc](https://github.com/bnb-chain/bsc/pull/3531)
- [feat: implement BEP-657 - Limit Blob Transaction Inclusion by Block Number](https://github.com/bnb-chain/bsc/pull/3533)

### BUGFIX
- [core/types: fix typo in vote comparison (#3573)](https://github.com/bnb-chain/bsc/pull/3573)
- [Fee history issue](https://github.com/bnb-chain/bsc/pull/3577)
- [go.mod: upgrade otel to fix CVE-2026-24051](https://github.com/bnb-chain/bsc/pull/3554)
- [fix: fix gaslimit check in trace api (#3580)](https://github.com/bnb-chain/bsc/pull/3580)
- [miner: fix missing tcount increment in commitBlobTransaction (#3581)](https://github.com/bnb-chain/bsc/pull/3581)
- [fix: superinstruction bad block (#3582)](https://github.com/bnb-chain/bsc/pull/3582)
- [core/vm: align super-instruction minStack and maxStack bounds (#3584)](https://github.com/bnb-chain/bsc/pull/3584)
- [rlp: finalize listIterator on parse error to prevent non-advancing loops (#3586)](https://github.com/bnb-chain/bsc/pull/3586)
- [eth/protocols/snap: restore peers to idle pool on request revert (#3587)](https://github.com/bnb-chain/bsc/pull/3587)

## v1.7.0
v1.7.0-alpha is a preview release for upstream code sync, it catches up with [go-ethereum release [v1.16.7]](https://github.com/ethereum/go-ethereum/releases/tag/v1.16.7) and also include several bug fix and improvements.

Expand Down Expand Up @@ -35,6 +55,11 @@ Key changes from the code sync include:
- [ci: upgrade github actions to latest versions](https://github.com/bnb-chain/bsc/pull/3515)
- [ci: ignore nancy failre of quic-go@v0.49.1](https://github.com/bnb-chain/bsc/pull/3512)

## v1.6.7
### BUGFIX
crypto/secp256k1: fix coordinate check
crypto/ecies: fix ECIES invalid-curve handling

## v1.6.6
### BUGFIX
core/txpool: drop peers on invalid KZG proofs
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,11 +147,11 @@ Download latest chaindata snapshot from [here](https://github.com/bnb-chain/bsc-

#### 4. Start a full node
```shell
## It will run with Path-Base Storage Scheme by default and enable inline state prune, keeping the latest 90000 blocks' history state.
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0
## It will run with Path-Base Storage Scheme by default and enable inline state prune, keeping the latest 600000 blocks' history state.
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --history.logs 576000

## It is recommend to run fullnode with `--tries-verify-mode none` if you want high performance and care little about state consistency.
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --tries-verify-mode none
./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --history.logs 576000 --tries-verify-mode none
```

#### 5. Monitor node status
Expand Down
4 changes: 2 additions & 2 deletions build/checksums.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file contains sha256 checksums of optional build dependencies.

# version:spec-tests v5.1.0
# version:spec-tests v5.4.0
# https://github.com/ethereum/execution-spec-tests/releases
# https://github.com/ethereum/execution-spec-tests/releases/download/v5.1.0
# https://github.com/ethereum/execution-spec-tests/releases/download/v5.4.0
a3192784375acec7eaec492799d5c5d0c47a2909a3cc40178898e4ecd20cc416 fixtures_develop.tar.gz

# version:golang 1.25.1
Expand Down
5 changes: 5 additions & 0 deletions cmd/geth/chaincmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ var (
utils.OverrideMendel,
utils.OverrideBPO1,
utils.OverrideBPO2,
utils.OverridePasteur,
utils.OverrideVerkle,
// utils.MultiDataBaseFlag,
}, utils.DatabaseFlags),
Expand Down Expand Up @@ -365,6 +366,10 @@ func initGenesis(ctx *cli.Context) error {
v := ctx.Uint64(utils.OverrideBPO2.Name)
overrides.OverrideBPO2 = &v
}
if ctx.IsSet(utils.OverridePasteur.Name) {
v := ctx.Uint64(utils.OverridePasteur.Name)
overrides.OverridePasteur = &v
}
if ctx.IsSet(utils.OverrideVerkle.Name) {
v := ctx.Uint64(utils.OverrideVerkle.Name)
overrides.OverrideVerkle = &v
Expand Down
4 changes: 4 additions & 0 deletions cmd/geth/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,10 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) {
v := ctx.Uint64(utils.OverrideBPO2.Name)
cfg.Eth.OverrideBPO2 = &v
}
if ctx.IsSet(utils.OverridePasteur.Name) {
v := ctx.Uint64(utils.OverridePasteur.Name)
cfg.Eth.OverridePasteur = &v
}
if ctx.IsSet(utils.OverrideVerkle.Name) {
v := ctx.Uint64(utils.OverrideVerkle.Name)
cfg.Eth.OverrideVerkle = &v
Expand Down
1 change: 1 addition & 0 deletions cmd/geth/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ var (
utils.OverrideMendel,
utils.OverrideBPO1,
utils.OverrideBPO2,
utils.OverridePasteur,
utils.OverrideVerkle,
utils.OverrideGenesisFlag,
utils.OverrideFullImmutabilityThreshold,
Expand Down
25 changes: 18 additions & 7 deletions cmd/jsutils/getchainstatus.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,12 @@ const builderMap = new Map([
["0x48FeE1BB3823D72fdF80671ebaD5646Ae397BB48", "puissant us"],
["0x48B4bBEbF0655557A461e91B8905b85864B8BB48", "puissant x"],
["0x4827b423D03a349b7519Dda537e9A28d31ecBB48", "puissant y"],
["0x48B2665E5E9a343409199D70F7495c8aB660BB48", "puissant:z"],
["0x48B2665E5E9a343409199D70F7495c8aB660BB48", "puissant z"],
// unknown
["0x48265F91F542dCE47ABE5E6683bb086c0f36BB48", "unknown-1"],
["0x48437A0d4AB091b81c6DeD43dEbf23cdfC85BB48", "unknown-2"],
["0x4851f44038fE746173e9E3C4A6e7E904c619BB48", "unknown-3"],
["0x4880cb180d3bb665748f7b66f75F1fEE68D8BB48", "unknown-4"],
// blockroute
["0xD4376FdC9b49d90e6526dAa929f2766a33BFFD52", "blockroute dublin"],
["0x2873fc7aD9122933BECB384f5856f0E87918388d", "blockroute frankfurt"],
Expand All @@ -241,10 +246,13 @@ const builderMap = new Map([
["0x36CB523286D57680efBbfb417C63653115bCEBB5", "jetbldr ap"],
["0x3aD6121407f6EDb65C8B2a518515D45863C206A8", "jetbldr eu"],
["0x345324dC15F1CDcF9022E3B7F349e911fb823b4C", "jetbldr us"],
["0xfd38358475078F81a45077f6e59dff8286e0dCA1", "jetbldr dublin"],
["0x7F5fbFd8e2eB3160dF4c96757DEEf29E26F969a3", "jetbldr tokyo"],
["0xA0Cde9891C6966fCe740817cc5576De2C669AB43", "jetbldr virginia"],
// blockbus
["0x3FC0c936c00908c07723ffbf2d536D6E0f62C3A4", "jetbldr dublin"],
["0x17e9F0D7E45A500f0148B29C6C98EfD19d95F138", "jetbldr tokyo"],
["0x1319Be8b8Ec4AA81f501924BdCF365fBcAa8d753", "jetbldr virginia"],
["0x3FC0c936c00908c07723ffbf2d536D6E0f62C3A4", "blockbus dublin"],
["0x17e9F0D7E45A500f0148B29C6C98EfD19d95F138", "blockbus tokyo"],
["0x1319Be8b8Ec4AA81f501924BdCF365fBcAa8d753", "blockbus virginia"],
// txboost(blocksmith)
["0x6Dddf681C908705472D09B1D7036B2241B50e5c7", "txboost ap"],
["0x76736159984AE865a9b9Cc0Df61484A49dA68191", "txboost eu"],
Expand All @@ -258,9 +266,12 @@ const builderMap = new Map([
["0xb49f86586a840AB9920D2f340a85586E50FD30a2", "inblock eu"],
["0x0F6D8b72F3687de6f2824903a83B3ba13c0e88A0", "inblock us"],
// nodereal
["0x79102dB16781ddDfF63F301C9Be557Fd1Dd48fA0", "nodereal ap"],
["0xd0d56b330a0dea077208b96910ce452fd77e1b6f", "nodereal eu"],
["0x4f24ce4cd03a6503de97cf139af2c26347930b99", "nodereal us"],
["0x79102dB16781ddDfF63F301C9Be557Fd1Dd48fA0", "nodereal ap-1"],
["0x5B526b45e833704d84b5C2EB0F41323dA9466c48", "nodereal ap-2"],
["0xd0d56b330a0dea077208b96910ce452fd77e1b6f", "nodereal eu-1"],
["0xa547F87B2BADE689a404544859314CBC01f2605e", "nodereal eu-2"],
["0x4f24ce4cd03a6503de97cf139af2c26347930b99", "nodereal us-1"],
["0xFD3F1Ad459D585C50Cf4630649817C6E0cec7335", "nodereal us-2"],
// xzbuilder
["0x812720cb4639550D7BDb1d8F2be463F4a9663762", "xzbuilder"],

Expand Down
4 changes: 2 additions & 2 deletions cmd/keeper/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ require (
github.com/prysmaticlabs/prysm/v5 v5.3.2 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.13.1 // indirect
github.com/rogpeppe/go-internal v1.14.1 // indirect
github.com/rs/cors v1.8.2 // indirect
github.com/sasha-s/go-deadlock v0.3.1 // indirect
github.com/shirou/gopsutil v3.21.11+incompatible // indirect
Expand All @@ -94,7 +94,7 @@ require (
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/text v0.31.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/grpc v1.69.4 // indirect
Expand Down
40 changes: 20 additions & 20 deletions cmd/keeper/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,8 @@ github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
Expand Down Expand Up @@ -141,8 +141,8 @@ github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl76
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us=
Expand Down Expand Up @@ -258,8 +258,8 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U=
github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
Expand All @@ -273,8 +273,8 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe h1:nbdqkIGOGfUAD54q1s2YBcBz/WcsxCO9HUQ4aGV5hUw=
github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw=
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY=
Expand All @@ -301,18 +301,18 @@ github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFi
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI=
go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g=
go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g=
go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc=
go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw=
go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
Expand Down Expand Up @@ -353,8 +353,8 @@ golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down
5 changes: 5 additions & 0 deletions cmd/utils/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,11 @@ var (
Usage: "Manually specify the bpo2 fork timestamp, overriding the bundled setting",
Category: flags.EthCategory,
}
OverridePasteur = &cli.Uint64Flag{
Name: "override.pasteur",
Usage: "Manually specify the Pasteur fork timestamp, overriding the bundled setting",
Category: flags.EthCategory,
}
OverrideVerkle = &cli.Uint64Flag{
Name: "override.verkle",
Usage: "Manually specify the Verkle fork timestamp, overriding the bundled setting",
Expand Down
33 changes: 29 additions & 4 deletions consensus/misc/eip4844/eip4844.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,13 @@ func VerifyEIP4844Header(config *params.ChainConfig, parent, header *types.Heade
return errors.New("header is missing blobGasUsed")
}

// BEP-657: non-eligible blocks must have no blob gas used
if !IsBlobEligibleBlock(config, header.Number.Uint64(), header.Time) {
if *header.BlobGasUsed != 0 {
return fmt.Errorf("blob transactions not allowed in block %d (N %% %d != 0)", header.Number.Uint64(), params.BlobEligibleBlockInterval)
}
}

// Verify that the blob gas used remains within reasonable limits.
if *header.BlobGasUsed > bcfg.maxBlobGas() {
return fmt.Errorf("blob gas used %d exceeds maximum allowance %d", *header.BlobGasUsed, bcfg.maxBlobGas())
Expand All @@ -129,12 +136,21 @@ func VerifyEIP4844Header(config *params.ChainConfig, parent, header *types.Heade
// CalcExcessBlobGas calculates the excess blob gas after applying the set of
// blobs on top of the excess blob gas.
func CalcExcessBlobGas(config *params.ChainConfig, parent *types.Header, headTimestamp uint64) uint64 {
isOsaka := config.IsOsaka(config.LondonBlock, headTimestamp)
eip7918 := config.IsOsaka(config.LondonBlock, headTimestamp) && config.IsNotInBSC()
bcfg := latestBlobConfig(config, headTimestamp)
return calcExcessBlobGas(isOsaka, bcfg, parent)

// BEP-657: for non-recalculation blocks (N % BlobEligibleBlockInterval != 1), inherit parent's ExcessBlobGas
if config.IsMendel(config.LondonBlock, headTimestamp) && parent.Number.Uint64()%params.BlobEligibleBlockInterval != 0 {
if parent.ExcessBlobGas != nil {
return *parent.ExcessBlobGas
}
return 0
}

return calcExcessBlobGas(eip7918, bcfg, parent)
}

func calcExcessBlobGas(isOsaka bool, bcfg *BlobConfig, parent *types.Header) uint64 {
func calcExcessBlobGas(eip7918 bool, bcfg *BlobConfig, parent *types.Header) uint64 {
var parentExcessBlobGas, parentBlobGasUsed uint64
if parent.ExcessBlobGas != nil {
parentExcessBlobGas = *parent.ExcessBlobGas
Expand All @@ -151,7 +167,7 @@ func calcExcessBlobGas(isOsaka bool, bcfg *BlobConfig, parent *types.Header) uin

// EIP-7918 (post-Osaka) introduces a different formula for computing excess,
// in cases where the price is lower than a 'reserve price'.
if isOsaka {
if eip7918 {
var (
baseCost = big.NewInt(params.BlobBaseCost)
reservePrice = baseCost.Mul(baseCost, parent.BaseFee)
Expand Down Expand Up @@ -185,6 +201,15 @@ func MaxBlobsPerBlock(cfg *params.ChainConfig, time uint64) int {
return blobConfig.Max
}

// IsBlobEligibleBlock returns whether blob transactions can be included in the block.
// BEP-657: After Mendel fork, only blocks where N % BlobEligibleBlockInterval == 0 can include blob transactions.
func IsBlobEligibleBlock(cfg *params.ChainConfig, blockNumber uint64, time uint64) bool {
if !cfg.IsMendel(cfg.LondonBlock, time) {
return true
}
return blockNumber%params.BlobEligibleBlockInterval == 0
}

// MaxBlobGasPerBlock returns the maximum blob gas that can be spent in a block at the given timestamp.
func MaxBlobGasPerBlock(cfg *params.ChainConfig, time uint64) uint64 {
return uint64(MaxBlobsPerBlock(cfg, time)) * params.BlobTxBlobGasPerBlob
Expand Down
Loading
Loading