Skip to content

Commit 663dbf4

Browse files
authored
feat: merge reth v1.2.0 (#55)
- remove pipe-exec-layer-ext v1 - merge reth v1.2.0 into gravity-reth
1 parent c4c6329 commit 663dbf4

File tree

1,382 files changed

+91136
-67630
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,382 files changed

+91136
-67630
lines changed

.config/zepter.yaml

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
version:
2+
format: 1
3+
# Minimum zepter version that is expected to work. This is just for printing a nice error
4+
# message when someone tries to use an older version.
5+
binary: 0.13.2
6+
7+
# The examples in the following comments assume crate `A` to have a dependency on crate `B`.
8+
workflows:
9+
check:
10+
- [
11+
"lint",
12+
# Check that `A` activates the features of `B`.
13+
"propagate-feature",
14+
# These are the features to check:
15+
"--features=std,optimism,op,dev,asm-keccak,jemalloc,jemalloc-prof,tracy-allocator,serde-bincode-compat,serde,test-utils,arbitrary,bench",
16+
# Do not try to add a new section into `[features]` of `A` only because `B` expose that feature. There are edge-cases where this is still needed, but we can add them manually.
17+
"--left-side-feature-missing=ignore",
18+
# Ignore the case that `A` it outside of the workspace. Otherwise it will report errors in external dependencies that we have no influence on.
19+
20+
"--left-side-outside-workspace=ignore",
21+
# Auxilary flags:
22+
"--offline",
23+
"--locked",
24+
"--show-path",
25+
"--quiet",
26+
]
27+
default:
28+
# Running `zepter` with no subcommand will check & fix.
29+
- [$check.0, "--fix"]
30+
31+
# Will be displayed when any workflow fails:
32+
help:
33+
text: |
34+
Reth uses the Zepter CLI to detect abnormalities in Cargo features, e.g. missing propagation.
35+
36+
It looks like one more checks failed; please check the console output.
37+
38+
You can try to automatically address them by installing zepter (`cargo install zepter --locked`) and simply running `zepter` in the workspace root.
39+
links:
40+
- "https://github.com/paradigmxyz/reth/pull/11888"
41+
- "https://github.com/ggwpez/zepter"

.github/CODEOWNERS

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
bin/ @onbjerg
33
crates/blockchain-tree/ @rakita @rkrasiuk @mattsse @Rjected
44
crates/blockchain-tree-api/ @rakita @rkrasiuk @mattsse @Rjected
5-
crates/chainspec/ @Rjected @joshieDo @mattsse @emhane
5+
crates/chainspec/ @Rjected @joshieDo @mattsse
66
crates/chain-state/ @fgimenez @mattsse @rkrasiuk
77
crates/cli/ @onbjerg @mattsse
88
crates/config/ @onbjerg
@@ -16,18 +16,18 @@ crates/ethereum-forks/ @mattsse @Rjected
1616
crates/etl/ @joshieDo @shekhirin
1717
crates/evm/ @rakita @mattsse @Rjected
1818
crates/exex/ @onbjerg @shekhirin
19-
crates/fs-util/ @onbjerg @emhane
19+
crates/fs-util/ @onbjerg
2020
crates/metrics/ @onbjerg
21-
crates/net/ @emhane @mattsse @Rjected
22-
crates/net/downloaders/ @onbjerg @rkrasiuk @emhane
23-
crates/node/ @mattsse @Rjected @onbjerg
24-
crates/optimism/ @mattsse @Rjected @fgimenez @emhane
21+
crates/net/ @mattsse @Rjected
22+
crates/net/downloaders/ @onbjerg @rkrasiuk
23+
crates/node/ @mattsse @Rjected @onbjerg @klkvr
24+
crates/optimism/ @mattsse @Rjected @fgimenez
2525
crates/payload/ @mattsse @Rjected
26-
crates/primitives/ @Rjected
27-
crates/primitives-traits/ @Rjected @joshieDo
26+
crates/primitives/ @Rjected @mattsse @klkvr
27+
crates/primitives-traits/ @Rjected @joshieDo @mattsse @klkvr
2828
crates/prune/ @shekhirin @joshieDo
2929
crates/revm/ @mattsse @rakita
30-
crates/rpc/ @mattsse @Rjected @emhane
30+
crates/rpc/ @mattsse @Rjected
3131
crates/stages/ @onbjerg @rkrasiuk @shekhirin
3232
crates/static-file/ @joshieDo @shekhirin
3333
crates/storage/codecs/ @joshieDo
@@ -40,9 +40,9 @@ crates/storage/nippy-jar/ @joshieDo @shekhirin
4040
crates/storage/provider/ @rakita @joshieDo @shekhirin
4141
crates/storage/storage-api/ @joshieDo @rkrasiuk
4242
crates/tasks/ @mattsse
43-
crates/tokio-util/ @fgimenez @emhane
43+
crates/tokio-util/ @fgimenez
4444
crates/tracing/ @onbjerg
4545
crates/transaction-pool/ @mattsse
46-
crates/trie/ @rkrasiuk @Rjected
46+
crates/trie/ @rkrasiuk @Rjected @shekhirin
4747
etc/ @Rjected @onbjerg @shekhirin
4848
.github/ @onbjerg @gakonst @DaniPopes

.github/ISSUE_TEMPLATE/bug.yml

+12
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,18 @@ body:
6060
- Mac (Apple Silicon)
6161
- Windows (x86)
6262
- Windows (ARM)
63+
- type: dropdown
64+
id: container_type
65+
attributes:
66+
label: Container Type
67+
description: Were you running it in a container?
68+
multiple: true
69+
options:
70+
- Not running in a container
71+
- Docker
72+
- Kubernetes
73+
- LXC/LXD
74+
- Other
6375
validations:
6476
required: true
6577
- type: textarea

.github/assets/check_rv32imac.sh

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#!/usr/bin/env bash
2+
set +e # Disable immediate exit on error
3+
4+
# Array of crates to check
5+
crates_to_check=(
6+
reth-codecs-derive
7+
reth-primitives-traits
8+
reth-network-peers
9+
reth-trie-common
10+
reth-chainspec
11+
reth-consensus
12+
reth-consensus-common
13+
14+
## ethereum
15+
reth-ethereum-forks
16+
reth-ethereum-primitives
17+
18+
## optimism
19+
reth-optimism-chainspec
20+
reth-optimism-forks
21+
reth-optimism-primitives
22+
)
23+
24+
# Array to hold the results
25+
results=()
26+
# Flag to track if any command fails
27+
any_failed=0
28+
29+
for crate in "${crates_to_check[@]}"; do
30+
cmd="cargo +stable build -p $crate --target riscv32imac-unknown-none-elf --no-default-features"
31+
32+
if [ -n "$CI" ]; then
33+
echo "::group::$cmd"
34+
else
35+
printf "\n%s:\n %s\n" "$crate" "$cmd"
36+
fi
37+
38+
set +e # Disable immediate exit on error
39+
# Run the command and capture the return code
40+
$cmd
41+
ret_code=$?
42+
set -e # Re-enable immediate exit on error
43+
44+
# Store the result in the dictionary
45+
if [ $ret_code -eq 0 ]; then
46+
results+=("1:✅:$crate")
47+
else
48+
results+=("2:❌:$crate")
49+
any_failed=1
50+
fi
51+
52+
if [ -n "$CI" ]; then
53+
echo "::endgroup::"
54+
fi
55+
done
56+
57+
# Sort the results by status and then by crate name
58+
IFS=$'\n' sorted_results=($(sort <<<"${results[*]}"))
59+
unset IFS
60+
61+
# Print summary
62+
echo -e "\nSummary of build results:"
63+
for result in "${sorted_results[@]}"; do
64+
status="${result#*:}"
65+
status="${status%%:*}"
66+
crate="${result##*:}"
67+
echo "$status $crate"
68+
done
69+
70+
# Exit with a non-zero status if any command fails
71+
exit $any_failed

.github/assets/check_wasm.sh

+8-18
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,14 @@ set +e # Disable immediate exit on error
33

44
# Array of crates to compile
55
crates=($(cargo metadata --format-version=1 --no-deps | jq -r '.packages[].name' | grep '^reth' | sort))
6+
67
# Array of crates to exclude
8+
# Used with the `contains` function.
9+
# shellcheck disable=SC2034
710
exclude_crates=(
8-
# The following are not working yet, but known to be fixable
9-
reth-exex-types # https://github.com/paradigmxyz/reth/issues/9946
1011
# The following require investigation if they can be fixed
11-
reth-auto-seal-consensus
1212
reth-basic-payload-builder
13-
reth-beacon-consensus
1413
reth-bench
15-
reth-blockchain-tree
16-
reth-chain-state
1714
reth-cli
1815
reth-cli-commands
1916
reth-cli-runner
@@ -24,37 +21,28 @@ exclude_crates=(
2421
reth-dns-discovery
2522
reth-downloaders
2623
reth-e2e-test-utils
27-
reth-engine-primitives
2824
reth-engine-service
2925
reth-engine-tree
3026
reth-engine-util
3127
reth-eth-wire
3228
reth-ethereum-cli
33-
reth-ethereum-engine
34-
reth-ethereum-engine-primitives
3529
reth-ethereum-payload-builder
3630
reth-etl
37-
reth-evm-ethereum
38-
reth-evm-optimism
39-
reth-execution-errors
4031
reth-exex
4132
reth-exex-test-utils
4233
reth-ipc
4334
reth-net-nat
4435
reth-network
4536
reth-node-api
46-
reth-node-types
4737
reth-node-builder
4838
reth-node-core
4939
reth-node-ethereum
5040
reth-node-events
5141
reth-node-metrics
52-
reth-node-optimism
5342
reth-optimism-cli
43+
reth-optimism-node
5444
reth-optimism-payload-builder
5545
reth-optimism-rpc
56-
reth-payload-builder
57-
reth-payload-primitives
5846
reth-rpc
5947
reth-rpc-api
6048
reth-rpc-api-testing-util
@@ -63,21 +51,23 @@ exclude_crates=(
6351
reth-rpc-eth-api
6452
reth-rpc-eth-types
6553
reth-rpc-layer
66-
reth-rpc-types
6754
reth-stages
68-
reth-storage-errors
6955
reth-engine-local
7056
# The following are not supposed to be working
7157
reth # all of the crates below
7258
reth-invalid-block-hooks # reth-provider
7359
reth-libmdbx # mdbx
7460
reth-mdbx-sys # mdbx
61+
reth-payload-builder # reth-metrics
7562
reth-provider # tokio
7663
reth-prune # tokio
7764
reth-stages-api # reth-provider, reth-prune
7865
reth-static-file # tokio
7966
reth-transaction-pool # c-kzg
67+
reth-payload-util # reth-transaction-pool
8068
reth-trie-parallel # tokio
69+
reth-testing-utils
70+
reth-optimism-txpool # reth-transaction-pool
8171
)
8272

8373
# Array to hold the results

.github/assets/hive/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ COPY dist/reth /usr/local/bin
55
COPY LICENSE-* ./
66

77
EXPOSE 30303 30303/udp 9001 8545 8546
8-
ENTRYPOINT ["/usr/local/bin/reth"]
8+
ENV RUST_LOG=debug
9+
ENTRYPOINT ["/usr/local/bin/reth"]

.github/assets/hive/build_simulators.sh

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ go build .
1111

1212
# Run each hive command in the background for each simulator and wait
1313
echo "Building images"
14-
./hive -client reth --sim "pyspec" -sim.timelimit 1s || true &
14+
./hive -client reth --sim "ethereum/eest" --sim.buildarg fixtures=https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-6%40v1.0.0/fixtures_pectra-devnet-6.tar.gz -sim.timelimit 1s || true &
1515
./hive -client reth --sim "ethereum/engine" -sim.timelimit 1s || true &
1616
./hive -client reth --sim "devp2p" -sim.timelimit 1s || true &
1717
./hive -client reth --sim "ethereum/rpc-compat" -sim.timelimit 1s || true &
@@ -26,7 +26,8 @@ docker save hive/hiveproxy:latest -o ../hive_assets/hiveproxy.tar &
2626
docker save hive/simulators/devp2p:latest -o ../hive_assets/devp2p.tar &
2727
docker save hive/simulators/ethereum/engine:latest -o ../hive_assets/engine.tar &
2828
docker save hive/simulators/ethereum/rpc-compat:latest -o ../hive_assets/rpc_compat.tar &
29-
docker save hive/simulators/ethereum/pyspec:latest -o ../hive_assets/pyspec.tar &
29+
docker save hive/simulators/ethereum/eest/consume-engine:latest -o ../hive_assets/eest_engine.tar &
30+
docker save hive/simulators/ethereum/eest/consume-rlp:latest -o ../hive_assets/eest_rlp.tar &
3031
docker save hive/simulators/smoke/genesis:latest -o ../hive_assets/smoke_genesis.tar &
3132
docker save hive/simulators/smoke/network:latest -o ../hive_assets/smoke_network.tar &
3233
docker save hive/simulators/ethereum/sync:latest -o ../hive_assets/ethereum_sync.tar &
+13-33
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
1-
# https://github.com/paradigmxyz/reth/issues/7015
2-
# https://github.com/paradigmxyz/reth/issues/6332
1+
# https://github.com/paradigmxyz/reth/issues/13879
32
rpc-compat:
43
- debug_getRawBlock/get-invalid-number (reth)
54
- debug_getRawHeader/get-invalid-number (reth)
65
- debug_getRawReceipts/get-invalid-number (reth)
6+
- debug_getRawReceipts/get-block-n (reth)
77
- debug_getRawTransaction/get-invalid-hash (reth)
88

99
- eth_call/call-callenv (reth)
10-
- eth_feeHistory/fee-history (reth)
1110
- eth_getStorageAt/get-storage-invalid-key-too-large (reth)
1211
- eth_getStorageAt/get-storage-invalid-key (reth)
1312
- eth_getTransactionReceipt/get-access-list (reth)
1413
- eth_getTransactionReceipt/get-blob-tx (reth)
1514
- eth_getTransactionReceipt/get-dynamic-fee (reth)
16-
- eth_getBlockByHash/get-block-by-hash (reth)
17-
- eth_getBlockByNumber/get-block-n (reth)
18-
- eth_getBlockByNumber/get-finalized (reth)
19-
- eth_getBlockByNumber/get-genesis (reth)
20-
- eth_getBlockByNumber/get-latest (reth)
21-
- eth_getBlockByNumber/get-safe (reth)
22-
- eth_sendRawTransaction/send-blob-tx (reth)
15+
- eth_getTransactionReceipt/get-legacy-contract (reth)
16+
- eth_getTransactionReceipt/get-legacy-input (reth)
17+
- eth_getTransactionReceipt/get-legacy-receipt (reth)
2318

2419
# https://github.com/paradigmxyz/reth/issues/8732
2520
engine-withdrawals:
@@ -42,36 +37,21 @@ engine-withdrawals:
4237
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org (Paris) (reth)
4338
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org Sync (Paris) (reth)
4439

45-
# https://github.com/paradigmxyz/reth/issues/8305
46-
# https://github.com/paradigmxyz/reth/issues/6217
47-
engine-api:
48-
- Inconsistent Head in ForkchoiceState (Paris) (reth)
49-
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False (Paris) (reth)
50-
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris) (reth)
51-
- Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris) (reth)
52-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=False, Invalid P9 (Paris) (reth)
53-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris) (reth)
54-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9 (Paris) (reth)
55-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris) (reth)
40+
engine-api: []
5641

