Commit Graph

2776 Commits

Author SHA1 Message Date
Alex Sharov
08904da83e
e3: fix couple deadlocks in parallel exec (#6525) 2023-01-08 10:00:41 +07:00
Andrew Ashikhmin
ac1428e15e
Amend EIP-3860 per EIPs/pull/6249 (#6502)
See https://github.com/ethereum/EIPs/pull/6249 and
https://github.com/ethereum/tests/pull/1125
2023-01-06 17:46:27 +01:00
Andrew Ashikhmin
4f536abe46
Unify forkSegment with HeaderAndBody (#6517)
Small refactoring after PR #6515.
2023-01-06 15:12:07 +01:00
Alex Sharov
4c3bb1cca5
kv_temporal: DomainGet (#6511) 2023-01-06 14:27:54 +07:00
Alex Sharov
c38868cc46
better pagesize error message (#6497) 2023-01-04 13:07:46 +07:00
Alex Sharov
0483fc5539
integration: cancel warmup (#6494) 2023-01-03 12:51:00 +07:00
Alex Sharov
17e0afbe44
"erigon snapshots retire" save progress (#6486) 2023-01-02 12:38:03 +07:00
alex.sharov
f0be579fd1 warmup: 100K prefixes 2023-01-02 10:50:08 +07:00
alex.sharov
8ffdda14f2 warmup: million prefixes 2023-01-02 10:47:06 +07:00
Andrew Ashikhmin
58893937b0
core/vm: Make INVALID a defined opcode (#6477)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/24017.

* core/vm: Define 0xfe opcode as INVALID

* core/vm: Remove opInvalid as opUndefined handles it

Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>

Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2022-12-30 17:13:54 +01:00
Alex Sharov
4a9c871628
a bit rename 22 to v3 (#6476) 2022-12-30 21:53:42 +07:00
Andrew Ashikhmin
a369fd026f
core/vm: clean up contract creation error handling (#6475)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/22766.

Do not keep separate flag for "max code size exceeded" case, but instead
assign appropriate error for it sooner.

Co-authored-by: Paweł Bylica <chfast@gmail.com>
2022-12-30 15:19:16 +01:00
Alex Sharov
9159f7e8aa
"integration stage_exec --warmup" (#6471) 2022-12-30 15:44:50 +07:00
Alex Sharov
b0af04f2df
bsc: incrementally calc and store all old snapshots. slower initial stage_snapshots, but faster restart during initial sync (#6457) 2022-12-30 12:44:54 +07:00
alex.sharov
72ffce2ba8 e3: more print_stages info 2022-12-29 15:18:11 +07:00
Alex Sharov
ca3bc54428
Shared genesis db (#6465) 2022-12-29 14:47:17 +07:00
alex.sharov
92c95e6e68 cleanup 2022-12-29 11:02:33 +07:00
alex.sharov
a893899fc2 save 2022-12-29 11:02:11 +07:00
alex.sharov
9efb8e838b save 2022-12-29 10:09:09 +07:00
Andrew Ashikhmin
0fdd60a0d1
Execution Spec Tests & HashCheck() (#6444)
Run tests from a new repo
https://github.com/ethereum/execution-spec-tests.

Also introduce `HashCheck()` function that checks correctness of block's
uncle, transaction, and withdrawals hashes.
2022-12-28 17:01:40 +01:00
Andrew Ashikhmin
b4a73e0579
Fix intra_block_state_test (#6458)
Postfix after PR #6440
2022-12-28 12:26:37 +01:00
Andrew Ashikhmin
714888b016
HashBuilder: fix top node shorter than 32 bytes (#6456)
Prior to withdrawals, it was extremely unlikely to have short (RLP < 32)
top trie nodes outside test scenarios.
2022-12-28 11:58:37 +01:00
Alex Sharov
fc71d441a6
mdbx_to_mdbx better logging (#6455) 2022-12-28 13:27:42 +07:00
Alex Sharov
fa6f6038e7
kv: tx.Prefix method (#6441) 2022-12-26 17:58:21 +07:00
ledgerwatch
387b4d7f35
Native tracers step 10 - remove duplicate SelfDestruct capture, clean up (#6440)
Moved some of the tracers to `eth/tracers/logger` to make it more
similar to go-ethereum.

Removed Erigon-specific `Capture-` functions

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-26 04:56:39 +00:00
ledgerwatch
24040f3044
Native tracers step 9 - add native tracers (#6434)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-25 07:28:41 +00:00
Alex Sharov
45fd92f17b
exclude genesis from "append with gap" assert (#6428) 2022-12-24 14:28:02 +07:00
Alex Sharov
ade933be6b
kv_remote: server to support thread-safe multi-streams per 1 tx (#6402) 2022-12-24 13:11:15 +07:00
ledgerwatch
f364eff389
Native tracers step 7 - restructure js tracer files (#6415)
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-23 18:10:37 +00:00
Andrew Ashikhmin
4931f113c2
Add override.shanghaiTime flag (#6414)
and remove `--override.terminaltotaldifficulty` &
`--override.mergeNetsplitBlock`
2022-12-23 17:06:56 +01:00
ledgerwatch
a49e287618
Native tracers step 6: Rename Tracer to EVMLogger, reduce args CaptureExit (#6410)
Getting closer to Geth's tracer interfaces

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-23 05:43:08 +00:00
Alex Sharov
130ab85bea
e3: kv/temporal prototype 3 (#6395) 2022-12-22 09:37:32 +07:00
Andrew Ashikhmin
49bb63661f
core/vm: derive maxStack from numPop & numPush (#6397) 2022-12-21 14:55:00 +01:00
Andrew Ashikhmin
dc248c5ea4
core/vm: Move interpreter.ReadOnly check into the opcode implementations (#6396)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/23970

Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2022-12-21 12:44:01 +01:00
Andrew Ashikhmin
5582435a95
core/vm: Simplify error handling in interpreter loop (#6394)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/23952

Co-authored-by: Paweł Bylica <chfast@gmail.com>
2022-12-21 11:57:53 +01:00
Andrew Ashikhmin
0986342690
core/vm: remove unused NewEVMInterpreterByVM (#6393) 2022-12-21 09:51:00 +01:00
Giulio rebuffo
173d11c43c
removed retry logic from Erigon-CL (#6389) 2022-12-20 22:11:08 +01:00
Alex Sharov
0ce84e41e1
integration: warmup staeg (#6388) 2022-12-20 22:59:23 +07:00
Andrew Ashikhmin
06df4333b2
core/vm: avoid memory expansion check for trivial ops (#6383)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/24048

Co-authored-by: Martin Holst Swende <martin@swende.se>
2022-12-20 16:47:51 +01:00
alex.sharov
dd9f117a0c save 2022-12-20 22:27:11 +07:00
Max Revitt
4bdb35f94c
Withdrawals part 2 (#6180)
Continuation of PR #6009. Storage and retrieval of withdrawals.

- [x] storage of withdrawals on writeblock
- [x] composite key (block number | block hash)
- [x] value ([]withdrawal)
- [x] retrieval of withdrawals with block
- [x] tests around storing/retrieving withdrawals
- [x] tested in hive
- [x] commits tidied


## Hive Failures
- [x] Withdrawals Fork on Block 2
- [x] Withdrawals Fork on Block 3
- [ ] Sync after 2 blocks - Withdrawals on Block 1 - Single Withdrawal
Account - No Transactions ( Syncing client rejected valid chain)
- [ ] Sync after 2 blocks - Withdrawals on Block 1 - Single Withdrawal
Account (Timeout while waiting for secondary client to sync)
- [ ] Sync after 2 blocks - Withdrawals on Genesis - Single Withdrawal
Account (Timeout while waiting for secondary client to sync)
- [ ] Sync after 2 blocks - Withdrawals on Block 2 - Single Withdrawal
Account - No Transactions (Syncing client rejected valid chain)
- [ ] Sync after 2 blocks - Withdrawals on Block 2 - Single Withdrawal
Account (Timeout while waiting for secondary client to sync)
- [ ] Sync after 128 blocks - Withdrawals on Block 2 - Multiple
Withdrawal Accounts (Unexpected error on BalanceAt: Post
"http://172.17.0.4:8545/": context deadline exceeded, expected=<None>)
- [ ] Withdrawals Fork on Block 1 - 8 Block Re-Org, Sync (Expected no
error on EngineNewPayloadV2: error=Post "http://172.17.0.4:8551/":
context deadline exceeded)
- [ ] Withdrawals Fork on Block 8 - 10 Block Re-Org Sync (Expected no
error on EngineNewPayloadV2: error=Post "http://172.17.0.4:8551/":
context deadline exceeded)
- [ ] Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block
Re-Org Sync (Expected no error on EngineNewPayloadV2: error=Post
"http://172.17.0.4:8551/": context deadline exceeded)
- [ ] Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block
Re-Org Sync (Expected no error on EngineNewPayloadV2: error=Post
"http://172.17.0.4:8551/": context deadline exceeded)
2022-12-20 09:09:04 +00:00
Andrew Ashikhmin
31d30df59f
core/vm: fill gaps in jump table with opUndefined (#6372)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/24031

Co-authored-by: Paweł Bylica <chfast@gmail.com>
2022-12-20 08:18:24 +01:00
Alex Sharov
cce0f251b4
e3: kv/temporal prototype 2 (#6377) 2022-12-20 09:28:10 +07:00
Andrew Ashikhmin
e5f818c832
core/vm: remove unused 'unofficial' opcodes (#6371)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2022-12-19 14:47:29 +01:00
Andrew Ashikhmin
a00a4000a4
core/vm: simplify op lookup in contract (#6370)
Cherry-pick https://github.com/ethereum/go-ethereum/pull/23974

Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
2022-12-19 14:10:45 +01:00
Alex Sharov
dfa6505f93
e3: kv/temporal prototype (#6367) 2022-12-19 15:38:54 +07:00
ledgerwatch
97c9a9108d
Native tracers - step 4 (#6363)
Remove `callType` argument from `CaptureStart`, and change `callType
vm.CallType` to `typ vm.OpCode` in `CaptureEnter` and move to the first
position (as it is in geth)

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-19 03:12:08 +00:00
ledgerwatch
0761671607
Native tracers step 3 (#6362)
Remove `env` argument from all Capture functions except for
`CaptureStart`

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-18 17:06:40 +00:00
ledgerwatch
b8c6a4d263
Native tracers - step 2 (#6360)
Splitting function `CaptureStart` into `CaptureStart` (when depth == 0)
and `CaptureEnter` (when depth > 0), while removing argument `depth`.
Same with splitting `CaptureEnd` into `CaptureEnd` and `CaptureExit`

Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-18 16:11:31 +00:00
ledgerwatch
3999c46046
Native tracers - step 1 (#6356)
In this first step, the new functions `CaptureTxStart` and
`CaptureTxEnd` are introduced to all tracers

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2022-12-18 04:36:57 +00:00