Commit graph

16098 commits

Author SHA1 Message Date
juga1980
149bbae244
Merge branch 'ethereum:master' into master 2025-06-30 12:29:38 +02:00
Felix Lange
9eed26d1b0 .gitea: fix 386 upload
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-06-30 10:17:59 +02:00
Felix Lange
158118f6d8
.gitea: switch release builds to static linking (#32118)
This is to avoid compatibility issues with mismatched glibc versions
between the builder and deployment target.

Fixes #32102
2025-06-30 09:53:52 +02:00
juga1980
68039e59e2
Merge branch 'ethereum:master' into master 2025-06-28 11:59:38 +02:00
Stéphane Duchesneau
663fa7b496
eth: correct tracer initialization in BlockchainConfig (#32107)
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Docker Image (push) Has been cancelled
core.BlockChainConfig.VmConfig is not a pointer, so setting the Tracer
on the `vmConfig` object after it was passed to options does *not* apply
it to options.VmConfig

This fixes the issue by setting the value directly inside the `options`
object and removing the confusing `vmConfig` variable to prevent further
mistakes.
2025-06-28 06:56:20 +08:00
juga1980
f221f05b61
Merge branch 'ethereum:master' into master 2025-06-27 12:21:04 +02:00
Ömer Faruk Irmak
aa1de05720
node: do not double-wrap KV stores (#32089)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
For no apparent reason, KV stores were getting wrapped in `nofreezedb`
first and then in `freezerdb`.
2025-06-27 15:27:52 +08:00
Delweng
8e17b371fd
all: replace override.prague with osaka (#32093)
replace `--override.prague` with `--override.osaka`

Signed-off-by: jsvisa <delweng@gmail.com>
2025-06-27 15:18:05 +08:00
Felix Lange
668c3a7278 .travis.yml: remove travis configuration
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-06-26 22:02:50 +02:00
Felix Lange
094db92d68 .gitea: trigger PPA upload on tag 2025-06-26 21:29:59 +02:00
Felix Lange
3941fe0a5f version: begin v1.16.1 release cycle 2025-06-26 20:58:52 +02:00
Felix Lange
57f8971b89 version: release go-ethereum v1.16.0 stable 2025-06-26 20:54:41 +02:00
rjl493456442
0c90e4bda0
all: incorporate state history indexing status into eth_syncing response (#32099)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
This pull request tracks the state indexing progress in eth_syncing
RPC response, i.e. we will return non-null syncing status until indexing
has finished.
2025-06-26 17:20:20 +02:00
rjl493456442
36bcc24fbe
triedb/pathdb: fix journal resolution in pathdb (#32097)
This pull request fixes a flaw in the PBSS state iterator, which
could return empty account or storage data.

In PBSS, multiple in-memory diff layers and a write buffer are
maintained. These layers are persisted to the database and reloaded after
node restarts. However, since the state data is encoded using RLP, the
distinction between nil and an empty byte slice is lost during the encode/decode
process. As a result, invalid state values such as `[]byte{}` can appear in PBSS
and ultimately be returned by the state iterator.


Checkout
https://github.com/ethereum/go-ethereum/blob/master/triedb/pathdb/iterator_fast.go#L270
for more iterator details.

It's a long-term existent issue and now be activated since the snapshot
integration.
The error `err="range contains deletion"` will occur when Geth tries to
serve other
peers with SNAP protocol request.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-06-26 17:19:02 +02:00
juga1980
7965ee73a1
Merge branch 'ethereum:master' into master 2025-06-26 10:26:41 +02:00
rjl493456442
a92f2b86e3
core, eth, triedb: serve historical states over RPC (#31161)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
This is the part-2 for archive node over path mode, which ultimately
ships the functionality to serve the historical states
2025-06-25 16:50:54 +08:00
rjl493456442
ce63bba361
eth, triedb/pathdb: permit write buffer allowance in PBSS archive mode (#32091)
This pull request fixes a flaw in PBSS archive mode that significantly
degrades performance when the mode is enabled.

Originally, in hash mode, the dirty trie cache is completely disabled
when archive mode is active, in order to disable the in-memory garbage 
collection mechanism. However, the internal logic in path mode differs 
significantly, and the dirty trie node cache is essential for maintaining
chain insertion performance. Therefore, the cache is now retained in
path mode.
2025-06-25 16:49:09 +08:00
lightclient
429e821fa2
cmd/utils: fix formatting for beacon flag errors to fit Fatalf form (#32090)
Some checks are pending
/ Linux Build (arm) (push) Waiting to run
/ Linux Build (push) Waiting to run
/ Docker Image (push) Waiting to run
Noticed that the errors for the blsync flags were not formatted
correctly for `Fatalf(..)`.
2025-06-25 10:42:45 +08:00
rjl493456442
cafa5e6c12
core, consensus/beacon: defer trie resolution (#31725)
Previously, the account trie for a given state root was resolved immediately 
when the stateDB was created, implying that the trie was always required
by the stateDB.

However, this assumption no longer holds, especially for path archive nodes, 
where historical states can be accessed even if the corresponding trie data 
does not exist.
2025-06-25 09:42:11 +08:00
Jürgen Gamenik
78d2f13e68 Merge branch 'master' of https://github.com/juga1980/go-ethereum 2025-06-24 17:27:46 +02:00
Jürgen Gamenik
15f8de8460 Revert "more tests"
This reverts commit 356ad96d79.
2025-06-24 17:27:06 +02:00
Jürgen Gamenik
2243c2e206 Revert "advanced tests"
This reverts commit 23191b493a.
2025-06-24 17:24:37 +02:00
juga1980
05890718c6
Merge branch 'ethereum:master' into master 2025-06-24 17:10:49 +02:00
Jürgen Gamenik
f24e6a0730 Merge branch 'juga1980/appendBetter' 2025-06-24 17:04:55 +02:00
Jürgen Gamenik
0f137b8db7 Merge branch 'master' of https://github.com/juga1980/go-ethereum 2025-06-24 17:02:31 +02:00
Jürgen Gamenik
d5a17c2285 capacity at append in for, where it van precalculated 2025-06-24 17:00:14 +02:00
rjl493456442
6dd38d239d
cmd/geth, triedb: add pathdb state verification (#32086)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
This pull request ports the snapshot iteration logic from the legacy
implementation.
2025-06-24 21:06:20 +08:00
rjl493456442
9c5c0e37bf
core/rawdb, triedb/pathdb: implement history indexer (#31156)
This pull request is part-1 for shipping the core part of archive node
in PBSS mode.
2025-06-24 14:36:12 +02:00
Felix Lange
ebff350a2e
miner: default gaslimit 45M (#32087)
We believe it is safe to raise the gaslimit to 45M before the Fusaka
fork. So this PR changes the default to 45M.
2025-06-24 13:17:41 +02:00
shazam8253
c80e7f4280
cmd/geth: era-download logic fix (#32081)
Downloading from a range was failing because it would return and error
early with an error misinterpreting "start-end".

---------

Co-authored-by: shantichanal <158101918+shantichanal@users.noreply.github.com>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-06-24 15:12:11 +08:00
Delweng
0b21c4a633
eth/tracers: prestate lookup EIP7702 delegation account (#32080)
Some checks are pending
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
/ Linux Build (push) Waiting to run
Implement https://github.com/ethereum/go-ethereum/issues/32078 
Parse and lookup the delegation account if EIP7702 is enabled.

---------

Signed-off-by: jsvisa <delweng@gmail.com>
2025-06-24 13:52:18 +08:00
juga1980
613935bd00
Merge branch 'ethereum:master' into master 2025-06-23 11:20:43 +02:00
GarmashAlex
b62c0c67fa
cmd/clef: update readme (#32070)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
Replaced the outdated and broken link to the Web3 Secret Storage
Definition with the current official URL from ethereum.org in the Clef
README. This ensures users have access to up-to-date and accurate
documentation for the keystore file format.
2025-06-23 09:13:48 +02:00
Delweng
78b6059341
eth: quick canceling block inserting when debug_setHead is invoked (#32067)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
If Geth is engaged in a long-run block synchronization, such as a full
syncing over a large number of blocks, invoking `debug_setHead` will
cause `downloader.Cancel` to wait for all fetchers to stop first.
This can be time-consuming, particularly for the block processing
thread.

To address this, we manually call `blockchain.StopInsert` to interrupt
the blocking processing thread and allow it to exit immediately, and
after that call `blockchain.ResumeInsert` to resume the block
downloading process.

Additionally, we add a sanity check for the input block number of
`debug_setHead` to ensure its validity.

---------

Signed-off-by: jsvisa <delweng@gmail.com>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-06-23 14:04:21 +08:00
rjl493456442
21920207e4
triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
Previously, PathDB used a single buffer to aggregate database writes,
which needed to be flushed atomically. However, flushing large amounts
of data (e.g., 256MB) caused significant overhead, often blocking the
system for around 3 seconds during the flush.

To mitigate this overhead and reduce performance spikes, a double-buffer
mechanism is introduced. When the active buffer fills up, it is marked
as frozen and a background flushing process is triggered. Meanwhile, a
new buffer is allocated for incoming writes, allowing operations to
continue uninterrupted.

This approach reduces system blocking times and provides flexibility in
adjusting buffer parameters for improved performance.
2025-06-22 20:40:54 +08:00
Csaba Kiraly
338d754ed0
core/state: fix prefetch on single core CPU (#32075)
We need at least one prefetch goroutine. SetLimit(0) would block
prefetch.

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2025-06-22 20:28:29 +08:00
Jürgen Gamenik
f2b47391de Merge branch 'master' of https://github.com/juga1980/go-ethereum 2025-06-21 18:07:33 +02:00
Jürgen Gamenik
356ad96d79 more tests 2025-06-21 18:03:00 +02:00
juga1980
7fdf11f71a
Merge branch 'ethereum:master' into master 2025-06-21 11:15:46 +02:00
Jürgen Gamenik
23191b493a advanced tests 2025-06-21 10:30:32 +02:00
Csaba Kiraly
6eab053088
core/state: improve the prefetcher concurrency allowance (#32071)
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Docker Image (push) Has been cancelled
Improve the prefetcher concurrency allowance.
2025-06-21 13:00:32 +08:00
rjl493456442
c7b8924fe4
core/state: expose the state reader stats (#31998)
This pull request introduces a mechanism to expose statistics from the
state reader, specifically related to cache utilization during state prefetching.

To improve state access performance, a pair of state readers is constructed 
with a shared local cache. One reader to execute transactions  ahead of time
to warm up the cache. The other reader is used by the actual chain processing 
logic, which can benefit from the prefetched states.

This PR adds visibility into how effective the cache is by exposing relevant 
usage statistics.

---------

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
Co-authored-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2025-06-21 12:58:04 +08:00
Ha DANG
846d13a31a
ethdb: Implement DeleteRange in batch (#31947)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
implement #31945

---------

Co-authored-by: prpeh <prpeh@proton.me>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2025-06-20 19:40:41 +08:00
Antonio Sanso
f26b5653e8
crypto/bn256: add documentation on subgroup checks for G2 (#32066)
This PR improves the IsOnCurve methods for BN254 G2 points by:

* Clarifying its behavior the docstring, making it explicit that it
verifies both the point being on the curve and in the correct subgroup.

* Adding an in-line comment explaining the subgroup membership check
(c.Mul(Order)).

 * Minor wording adjustments for readability and consistency.
2025-06-20 13:18:20 +02:00
Marius van der Wijden
6723388b01
crypto/bn256/gnark: align marshaling behavior (#32065)
Aligns the marshaling behavior of gnark to google and cloudflare

Co-authored-by: kevaundray <kevtheappdev@gmail.com>
2025-06-20 12:47:48 +02:00
Felix Lange
35dd61a3bf .gitea: show environment in release-ppa.yml
Some checks are pending
/ Linux Build (arm) (push) Waiting to run
/ Linux Build (push) Waiting to run
/ Docker Image (push) Waiting to run
2025-06-19 20:37:02 +02:00
maskpp
09289fd154
trie: delete secKeyCacheOwner (#31785)
The optimization tried to defer allocating the cache map until it was used for the
first time. It's a relic from earlier times, when tries were copied often. This seems
unnecessary now, so we can just create the map when the trie is created.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-06-19 16:19:54 +02:00
Felix Lange
d4462828e9 .gitea: touch cron workflow files 2025-06-19 14:56:12 +02:00
rjl493456442
ac50181b74
core: consolidate BlockChain constructor options (#31925)
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Docker Image (push) Waiting to run
In this pull request, the original `CacheConfig` has been renamed to `BlockChainConfig`.

Over time, more fields have been added to `CacheConfig` to support
blockchain configuration. Such as `ChainHistoryMode`, which clearly extends
beyond just caching concerns.

Additionally, adding new parameters to the blockchain constructor has
become increasingly complicated, since it’s initialized across multiple
places in the codebase. A natural solution is to consolidate these arguments 
into a dedicated configuration struct.

As a result, the existing `CacheConfig` has been redefined as `BlockChainConfig`.
Some parameters, such as `VmConfig`, `TxLookupLimit`, and `ChainOverrides`
have been moved into `BlockChainConfig`. Besides, a few fields in `BlockChainConfig`
were renamed, specifically:

- `TrieCleanNoPrefetch` -> `NoPrefetch`
- `TrieDirtyDisabled` -> `ArchiveMode`

Notably, this change won't affect the command line flags or the toml
configuration file. It's just an internal refactoring and fully backward-compatible.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-06-19 12:21:15 +02:00
zhiqiangxu
6762006383
core: simplify effectiveTip calculation (#31771)
Since we have the effective gas price in the message, we can compute tip by
simply subtracting the basefee. No need to recompute the effective price.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-06-19 11:43:24 +02:00