Commit Graph
13894 Commits
Author SHA1 Message Date
ucwong 4a3fb585dd les/fetcher : fix requestTimer leak (#26514)
les/fetcher : fix requestTimer leak
2023-01-18 03:46:32 -05:00
Paul 97401b6c63 eth/filters: fix typo in comment (#26515) 2023-01-17 23:29:08 +01:00
ucwong 297ec0669d metrics/influxdb: fix time ticker leaks (#26507) 2023-01-17 13:45:35 +01:00
ucwong f2758a8dac cmd/evm: typo fix in docs (#26506) 2023-01-16 13:14:21 -05:00
Marius Kjærstad 8d4c81dab1 build: upgrade -dlgo version to Go 1.19.5 (#26472) 2023-01-16 14:24:11 +01:00
Ikko Eltociear Ashimine c858da555d cmd/evm: fix typo in README.md (#26500) 2023-01-16 11:23:24 +01:00
Seungbae Yu d345a4a3c6 cmd/bootnode, cmd/utils: add 'pmp:<IP>' to --nat flag description (#26381) 2023-01-16 11:21:41 +01:00
ucwong 55c3b6fc37 swarm: fix outdated link (#26501) 2023-01-16 11:00:55 +01:00
Zachinquarantine 554c8d77c5 cmd/utils: update Rinkeby deprecation message (#26496) 2023-01-16 10:57:35 +01:00
Martin Holst Swende 0b53b29078 core/rawdb: fix cornercase shutdown behaviour in freezer (#26485)
This PR does a few things. 
It fixes a shutdown-order flaw in the chainfreezer. Previously, the chain-freezer would shutdown the freezer backend first, and then signal for the loop to exit. This can lead to a scenario where the freezer tries to fsync closed files, which is an error-conditon that could lead to exit via log.Crit. 

It also makes the printout more detailed when truncating 'dangling' items, by showing the exact number instead of approximate MB.

This PR also adds calls to fsync files before closing them, and also makes the `db inspect` command slightly more robust.
2023-01-16 03:57:27 -05:00
David Hwang 450d771bee readme: fix broken link to installation instructions (#26497)
update link to the installation instructions
2023-01-15 03:23:58 -05:00
Marius van der Wijden 0e486a56c9 Use filepath.clean instead of path.clean (#26404)
* internal/flags: use filepath.Clean instead of path.Clean

* internal/flags: fix windows pipe issue

* internal/flags: modify test for windows

* internal/flags: use backticks, fix test
2023-01-13 09:48:42 -05:00
rjl493456442 e04d63ebd3 core/rawdb: fsync head data file before closing it (#26490)
This PR fixes an issue which might result in data lost in freezer.

Whenever mutation happens in freezer, all data will be written into head data file
and it will be rotated with a new one in case the size of file reaches the threshold.

Theoretically, the rotated old data file should be fsync'd to prevent data loss.
In freezer.Sync function, we only fsync: (1) index file (2) meta file and (3) head
data file. So this PR forcibly fsync the head data file if mutation happens in the
boundary of data file.
2023-01-13 05:55:50 -05:00
rjl493456442 a21e963ac2 eth/catalyst: trigger beacon sync directly with provided chain head (#26489) 2023-01-13 08:13:27 +01:00
Felix Lange d379e3f605 ethclient/gethclient: ensure getProof keys parameter is not null (#26409)
Other clients do not accept a parameter value of null for this array.
2023-01-12 11:31:21 +01:00
rjl493456442 b748709a11 eth/downloader: fix cornercase when clean stale beacon headers (#26441) 2023-01-12 11:19:16 +01:00
lightclient 6f858fa806 rpc: fix setting client in DialHTTPWithClient (#26470) 2023-01-12 11:04:34 +01:00
Andrew Ashikhmin c125e6e00c core/vm: enable EIP-3855 (PUSH0) in Shanghai (#26475) 2023-01-12 11:00:08 +01:00
793f0f9ec8 core/vm: implement EIP-3860: Limit and meter initcode (#23847)
Implementation of https://eips.ethereum.org/EIPS/eip-3860, limit and meter initcode. This PR enables EIP-3860 as part of the Shanghai fork. 


Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2023-01-11 04:05:47 -05:00
Péter Szilágyi 452a12aa79 eth/downloader: move the pivot in beacon sync mode too (#26453)
In legacy (pre-merge) sync mode, headers were contiguously downloaded from the network and when no more headers were available, we checked every few seconds whether there are 64 new blocks to move the pivot.

In beacon (post-merge) sync mode, we don't need to check for new skeleton headers non stop, since those re delivered one by one by the engine API. The missing code snippet from the header fetcher was to actually look at the latest head and move the pivot if it was more than 2*64-8 away. This PR adds the missing movement logic.
2023-01-10 12:16:54 -05:00
Martin Holst SwendeandSina Mahmoodi 2c6dda5ad7 eth/tracers: use non-threaded tracechain (#24283)
This makes non-JS tracers execute all block txs on a single goroutine.
In the previous implementation, we used to prepare every tx pre-state
on one goroutine, and then run the transactions again with tracing enabled.
Native tracers are usually faster, so it is faster overall to use their output as
the pre-state for tracing the next transaction.

Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2023-01-10 15:11:53 +01:00
Martin Holst Swende 7a489623ac core/state: remove notion of fake storage (#24916)
This PR removes the notion of fakeStorage from the state objects, and instead, for any state modifications that are needed, it simply makes the changes.
2023-01-10 08:24:30 -05:00
Martin Holst Swende 4ada314fff tests: fix DIFFICULTY error in state executor (#26465) 2023-01-10 08:22:43 -05:00
Joseph Cook b8bc8c2465 README.md: add website contribution instructions (#26442) 2023-01-10 14:20:47 +01:00
jwasinger faff980d97 crypto/bls12381: use worst case scalar for input to G1/G2 mul benchmarks (#26447)
* test

* crypto/bls12381: use worst case scalar for input to G1/G2 mul benchmarks
2023-01-10 03:16:17 -05:00
Mario Vega ccacb9930e cmd/evm: support shanghai in tests + evm t8n (#26458) 2023-01-10 03:04:21 -05:00
Péter Szilágyi 43692c84d1 Merge pull request #26451 from rjl493456442/fix-beacon-sync-2
eth/downloader: fix unexpected skeleton header deletion
2023-01-09 12:55:51 +02:00
Péter Szilágyi 71f7988b0f eth/downloader: create repro testcase for beacon header loss 2023-01-09 12:12:25 +02:00
Gary Rong 686f7438d3 eth/downloader: fix unexpected skeleton header deletion 2023-01-09 15:07:08 +08:00
Péter Szilágyi 2189773093 Merge pull request #25878 from MariusVanDerWijden/shanghai-by-time
params: core: enable shanghai based on timestamps
2023-01-06 16:10:12 +02:00
Péter Szilágyi b56c796220 cmd, core, eth, els, params: disallow setheads below genesis, tweaks 2023-01-06 15:29:58 +02:00
Péter Szilágyi fcf3d00488 eth, les: polish forkid a bit, fix races and transition validation 2023-01-06 15:29:57 +02:00
Marius Kjærstad f426805fdd build: upgrade -dlgo version to Go 1.19.4 (#26440) 2023-01-06 13:25:58 +02:00
rjl493456442 6c149fd4ad core, eth, trie, light: clean up trie interface (#26388)
* all: cleanup trie interface

* eth, trie: address comments
2023-01-03 15:41:40 +02:00
Martin Holst Swende 41fe9d646c cmd/evm: update documentation (#26385) 2023-01-03 12:37:48 +01:00
Felix Lange a251bca67c p2p/discover: add more packet information in logs (#26307)
* p2p/discover: add more packet information in logs

This adds more fields to discv5 packet logs. These can be useful when
debugging multi-packet interactions.

The FINDNODE message also gets an additional field, OpID for debugging
purposes. This field is not encoded onto the wire.

I'm also removing topic system related message types in this change.
These will come back in the future, where support for them will be
guarded by a config flag.

* p2p/discover/v5wire: rename 'Total' to 'RespCount'

The new name captures the meaning of this field better.
2023-01-03 12:36:38 +01:00
Felix Lange 9e6a1c3834 common/mclock: add Alarm (#26333)
Alarm is a timer utility that simplifies code where a timer needs to be rescheduled over
and over. Doing this can be tricky with time.Timer or time.AfterFunc because the channel
requires draining in some cases.

Alarm is optimized for use cases where items are tracked in a heap according to their expiry
time, and a goroutine with a for/select loop wants to be woken up whenever the next item expires.
In this application, the timer needs to be rescheduled when an item is added or removed
from the heap. Using a timer naively, these updates will always require synchronization
with the global runtime timer datastructure to update the timer using Reset. Alarm avoids
this by tracking the next expiry time and only modifies the timer if it would need to fire earlier
than already scheduled.

As an example use, I have converted p2p.dialScheduler to use Alarm instead of AfterFunc.
2023-01-03 12:10:48 +01:00
Péter Szilágyi d021157820 core, les, light: implement timestamp based sethead and genesis rewinds 2023-01-03 12:57:07 +02:00
Péter Szilágyi 08481028fe core, les, params: add timestamp based fork compatibility checks 2023-01-03 12:57:06 +02:00
Marius van der Wijden a4e19c5ca3 all: implement forkid changes for shanghai 2023-01-03 12:57:06 +02:00
Marius van der Wijden efc9409ca9 params: core: enable shanghai based on timestamps 2023-01-03 12:56:25 +02:00
strykerin c6a2f77c2e cmd/devp2p/internal/v4test: add pong validation in bond (#26400) 2023-01-03 11:30:34 +01:00
Marius Kjærstad dad92500e7 cmd, internal: update copyright year to 2023 (#26382)
* internal/flags: update copyright year to 2023

* cmd/geth: update copyright year to 2023
2023-01-03 11:04:54 +02:00
Ha DANG 9d38466437 eth/downloader: fix some typos (#26396) 2023-01-03 11:03:44 +02:00
Marius van der Wijden db82ea2ee3 core: reset txpool on sethead (#26392)
This change sends a HeadChainEvent when SetHead is invoked. The txpool will then reset the txnoncer on receiving the event.
2022-12-29 07:24:34 -05:00
rjl493456442 c87f321b8f core/state: maintain destruction flag by default (#26371)
This changes moves the tracking of "deleted in this block" out from snap-only domain, so that it happens regardless of whether the execution is snapshot-backed or trie-backed.
2022-12-28 08:53:43 -05:00
Marius van der Wijden 9921ca0f0a miner: allow for extradata in post-merge blocks (#26387)
* miner: allow for extradata in post-merge blocks

* miner: nits

* miner: remove extradata checks
2022-12-28 10:48:26 +02:00
Zachinquarantine 577db2edf7 build: add support for Ubuntu 22.10 (Kinetic Kudu) (#26379)
Adds uploads to Kinetic in Launchpad, and removes the upload for 21.10 impish (not supported since July)
2022-12-27 02:52:29 -05:00
rjl493456442 01808421e2 core/state: return error when storage trie can't be opened (#26350)
This changes the StorageTrie method to return an error when the trie
is not available. It used to return an 'empty trie' in this case, but that's
not possible anymore under PBSS.
2022-12-21 10:21:21 +01:00
Martin Holst Swende b818e73ef3 tests: update tests (#26314)
This PR builds on #26299, but also updates the tests to the most recent version, which includes tests regarding TheMerge.

This change adds checks to the beacon consensus engine, making it more strict in validating the pre- and post-headers, and not relying on the caller to have already correctly sanitized the headers/blocks.
2022-12-20 09:56:52 -05:00