Skip to content

Commit 62dad7d

Browse files
authored
Merge branch 'paradigmxyz:main' into main
2 parents 037fe9f + b8fa08f commit 62dad7d

File tree

1,369 files changed

+86300
-66597
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,369 files changed

+86300
-66597
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,op,dev,asm-keccak,jemalloc,jemalloc-prof,tracy-allocator,serde-bincode-compat,serde,test-utils,arbitrary,bench,alloy-compat",
16+
# Do not try to add a new section to `[features]` of `A` only because `B` exposes 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+
# Auxiliary 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

+10-10
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,7 +40,7 @@ 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
4646
crates/trie/ @rkrasiuk @Rjected @shekhirin

.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

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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+
reth-prune-types
14+
reth-static-file-types
15+
reth-storage-errors
16+
reth-execution-errors
17+
reth-execution-types
18+
reth-db-models
19+
reth-evm
20+
reth-storage-api
21+
22+
## ethereum
23+
reth-evm-ethereum
24+
reth-ethereum-forks
25+
reth-ethereum-primitives
26+
27+
## optimism
28+
reth-optimism-chainspec
29+
reth-optimism-forks
30+
reth-optimism-consensus
31+
reth-optimism-primitives
32+
reth-optimism-evm
33+
)
34+
35+
# Array to hold the results
36+
results=()
37+
# Flag to track if any command fails
38+
any_failed=0
39+
40+
for crate in "${crates_to_check[@]}"; do
41+
cmd="cargo +stable build -p $crate --target riscv32imac-unknown-none-elf --no-default-features"
42+
43+
if [ -n "$CI" ]; then
44+
echo "::group::$cmd"
45+
else
46+
printf "\n%s:\n %s\n" "$crate" "$cmd"
47+
fi
48+
49+
set +e # Disable immediate exit on error
50+
# Run the command and capture the return code
51+
$cmd
52+
ret_code=$?
53+
set -e # Re-enable immediate exit on error
54+
55+
# Store the result in the dictionary
56+
if [ $ret_code -eq 0 ]; then
57+
results+=("1:✅:$crate")
58+
else
59+
results+=("2:❌:$crate")
60+
any_failed=1
61+
fi
62+
63+
if [ -n "$CI" ]; then
64+
echo "::endgroup::"
65+
fi
66+
done
67+
68+
# Sort the results by status and then by crate name
69+
IFS=$'\n' sorted_results=($(sort <<<"${results[*]}"))
70+
unset IFS
71+
72+
# Print summary
73+
echo -e "\nSummary of build results:"
74+
for result in "${sorted_results[@]}"; do
75+
status="${result#*:}"
76+
status="${status%%:*}"
77+
crate="${result##*:}"
78+
echo "$status $crate"
79+
done
80+
81+
# Exit with a non-zero status if any command fails
82+
exit $any_failed

.github/assets/check_wasm.sh

+10-12
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,23 +21,20 @@ 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-primitives
3429
reth-ethereum-payload-builder
3530
reth-etl
36-
reth-evm-ethereum
3731
reth-exex
3832
reth-exex-test-utils
3933
reth-ipc
4034
reth-net-nat
35+
reth-network-ress
4136
reth-network
4237
reth-node-api
43-
reth-node-types
4438
reth-node-builder
4539
reth-node-core
4640
reth-node-ethereum
@@ -50,8 +44,8 @@ exclude_crates=(
5044
reth-optimism-node
5145
reth-optimism-payload-builder
5246
reth-optimism-rpc
53-
reth-payload-builder
54-
reth-payload-primitives
47+
reth-optimism-storage
48+
reth-optimism-chain-registry
5549
reth-rpc
5650
reth-rpc-api
5751
reth-rpc-api-testing-util
@@ -67,12 +61,16 @@ exclude_crates=(
6761
reth-invalid-block-hooks # reth-provider
6862
reth-libmdbx # mdbx
6963
reth-mdbx-sys # mdbx
64+
reth-payload-builder # reth-metrics
7065
reth-provider # tokio
7166
reth-prune # tokio
7267
reth-stages-api # reth-provider, reth-prune
7368
reth-static-file # tokio
7469
reth-transaction-pool # c-kzg
70+
reth-payload-util # reth-transaction-pool
7571
reth-trie-parallel # tokio
72+
reth-testing-utils
73+
reth-optimism-txpool # reth-transaction-pool
7674
)
7775

7876
# 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 &
+12-18
Original file line numberDiff line numberDiff line change
@@ -1,24 +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)
15+
- eth_getTransactionReceipt/get-legacy-contract (reth)
16+
- eth_getTransactionReceipt/get-legacy-input (reth)
17+
- eth_getTransactionReceipt/get-legacy-receipt (reth)
2218

2319
# https://github.com/paradigmxyz/reth/issues/8732
2420
engine-withdrawals:
@@ -41,8 +37,6 @@ engine-withdrawals:
4137
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org (Paris) (reth)
4238
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org Sync (Paris) (reth)
4339

44-
# https://github.com/paradigmxyz/reth/issues/8305
45-
# https://github.com/paradigmxyz/reth/issues/6217
4640
engine-api: []
4741

4842
# https://github.com/paradigmxyz/reth/issues/8305
@@ -53,11 +47,11 @@ engine-cancun:
5347
- Blob Transaction Ordering, Multiple Clients (Cancun) (reth)
5448
- Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth)
5549
- Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
56-
- Invalid NewPayload, VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
57-
- Invalid NewPayload, VersionedHashes Version, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
58-
- Invalid NewPayload, Incomplete VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
59-
- Invalid NewPayload, Extra VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
6050

61-
# https://github.com/paradigmxyz/reth/issues/8579
62-
sync:
63-
- 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

.github/assets/hive/load_images.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ IMAGES=(
1111
"/tmp/smoke_genesis.tar"
1212
"/tmp/smoke_network.tar"
1313
"/tmp/ethereum_sync.tar"
14+
"/tmp/eest_engine.tar"
15+
"/tmp/eest_rlp.tar"
1416
"/tmp/reth_image.tar"
1517
)
1618

@@ -22,4 +24,4 @@ done
2224

2325
wait
2426

25-
docker image ls -a
27+
docker image ls -a

0 commit comments

Comments
 (0)