Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft release v1.5.7 #2930

Merged
merged 24 commits into from
Feb 28, 2025
Merged

Draft release v1.5.7 #2930

merged 24 commits into from
Feb 28, 2025

Conversation

zzzckck
Copy link
Collaborator

@zzzckck zzzckck commented Feb 28, 2025

Description

v1.5.7 is for BSC mainnet Pascal hard fork, which will be enabled at: 2025-03-20 02:10:00 AM UTC, all BSC mainnet nodes need to upgrade to v1.5.7 before the hard fork time. For this upgrade, simply binary replacement should be enough.

Besides hard fork, v1.5.7 also include one bugfix and some improvements:

  • 1.fix the windows binary release, which is caused by a mismatched dependency.
  • 2.increase the efficient GasLimit by reducing the gas reserved for systemTx, after v1.5.7 blocks can almost reach 140M GasLimit target now(previously it was 120M), which would increase the network throughput.
  • 3.performance improvement by removing unnecessary signer recover code.
  • 4.update the TxPool gastip check logic, so some zero-gasprice transactions that are added by block reorg will be dropped, it would be helpful to Megafuel.

ChangeLog

v1.5.7 conduct small upstream code merge to follow the latest pectra hard fork and apply some bug fix. There are two PR for the code merge:

  • #2897 upstream: merge tag 'geth-v1.15.1' into bsc-develop
  • #2926 upstream: pick bug fix from latest geth

Besides code merge, there are also several important bugfix/improvements, and setup mainnet Pascal hard fork time:

FEATURE

  • #2928 config: update BSC Mainnet hardfork date: Pascal & Praque

BUGFIX

  • #2907 go.mod: downgrade bls-eth-go-binary to make it same as the prysm-v5.0.0

IMPROVEMENT

  • #2896 consensus/parlia: estimate gas reserved for systemTxs
  • #2912 consensus/parlia: improve performance of func IsSystemTransaction
  • #2916 miner: avoid to collect requests when getting pending blocks
  • #2913 core/vm: add basic test cases for blsSignatureVerify
  • #2918 core/txpool/legacypool/legacypool.go: add gasTip check when reset

jwasinger and others added 22 commits February 12, 2025 09:55
This fixes an error where executing `evm run --dump ...` omits preimages
from the dump (because the statedb used for execution is a copy of
another instance).
closes ethereum/go-ethereum#31072

BLST released their newest version which includes a fix for go v.1.24:
https://github.com/supranational/blst/releases/tag/v0.3.14

I went through all commits between 0.3.14 and 0.3.13 for a sanity check
This is to prevent a crash on startup with a custom genesis configuration.
With this change in place, upgrading a chain created by geth v1.14.x and
below will now print an error instead of crashing:

    Fatal: Failed to register the Ethereum service: invalid chain configuration: missing entry for fork "cancun" in blobSchedule

Arguably this is not great, and it should just auto-upgrade the config.
We'll address this in a follow-up PR for geth v1.15.2
This PR addresses a flaw in the freezer table upgrade path.

In v1.15.0, freezer table v2 was introduced, including an additional 
field (`flushOffset`) maintained in the metadata file. To ensure 
backward compatibility, an upgrade path was implemented for legacy
freezer tables by setting `flushOffset` to the size of the index file.

However, if the freezer table is opened in read-only mode, this file 
write operation is rejected, causing Geth to shut down entirely.

Given that invalid items in the freezer index file can be detected and 
truncated, all items in freezer v0 index files are guaranteed to be
complete. Therefore, when operating in read-only mode, it is safe to
use the  freezer data without performing an upgrade.
upstream: merge tag 'geth-v1.15.1' into bsc-develop
This PR adds a test that makes sure that a node can send multiple
transactions again once a authorization is removed
Fixes an incorrect encoding of recursive bytes types.
closes ethereum/go-ethereum#30979
In this PR, several improvements have been made:

Authorization-related validations have been moved to legacyPool.
Previously, these checks were part of the standard validation procedure,
which applies common validations across different pools. Since these
checks are specific to SetCode transactions, relocating them to
legacyPool
is a more reasonable choice.

Additionally, authorization conflict checks are now performed regardless
of whether the transaction is a replacement or not.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
This change divides BlobGasUsed by MaxBlobGasPerBlock instead of
MaxBlobsPerBlock. Dividing by MaxBlobsPerBlock
meant the blobGasUsedRatio was an incorrect large number. This bug was
introduced by a typo
[here](ethereum/go-ethereum@e6f3ce7#diff-3357b2399699d7cf954c543cbfb02ff442eb24491e55f5e813e3cc85829b3e8dR110)

Fixes ethereum/go-ethereum#31245
when remove an non-SetCodeTxType transaction, error logs flood
```
t=2025-02-25T03:11:06+0000 lvl=error msg="Authority with untracked tx" addr=0xD5bf9221fCB1C31Cd1EE477a60c148d40dD63DC1 hash=0x626fdf205a5b1619deb2f9e51fed567353f80acbd522265b455daa0821c571d9
```

in this PR, only try to removeAuthorities for txs with SetCodeTxType

in addition, the performance of removeAuthorities improved a lot,
because no need range all `t.auths` now.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
upstream: pick bug fix from latest geth
@zzzckck zzzckck marked this pull request as draft February 28, 2025 03:38
@zzzckck zzzckck marked this pull request as ready for review February 28, 2025 09:55
@zzzckck zzzckck changed the title WIP: for v1.5.7 Draft release v1.5.7 Feb 28, 2025
@zzzckck zzzckck merged commit 0449349 into master Feb 28, 2025
11 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.