5742
# https://github.com/paradigmxyz/reth/issues/8305
5843
# https://github.com/paradigmxyz/reth/issues/6217
5944
# https://github.com/paradigmxyz/reth/issues/8306
6045
# https://github.com/paradigmxyz/reth/issues/7144
6146
engine-cancun:
6247
- Blob Transaction Ordering, Multiple Clients (Cancun) (reth)
63-
- Inconsistent Head in ForkchoiceState (Cancun) (reth)
64-
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False (Cancun) (reth)
65-
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
66-
- Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
67-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=False, Invalid P9 (Cancun) (reth)
68-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Cancun) (reth)
69-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9 (Cancun) (reth)
70-
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Cancun) (reth)
7148
- Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth)
72-
- Invalid NewPayload, ParentBeaconBlockRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
7349
- Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
7450

75-
# https://github.com/paradigmxyz/reth/issues/8579
76-
sync:
77-
- sync reth -> reth
51+
sync: []
52+
53+
# no fix: it’s too expensive to check whether the storage is empty on each creation
54+
eest/consume-engine:
55+
- tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_non_empty_storage[fork_Prague-blockchain_test_engine-zero_nonce]-reth
56+
eest/consume-rlp:
57+
- tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_non_empty_storage[fork_Prague-blockchain_test-zero_nonce]-reth

0 commit comments

Comments
 (0)