Commit Graph

14937 Commits

Author SHA1 Message Date
Sina Mahmoodi e5d5e09faa
internal/ethapi: handle blobs in API methods (#28786)
EIP-4844 adds a new transaction type for blobs. Users can submit such transactions via `eth_sendRawTransaction`. In this PR we refrain from adding support to `eth_sendTransaction` and in fact it will fail if the user passes in a blob hash.

However since the chain can handle such transactions it makes sense to allow simulating them. E.g. an L2 operator should be able to simulate submitting a rollup blob and updating the L2 state. Most methods that take in a transaction object should recognize blobs. The change boils down to adding `blobVersionedHashes` and `maxFeePerBlobGas` to `TransactionArgs`. In summary:

- `eth_sendTransaction`: will fail for blob txes
- `eth_signTransaction`: will fail for blob txes

The methods that sign txes does not, as of this PR, add support the for new EIP-4844 transaction types. Resuming the summary:

- `eth_sendRawTransaction`: can send blob txes
- `eth_fillTransaction`: will fill in a blob tx. Note: here we simply fill in normal transaction fields + possibly `maxFeePerBlobGas` when blobs are present. One can imagine a more elaborate set-up where users can submit blobs themselves and we fill in proofs and commitments and such. Left for future PRs if desired.
- `eth_call`: can simulate blob messages
- `eth_estimateGas`: blobs have no effect here. They have a separate unit of gas which is not tunable in the transaction.
2024-01-17 15:06:14 +01:00
Thabokani 2e2e89c2fb
miner: fix typo in payload_building_test.go (#28825) 2024-01-17 12:44:01 +02:00
Paul Lange c66ca8bf7a
tracer: use proper base fee in tests (#28775)
In the tracing tests, the base fee was generally set to nil. This commit changes this to pass the proper base instead, and fixes the few tests which become broken by the change.
2024-01-16 12:20:26 +01:00
Martin HS d4f25b4dcf
tests: more verbosity if block decoding fails (#28814) 2024-01-16 12:08:49 +01:00
alex 566754c74a
acounts/usbwallet: fix typo (#28815)
acounts:fix typo
2024-01-15 21:45:50 +02:00
Alfie John 9ee6809ff4
core/txpool/blobpool: fix typos 2024-01-15 21:45:14 +02:00
牛晓婕 18e154eaa2
eth: fix potential hang in waitSnapExtension (#28744)
This should fix a rare hang in waitSnapExtension during shutdown.
2024-01-15 15:32:03 +01:00
hyunchel 7596db5f48
ethclient: add tests for TransactionInBlock (#28283)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-01-15 11:10:26 +01:00
Martin HS 89ccc680da
tests: update reference tests (#28778)
Updates the reference tests to the latest version
2024-01-15 09:15:40 +01:00
Felix Lange 1485814f89
cmd/rlpdump: add -pos flag, displaying byte positions (#28785) 2024-01-14 12:32:48 +01:00
Darioush Jalali 29b73555ae
core/state: unexport GetOrNewStateObject (#28804) 2024-01-14 12:32:23 +01:00
Sina Mahmoodi 407f779c8e
internal/ethapi: avoid using pending for defaults (#28784)
Given the discussions around deprecating pending (see #28623 or ethereum/execution-apis#495), we can move away from using the pending block internally, and use latest instead
2024-01-12 19:59:36 +01:00
ddl 1335ba5f28
p2p/dnsdisc: use strings.Cut over strings.IndexByte (#28787) 2024-01-12 19:57:47 +01:00
Sina Mahmoodi a608c0ac84
cmd/devp2p/internal/ethtest: skip large tx test on github build (#28794)
This test was failling consistently on the github 32-bit build probably due to slow IO. Skipping it for that green check.
2024-01-12 15:14:03 +01:00
Péter Szilágyi 43ba7d65a8
cmd/geth, internal/debug: get rid of by-default log config (#28801) 2024-01-12 15:59:03 +02:00
Péter Szilágyi 065f82a8cc
accounts, ethclient: minor tweaks on the new simulated backend (#28799)
* accounts, ethclient: minor tweaks on the new simulated backend

* ethclient/simulated: add an initial batch of gas options

* accounts, ethclient: remove mandatory gasLimit constructor param

* accounts, ethclient: minor option naming tweaks
2024-01-12 15:58:49 +02:00
drstevenbrule 7280a5b31a
build: fix typo in comment (#28800) 2024-01-12 14:22:45 +01:00
vuittont60 ae4ea047e3
cmd: fix typos (#28798) 2024-01-12 10:40:00 +02:00
HAOYUatHZ 6e235c0833
eth: minor change of config-accessor (#28782)
eth: refactor `GetVM`
2024-01-12 08:06:22 +01:00
drstevenbrule 5c2de7fcbe
docs: fix badge in README (#28796)
* Fix broken badge in README.md

Replaced broken Github link with IPFS link for long-term storage.

* update go badge

Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>

---------

Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
2024-01-12 07:43:52 +01:00
Péter Szilágyi 2e8b1187aa params: begin v1.13.11 release cycle 2024-01-11 19:24:36 +02:00
Péter Szilágyi a162091e8f version: release v1.13.10 to fix bad tag 2024-01-11 19:17:54 +02:00
Felix Lange daa2e5d6a6 params: begin v1.13.10 release cycle 2024-01-10 17:32:41 +01:00
Felix Lange 4f825318ea params: go-ethereum v1.13.9 stable 2024-01-10 17:29:05 +01:00
Marius van der Wijden 2d08c99009
ethclient/simulated: implement new sim backend (#28202)
This is a rewrite of the 'simulated backend', an implementation of the ethclient interfaces
which is backed by a simulated blockchain. It was getting annoying to maintain the old
version of the simulated backend feature because there was a lot of code duplication with
the main client. 

The new version is built using parts that we already have: an in-memory geth node instance
running in developer mode provides the chain, while the Go API is provided by ethclient.
A backwards-compatibility wrapper is provided, but the simulated backend has also moved to
a more sensible import path: github.com/ethereum/go-ethereum/ethclient/simulated

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
2024-01-10 16:45:08 +01:00
jwasinger 9e018ce3a5
cmd/geth: update log test data (#28780)
update logger test data
2024-01-09 15:35:49 +01:00
rjl493456442 d0edc5af4a
accounts/abi: fix bigInt topic encoding (#28764) 2024-01-09 14:55:09 +01:00
Martin HS 1010a79c7c
cmd/geth: make it possible to autopilot removedb (#28725)
When managing geth, it is sometimes desirable to do a partial wipe; deleting state but retaining freezer data. A partial wipe can be somewhat tricky to accomplish. 

This change implements the ability to perform partial wipe by making it possible to run geth removedb non-interactive, using command line options instead.
2024-01-09 08:56:01 +01:00
Marius van der Wijden cfff3cbbf1
params, core/forkid: schedule cancun fork on goerli (#28719)
This PR schedules the cancun fork for the goerli testnet as discussed on ACD.
Spec: ethereum/execution-specs#860

We schedule:
  goerli at 1705473120
2024-01-08 20:33:32 +01:00
vuittont60 f29520ffdf
cmd/devp2p/internal/ethtest: fix typos in comments (#28772) 2024-01-08 20:31:22 +01:00
ucwong e7fa158086
eth/filters: fix early Unsubscribe of log events (#28769) 2024-01-08 20:18:30 +01:00
jwasinger 07b17f991b
log: emit error level string as "error", not "eror" (#28774) 2024-01-08 15:27:33 +01:00
ucwong 877d09443d
eth/downloader, eth/filters: use defer to call Unsubscribe (#28762) 2024-01-05 13:49:31 +01:00
Rossen Krastev e3eeb64c94
ethclient: simplify error handling in TransactionReceipt (#28748)
Co-authored-by: Martin HS <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-01-04 16:32:23 +01:00
Marius Kjærstad 99eb49e601
internal/flags: update copyright year to 2024 (#28760)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-01-04 15:03:58 +01:00
Mario Vega 0b471c312a
cmd/evm: Fix blob-gas-used on invalid transactions in t8n (#28734)
cmd/evm: fixes the blob gas calculation if a transaction is invalid
2024-01-03 16:12:20 +01:00
Darioush Jalali 2365d77968
core/vm: update comments to match eip number (#28743) 2024-01-02 11:39:53 +01:00
ddl 33c94ef083
cmd/evm: fix link in README.md (#28755) 2024-01-02 11:37:22 +01:00
Felix Lange c053eb71b6
log: avoid setting default slog logger in init (#28747)
slog.SetDefault has undesirable side effects. It also sets the default logger destination,
for example. So we should not call it by default in init.
2023-12-30 21:16:02 +01:00
Martin HS 76a5474b32
build: add support for ubuntu 23.10 (mantic minotaur) (#28728) 2023-12-30 17:02:48 +01:00
Taeguk Kwon 09e0208029
accounts,signer: fix typos in comments (#28730) 2023-12-28 11:46:51 +01:00
Mario Vega b5b70033e2
tests: add currentExcessBlobGas to state tests (#28735) 2023-12-28 11:39:28 +01:00
cygaar d2e3cb894b
core/state: logic equivalence for GetCodeHash (#28733) 2023-12-26 16:38:11 +08:00
Martin Holst Swende 8d0391806f
params: begin v1.13.9 release cycle 2023-12-22 13:46:27 +01:00
Martin Holst Swende 904a278054
params: go-ethereum v1.13.8 stable 2023-12-22 13:37:16 +01:00
rjl493456442 f469470aff
core/rawdb: improve state scheme checking (#28724)
This pull request improves the condition to check if path state scheme is in use. 

Originally, root node presence was used as the indicator if path scheme is used or not. However due to fact that root node will be deleted during the initial snap sync, this condition is no longer useful.

If PersistentStateID is present, it shows that we've already configured for path scheme.
2023-12-22 07:50:41 +01:00
rjl493456442 cca94792a4
core, cmd, trie: fix the condition of pathdb initialization (#28718)
Original problem was caused by #28595, where we made it so that as soon as we start to sync, the root of the disk layer is deleted. That is not wrong per se, but another part of the code uses the "presence of the root" as an init-check for the pathdb. And, since the init-check now failed, the code tried to re-initialize it which failed since a sync was already ongoing.

The total impact being: after a state-sync has begun, if the node for some reason is is shut down, it will refuse to start up again, with the error message: `Fatal: Failed to register the Ethereum service: waiting for sync.`. 

This change also modifies how `geth removedb` works, so that the user is prompted for two things: `state data` and `ancient chain`. The former includes both the chaindb aswell as any state history stored in ancients. 

---------

Co-authored-by: Martin HS <martin@swende.se>
2023-12-21 20:28:32 +01:00
lightclient 577be37e0e
cmd/devp2p: update eth/snap protocol test suites for PoS (#28340)
Here we update the eth and snap protocol test suites with a new test chain,
created by the hivechain tool. The new test chain uses proof-of-stake. As such,
tests using PoW block propagation in the eth protocol are removed. The test suite
now connects to the node under test using the engine API in order to make it
accept transactions. 

The snap protocol test suite has been rewritten to output test descriptions and
log requests more verbosely.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-12-20 17:23:48 +01:00
Felix Lange 8c2d455ccd
build: upgrade to golangci-lint v1.55.2 (#28712)
This is primarily to make lint work again on macOS 14. The older version of golangci-lint kept crashing. 

Also included is a fix for a goroutine leak in the recently-introduced function MustRunCommandWithOutput.
2023-12-20 15:36:10 +01:00
Martin HS d3452a22cc
accounts: properly close managed wallets when closing manager (#28710) 2023-12-20 13:41:40 +01:00