Compare commits

..

3610 Commits

Author SHA1 Message Date
Matthias Seitz
4bae5aa3bf chore: bump version 1.4.2 (#16357) 2025-05-20 10:44:29 +02:00
Matthias Seitz
74cd6eb2b8 chore: bump alloy (#16355) 2025-05-20 10:44:06 +02:00
kevaundray
132b2b84a2 chore: RecoveredBlock -> Block (#16321)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-05-20 06:51:04 +00:00
Roman Krasiuk
db7610d08d chore: add clippy-op-dev make script (#16352) 2025-05-19 18:12:04 +00:00
Roman Krasiuk
3f9268e2d4 feat(ethereum-primitives): PooledTransactionVariant alias (#16351) 2025-05-19 18:08:18 +00:00
Matthias Seitz
056b5973fd chore: bump inspectors (#16342) 2025-05-19 17:56:49 +00:00
Roman Krasiuk
c2350f02e0 feat(primitive-traits): relax mem size implementations for 4844 txs with sidecars (#16349) 2025-05-19 16:26:51 +00:00
Matthias Seitz
9e8ef8f4ff chore: bump alloy 1.0.4 (#16345) 2025-05-19 14:55:53 +00:00
fantasyup
bc7d8c6bc1 feat(perp): optimize OpTxpool 2718 bytes encoding (#16336) 2025-05-19 11:12:02 +00:00
Federico Gimenez
fcee4811ad chore(hive): disable eth suite of devp2p sim (#16341) 2025-05-19 11:06:27 +00:00
stevencartavia
2aea847433 feat: introduce Receipt69 variant (#15827)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-19 09:48:22 +00:00
Federico Gimenez
f9cc241ff5 feat: include SpecId in PrecompileCache keys (#16241) 2025-05-19 09:25:19 +00:00
Femi Bankole
22e9a17a67 chore: Replace reth-provider with reth-storage-api in reth-rpc-api (#16322) 2025-05-19 08:20:21 +00:00
Matthias Seitz
27bcf647df docs: add some docs about TaskExecutor (#16327) 2025-05-18 17:02:43 +00:00
Shourya Chaudhry
916ada90c9 feat: implement IsTyped2781 for reth types (#16325)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-18 10:51:23 +00:00
Femi Bankole
8987bce75d chore: fix make-pr lint-codespell errors (#16324)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-18 12:29:57 +02:00
github-actions[bot]
4d61d663fb chore(deps): weekly cargo update (#16323)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-18 12:29:13 +02:00
Matthias Seitz
b4f9bec852 chore: flatten deps (#16315) 2025-05-17 16:57:52 +02:00
Matthias Seitz
b551dc3057 chore: make clippy happy (#16316) 2025-05-17 06:24:20 +02:00
Matthias Seitz
85775b5a79 chore: rm jsonrpsee features (#16314) 2025-05-17 06:24:06 +02:00
Matthias Seitz
ca39e18f52 chore: add 7702 to announced (#16312) 2025-05-16 17:13:27 +00:00
Acat
814d8bfe3c refactor(mempool): Refactor transaction validation to use batch interface (#16189)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-16 16:38:59 +00:00
Louis Brown
8afbc19083 chore: Mark into_recovered_unchecked as deprecated (#16283) 2025-05-16 16:16:45 +00:00
Matthias Seitz
34591d30ab chore: bump inspectors 0.22.2 (#16311) 2025-05-16 17:59:08 +02:00
fantasyup
fff5ab0e45 feat: introduce PoolTransaction::into_consensus_with2718 (#16303) 2025-05-16 15:01:25 +00:00
Alexey Shekhirin
91e77de80a ci: add OP Reth binaries to release notes (#16298) 2025-05-16 14:41:20 +00:00
Alexey Shekhirin
789351e3ca ci: bump base image for reproducible builds (#16307) 2025-05-16 14:14:56 +00:00
Louis Brown
6f4087e14e refactor: Remove to_subscription_message and update calls (#16305) 2025-05-16 13:48:32 +00:00
Alexey Shekhirin
4f4986cec0 ci: use GITHUB_REF_NAME env var in release.yml (#16302) 2025-05-16 14:47:34 +02:00
Developer Uche
401b88c86b feat: added TransactionValidator::validate_transactions_with_origin (#16238)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-16 11:53:48 +00:00
Alexey Shekhirin
585a1cca9d ci: release dry run (#16287) 2025-05-16 11:36:56 +00:00
Suyash Nayan
51596bee0b refactor(trie): pass rlp_buf as a mutable argument to rlp_node (#16243)
Signed-off-by: 7suyash7 <suyashnyn1@gmail.com>
2025-05-16 11:16:25 +00:00
Alexey Shekhirin
9f408b29a3 ci: separate workflow for reproducible release (#16299) 2025-05-16 11:09:49 +00:00
Suyash Nayan
4fb36fb247 refactor(rpc-builder): Use Box<dyn TaskSpawner> for RPC task handling (#16297)
Signed-off-by: 7suyash7 <suyashnyn1@gmail.com>
2025-05-16 11:05:45 +00:00
Alexey Shekhirin
e8bc216130 ci: deduplicate changelog in release notes (#16294) 2025-05-16 09:45:29 +00:00
Matthias Seitz
710a783461 chore: bump inspectors 0.22.1 (#16291) 2025-05-16 11:01:48 +02:00
int88
40cc996db3 test: stale txs could be evicted when maintaining txpool (#16269) 2025-05-16 08:27:33 +00:00
Matthias Seitz
e6ce41ebba chore: release 1.4.1 (#16286) 2025-05-15 21:08:33 +02:00
Alexey Shekhirin
74cbe61447 ci: fix Windows build in release.yml (#16280) 2025-05-15 18:38:18 +00:00
Louis Brown
9027af7164 chore: Construct a SubscriptionMessage with the sink's properties (#16285) 2025-05-15 18:26:50 +00:00
fantasyup
46fbdf0e2d chore: upstream tx_type derive to alloy::TransactionRequest (#16284) 2025-05-15 16:07:33 +00:00
Victor Farazdagi
4d56c9b24d chore: change TxCustom to TxPayment (#16281) 2025-05-15 15:11:09 +00:00
Matthias Seitz
a816c8f02f chore: bump version 1.4.0 (#16261) 2025-05-15 13:38:32 +00:00
Roman Krasiuk
52a7a3bf8d feat(engine): implement engine_getBlobsV2 (#16279) 2025-05-15 13:30:53 +00:00
Matthias Seitz
9fd70b649b chore: bump default gas limit for holesky (#16278) 2025-05-15 13:17:02 +00:00
Matthias Seitz
8e15806030 docs: add note about superchain registry (#16275)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-15 15:04:34 +02:00
Matthias Seitz
bcb893a64b chore: bump alloy 1.0.3 (#16277) 2025-05-15 14:50:22 +02:00
Roman Krasiuk
788a626f86 Rkrasiuk/implement get payload v5 (#16274) 2025-05-15 12:30:01 +00:00
Roman Krasiuk
cf4aebcd6e feat(engine): add osaka engine methods to capabilities (#16272) 2025-05-15 12:09:22 +00:00
Roman Krasiuk
8c98c1ce07 feat(txpool): add methods for retrieving BlobsAndProofsV2 (#16271) 2025-05-15 12:05:53 +00:00
James Niken
b3a2d70fea docs: Fix typos in static-file crate README (#16266) 2025-05-15 11:56:31 +00:00
Roman Krasiuk
ad766c00bc feat(engine): add engine_getPayloadV5 skeleton (#16270)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-15 11:41:19 +00:00
Roman Krasiuk
4cbe87f660 feat(engine): respond unsupported for payload v5 pre-osaka (#16268) 2025-05-15 11:29:33 +00:00
Matthias Seitz
e57992ad1b chore: rename extendedtx to just extended (#16265) 2025-05-15 10:58:23 +00:00
Louis Brown
7b8c0b4df4 refactor: Migrate InvalidInboxEntry to op-alloy (#16260) 2025-05-15 09:57:50 +00:00
Matthias Seitz
1737b8df12 fix: receipts logs arg parsing (#16240) 2025-05-15 09:47:26 +00:00
Emilia Hane
6195c70303 chore(lint): Bumps dep tempfile (#16253) 2025-05-15 09:02:16 +00:00
Matthias Seitz
0ca619755d chore: rm jsonrpsee patch (#16251)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-15 08:56:46 +00:00
Matthias Seitz
359d73dcc8 feat: add from intoiter impls (#16252) 2025-05-15 08:55:59 +00:00
Matthias Seitz
3a5f75a300 perf: replace collect with count (#16246) 2025-05-14 21:48:45 +00:00
0xriazaka.eth
8b4db1ffa3 docs: clarify note on &mut self usage (#16237) 2025-05-14 17:07:12 +00:00
Léa Narzis
b9e218343c refactor: relax OpAddOns (#16180) 2025-05-14 16:59:15 +00:00
Roman Krasiuk
ffbdd97592 feat(engine): add conversions for ExecutionPayloadEnvelopeV5 (#16218) 2025-05-14 16:21:45 +00:00
Ayush Dubey
ccaf7fe7ce chore: de duplicate mainnet deposit contract (#16074) 2025-05-14 16:17:29 +00:00
Louis Brown
836a17de65 feat: Introduce with_signer_ref helper (#16235) 2025-05-14 14:14:19 +00:00
cakevm
3c82dfa496 chore: Replace try_clone_into_recovered with try_into_recovered to avoid unnecessary clone (#16230) 2025-05-14 13:12:56 +00:00
Yeongjong Pyo
3ac3e6ff11 test(e2e): add CheckPayloadAccepted action (#16220)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-05-14 11:29:03 +00:00
Alexey Shekhirin
6c188475fc fix(trie): do not panic when logging the current hash of TrieWalker (#16222) 2025-05-14 10:41:55 +00:00
Veer Chaurasia
eec77e2cd5 feat: add check for osaka activation (#16223) 2025-05-14 10:21:10 +00:00
Veer Chaurasia
e1435350a1 feat: simplify choosing txtype for tx request using .has methods (#16227) 2025-05-14 10:19:59 +00:00
Matthias Seitz
a67202d7ee docs: clarify unit of txfeecap (#16225) 2025-05-14 12:20:25 +02:00
Ayush Dubey
1990286cba chore: Replacing filter id with subscription (#16224)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-14 09:36:51 +00:00
Merkel Tranjes
4df06466a0 docs: fix JWT token link (#16221) 2025-05-14 09:06:08 +00:00
Veer Chaurasia
0b3f018175 feat: Integrate Osaka in blob_max_and_target_count_by_hardfork (#16219) 2025-05-14 08:36:12 +00:00
Veer Chaurasia
7722f192c5 fix: handle ForkChoiceUpdate errors with proper rpc error mapping (#16215) 2025-05-14 08:08:40 +00:00
Aliaksei Misiukevich
4122680833 feat: impl of bad_blocks handler (#16209)
Signed-off-by: Aliaksei Misiukevich <taberlick@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-14 07:55:53 +00:00
Z
4e84e42f1e chore(deps): migrate to jsonrpsee 0.25 (#15956)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-14 07:41:54 +00:00
Veer Chaurasia
288ce76b53 feat: add func gas_limit_for PayloadConfig (#16210)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-14 07:16:43 +00:00
Federico Gimenez
805fb1012c feat: add PrecompileCacheMap::cache_for_address and test (#16197) 2025-05-13 21:22:57 +00:00
Dan Cline
71f009dbc9 feat(trie): add clear method to PrefixSetMut, RevealedSparseTrie, SparseTrieUpdates (#16179)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-05-13 18:45:07 +00:00
fantasyup
b15c1c8fea chore: bump log GetPayload events to debug level (#16196) 2025-05-13 15:39:10 +00:00
Mark Diloff
2c57babead docs: fix typos in observability.md (#16186) 2025-05-13 13:10:57 +00:00
Federico Gimenez
76ae22d72a fix: use different cache instance per precompile (#16191) 2025-05-13 12:42:56 +00:00
Matthias Seitz
197d564c38 chore: interop maintain touchups (#16187) 2025-05-13 10:25:41 +00:00
Matthias Seitz
dfbbc2e0e5 chore: add error when unwind failed on launch (#16188) 2025-05-13 12:25:30 +02:00
Federico Gimenez
a2c1646107 chore(txpool): update comments about prague activation (#16185) 2025-05-13 08:49:48 +00:00
Suyash Nayan
5ac2957d70 refactor(optimism_txpool): Move interop revalidation logic to SupervisorClient stream (#16148)
Signed-off-by: 7suyash7 <suyashnyn1@gmail.com>
2025-05-13 08:11:03 +00:00
Ayush Dubey
e5d59bad7e feat: Adding cronjob for superchain (#16141) 2025-05-13 10:19:58 +02:00
Roman Krasiuk
7ea80f7404 feat(txpool): track osaka activation (#16184) 2025-05-13 08:02:01 +00:00
fantasyup
8829881138 refactor: add alloy_consensus::SignerRecoverable to SingedTransaction supertrait (#16174) 2025-05-13 07:53:18 +00:00
Roman Krasiuk
1af6ed5387 chore(txpool): activate prague by default (#16183) 2025-05-13 07:48:50 +00:00
Arsenii Kulikov
d5e61c71d9 fix: correctly set txtype if blobVersionedHashes is present (#16182) 2025-05-13 07:38:12 +00:00
Matthias Seitz
d485b9ab66 feat: add fns to map engine builders (#16171) 2025-05-12 18:38:08 +00:00
Dan Cline
1f23f088d1 fix(tree): add colon to sparse trie task logs (#16175) 2025-05-12 18:31:31 +00:00
Federico Gimenez
ffd76458a2 chore: extract TreeState to separate submodule (#16172) 2025-05-12 16:28:53 +00:00
Alexey Shekhirin
0dee91f6b3 deps: bump libmdbx to 0.13.6 (#15412) 2025-05-12 16:20:14 +00:00
Alexey Shekhirin
3d48dcc8e5 feat(trie): instrument TrieNodeIter::try_next (#16127) 2025-05-12 16:08:43 +00:00
Federico Gimenez
55f4b0b9f3 chore: update hive expected failures (#16167) 2025-05-12 13:15:36 +00:00
int88
82f458081a test: handle reorg event properly by pool maintaining (#16155) 2025-05-12 11:35:36 +00:00
Suyash Nayan
b90b8d4eac perf(trie): optimize TrieNodeIter by skipping redundant seek (#15841)
Signed-off-by: 7suyash7 <suyashnyn1@gmail.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-05-12 11:23:47 +00:00
Alexey Shekhirin
bc9722d9e2 feat(engine): set keep alive for Tokio threads (#16162) 2025-05-12 11:21:48 +00:00
Federico Gimenez
eb6e7f03c9 fix: prevent memory bloat during extended finalization periods (#16157) 2025-05-12 11:20:37 +00:00
Matthias Seitz
96e959ca20 chore: replace filteredParams with Filterset (#16077)
Co-authored-by: James <james@prestwi.ch>
2025-05-12 13:37:06 +02:00
Veer Chaurasia
838bf73ac5 refactor: make gas_limit optional (#16161)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-12 11:10:11 +00:00
Matthias Seitz
a12a296eba perf: batch create sender ids (#16134) 2025-05-12 13:11:07 +02:00
Matthias Seitz
6250f65120 perf: dont alloc on delegation limit check (#16135) 2025-05-12 13:10:42 +02:00
Matthias Seitz
e5ce98014a chore: bump alloy 0.15.11 (#16163) 2025-05-12 13:09:54 +02:00
Federico Gimenez
a411d9334e chore: remove redundant NodeTypes bounds (#16160) 2025-05-12 10:11:35 +00:00
Z
96bc7b345d perf: use estimated_compressed_size for DA limiter (#16153)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-12 09:43:24 +00:00
Acat
029fa5914c refactor(mempool): Optimize validation task lock duration by moving async fut creation outside lock (#16159)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-12 09:32:44 +00:00
Matthias Seitz
3338c5a319 revert: "revert: 2054a37" (#16139)
Co-authored-by: rakita <dragan0rakita@gmail.com>
2025-05-12 08:53:05 +00:00
Hai | RISE
bda7f4a6d5 feat(OpReceipt): add into_receipt (#16156) 2025-05-12 07:54:27 +00:00
github-actions[bot]
b1a1da1062 chore(deps): weekly cargo update (#16150)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2025-05-11 10:42:05 +00:00
Matthias Seitz
2767ffd3bd chore: phase out reth-primitives (#16151) 2025-05-11 12:41:57 +02:00
Matthias Seitz
4f00ed7bed chore: put op conversions in mod op (#16147) 2025-05-10 10:00:13 +02:00
Matthias Seitz
7982caa05f chore: remove_auths doc (#16137) 2025-05-09 21:15:42 +00:00
Matthias Seitz
2033980076 perf: perform contains check without alloc (#16136) 2025-05-09 20:41:21 +00:00
Ishika Choudhury
bcefb00088 chore: moved OkValidator into txpool behind test-utils feature gate (#16144) 2025-05-09 20:12:44 +02:00
Matthias Seitz
5cb481c691 chore: replace executionwitness with alloy (#16142) 2025-05-09 19:18:15 +02:00
Matthias Seitz
74e7e5f1cf chore: use signedtx trait (#16143) 2025-05-09 16:28:07 +00:00
int88
db885ccae8 test: handle commit event properly by pool maintaining (#16125) 2025-05-09 14:46:55 +00:00
Matthias Seitz
c830d8c852 revert: 2054a37 (#16138) 2025-05-09 15:56:06 +02:00
Ayush Dubey
b36201bf09 feat: Introducing handler for eth_getAccountInfo (#16115)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-09 12:44:52 +00:00
Matthias Seitz
8e7684d49d chore: bump op-revm (#16133) 2025-05-09 13:11:59 +02:00
Pana
448e909c50 feat: Add EIP7702 tx handle logic for txpool (#15312)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-09 10:55:17 +00:00
Federico Gimenez
2054a37b02 feat: add precompile cache for execution (#15928)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-09 09:36:28 +00:00
Afounso Souza
a3c067c2b2 chore: add link to SHA256 article (#16129)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-08 19:39:31 +00:00
Femi Bankole
124bd39405 refactor: move ExtendedTxEnvelope to reth-primitives-traits (#16102)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-05-08 16:32:54 +00:00
int88
c7436a6f33 fix: complete logic of best_transactions_with_attributes (#16024)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-08 10:57:42 +00:00
Matthias Seitz
a33da3fc56 chore: skip inserting older blocks (#16101) 2025-05-08 11:28:29 +02:00
Matthias Seitz
70299510a7 chore: bump superchain registry (#16122) 2025-05-08 10:19:53 +02:00
Soubhik Singha Mahapatra
da95e5745e feat: use custom tx in custom-node (#16054)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-08 06:35:47 +00:00
Roman Hodulák
1dcb3dcfc0 feat(era): Fetch file list inside EraStream (#16119) 2025-05-08 06:33:52 +00:00
Ishika Choudhury
eaaa22cf39 refactor: added input_mut for otterscan_api_truncate_input (#16114)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-07 20:10:56 +00:00
Matthias Seitz
9a9cd830f0 chore: bump alloy 0.15.10 (#16117) 2025-05-07 21:43:49 +02:00
Matthias Seitz
5c07c0e858 chore: pin revm deps (#16118) 2025-05-07 21:29:12 +02:00
Matthias Seitz
e05df0d311 fix: skip nonce check in simulate v1 if no validation (#16109) 2025-05-07 18:55:47 +02:00
Matthias Seitz
ff5028c481 feat: add AuthHandle::noop (#16082) 2025-05-07 17:56:34 +02:00
Matthias Seitz
0af20a3b97 feat: add noop engine Api builder (#16084) 2025-05-07 17:56:18 +02:00
Emilia Hane
240d1b57d2 chore(op-sdk): Move OpPayloadTypes to reth-optimism-payload-builder (#16105) 2025-05-07 14:29:46 +00:00
Matthias Seitz
adb8bdc707 ci: enable arbitrary check (#15500) 2025-05-07 16:18:22 +02:00
Alexey Shekhirin
f1dc684229 feat(trie): walker branch node seeks metric (#16106) 2025-05-07 13:03:30 +00:00
Matthias Seitz
2eec34d7de perf: check receiver count before clone (#16100) 2025-05-07 13:24:13 +02:00
unitezen
3a49e4e539 chore: bump docker lighthouse version for electra (#16103) 2025-05-07 11:02:44 +00:00
Léa Narzis
178b0c1cb5 feat: add command download to download public node snapshots (#13598)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-07 09:28:48 +00:00
Matthias Seitz
5c64d59153 feat: add with_disabled_rpc_cache to NodeConfig (#16097) 2025-05-06 19:32:20 +00:00
Emilia Hane
623950bb7e chore(sdk): allow NoopNetwork in NodeAdapater (#16037)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-05-06 17:59:30 +00:00
Ishika Choudhury
fac562b673 chore: relaxed insp in trace rpc-eth-api (#16094) 2025-05-06 17:14:12 +00:00
kevaundray
41a2d0f005 chore: add more docs to SparseTrie (#15750)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-06 14:33:48 +00:00
DaniPopes
39305dda1c chore(meta): restrict mdbx vendored attribute (#16092) 2025-05-06 13:48:26 +00:00
Matthias Seitz
af1e93a181 feat: add executor fn (#16090) 2025-05-06 13:02:18 +00:00
kevaundray
3e5c230f4d feat: add stateless crate to expose stateless validation (#15591)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-05-06 12:38:07 +00:00
fantasyup
1e33d4cfe2 fix: check scheduled blob activations (#16088) 2025-05-06 12:09:55 +00:00
Matthias Seitz
c32e8acd22 chore: rm reth-provider from rpc-builder (#16087) 2025-05-06 14:17:16 +02:00
MozirDmitriy
b5c9984fd4 docs: add cross-platform Prometheus & Grafana installation guidance (#15703)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-05-06 11:35:30 +00:00
Federico Gimenez
699b3fde1b chore: remove BlockExecutorProvider trait (#15989)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-05-06 11:34:37 +00:00
Matthias Seitz
cbdb81069f chore: replace istyped2718 (#16085) 2025-05-06 12:19:50 +02:00
Matthias Seitz
8939d781cf chore: bump op-alloy (#16081) 2025-05-06 11:23:54 +02:00
Emilia Hane
c742097471 chore(op): Clean up SupervisorClient (#16079) 2025-05-06 09:06:24 +00:00
Emilia Hane
5a80efb06e chore: parse supervisor rpc error (#16078) 2025-05-06 08:28:03 +00:00
Matthias Seitz
caa4f133a1 chore: silence warnings (#16076) 2025-05-06 10:28:39 +02:00
Shane K Moore
1c7d8a643b fix: eth cache memory usage (#16075)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-06 07:38:41 +00:00
fantasyup
7d2ac84722 chore: bump alloy to 0.15.9, replace reth types with alloy's (#16069)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-05 17:47:43 +00:00
Federico Gimenez
c848848f3b chore: update hive expected failures (#16071) 2025-05-05 17:30:59 +00:00
Jonas Bostoen
fdcc4c078d feat(txpool): add authorization list setter to mock transaction (#16068) 2025-05-05 17:28:50 +00:00
Veer Chaurasia
f245708445 refactor(optimism): introduce OpNodeTypes trait to reduce generic repitition (#16048) 2025-05-05 14:00:51 +00:00
Matthias Seitz
094a9fe69e feat: add RpcStateCacheArgs::set_zero_lengths (#16066)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-05-05 15:24:02 +02:00
Emilia Hane
6b0c01e07e fix(op): canyon check skipped unless cancun active (#16063) 2025-05-05 11:11:30 +00:00
int88
d66d1caed4 fix: update metrics for download_block_range (#16064) 2025-05-05 10:47:06 +00:00
Emilia Hane
bdbefd0003 fix(op-rpc): l2 withdrawals root not included in debug exec witness (#16062) 2025-05-05 10:42:30 +00:00
Matthias Seitz
698e9f05db fix: invalid queued ord (#16061) 2025-05-05 09:48:39 +00:00
kevaundray
53b2cdafee chore: Remove ForkSpec::Unknown and Add ForkSpec::Prague (#16055) 2025-05-05 07:42:59 +00:00
Arsenii Kulikov
1ba12aeeaa chore: remove NoopBlockExecutorProvider (#16060) 2025-05-05 07:08:11 +00:00
Maxim Evtush
e0eaa7605b docs: fix typos and improve comment formatting (#16058) 2025-05-04 16:33:51 +00:00
github-actions[bot]
3a68d53b0e chore(deps): weekly cargo update (#16057)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-04 16:21:51 +00:00
Femi Bankole
3089ad9d64 refactor: move FullRpcProvider trait to storage-api crate (#16056) 2025-05-03 19:11:16 +00:00
Matthias Seitz
98132bdd10 chore: touchups (#16053) 2025-05-03 13:44:52 +02:00
Vaiz_07
77fab5412d feat: Add ExEx example with sanity checks (#15448) 2025-05-03 13:16:37 +02:00
Soubhik Singha Mahapatra
3b3b54132f feat: added support for CustomTx in custom node example (#16021)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-03 05:47:05 +00:00
Léa Narzis
1d55c5caf4 feat(stage): add helpers for StageSetBuilder (#16042) 2025-05-03 04:46:52 +00:00
Roman Hodulák
4a6b2837e6 refactor(era): Replace known host URL for ERA files with Ithaca (#16040) 2025-05-02 14:24:56 +00:00
Soubhik Singha Mahapatra
36ef0a80d7 chore: made Envelope: FromTxCompact public (#16038)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-02 11:11:44 +00:00
Alexey Shekhirin
be724f92f4 feat(cli): no empty diffs, sort entries, and pretty print in db diff (#16035) 2025-05-02 09:41:52 +00:00
int88
fef37ae8f3 fix: for the priority of tx, Value has a higher priority than None (#16034) 2025-05-02 11:01:37 +02:00
Emilia Hane
4cd714e8d8 chore(op-sdk): Relax trait bounds on TraceApi methods not accessing mempool (#15752) 2025-05-02 08:41:11 +00:00
kilavvy
c91d2cae77 docs: Fix typos and grammar in documentation comments (#16033) 2025-05-02 08:39:17 +00:00
Dan Cline
0933d51deb feat(engine): add instrumented state provider (#15891)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-05-02 06:27:30 +00:00
Alexey Shekhirin
1d17787a3c chore(trie): do not panic in trie cursor subnode Debug impl (#16013) 2025-05-02 06:27:02 +00:00
Arsenii Kulikov
37741fdcbc refactor: execute through EvmConfig in engine + MockEvmConfig (#16025)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-05-01 19:16:31 +00:00
Frank Iod
03913ca835 chore: update broken link (#16023) 2025-05-01 18:47:55 +00:00
Maximilian Hubert
61a0345ff5 chore: added links (#15475) 2025-05-01 16:09:15 +00:00
Matthias Seitz
0144a8353b chore: extended touchups (#16020) 2025-05-01 15:11:21 +02:00
Emilia Hane
c49b31bb1e chore(sdk): impl FullNetwork for NoopNetwork (#15959)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-01 12:32:35 +00:00
Matthias Seitz
324c3b5ad0 chore: replace crypto (#16019) 2025-05-01 11:55:09 +00:00
Ishika Choudhury
a7eacb1396 chore: bumped core to 1.1.0 and alloy to 0.15.7 (#16015)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-01 10:30:17 +00:00
kilavvy
8515cdc10e fix: Remove redundant article and add missing apostrophe (#16017) 2025-05-01 10:27:06 +00:00
Soubhik Singha Mahapatra
cc1fb9f881 chore: used IsTyped2718 in ExtendedTxEnvelope (#16016) 2025-05-01 08:32:53 +00:00
Ayush Dubey
d7b15ce1df feat: Introducing support for configuring sequencer client headers (#15991)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-05-01 06:40:14 +00:00
Dan Cline
3358c762f2 chore(ci): update EEST version (#16006) 2025-04-30 22:54:50 +00:00
Alexey Shekhirin
b2b1a3c68c perf(engine): drop sparse trie after task returned result (#16000) 2025-04-30 22:23:19 +00:00
Dan Cline
b93f4c6080 fix(tree): save caches only after prewarm tasks finish (#16011) 2025-04-30 20:12:45 +00:00
Shourya Chaudhry
82c2762124 feat: added gas used metric (#16012) 2025-04-30 17:46:00 +00:00
Alex Pikme
46e123f3ad docs: correction and fix error (#16010) 2025-04-30 16:10:05 +00:00
Arsenii Kulikov
ff04aee216 chore: integrate alloy-evm simplifications (#16009) 2025-04-30 16:01:17 +00:00
Soubhik Singha Mahapatra
412dab238e feat: added IsTyped2718 trait for Envelope (#16004) 2025-04-30 17:25:25 +02:00
Ayush Dubey
4d46962a65 chore: Adding metric feature gate (#15971)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-30 12:31:02 +00:00
Alex Abdugafarov
b5149d0e15 fix: ipc provider building ws instead (#16005) 2025-04-30 12:20:12 +00:00
Matthias Seitz
7049b1b470 docs: clarify blocks for pipeline run (#16002)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-30 11:21:19 +00:00
FT
86c552c011 docs: update docs (#15997) 2025-04-30 08:00:48 +00:00
Vaiz_07
ca78d66620 feat: parse supervisor RPC errors (#15944) 2025-04-30 07:51:22 +00:00
Soubhik Singha Mahapatra
d960b4b31e chore: relaxed ExtendedTxEnvelope impls (#15993)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-29 18:53:21 +00:00
leopardracer
6a9f4c28ee fix: typos in comments (#15938) 2025-04-29 18:52:35 +00:00
Roman Hodulák
9ab57f70e3 feat(era): Implement SHA-256 checksum validation for local directory (#15987) 2025-04-29 14:50:43 +00:00
Matthias Seitz
762880e494 docs: add engine API builder docs (#15988) 2025-04-29 15:10:06 +02:00
Soubhik Singha Mahapatra
e8e3aed736 chore: made extended Tx Envelope more flexible (#15970)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-29 12:22:21 +00:00
Matthias Seitz
9e2043091f docs: add more docs for RpcAddsOns (#15986)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-29 12:01:01 +00:00
Emilia Hane
1a548e6b99 perf(op-tx-pool): Split up tx validation to stateless and stateful checks (#15843) 2025-04-29 11:39:57 +00:00
Ayush Dubey
d69c42402f chore: Relaxing ChainSpecParser bound in Commands impl (#15976)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-29 09:20:15 +00:00
Roman Hodulák
1773e30505 feat(cli): Add command for importing era files from URL (#15978) 2025-04-29 09:11:50 +00:00
Veer Chaurasia
22696a1c12 refactor: move statereader to storage-api (#15969) 2025-04-29 07:55:15 +00:00
Pana
91defb2f9c refactor: move ethereum-forks crate into ethereum folder (#15983) 2025-04-29 07:54:25 +00:00
Léa Narzis
c19dfe9531 chore: rename crate era-import to era-utils (#15980) 2025-04-28 20:07:28 +00:00
Arsenii Kulikov
86adfac165 fix: avoid cloning receipts on verification for op (#15979) 2025-04-28 19:53:10 +00:00
Arsenii Kulikov
2dd811cc69 chore: relax some eth component bounds (#15977)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-28 18:00:09 +00:00
Roman Hodulák
6c94e9090d feat(era): Implement SHA-256 checksum validation (#15962) 2025-04-28 17:22:39 +00:00
Matthias Seitz
2f85dcc4e0 chore: use default init (#15975) 2025-04-28 16:34:50 +00:00
Soubhik Singha Mahapatra
eda2b09132 feat: added eth api exex (#15949)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-28 15:10:05 +00:00
int88
babe65c197 chore: use TransactionGenerator uniformly and remove rng_transaction (#15965) 2025-04-28 12:05:54 +00:00
Emilia Hane
223ebddb8f fix(observability): Delegate DatabaseMetrics call to wrapped type T in Arc<T> impl (#15963) 2025-04-28 10:39:36 +00:00
Soubhik Singha Mahapatra
8c2277b2d5 feat: added an example of using an RPC with an ExEx (WIP) (#15853)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-28 10:05:12 +00:00
Harrish Bansal
3c0ff9c86b refactor: Remove redundant consensus call (#15946) 2025-04-28 09:56:29 +00:00
Veer Chaurasia
b6aa8e78f1 feat: Replace CacheServiceUnavailable variant with a dedicated error variant (#15950) 2025-04-28 09:51:49 +00:00
DaniPopes
a58f09c00d docs: always use nextest (#15957)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-28 09:51:07 +00:00
Ayush Dubey
58ec4b1153 feat: Removing geth-tests and serial_test (#15960) 2025-04-28 07:43:56 +00:00
github-actions[bot]
cae7448987 chore(deps): weekly cargo update (#15951)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2025-04-27 08:53:48 +00:00
Matthias Seitz
85f39827fd chore: rm storagelock variant (#15948) 2025-04-26 18:38:02 +02:00
Soubhik Singha Mahapatra
4f59aee872 chore: removed reth-optimism-chain-registry crate (#15943) 2025-04-26 15:24:56 +00:00
int88
70e2fd5fb5 chore: dedup prune_from_subpool (#15945) 2025-04-26 15:17:01 +00:00
Soubhik Singha Mahapatra
0a401d9cbf feat: created BroadcastLatestForkchoice action (#15784)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-26 08:11:46 +00:00
Skylar Ray
264334640c docs: update docs (#15851) 2025-04-26 07:38:14 +00:00
int88
23c146bef9 fix: park descendant when delete a pending tx (#15931)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-26 06:39:30 +00:00
AJStonewee
091d84eed3 chore: single typo in 'hash_fetching' (#15937) 2025-04-26 06:28:03 +00:00
Ishika Choudhury
dd997e0705 feat: Introduce Block::into_ethereum_block to Block trait (#15940)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-26 06:22:02 +00:00
Veer Chaurasia
1775cc4269 refactor: remove outdated chain::split function (#15935)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-26 06:20:16 +00:00
Matthias Seitz
59b717e8f4 chore: use spare capacity (#15932) 2025-04-25 19:00:15 +00:00
Hai | RISE
8bba80e565 perf(rpc): clone less when building block response (#15624) 2025-04-25 18:35:39 +00:00
Z
27f8584ad8 feat: support engine_newPayloadV4 in benchmarker (#15924) 2025-04-25 17:33:12 +00:00
Harrish Bansal
82d6505948 refactor: remove validate_header_with_total_difficulty (#15903) 2025-04-25 13:38:29 +00:00
Ayush Dubey
0253bad654 chore: Adding warning log for empty MPT root as withdrawals_root post-Isthmus (#15925)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-25 13:26:15 +00:00
Matthias Seitz
987a94ed33 chore: bump sse (#15926) 2025-04-25 13:14:36 +02:00
Ayush Dubey
cef7febf0b feat: Introducing ValidationApiError into structured JSON-RPC error responses (#15901)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-25 10:10:32 +00:00
cakevm
5810f31b6c chore(transaction-pool): make NoopTransactionPool generic over EthPoolTransaction (#15923) 2025-04-25 09:51:51 +00:00
Roman Hodulák
fab0d81a97 feat(cli): Add import-era CLI command (#15882) 2025-04-25 08:54:37 +00:00
Ayush Dubey
f3b2e4fcd0 chore: moving header sync gap provider to storage api crate (#15921) 2025-04-25 08:53:40 +00:00
nk_ysg
e0a300ea07 perf: opt EngineApiTreeHandler::insert_block_inner rm clone (#15385)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-25 08:27:39 +00:00
Ayush Dubey
220441c12f feat: Introduces sequencer metrics for transaction forwarding (#15910)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-25 07:05:27 +00:00
Hai | RISE
7a4a30f49f chore: fix misleading name (#15920) 2025-04-25 07:02:08 +00:00
Ishika Choudhury
c867812793 feat: exposed EvmConfig to PayloadServiceBuilder (#15887)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-04-25 01:29:01 +00:00
floor-licker
79898f1756 feat: add split_ref method to SealedHeader (#15917) (#15918) 2025-04-25 00:56:46 +00:00
Emilia Hane
a7435bede0 chore(deps): 2024 edition syntax fixes (#14731) 2025-04-24 21:34:26 +00:00
Roman Hodulák
a3fff5cf6e feat(era): Add era stream from local directory (#15914) 2025-04-24 18:57:44 +00:00
FT
cefac14a28 chore: fix typo and remove redundant article in comments (#15915) 2025-04-24 18:42:07 +00:00
Soubhik Singha Mahapatra
26e467442c chore: simplified cli imports in examples (#15904) 2025-04-24 18:30:07 +00:00
Léa Narzis
70c5d12b4b test(era): finalize reth era testing tour. (#15595)
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
2025-04-24 18:27:56 +00:00
int88
dd4aa1a85b test: complete local_senders_tracking (#15912) 2025-04-24 14:40:06 +00:00
Matthias Seitz
0c7518205b chore: bump alloy 0.15.5 (#15913) 2025-04-24 14:39:24 +00:00
Matthias Seitz
bf59f5816c docs: add docs about CachedReads (#15905)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-04-24 15:43:09 +02:00
Matthias Seitz
4d77608be1 feat!: replace TransactionSigned with alloy's (#15768) 2025-04-24 12:17:19 +00:00
floor-licker
cfa49f86ef chore: move HeaderSyncGap type (#15892)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-24 11:01:26 +00:00
kevaundray
b757a7bf88 chore: Remove unused write_to_db method in ef-tests (#15902) 2025-04-24 11:00:32 +00:00
Matthias Seitz
c00c09f4c9 chore: use sender_ref (#15898) 2025-04-24 12:13:21 +02:00
Z
1a53b3b632 perf: simplify generated superchain code (#15897) 2025-04-24 08:43:50 +00:00
int88
35f5dac9b0 test: change sender balance when apply update accounts to pool (#15896)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-24 08:36:30 +00:00
Veer Chaurasia
8e8ec019df refactor(storage-api): move statewriter trait to storage-api crate (#15894)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-24 08:36:02 +00:00
Matthias Seitz
ddba222c08 chore: make clippy happy (#15895)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-04-24 08:06:06 +00:00
Shane K Moore
94723cacb3 chore: simplify op chainspec parser (#15888) 2025-04-23 19:52:15 +00:00
Matthias Seitz
9526849c14 chore: add update_db_with_and_check (#15885) 2025-04-23 19:05:01 +02:00
Danyal Prout
0a4a883923 chore(metrics): summable reth_info value (#15884) 2025-04-23 16:32:26 +00:00
Ishika Choudhury
d4c04f6826 feat: added support for --debug.rpc-consensus-ws (#15858) 2025-04-23 14:26:31 +00:00
Matthias Seitz
5197a72c56 chore: relax more default (#15880) 2025-04-23 16:23:49 +02:00
Dan Cline
f466e24bc4 fix(ci): install cargo-cache in reproducible build action (#15873) 2025-04-23 16:07:10 +02:00
Matthias Seitz
a94348d7d0 chore: relax default constraints (#15879) 2025-04-23 13:25:08 +00:00
Arsenii Kulikov
fe3011ffca fix: correctly set extra_data for eth payload builder (#15875) 2025-04-23 12:28:35 +00:00
Matthias Seitz
f5eca39559 chore: bump alloy 0.15 (#15874) 2025-04-23 12:13:16 +00:00
kevaundray
40f0edfc2e chore: Make SparseTrie crate no_std compatible (#15786)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-23 11:57:41 +00:00
Arsenii Kulikov
ae3ffb90e4 chore: bump MSRV to 1.86 (#15863)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-23 13:55:26 +02:00
kevaundray
9d3509c8ac chore: Explicitly check for failure on expected blocks in ef-tests (#15803)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-04-23 11:18:18 +00:00
Matthias Seitz
57f77ac438 fix: fail send_raw_transaction if forwarding fails (#15867) 2025-04-23 10:13:03 +00:00
Pana
67e34b59e1 refactor: move reth-evm crate code into its own crate folder (#15870) 2025-04-23 09:33:26 +00:00
Alexey Shekhirin
7b483b4f8c fix(cli): drop ExEx WAL only if it exists (#15871) 2025-04-23 09:33:17 +00:00
Roman Hodulák
9d9987590f refactor(reth): Extract Cli into ethereum-cli crate (#15857)
Co-authored-by: Harrish Bansal <145403921+Haxry@users.noreply.github.com>
2025-04-23 07:23:12 +00:00
Shane K Moore
211ecb6d91 chore: add superchain enum macro for chainspec (#15861) 2025-04-23 07:10:22 +00:00
Matthias Seitz
a135c4b72c chore: add empty line to display hardforks (#15845) 2025-04-22 22:55:53 +02:00
Mike Jerred
a1bbce8a47 feat: add reproducible build github action (#15569)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-04-22 20:31:31 +00:00
kevaundray
81942e41be chore: add a method on SparseTrie to check whether a leaf exists (#15758)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-04-22 19:52:54 +00:00
kevaundray
e911208e6f chore: pin crunchy by including it in one of the member crates (#15854)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-04-22 18:38:17 +00:00
Federico Gimenez
98ae924731 feat(engine): enable prewarming & caching by default (#15764)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-04-22 18:07:38 +00:00
Mateus F. Melo
6d45d5297d chore: rename send_rpc_call into request with pub (#15849) 2025-04-22 15:44:37 +00:00
kevaundray
23cc8f7f51 chore: re-pin crunchy to 0.2.2 after weekly cargo update (#15846) 2025-04-22 15:13:22 +00:00
Roman Hodulák
76633a541d feat(era): Add history import (#15737) 2025-04-22 14:58:49 +00:00
rotcan
ee8d7d00cb feat(engine): Compare sorted bundle states in witness invalid block hook (#15689)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-04-22 13:49:08 +00:00
cakevm
2ab24fe90a feat(optimism): Add support for all Superchain configs and enable their usage (#14562)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-22 13:40:07 +00:00
kevaundray
f3715e8a52 chore(ci): Add a usage comment on revert (#15844) 2025-04-22 13:37:16 +00:00
Ishika Choudhury
3b879a1d83 feat: task executor accessible globally (#15360)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-22 12:16:29 +00:00
Matthias Seitz
81a8c270d6 test(crates): add comprehensive tests for mock transaction factory and modifications (#15842)
Co-authored-by: tiendn <15717476+tiendn@users.noreply.github.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2025-04-22 12:20:46 +02:00
Morty
cf3240f6ee docs: correct indentation in rpc.rs (#15824)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-22 09:53:19 +00:00
Harrish Bansal
701af23fa5 refactor: Simplify HeaderSyncGapProvider trait (#15819)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-22 09:40:56 +00:00
fuder.eth
97a1977cee docs: Update witness.rs (#15836) 2025-04-22 09:34:08 +00:00
Will Cory
e238946ded feat: add state override support to eth_createAccessList (#15840)
Co-authored-by: Claude <noreply@anthropic.com>
2025-04-22 08:50:30 +00:00
Arsenii Kulikov
e21da953a2 fix: kurtosis-op job (#15839) 2025-04-22 08:26:37 +00:00
kevaundray
a64ced455c chore: Add reth-primitives to no-std CI checks (#15823) 2025-04-22 02:29:58 +00:00
github-actions[bot]
49b0ca0354 chore(deps): weekly cargo update (#15826)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-21 18:02:19 +00:00
Arsenii Kulikov
322fb1e63f fix: always return value for mint field (#15835) 2025-04-21 17:09:52 +00:00
Arsenii Kulikov
18337504dc fix: ignore engine-auth failures (#15838) 2025-04-21 16:32:32 +00:00
kevaundray
f158f295b9 chore: Make reth-ethereum-consensus no_std compatible (#15821)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-21 11:32:52 +00:00
Chen Wen Kang
3cd753ee00 test(e2e): add BroadcastNextNewPayload action (#15828) 2025-04-21 11:11:19 +00:00
kevaundray
664efb944b fix: Make reth-evm-ethereum turn off default-features in top level Cargo.toml (#15825) 2025-04-21 13:14:25 +02:00
charlessswang
3f95621703 chore(all): remove duplicate words (#15799)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-21 10:57:28 +00:00
kevaundray
05e1ae207b chore: Add reth-revm to no_std CI checks (#15822) 2025-04-21 12:40:46 +02:00
leopardracer
69fdf76560 docs: remove duplicate words (#15820) 2025-04-21 12:35:38 +02:00
Roman Hodulák
7552ad46c5 fix(exex): Remove unneeded mut from exex manager variable (#15830) 2025-04-21 07:03:18 +00:00
kevaundray
f650349a8d chore: add reth-errors to no-std checks (#15815) 2025-04-19 11:53:21 +00:00
Christopher Mooney
1a93f044f3 docs: Fix missing escaped newline (#15816) 2025-04-19 10:30:31 +00:00
Matthias Seitz
a1b8ceea41 docs: some docs on sync gap channel (#15817) 2025-04-19 10:21:12 +00:00
Veer Chaurasia
c148da8bc9 feat(storage-api): move BlockExecutionWriter trait from provider to storage-api (#15798)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-19 08:50:44 +00:00
kevaundray
6ef19f403d fix: Check for the maximum allowed gas limit in the block (#15800) 2025-04-19 08:46:09 +00:00
Tomás Andróil
15dfb13a2b fix: added a dedicated test to confirm that serde_json correctly handles JSON strings with leading and trailing whitespace (#15789)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-19 08:32:46 +00:00
kevaundray
87d12ed789 chore: Update execution spec tests to v17.0 (#15809) 2025-04-19 08:01:22 +00:00
Arsenii Kulikov
54b2b63f5d fix: use correct params for kurtosis-op (#15813) 2025-04-19 07:59:34 +00:00
Matthias Seitz
2ad858c6ef chore: improve etherscan debug error reporting (#15811) 2025-04-19 10:00:09 +02:00
Arsenii Kulikov
1e4480a7ba fix: pin teku image (#15805) 2025-04-18 15:23:45 +00:00
Ishika Choudhury
b328249ef7 chore: removed TransitionConfigurationExchanged event variant (#15808) 2025-04-18 14:34:02 +00:00
stevencartavia
5cf99b3a8d feat: add support for Eth69 receipts representation (#15619)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-04-18 14:15:17 +00:00
Roman Krasiuk
b312799e08 fix(evm): custom blob params (#15598)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-18 13:20:48 +00:00
Roman Krasiuk
b131b0d5d6 feat(witness): always_include_root_node flag (#15679) 2025-04-18 13:17:00 +00:00
Roman Krasiuk
fdfca34218 chore(trie): trie_type behind flag (#15690) 2025-04-18 13:00:12 +00:00
Ishika Choudhury
b117760f34 chore: removed deprecated endpoint (#15804) 2025-04-18 12:42:59 +00:00
Udoagwa Franklin
792eeae8c0 feat(cli): add bootnode command (#15347)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-18 11:44:42 +00:00
0xMushow
eb8102c7c2 feat(transaction-pool): check on disk store in case of blob cache misses (#15225)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-18 09:08:19 +00:00
Tomass
5f8d21dc96 docs: remove consecutive duplicate words (#15795) 2025-04-17 19:10:48 +00:00
Matthias Seitz
6f8e7258f4 chore: release 1.3.12 (#15797) 2025-04-17 21:22:10 +02:00
0xMushow
aee484ba82 refactor(block): Inline from_block_with_transaction fn (#15788) 2025-04-17 18:57:20 +00:00
Matthias Seitz
94ee821803 fix: skip isthmus root validation if we dont have the parent state (#15796) 2025-04-17 18:22:43 +00:00
kevaundray
58c72b708a chore: Make reth-errors crate no_std compatible (#15790)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-17 17:15:01 +00:00
Ayush Dubey
84fa016c60 feat: Introducing reth_engine_rpc_new_payload_v4 to grafana (#15794) 2025-04-17 17:07:22 +00:00
Roman Krasiuk
3dc17777c8 fix: Revert "feat: add precompile cache for execution" (#15791) 2025-04-17 16:33:17 +00:00
Ayush Dubey
4c17f1a886 feat: MockEthProvider generic over NodePrimitives (#15694)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-17 15:03:42 +00:00
kevaundray
308250ef27 chore: enable invalid_blocks tests in EF (#15564) 2025-04-17 14:19:00 +00:00
int88
12e55d0ab1 test: setup once for benchmark_fetch_pending_hashes to avoid excessive losses (#15783) 2025-04-17 11:29:55 +00:00
Ivan
58a20dc972 feat: Add --rollup.sequencer-ws to support WebSocket (#15499)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-17 10:30:12 +00:00
and-cb
b4cb1f4a41 chore: Relax the bounds on DBProvider (#15781) 2025-04-17 09:59:15 +00:00
Matthias Seitz
44a695f7aa chore: bump inspectors 0.19.1 (#15780) 2025-04-17 06:18:13 +00:00
Matthias Seitz
e0e85aa10b chore: bump version 1.3.11 (#15776) 2025-04-16 19:52:33 +00:00
Matthias Seitz
bd9a24aa0d chore: bump op alloy 0.14 (#15779) 2025-04-16 20:50:06 +02:00
Federico Gimenez
ddc101f863 chore: set clippy check for const fn to warn (#15777) 2025-04-16 17:59:36 +00:00
Emilia Hane
3bddd3cc8e fix(discv5): ForkId set to head block (#15769)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-16 17:06:09 +00:00
Matthias Seitz
56015ce0d8 fix: relax body against validation for isthmus (#15773) 2025-04-16 16:31:45 +00:00
cakevm
ba6720d559 chore(transaction-pool): make price_bump fn public (#15772) 2025-04-16 17:36:15 +02:00
Léa Narzis
12c2dba821 feat: add EthSnapStream (#15684) 2025-04-16 11:45:32 +00:00
Emilia Hane
e6278730dd feat(op-isthmus): Add isthmus mainnet timestamps to op hardforks (#15766) 2025-04-16 10:47:11 +00:00
Matthias Seitz
8572989ab5 feat!: replace OpTransactionSigned with alloys (#15733) 2025-04-16 09:55:07 +00:00
Dan Cline
df8acc5349 feat: add precompile cache for execution (#15536)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-04-16 09:30:17 +00:00
int88
b1d1199d11 refactor: simplify announcement filter (#15761) 2025-04-16 11:03:41 +02:00
tate
a11d12755d feat: disable EIP-3607 for eth_createAccessList (#15763) 2025-04-16 08:00:56 +00:00
Matthias Seitz
b36fc954d2 chore: bump version 1.3.10 (#15756) 2025-04-15 20:44:09 +02:00
rrrengineer
4850bd5ebc feat: adding cli --rpc.txfeecap flag (#15654)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-15 18:30:12 +00:00
Matthias Seitz
a21769686c fix: use a lower backoff duration for trusted or static peers (#15740) 2025-04-15 20:10:58 +02:00
SuddenOnset
cdac901b39 fix: activate Prague in custom-evm example (#15741) 2025-04-15 20:10:42 +02:00
Matthias Seitz
0772f9a98f chore: add serde_as support for TransactionSigned (#15755) 2025-04-15 19:05:12 +02:00
Hunter Z
c79b63876e feat: add config for reserved CPU cores Resolves paradigmxyz/reth#15633 (#15710)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-15 12:03:27 +00:00
Matthias Seitz
0c4a4185f0 chore: exempt static peers from removal (#15732) 2025-04-15 13:39:36 +02:00
Matthias Seitz
51cb1046d3 fix(rpc): set code hash in code override (#15738) 2025-04-15 11:15:12 +00:00
Matthias Seitz
ad2ee48a8b fix: to_compact for CompactEnvelope (#15736) 2025-04-15 10:49:30 +00:00
Matthias Seitz
4f58768755 chore: bump revm (#15735) 2025-04-15 12:00:37 +02:00
Matthias Seitz
6f2f78b4e3 fix: make CompactEnvelope equivalent (#15731) 2025-04-15 11:36:55 +02:00
Matthias Seitz
20dcf82afc Revert "feat!: replace OpTransactionSigned with alloys" (#15730) 2025-04-15 10:40:23 +02:00
Tronica
b3ad85a0ab refactor(rpc): eliminate unnecessary cloning in RpcService::call (#15728)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-14 16:21:00 +00:00
Alexey Shekhirin
a415f08bb1 deps: bump libmdbx to 0.12.13 (#15413) 2025-04-14 15:12:38 +00:00
Roman Krasiuk
89b209b920 chore(rpc): warn on unimplemented flashbots rpc methods (#15727) 2025-04-14 15:04:55 +00:00
Matthias Seitz
2bfdef73b9 feat!: replace OpTransactionSigned with alloys (#15634) 2025-04-14 14:59:17 +00:00
Roman Hodulák
1e0b433965 feat(era): Add EraStream that downloads all era files (#15613) 2025-04-14 14:09:10 +00:00
Matthias Seitz
00e5b6e01e chore: bump version 1.3.9 (#15716) 2025-04-14 14:37:18 +02:00
Matthias Seitz
60e117a3a9 chore: rm lifetime (#15723) 2025-04-14 13:36:24 +02:00
0xriazaka.eth
8be89080b0 Add metric for supervisor RPC latency (#15570)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2025-04-14 10:44:51 +00:00
kevaundray
a3b749676c chore: Replace remaining uses of reth_primitives with reth_primitives_traits (#15704) 2025-04-14 09:40:34 +00:00
Matthias Seitz
fe1af71310 chore: unify proof task concurrency consts (#15715) 2025-04-14 09:36:15 +00:00
Alexey Shekhirin
e792efbb22 fix(engine): update cached bytecodes with bundle state (#15676) 2025-04-14 09:26:14 +00:00
Emilia Hane
69437d5a8d chore(op-consensus): Remove redundant module (#15718) 2025-04-14 09:25:55 +00:00
Matthias Seitz
2d0ad30438 chore: bump op-revm (#15714) 2025-04-14 09:22:27 +00:00
Matthias Seitz
74843dcf12 chore: bump alloy-trie (#15717) 2025-04-14 11:29:50 +02:00
Shane K Moore
0dbd8052d8 chore: periodically resolve trusted nodes dns (#15678)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-14 09:07:23 +00:00
Emilia Hane
52c3e3cc04 fix(op-interop): incorrect parsing of supervisor_checkAccessList error (#15670) 2025-04-14 08:32:19 +00:00
Varun Doshi
70db898fbf feat: use L2 timestamps for mapped L1 (#15683)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-14 08:19:04 +00:00
int88
df6d5dd1dd test: benchmark for fetch pending hashes (#15574) 2025-04-14 07:59:03 +00:00
Matthias Seitz
9f6082982f chore: bump ssz (#15713) 2025-04-14 09:41:17 +02:00
github-actions[bot]
8e4c33e44b chore(deps): weekly cargo update (#15708)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-13 17:38:41 +00:00
Soubhik Singha Mahapatra
c73a40ff2a feat: added getter functions for PeerMetadata (#15709)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-13 17:35:17 +00:00
kevaundray
5a1cdfd75d chore: Remove TODO (#15706) 2025-04-12 16:04:26 +00:00
int88
f0f32b4a18 refactor: better encapsulation of tx_fetcher for easier testing and refactoring (#15688) 2025-04-12 06:39:29 +00:00
Matthias Seitz
54b0d357f9 chore: rm outdated unreachable (#15700) 2025-04-12 07:44:02 +02:00
0xOsiris
4121fce5e7 feat(net): add transaction gossip policy (#15341)
Co-authored-by: Sagar Rana <sagarrana.pvt@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-11 20:03:02 +00:00
0xMushow
7f11a6f148 fix(book): Web3 JsonRPC incorrect keccak example (#15696) 2025-04-11 13:50:19 +00:00
Emilia Hane
5f33c96841 perf(discv5): Relax peer filter, fallback on source socket for enr missing tcp port (#15267) 2025-04-11 12:56:47 +00:00
Matthias Seitz
0ab297a0e9 feat: add bincode compat to ethereum tx envelope (#15686) 2025-04-11 14:42:53 +02:00
Matthias Seitz
1580c690c9 docs: add op-reth to hardfork checklist (#15687) 2025-04-11 14:42:38 +02:00
Roman Krasiuk
e8c4c623b0 chore(trie): make RevealedNode usable externally (#15691) 2025-04-11 11:38:00 +00:00
Matthias Seitz
3ef965c93a fix: op isthmus activation timestamps (#15685) 2025-04-11 10:12:22 +00:00
stevencartavia
c34bdf37f0 feat: add CLI args for concurrency settings (#15657) 2025-04-11 08:19:05 +00:00
kevaundray
33ddc2861b chore!: Populate the headers field in the ExecutionWitness when calling debug_executionWitness (#15608)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-11 07:49:45 +00:00
Yash Atreya
58fe204ff2 chore: alloy 0.14 (#15635)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-11 08:28:57 +02:00
Alexey Shekhirin
2563e93d95 perf(trie): reserve space for new proof nodes ahead of time (#15637) 2025-04-10 17:32:25 +00:00
rotcan
c688c845b3 feat(engine): add bytecodes to invalid block hook witness (#15649)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-04-10 17:03:12 +00:00
Ishika Choudhury
ca5a76f6ac chore: changed import for custom-node(examples) (#15662) 2025-04-10 16:16:42 +00:00
Matthias Seitz
3346f5b7fd chore: double check blob gas in header standalone (#15672) 2025-04-10 16:15:43 +00:00
Alexey Shekhirin
e597c3d8bf ci: add revert to allowed PR titles (#15667) 2025-04-10 14:13:50 +00:00
Matthias Seitz
04c61e2151 Revert "feat(engine): enable prewarming & caching by default (#15630)" (#15666) 2025-04-10 16:13:29 +02:00
Matthias Seitz
3fec4fa5bb chore: bump crossbeam channel (#15665) 2025-04-10 15:58:20 +02:00
Ishika Choudhury
652359220b chore: changed import for manual-p2p (#15664) 2025-04-10 15:36:11 +02:00
Soubhik Singha Mahapatra
d67f4ae603 chore: changed import of polygon-p2p (examples) (#15663) 2025-04-10 12:26:45 +00:00
Federico Gimenez
9a151fab54 chore: remove unused evm_config field in EngineApiTreeHandler (#15660) 2025-04-10 12:07:36 +00:00
Soubhik Singha Mahapatra
aa001ef087 chore: changed import of rpc-db (examples) (#15661) 2025-04-10 12:07:01 +00:00
Steven
3cf0d0d75b feat: add no-local-exemptions settings to MaintainPoolConfig (#15651)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-10 07:44:24 +00:00
Léa Narzis
f217ec5e9f fix(era1): use framed snap encoding/decoding instead of raw one (#15652) 2025-04-10 05:46:40 +00:00
Ishika Choudhury
558737aa2c chore: changed import for txpool-tracing(examples) (#15650) 2025-04-10 05:36:09 +00:00
Ishika Choudhury
00d4ca9faa chore: changed import for precompile-cache(examples) (#15647) 2025-04-10 05:35:38 +00:00
Soubhik Singha Mahapatra
1894ca8aba chore: changed imports for node-custom-rpc (example) (#15646) 2025-04-10 05:35:06 +00:00
Ishika Choudhury
3c1a063eee chore: changed import for node-event-hooks(example) (#15645) 2025-04-10 05:34:38 +00:00
Soubhik Singha Mahapatra
37d1014cdd chore: changed imports in network-proxy (examples) (#15644) 2025-04-10 05:34:11 +00:00
Ishika Choudhury
5182fe59c1 chore: changed import for network(examples) (#15642) 2025-04-10 05:33:34 +00:00
Soubhik Singha Mahapatra
f16354be88 chore: changed import for custom-payload-builder (examples) (#15641) 2025-04-10 05:29:45 +00:00
Ishika Choudhury
e0a6e05cff chore: changed import for custom-rlpx-subprotocol(examples) (#15639) 2025-04-10 05:28:44 +00:00
Matthias Seitz
d68dd400ae chore: make build eth api async (#15636) 2025-04-10 07:27:54 +02:00
Ishika Choudhury
ab85300ac3 chore: changed import for network-txpool(examples) (#15643) 2025-04-09 15:59:08 +00:00
Alexey Shekhirin
e261a2e205 feat(engine): enable prewarming & caching by default (#15630) 2025-04-09 10:27:05 +00:00
Emilia Hane
73b9294072 chore(lint): Remove redundant lint attributes (#15531) 2025-04-09 10:11:02 +00:00
Matthias Seitz
9239188093 chore: prep alloy TxEnvelope transition (#15628) 2025-04-09 12:09:57 +02:00
Matthias Seitz
c6ba7c6207 chore: add serdebincodecompat to optxenvelope (#15629) 2025-04-09 12:09:44 +02:00
Federico Gimenez
b5de89ba3e test: activate holocene and isthmus in kurtosis-op (#15611) 2025-04-09 08:47:33 +00:00
Matthias Seitz
be5553d71e chore: bump op-alloy (#15626) 2025-04-09 10:58:46 +02:00
Yohan Nelson
add12f9a94 fix!(rpc): wrap call many response in vec (#15622) 2025-04-09 05:19:56 +00:00
Matthias Seitz
491413f3e9 chore: rm bundlestateprovider (#15607) 2025-04-09 07:15:17 +02:00
onbjerg
a5755f72eb fix: use --http.corsdomain for http rpc server (#15620) 2025-04-08 20:16:57 +00:00
Dan Cline
460f8400aa feat: add ability to handle dedicated storage proof result (#15252) 2025-04-08 16:36:00 +00:00
Soubhik Singha Mahapatra
520d7545c1 chore: changed import for custom-inspector (example) (#15610) 2025-04-08 14:30:13 +00:00
Ishika Choudhury
8b52b1e14a chore: changed import for custom-node-components(examples) (#15609) 2025-04-08 14:29:11 +00:00
Matthias Seitz
44ab192899 chore: release 1.3.8 (#15529) 2025-04-08 16:01:44 +02:00
Matthias Seitz
0063aa20b7 fix: pick 1559 fees correctly for dynamic fee (#15605) 2025-04-08 13:20:21 +00:00
Yohan Nelson
dc367ad785 fix: eth_callMany uses vec bundle (#15596)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-08 12:08:55 +00:00
Matthias Seitz
a0c7d1cd77 fix: check for missing prio fee in eth simulate (#15601) 2025-04-08 12:45:30 +02:00
Pana
897223d307 fix: typo (#15578) 2025-04-08 09:50:54 +00:00
Soubhik Singha Mahapatra
aea8b06d39 fix: apply default values for transactions (#15488)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-08 09:33:32 +00:00
Léa Narzis
16027eace8 feat(era): add Era1Writer (#15577) 2025-04-08 07:53:53 +00:00
Roman Hodulák
fad870e350 feat(evm): Accept executable transaction as the input for block builder (#15524) 2025-04-07 20:39:56 +00:00
Vaiz_07
b52ef3c173 feat: add eth cache helper function (#15589) 2025-04-07 15:32:58 +00:00
Tbelleng
6ae48f8d95 fix: 🐛 Fix gas_limit handle in eth_simulate (#15562)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-07 14:51:51 +00:00
Pana
435b8ad982 complete docs of metric crates (#15581) 2025-04-07 14:39:59 +00:00
Dan Cline
4dc1b5c907 perf: spawn prewarming transactions in chunks (#15155)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-04-07 14:00:34 +00:00
Barajeel
abd8981310 fix: latest_state returning last_valid instead of latest received (#15565)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-07 13:18:21 +00:00
kevaundray
8653a471e2 chore: Add pull request title lint (#15357)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-04-07 11:38:25 +00:00
kevaundray
c3471bf7bf chore: fix doc comment on get_storage (#15503) 2025-04-07 11:37:44 +00:00
Léa Narzis
c605eef1c3 feat(era-e2s): add E2StoreWriter (#15560) 2025-04-07 11:37:42 +00:00
Roman Krasiuk
6b8f5c5a6b feat: Prague mainnet timestamp (#15582) 2025-04-07 10:23:31 +00:00
Alexey Shekhirin
7b60a35823 chore: bump lighthouse and do minor fixes in docker compose (#15587) 2025-04-07 10:10:58 +00:00
Dan Cline
5b8e40bce7 chore: set prewarm concurrency to 64 (#15521) 2025-04-07 09:40:32 +00:00
Soubhik Singha Mahapatra
70a105e209 chore:changed import for custom-engine-types (#15573) 2025-04-07 09:28:16 +00:00
Pana
f5510619b3 update tokio version to 1.44.2 to fix sec issue (#15583) 2025-04-07 09:07:20 +00:00
Ishika Choudhury
dfd838cce0 chore:changed import for custom-evm (#15572) 2025-04-07 11:10:27 +02:00
Léa Narzis
888f0247c3 fix(era): some fix for const + more tests (#15576) 2025-04-07 08:39:41 +00:00
Shane K Moore
7b43c5ee90 chore: add status enum for handshake to support status69 decoding (#15543)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-07 08:21:30 +00:00
Matthias Seitz
1e1f0f8e6b chore: update advisories (#15580) 2025-04-07 10:05:42 +02:00
Matthias Seitz
1126ecc8e3 fix: config defaults for eth components (#15552) 2025-04-07 07:33:16 +00:00
DaniPopes
08e4e9b731 chore(benches): remove pprof support (#15575) 2025-04-06 16:41:02 +00:00
jakevin
7c5d2cf4f8 chore: correct typo of set_interop_deadline method in transaction handling (#15563) 2025-04-05 16:48:02 +00:00
Ishika Choudhury
5184d15df2 chore:added transaction-pool and reth-node-core for reth-ethereum and reth-op (#15559)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-05 15:42:10 +00:00
Léa Narzis
fcc40f3a4e feat(era- e2store): add read_next_entry + improve tests (#15556) 2025-04-05 14:35:04 +00:00
Soubhik Singha Mahapatra
f1dda7cf35 chore:added revm re-export for reth-ethereum and reth-op (#15561) 2025-04-05 14:27:41 +00:00
taikoon
ca80ea187a chore: clean unused deps (#15557) 2025-04-05 11:07:16 +00:00
Soubhik Singha Mahapatra
b9ebf83672 chore: changed import for custom-beacon-withdrawals (#15554) 2025-04-05 10:37:32 +00:00
Ishika Choudhury
59525452e4 chore: changed imports for custom-dev-node (#15555) 2025-04-05 10:35:08 +00:00
tonis
3904bdff7a docs: Update installation.md hardware requirements (#15553) 2025-04-05 10:32:48 +00:00
Veer Chaurasia
52b6edb2da Remove redundant EngineNodeTypes trait (#15548) 2025-04-05 10:15:56 +00:00
Ishika Choudhury
1b85179880 chore: changed import for beacon-api-sidecar-fetcher (#15546) 2025-04-05 10:15:16 +00:00
Soubhik Singha Mahapatra
b8b75da068 Simplify examples imports for beacon-api-sse (#15549) 2025-04-05 06:39:33 +00:00
Ayush Dubey
19f8070565 Test Cases cut down on reth_ethereum_primitives::Transaction usage (#15397)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-04 19:55:24 +00:00
Matthias Seitz
5ff46e8e1a chore: generalize inmemorysize impl (#15539) 2025-04-04 21:28:36 +02:00
Matthias Seitz
b7ce701a4c chore: silence warnings (#15538) 2025-04-04 19:14:34 +00:00
Léa Narzis
344e2e4392 feat: introduce reth-era crate with era1 file types (#15396)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-04 18:49:12 +00:00
jakevin
415ff4a570 refactor(tests): consolidate state tests into a single test function (#15491) 2025-04-04 18:18:08 +00:00
Dan Cline
bc80e56413 chore: add test for CachedState and ProviderCaches storage values (#15487) 2025-04-04 18:17:18 +00:00
Federico Gimenez
0a32035cd7 feat(examples): add ConfigureEvm impl for custom-node example (#15520) 2025-04-04 18:16:44 +00:00
Taylor Dettling
3810c58d8d Add PubSub subscribe to custom node rpc example (#15522)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-04 16:58:35 +00:00
Matthias Seitz
3a26a28147 fix: blob params parsing and configuring (#15535) 2025-04-04 16:29:42 +00:00
Soubhik Singha Mahapatra
0c4928b9d4 Added txpool cli args for local txs backup (#15533) 2025-04-04 16:24:10 +00:00
Emilia Hane
e5c6de595e chore(lint): Replace allow with expect for dead_code and rm unfullfilled lints (#15530) 2025-04-04 13:32:08 +00:00
Matthias Seitz
1a9562f89b chore: return invalid reward percentiles as invalid params (#15532) 2025-04-04 11:41:41 +00:00
Matthias Seitz
a07064da99 fix: add fcu v1 for op engine (#15526)
Co-authored-by: peerheros <3077263001@qq.com>
2025-04-04 11:29:01 +02:00
Jennifer
6c6fe03712 Trigger kurtosis workflows on tag (#15511) 2025-04-04 08:11:52 +00:00
Léa Narzis
f82b209031 refactor(net): add EthStreamInner for EthStream (#15519)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-04 07:42:13 +00:00
0xOsiris
1ba40f3d46 fix: send_rpc_call deserialization (#15523)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-04 07:11:19 +00:00
Matthias Seitz
da261094af fix: remove global instance (#15504) 2025-04-03 17:11:42 +00:00
0xsenty
b8b65b3243 fix: incorrect derive_more import (#15514)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-03 16:35:11 +00:00
Matthias Seitz
76f6ea23b3 chore: add conversion helper for eth69 (#15512) 2025-04-03 16:25:14 +00:00
Steven
6eb25e4bce feat: handle unknown eth message (#15450)
Co-authored-by: Stefan <6984754+stfnberat@users.noreply.github.com>
2025-04-03 15:10:06 +00:00
Ishika Choudhury
604cc09230 ensured trace_filter has a valid block range (#15473)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-03 13:47:38 +00:00
Alexey Shekhirin
48e0ec67d0 perf(trie): cache last hashed entry seek in trie node iter (#15471) 2025-04-03 11:54:04 +00:00
Alexey Shekhirin
ef18f950d3 refactor(trie): introduce SubNodePosition enum (#15420) 2025-04-03 08:33:40 +00:00
Alexey Shekhirin
a755f6bc8f feat(engine): parallel state root fallback metric (#15352) 2025-04-03 08:26:03 +00:00
Matthias Seitz
ed7da87da4 chore: release 1.3.7 (#15485) 2025-04-03 02:35:54 +02:00
Dan Cline
3521c7ae99 fix: set None storage lookup to NotCached (#15484) 2025-04-03 02:35:34 +02:00
Matthias Seitz
60ff71b1ff chore: release 1.3.6 (#15483) 2025-04-03 00:52:16 +02:00
Matthias Seitz
f60f55858c fix: actually override simulated (#15482) 2025-04-02 22:34:03 +00:00
int88
5658b7849f benchmark for blob tx pool truncate (#15461) 2025-04-02 21:55:16 +00:00
kevaundray
db269f3e53 docs: Document double option for get_storage method using enum (#15443) 2025-04-02 20:31:00 +00:00
Matthias Seitz
6b06fdfe1d chore: rm unused warning (#15474) 2025-04-02 19:07:46 +00:00
Federico Gimenez
60867680fd feat(examples): add custom NetworkPrimitives and Networkbuilder to custom-node example (#15468) 2025-04-02 18:37:55 +00:00
jakevin
98692cf1f1 refactor: simplify hardfork determination (#15451) 2025-04-02 18:30:18 +00:00
Matthias Seitz
b6146e32b1 chore: bump version 1.3.5 (#15469) 2025-04-02 18:08:26 +00:00
Matthias Seitz
add505dc39 feat: support simulation in blockbuilder (#15470) 2025-04-02 17:48:05 +00:00
Alexey Shekhirin
500405aa0a feat(trie): node iter metrics (#15438) 2025-04-02 17:33:26 +00:00
Emilia Hane
4109b26f28 fix(op-interop): don't down score peers for invalid interop txns (#15467) 2025-04-02 16:46:38 +00:00
Roman Hodulák
93b9044729 feat(tx): Implement FromTxWithEncoded<TransactionSigned> for TxEnv (#15466) 2025-04-02 16:25:34 +00:00
clabby
caf3a21d2f chore(op-txpool): Update ExecutingDescriptor serialization (#15465) 2025-04-02 15:19:56 +00:00
Federico Gimenez
d3ec6abd08 feat(examples): route engine messages from custom engine api in custom-node example (#15458) 2025-04-02 14:09:58 +00:00
Alexey Shekhirin
7305c9ee0d feat(tree): set multiproof task concurrency independent of Rayon thread pool (#15456)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-02 13:31:01 +00:00
Matthias Seitz
cdbb07c8e1 fix: op-reth chain arg (#15457) 2025-04-02 12:47:54 +00:00
santamasa
f11e2eafad chore: fix PoS total difficulty calculation (#15452)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-04-02 10:36:21 +00:00
Federico Gimenez
6f8082af34 feat(examples): add custom engine API to custom-node example (#15436) 2025-04-02 09:38:53 +00:00
Steven
69df27e9b5 feat: add Client trait for snap sync downloader client (#15449) 2025-04-02 09:33:03 +00:00
Dan Cline
40015a821b perf(trie): reduce hashed seeks in TrieNodeIter (#15336)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-04-02 09:04:53 +00:00
Dan Cline
ca862ab985 chore: add more logs to init-state, improve errors (#15446) 2025-04-01 20:55:44 +00:00
Dan Cline
e76e8bf027 chore: removed outdated comment in init-state (#15445) 2025-04-01 20:48:36 +00:00
Matthias Seitz
0c9dd9a27d fix: always set empty request hash after isthmus (#15444) 2025-04-01 20:46:18 +00:00
Odinson
831ad19da8 Removed reth-ethereum-cli from dependencies to dev-dependencies and made necessary changes (#15439) 2025-04-01 19:41:25 +00:00
Dan Cline
83fc1069c9 feat(trie): add metric for time since updates finished (#15442) 2025-04-01 18:48:36 +00:00
VINEET PANT
40bc94decd refactor(optimism/rpc): Use alloy RpcClient in SequencerClient (#15346) 2025-04-01 13:36:06 +00:00
Federico Gimenez
be04b45b20 chore: remove unused deps (#15429) 2025-04-01 09:20:13 +00:00
Emilia Hane
0a56694308 perf(discv5): enhance peer lookup defaults (#15421) 2025-03-31 22:26:17 +00:00
GarmashAlex
33198a8cdf Add detailed documentation for admin_peerEvents and admin_peerEvents_… (#15390) 2025-03-31 19:40:54 +00:00
Matthias Seitz
001249dec7 chore: add alias for ws.origins (#15403) 2025-03-31 19:24:08 +00:00
Matthias Seitz
942200bff4 fix: mark chain as global and update usage (#15409) 2025-03-31 19:13:35 +00:00
Alexey Shekhirin
c4dad3926b fix(engine): fetch account proof on wiped storage (#15415) 2025-03-31 19:09:23 +00:00
Federico Gimenez
6d3f3b510d chore: remove unused deps (#15416) 2025-03-31 19:00:07 +00:00
Alexey Shekhirin
94ff338efd docs(trie): trie node iterat walker check flag (#15418) 2025-03-31 18:37:42 +00:00
kustrun
5ddb704bf5 feat(op-evm-config): Clear technical debt from #15307. (#15417) 2025-03-31 17:35:44 +00:00
Matthias Seitz
1d1bfac59b chore: rm incorrect debug_assert (#15402) 2025-03-31 15:13:16 +00:00
Federico Gimenez
d3e6db7c94 feat: impl SerdeBincodeCompat for ExtendedOpTxEnvelope (#15414) 2025-03-31 15:03:09 +00:00
Femi Bankole
64d3d30aa2 Extend eth state cache with get receipts maybe block (#15391) 2025-03-31 14:14:51 +00:00
Jennifer
3dd681bbb2 Update expected hive failures (#15405) 2025-03-31 11:51:48 +00:00
Emilia Hane
bbc7dd913d fix(op-interop): cross chain tx SafetyLevel utils (#15354) 2025-03-31 11:26:47 +00:00
Ishika Choudhury
9f75602010 more interop metrics (#15388)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-31 10:32:38 +00:00
Ayush Dubey
eebda8e103 Add extended op tx envelope transaction type #15328 (#15334)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-03-31 10:01:51 +00:00
int88
948832d06f integration test: txpool listener could handle queued and invalid event (#15399) 2025-03-31 09:43:55 +00:00
taikoon
409e1db7f2 fix(doc): NodeTypesWithEngine to NodeTypes (#15393)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-03-30 08:43:55 +00:00
nk_ysg
86cc7a8070 replace interop with an AtomicU64 (#15367)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-29 13:55:37 +00:00
Vaiz_07
53ec8fdc76 added chain condition and imports (#15386) 2025-03-29 13:27:28 +00:00
Matthias Seitz
46b208ea9d chore: phase out reth-primitives from reth-provider tests (#15384) 2025-03-29 14:30:48 +01:00
Steven
5514dfef32 feat: make instance argument optional (#14389)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-29 08:15:34 +00:00
Shane K Moore
e523bc2525 chore: add blob validation histogram metric to tsx pool validation (#15369) 2025-03-29 08:05:23 +00:00
Steven
5021611997 chore: move cross validation into SupervisorClient (#15374) 2025-03-29 07:01:58 +00:00
Vaiz_07
e75b207a4f fn signature removed from signedtransaction (#15331)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
Co-authored-by: Ayush Dubey <61616662+Ayushdubey86@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Steven <112043913+stevencartavia@users.noreply.github.com>
Co-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com>
2025-03-29 06:43:46 +00:00
Dan Cline
f7c264d2e5 chore: make state root fallback WARN (#15343) 2025-03-29 06:35:07 +00:00
kevaundray
b400426f78 chore: Iterate each test case in ef-tests in parallel (#15368) 2025-03-29 06:34:23 +00:00
makcandrov
9be2d58758 export LowestAvailableBlocks in reth_provider::providers (#15366) 2025-03-29 06:00:20 +00:00
Matthias Seitz
ebeb8b71cf chore: silence warning in optimized build (#15378) 2025-03-28 21:15:34 +00:00
David Kulman
509b859c7a Removes pin-project from ConnectionListener (#15376) 2025-03-28 20:56:58 +00:00
Matthias Seitz
2c6380c7e0 fix: rm unsound transmute (#15373) 2025-03-28 20:31:40 +00:00
Matthias Seitz
0e2a4c4a87 ci: make nightly dispatch (#15375) 2025-03-28 21:27:50 +01:00
Federico Gimenez
e2e297d77c feat: remove NodeTypesWithEngine trait layer (#15351) 2025-03-28 18:26:55 +00:00
Soubhik Singha Mahapatra
9718e9444a Simplified input truncating (#15364) 2025-03-28 17:25:53 +00:00
clabby
faedf98db3 chore(optimism): Remove interop L1 info transaction variant (#15361) 2025-03-28 16:17:43 +00:00
Matthias Seitz
57dda5e958 chore: bump deps (#15359) 2025-03-28 15:56:42 +00:00
Dan Cline
6260fe94b7 fix(grafana): fix trie input calculation duration panel (#15277) 2025-03-28 13:36:39 +00:00
Alexey Shekhirin
3ea3b68f60 deps: bump alloy-chains (#15356) 2025-03-28 13:28:25 +00:00
iamslown
57549cb9b0 chore: fixed dead link lighthouse-book (#15355) 2025-03-28 13:15:12 +00:00
Sumit
0436a2e867 Feat: add validate_one_with_state implemenation for op and eth validator (#15342) 2025-03-28 12:55:46 +00:00
Solar Mithril
d1ed669a17 POC of interop filtering during block building (#15348)
Co-authored-by: Shane K Moore <41407272+shane-moore@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Rupesh Prajapati <77611959+DioBr4nd0@users.noreply.github.com>
2025-03-28 12:35:55 +00:00
Rupesh Prajapati
ceaf968705 Fixes #15321 feat(txpool): properly parse supervisor RPC errors into interop variants (#15323)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-28 10:15:40 +00:00
Solar Mithril
81254a2cf5 feat(txpool): monitor pending interop txs (#15313)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-28 09:45:03 +00:00
Matthias Seitz
1105535eb4 chore: add warning unused deps (#15340) 2025-03-28 09:27:56 +00:00
Shane K Moore
56df196736 chore: replace reth-provider with reth-storage-api (#15344) 2025-03-28 09:27:19 +00:00
Léa Narzis
dd76b42916 feat(op-rpc): finalize signal_superchain_v1 's endpoint (#15338)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-27 21:14:06 +00:00
Steven
30c457843c chore: change default for op cli args (#15333) 2025-03-27 16:41:18 +00:00
Ayush Dubey
9b74831def Extend exex example with optimism node (#15308)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-27 14:05:45 +00:00
Federico Gimenez
db7e740fa1 feat: add custom transaction type to custom-node example (#15296) 2025-03-27 12:04:10 +00:00
int88
963d8b95a4 integration test: txpool listener could get replaced event (#15318) 2025-03-27 11:45:30 +00:00
Solar Mithril
9bcd37f2a0 Implement txpool interop support for optimism (#15105)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-27 10:40:50 +00:00
Deepak Chaudhary
0df7e0bc2a Refactor Optimism Transaction Validator: Extract OP-Specific Checks & Enable Batch Processing (#14929)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 22:45:16 +00:00
Håvard Anda Estensen
f96f426449 chore: complete optimism mainnet forkid tests (#8114)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 22:15:38 +00:00
Sagar Rana
157b77bb5c Function for retrieving Methods for TransportModules by name (#15061)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 21:11:47 +00:00
Vaiz_07
25216da48e feat: add blob Hit count panel (#15300) 2025-03-26 21:04:18 +00:00
Shane K Moore
90d50903bc chore: replace reth-provider with reth-storage-api in optimism-rpc-crate (#15310) 2025-03-26 20:39:35 +00:00
kustrun
ea001235c2 feat(full-provider): Add Debug trait to FullProvider. (#15307) 2025-03-26 19:21:24 +00:00
Soubhik Singha Mahapatra
c13d025897 Made --rpc.gascap support "max" (#15272) 2025-03-26 17:22:06 +00:00
nk_ysg
bc9b90ce63 chore: fix typos (#15303) 2025-03-26 15:43:35 +00:00
nk_ysg
e6156e4672 chore(storage_api): use map_or_else (#15302) 2025-03-26 15:38:58 +00:00
Olexandr88
4030adbe49 docs: added a link to the bench workflow (#15196) 2025-03-26 14:26:49 +00:00
Frag
d41e38f315 chore: refactor boot_nodes usage to eliminate redundancy (#15258)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 14:25:50 +00:00
Shane K Moore
b0d55f665c chore: add SignedTransaction trait for OpTxEnvelope (#15250)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 14:12:05 +00:00
kustrun
4d7806c752 feat(node-type): Make NodeType & impls Clone. (#14997) 2025-03-26 14:02:44 +00:00
nk_ysg
e36d0d65f9 chore: rm unused file (#15293) 2025-03-26 12:39:39 +00:00
Solar Mithril
261eaf0525 Add MaybeInterop trait to the pooled transaction (#15256)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 11:04:01 +00:00
Veer Chaurasia
2471c3e74b Remove support for loading custom trusted setup (#15290) 2025-03-26 10:37:41 +00:00
Léa Narzis
28fea042c1 feat(reth-optimism-rpc): init endpoint engine_signalSuperchainV1 (#15249)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 10:35:54 +00:00
int88
abd4470971 add remove logic in integration test of txpool listener (#15285) 2025-03-26 08:55:05 +00:00
Varun Doshi
790b49e00a feat: add opstack specific display_hardforks implementation (#15233)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-26 08:50:25 +00:00
Matthias Seitz
0a6b546105 ci: bump ubuntu for windows (#15280) 2025-03-26 07:37:34 +00:00
Matthias Seitz
fb5a6e755d chore: include err in error return (#15279) 2025-03-25 22:56:28 +01:00
Jennifer
29104ecea6 Cleanup dependencies before running new nighly build (#15276) 2025-03-25 19:56:47 +00:00
Ishika Choudhury
0c27c3d9c8 added generate next payload (#15268) 2025-03-25 17:43:57 +00:00
Alexey Shekhirin
ef5ee49fe2 ci: exit early if any of the Hive images fail to save (#15273) 2025-03-25 17:21:16 +00:00
danceratopz
ec74401a1b chore(ci): bump eest release and pin eest simulator versions (#15274) 2025-03-25 17:11:04 +00:00
jakevin
7ab39dce3f refactor: use MAX_CODE_BYTE_SIZE and MAX_INIT_CODE_BYTE_SIZE in revm (#15269) 2025-03-25 15:34:55 +00:00
Sumit
79cd086a53 Fix: check canonical head first (#15101)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-25 13:06:56 +00:00
Toki
06453c9553 Generalize SignedTransaction for EthereumTxEnvelope (#15247) 2025-03-25 10:50:58 +00:00
futreall
6772939bc9 Polishing up any minor spelling errors (#15223) 2025-03-25 10:48:44 +00:00
Federico Gimenez
985a926bee feat: relax NodeTypesWithEngine bounds on EngineTypes to PayloadTypes (#15257) 2025-03-25 10:06:22 +00:00
Alexey Shekhirin
c0c29862bc test(trie): more complex trie node iter test (#15244) 2025-03-24 21:32:11 +00:00
Soubhik Singha Mahapatra
d456af044e Created GeneratePayloadAttributes e2e Action (#15234)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-03-24 15:51:19 +00:00
Ishika Choudhury
914fc51f23 remove reth-primitives dep from reth-provider (#15203)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-24 13:53:49 +00:00
Alexey Shekhirin
5a7cd15e94 test(trie): fix cursor mocks (#15242) 2025-03-24 13:46:55 +00:00
Roman Hodulák
0200ad6ee0 feat(storage): Implement Compact for OpTxEnvelope from op_alloy using blanket impl (#15230) 2025-03-24 13:05:16 +00:00
Federico Gimenez
c3b7c1e442 chore: relax bounds from EngineTypes to PayloadTypes (#15239) 2025-03-24 11:47:44 +00:00
int88
15d12234da integration test for blob sidecar listener (#15210) 2025-03-24 11:41:53 +00:00
Matthias Seitz
ee4270a0fb feat: add other constructor for err (#15236) 2025-03-24 10:55:36 +00:00
Federico Gimenez
d6031a2b22 test(op): add Op e2e testsuite example (#15039) 2025-03-24 09:26:59 +00:00
Ishika Choudhury
90513dfe35 replaced TransactionSigned::new (#15222)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-23 15:40:11 +00:00
github-actions[bot]
0f348898c2 chore(deps): weekly cargo update (#15231)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-23 15:35:09 +00:00
nk_ysg
20d1d6ac58 test: remove redundant clone (#15232) 2025-03-23 15:22:36 +00:00
Toki
fafa63c319 Remove default serde feature from reth-network-api (#15226) 2025-03-23 15:13:02 +00:00
nk_ysg
95d5b3ad57 reth-node-types: Add derive(Default) avoid manual implementations (#15228) 2025-03-23 15:12:32 +00:00
0xMushow
8492768442 Allow blob_cache_size to be configured via CLI (#15213)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-22 16:28:34 +00:00
Soubhik Singha Mahapatra
c0e1788d0e added engine_getBlobsV2 endpoint (#15217) 2025-03-22 15:19:10 +00:00
nk_ysg
64f2e01f20 chore: remove usused file (#15215)
Co-authored-by: nkysg <nkysggsy@gmail.com>
2025-03-22 12:02:07 +00:00
Veer Chaurasia
d271da6127 Remove ethereum-fork-dependency (#15216) 2025-03-22 12:01:35 +00:00
0xMushow
3a99c75143 Derive blobstore cache size from configured blobtargets (#15189)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-22 08:59:32 +00:00
Ishika Choudhury
f4f205f80c changed possible #[allow()] -> #[expect()] (#15168)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-22 08:52:17 +00:00
Ishika Choudhury
35a5d050ed feat: feature gate serde in ethereum-primitives (#15041)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-22 07:35:25 +00:00
Roman Hodulák
88f8be48b7 feat(storage): Implement Compact for EthereumTxEnvelope from alloy (#15122) 2025-03-22 07:30:54 +00:00
Matthias Seitz
a34f45641a chore: make clippy happy (#15208) 2025-03-22 08:23:06 +01:00
Matthias Seitz
0eb893e0ed chore: change default for await_payload_on_missing (#15178) 2025-03-22 07:59:18 +01:00
Dan Cline
fc1bb84195 feat: add dedicated storage proof method to ParallelProof (#15183) 2025-03-21 22:14:13 +00:00
Jennifer
da8f13715a Push nightly image with profiling profile (#15206)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-03-21 21:46:59 +00:00
Matthias Seitz
90c514ca81 chore: release 1.3.4 (#15205) 2025-03-21 20:23:24 +01:00
Matthias Seitz
e3a67762be chore: bump revm alpha7 (#15202) 2025-03-21 20:08:43 +01:00
Alexey Shekhirin
20a6a85148 refactor(trie): initialize sparse trie with the provider (#15199) 2025-03-21 15:36:21 +00:00
Matthias Seitz
664250946f chore: remove serde default (#15186) 2025-03-21 12:16:02 +00:00
Alexey Shekhirin
59ed4c0250 test(trie): fix the trie node iterator test and use hash builder for correctness (#15195) 2025-03-21 12:11:49 +00:00
Matthias Seitz
65b7b33793 chore: remove serde from reth-provider (#15194) 2025-03-21 11:29:29 +00:00
Olexandr88
3d0705621f docs: edited by badge lint (#15072)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-21 11:27:52 +00:00
Toki
b7d834d1c0 Use of payload type instead of EngineTypes (#15187) 2025-03-21 11:07:54 +00:00
Matthias Seitz
c88e2b6f1c chore: bump version 1.3.3 (#15193) 2025-03-21 09:39:30 +00:00
Matthias Seitz
ef5b9590b8 chore: remove serde default (#15188) 2025-03-21 09:34:28 +00:00
Matthias Seitz
5b06daa26b chore: remove reth-provider dep (#15191) 2025-03-21 03:04:59 +00:00
Matthias Seitz
3ca590d606 chore: remove reth-provider dep (#15184) 2025-03-20 21:22:03 +00:00
Alexey Shekhirin
53a9c234a8 test(trie): trie node iter (#15176) 2025-03-20 18:15:18 +00:00
Soubhik Singha Mahapatra
b0d9a6b14b Created ProduceBlocks (#15179) 2025-03-20 16:29:32 +00:00
Federico Gimenez
8a36cbb3ab chore(ci): update hive eest limits (#15172) 2025-03-20 15:47:50 +00:00
Matthias Seitz
a1c6182056 chore: bump alloy-evm alpha2 (#15177) 2025-03-20 14:25:43 +00:00
Femi Bankole
032d5de7da feat: make MissingPayloadBehaviour configurable in EthereumPayloadBuilder (#15161) 2025-03-20 13:55:55 +00:00
Luca Provini
87111a6dd7 Fix: Enable BSC Pascal Hardfork for fixing bsc handshake (#15175) 2025-03-20 13:55:15 +00:00
Alexey Shekhirin
5a6d957234 test(trie): mock hashed cursor factory (#15174) 2025-03-20 13:32:27 +00:00
Alexey Shekhirin
8df04421e8 test(trie): mock trie cursor factory (#15173) 2025-03-20 13:21:26 +00:00
Pana
c9675fdf1b move tx pool events and listener code into its own file (#15162) 2025-03-20 12:26:39 +00:00
Federico Gimenez
10048e0f4d chore(op): remove unused DepositTransaction impl (#15169) 2025-03-20 12:20:51 +00:00
Alexey Shekhirin
393c498527 perf(engine): use proof task as blinded node provider for sparse trie (#15152) 2025-03-20 11:05:25 +00:00
Matthias Seitz
feb38c35f3 feat: add inverse conversion for rpc proof types (#15158) 2025-03-20 10:12:30 +00:00
Sumit
22f5fd316e feat: add new NewBlockEvent enum for different types of block announcement events (#15133) 2025-03-19 22:23:52 +00:00
VINEET PANT
6145005c0c refactor: Update BlockImport type to use BlockImportEvent to support announcements (#15153) 2025-03-19 18:17:19 +00:00
Ishika Choudhury
9f6fec213c feature gate serde in config (#15071)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-19 17:37:42 +00:00
Varun Doshi
d66e899526 feat: use configured max_new_pending_txs_notifications channel for channel size (#15132)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-19 17:19:04 +00:00
Dan Cline
ffc4cceb07 chore(trie): make rlp_node take external rlp_buf (#15137) 2025-03-19 13:52:41 +00:00
Dan Cline
00d2163350 chore(trie): refactor each trie reveal into separate fn (#15143) 2025-03-19 13:52:02 +00:00
Yohann Kazoula
0a702ac486 Exempt auth server from query limits (#15074) 2025-03-19 13:45:26 +00:00
Ishika Choudhury
18056cf9a4 converted EngineTypes to PayloadTypes (#15148) 2025-03-19 13:05:34 +00:00
rakita
01e5492134 chore: simplify revm imports (#15090) 2025-03-19 13:05:09 +00:00
Pelle
9cb7177dfc Added custom headers to NodePrimitives (#13995)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-03-19 11:11:55 +00:00
Steven
0b9ffe8c1e chore: Move block_to_payload to PayloadTypes trait (#15138) 2025-03-19 09:38:01 +00:00
Dan Cline
88a4d1b3fa chore: turn multiproof from state into pure fn (#15139) 2025-03-19 08:05:09 +00:00
Dan Cline
22ff50aa45 chore(trie): rename from_provider_and_root to from_root_node (#15141) 2025-03-19 08:05:03 +00:00
Dan Cline
bbbc1c1434 chore: fix hickory_resolver breakage (#15134) 2025-03-18 22:50:48 +00:00
Dan Cline
ebbb25da56 feat: add hoodi genesis (#15118) 2025-03-18 20:15:44 +00:00
Alexey Shekhirin
876ad31928 feat(rpc): accept requests hash in engine_newPayloadV4 (#15123) 2025-03-18 19:34:29 +00:00
Alexey Shekhirin
d61f64e288 feat(reth-bench): support engine_newPayloadV4 (#15127) 2025-03-18 19:14:58 +00:00
Matthias Seitz
2a81add757 chore: bump alloy 0.12.6 (#15130) 2025-03-18 20:16:32 +01:00
Dan Cline
2942fe8f5a chore: add evm_for_ctx in prewarming ctx (#15121) 2025-03-18 18:10:13 +00:00
Alexey Shekhirin
c99a963d1c refactor(trie): pass blinded provider factory to sparse trie methods (#15120) 2025-03-18 16:54:17 +00:00
Soubhik Singha Mahapatra
79b19847e3 Created PickNextBlockProducer e2e Action (#15119) 2025-03-18 15:41:15 +00:00
Odinson
7c70df193b refactor(trie): invert provider access in sparse trie (#14662)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-03-18 15:38:46 +00:00
Alexey Shekhirin
d119808124 chore(trie): do not take self by mutable ref for blinded provider (#15116) 2025-03-18 14:01:35 +00:00
Federico Magnani
03c5abba88 Re-exports serde bincode compat (#15112)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-18 11:11:40 +00:00
0xMushow
3eb05a4adf Refactor generic type to use PayloadTypes (#15113) 2025-03-18 11:00:11 +00:00
Ishika Choudhury
214a5ac270 ExecutionData moved to PayloadTypes (#15060)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-18 09:57:33 +00:00
makcandrov
ccf27eaa35 fix windows msvc build (#15082) 2025-03-18 09:48:25 +00:00
Dan Cline
920796387d chore: remove layer of blocking task calls (#15102) 2025-03-18 09:20:43 +00:00
Jennifer
5cfa9c7df9 Build and push images in parallel (#15042) 2025-03-18 08:53:41 +00:00
Emilia Hane
772418f048 feat(op-interop): Uncomment interop activation checks (#14980)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-17 22:39:42 +00:00
Luca Provini
3742a045d3 Bsc block import (#14784)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-17 22:05:07 +00:00
Steven
8e02f5f893 chore: elide lifetime in PayloadOrAtt impl (#15095) 2025-03-17 23:18:34 +01:00
Litvintech
95bf853eae chore: fix dead link in example/README.md (#15065) 2025-03-17 23:13:03 +01:00
Alexey Shekhirin
59ef9d9309 perf(tree): do not wait for the sparse trie to drop (#15092)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-17 21:56:24 +00:00
Dan Cline
9cdfcf57b9 feat: use fixed number of db transactions for storage proofs (#14860) 2025-03-17 21:01:11 +00:00
Dan Cline
32cd12bc01 chore: make execution and state root logs debug (#15077) 2025-03-17 21:58:29 +01:00
kien-rise
ce76bb46d9 fix: bring back the missing trace! logs (rpc::engine) (#15096) 2025-03-17 21:57:44 +01:00
Matthias Seitz
802a1c7bd6 chore: release 1.3.2 (#15097) 2025-03-17 20:33:31 +01:00
Dan Cline
b761dac93f feat: add hoodi bootnodes (#15085) 2025-03-17 20:33:15 +01:00
rakita
e334f7ad3e bump: revm v20.0.0-alpha.6 (#15087)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-17 19:57:23 +01:00
Dan Cline
e5bf126921 fix: use branch for jsonrpsee (#15094) 2025-03-17 19:38:18 +01:00
int88
ed9be76244 respect gas limit for test_best_transactions_prioritized_senders() (#15076) 2025-03-17 13:58:13 +01:00
Matthias Seitz
286a88dee7 chore: rm reth-primitives from trie (#15070) 2025-03-15 19:04:16 +00:00
Dan Cline
cd852879b4 feat: add wait_time optional argument to reth-bench (#15045) 2025-03-15 19:04:08 +00:00
Matthias Seitz
f55d8405cb chore: rm reth-primitives from node crates (#15069) 2025-03-15 17:34:24 +01:00
Matthias Seitz
04f5a2aafb chore: rm reth-primitives from exex crates (#15066) 2025-03-15 15:43:17 +01:00
Matthias Seitz
68249bd6e2 chore: rm reth-primitives from network (#15063) 2025-03-15 14:56:45 +01:00
Matthias Seitz
6193729e7d chore: rm reth-primitives from optimism (#15064) 2025-03-15 14:56:33 +01:00
Matthias Seitz
023aad93f8 chore: rm reth-primitives from eth wire (#15062) 2025-03-15 13:52:11 +01:00
Matthias Seitz
24f1972a58 chore: rm reth-provider dep (#15058) 2025-03-15 13:22:57 +01:00
Matthias Seitz
a71fb79717 chore: rm reth-primitives from downloaders (#15059) 2025-03-15 10:40:09 +00:00
Matthias Seitz
73885a762c chore: rm reth-primitives from payload basic (#15056) 2025-03-15 10:39:41 +01:00
Matthias Seitz
3812ad2297 chore: rm reth-primitives from payload crates (#15055) 2025-03-15 10:17:36 +01:00
int88
d3be2e530b test for handling incoming_transactions_hashes (#14960) 2025-03-15 08:13:10 +00:00
leopardracer
16ce387a53 Replace None with RecoveryError in transaction signature recovery (#15050) 2025-03-15 07:57:51 +00:00
Matthias Seitz
d758cdc07e chore: add serde feature to db-models (#15051) 2025-03-15 08:55:54 +01:00
Dan Cline
9ab24977c6 fix: increment in_progress when we spawn a prewarm transaction (#15052) 2025-03-14 22:54:14 +00:00
Alessandro Mazza
2882991173 fix: add debug namespace to auth module in op-reth (#15048) 2025-03-14 20:06:42 +00:00
Arsenii Kulikov
8d43d6d770 fix: handling of on-disk reorgs (#15046) 2025-03-14 20:05:48 +00:00
leopardracer
492425d14d chore: rm redundant error map (#15044) 2025-03-14 18:39:27 +00:00
Dan Cline
b8f7a345d0 feat: add total multiproof task duration grafana (#15034) 2025-03-14 15:20:21 +00:00
Emilia Hane
95dcb36f82 fix(l2-withdrawals-root): conversion of block to OpExecutionPayloadEnvelopeV4 (#15038) 2025-03-14 13:09:53 +00:00
Soubhik Singha Mahapatra
613e4e55f4 chore: invoke invalid block hook for new invalid blocks (#14776)
Co-authored-by: Aideepakchaudhary <aideepakchaudhary@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-14 12:09:40 +00:00
Steven
89e3e5529f feat: make trace_filter block range configurable (#14939)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-14 11:52:19 +00:00
Federico Gimenez
5f55448941 feat(test, e2e): mutable environment for actions (#15021) 2025-03-14 10:38:59 +00:00
Dan Cline
1db3b55c7b chore: rename stateful-precompile to precompile-cache (#15033) 2025-03-14 10:28:16 +00:00
Federico Gimenez
069fb0d24a fix(ci): update limit to match fixture types in hive eest tests (#15037) 2025-03-14 10:10:57 +00:00
Akshay
850ab5c3c4 Fix: Update commet about Eip7702 transaction type (#15024) 2025-03-14 09:55:07 +00:00
Pana
752acea878 remove no need map_err (#15036) 2025-03-14 09:53:38 +00:00
Pana
b21d14c9b6 remove no need map_err (#15035) 2025-03-14 08:54:39 +00:00
Ishika Choudhury
1a1f4dbc81 feat:added peer-kind to SessionInfo (#15022) 2025-03-13 23:56:56 +00:00
Dan Cline
f2d3b7f2b9 feat: track time since first state update in metrics (#15031) 2025-03-13 23:56:05 +00:00
Dan Cline
d00992e811 chore: add profiling-op target to Makefile (#15032) 2025-03-13 23:55:29 +00:00
Steven
62e13dbe6e feat: Impl TryFrom<Recovered<TxEnvelope for MockTransaction (#15005) 2025-03-13 23:55:07 +00:00
Dan Cline
0bfba01341 chore: use Histogram for trie input duration (#15028) 2025-03-13 23:06:21 +00:00
Dan Cline
a3a2bbf3d9 feat: add redundant / total multiproof node graphs (#15027) 2025-03-13 23:02:27 +00:00
Roman Krasiuk
8142c6c327 release: v1.3.1 (#15030) 2025-03-13 21:40:26 +00:00
Roman Krasiuk
c10b0dd7fb feat(ress): max witness window (#15029) 2025-03-13 21:39:38 +00:00
Alexey Shekhirin
eeaa65a668 chore(trie): simplify hashed post state partitioning (#14892) 2025-03-13 16:53:29 +00:00
Pana
217f595c61 optimize txpool component doc comment (#15006) 2025-03-13 16:02:35 +00:00
Léa Narzis
526073cb09 chore(ress-provider): replace reth-primitives (#15020) 2025-03-13 15:57:26 +00:00
Pana
cd55468cb6 check not only 1559 but also 4844 and 7702 for min_priority_fee checking in txpool validation (#15009) 2025-03-13 15:53:49 +00:00
0xNarumi
18b1c7c819 Fix: help merging CachedReads across blocks (#14993) 2025-03-13 15:16:36 +00:00
Ishika Choudhury
8393e52ee6 feat:added EthApiCtx struct for converting build_eth_api args to container type (#15013)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-13 15:15:03 +00:00
Matthias Seitz
4880760bcc fix: add bincode compat for eth receipt (#15017) 2025-03-13 15:11:09 +00:00
taikoon
e017967dd1 chore(cli): fix clap deprecated warnings (#15016) 2025-03-13 13:50:55 +00:00
Dan Cline
757f39f1a8 chore: rm reth-primitives from reth-rpc-eth-types (#15004) 2025-03-13 13:25:39 +00:00
taikoon
2a36f6958e feat: remove deprecated #[clap] attribute (#15015) 2025-03-13 13:14:41 +00:00
Federico Gimenez
8501a7492b chore(test, e2e): remove empty and unused actions (#15008) 2025-03-13 11:51:24 +00:00
Roman Krasiuk
c0e848a29b fix(ress): do not terminate on dropped commands sender (#15007) 2025-03-13 10:01:29 +00:00
Matthias Seitz
37f8a52825 chore: rm reth-primitives from engine crates (#15003) 2025-03-12 23:34:51 +00:00
Dan Cline
3bebb0a19f chore: add metrics on redundant proof nodes (#14969) 2025-03-12 23:07:06 +00:00
Dan Cline
a38c991c36 fix: use clang v10 (#15000) 2025-03-12 22:43:41 +01:00
Dan Cline
972d8b2d45 chore: add workflow for building binaries (#14999) 2025-03-12 20:52:24 +00:00
Matthias Seitz
aef442740c Revert "meta: downgrade ubuntu for windows" (#14998) 2025-03-12 20:40:23 +01:00
Roman Krasiuk
ccc932b378 deps: downgrade cc to 1.2.15 (#14996) 2025-03-12 20:36:07 +01:00
Matthias Seitz
2818a16413 meta: downgrade ubuntu for windows (#14995) 2025-03-12 19:48:57 +01:00
Matthias Seitz
490bd154c1 meta: bump ubuntu for release (#14994) 2025-03-12 19:33:31 +01:00
Matthias Seitz
cd31c32b8d meta: bump rust version for reproducible build (#14991) 2025-03-12 19:16:21 +01:00
Matthias Seitz
93e180cb82 meta: install cross from main for release (#14992) 2025-03-12 19:00:32 +01:00
Sumit
20bbdd70b9 Chore: move tree config from engine-tree to engine-primitives (#14890)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-12 17:34:04 +00:00
Matthias Seitz
f5dddffc7e chore: bump version 1.3.0 (#14986) 2025-03-12 17:07:59 +00:00
Arsenii Kulikov
f3a9ba6f04 chore: blanket implementation for OpPooledTx (#14990)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-12 16:51:07 +00:00
Arsenii Kulikov
e9a9a3f7b2 chore: bump revm (#14988) 2025-03-12 16:20:20 +00:00
Roman Krasiuk
1b5fe70604 docs(ress): fix witness format (#14984) 2025-03-12 17:20:59 +01:00
Roman Krasiuk
080f92e761 chore: add ress code owner (#14985) 2025-03-12 17:20:45 +01:00
Matthias Seitz
3ac87fd09e chore: bump alloy-trie (#14983) 2025-03-12 16:04:37 +01:00
Tim
78a9bc6a68 use cross main in docker-git and docker instead of taiki-e action (#14978) 2025-03-12 11:16:32 +00:00
Ayush Dubey
4cd46f8aee Bump vergen to 9.0 #14904 (#14940)
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
2025-03-12 11:05:18 +00:00
Alexey Shekhirin
1d7028bc35 feat(optimism): enable state root task by default (#14977)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-12 10:56:31 +00:00
Matthias Seitz
523dcfd80a chore: bump alloy 0.12.5 (#14976) 2025-03-12 10:23:24 +00:00
Roman Krasiuk
b968fa04ad feat: integrate ress (#14959) 2025-03-12 09:34:49 +00:00
Arsenii Kulikov
aac3a6eb47 chore: add From<BlockExecutionError> for PayloadBuilderError (#14973) 2025-03-12 09:16:59 +00:00
Matthias Seitz
d3b299754f chore: rm reth-prmitives from ethereum crates (#14972) 2025-03-12 02:26:07 +00:00
Matthias Seitz
0e38286eab chore: rm reth-prmitives from stages (#14970) 2025-03-12 02:25:33 +00:00
Matthias Seitz
88f4336555 chore: rm reth-prmitives from e2eutils (#14971) 2025-03-12 02:25:13 +00:00
Dan Cline
cabe7b4d15 chore: add sparse trie logs with time elapsed (#14967) 2025-03-12 02:23:09 +00:00
Matthias Seitz
a4fa9e6712 chore: remove reth-primitives dep db crates (#14968) 2025-03-11 22:58:55 +00:00
Matthias Seitz
98f51f4b73 chore: rm reth-prmitives from rpc compat (#14965) 2025-03-11 22:57:02 +01:00
Matthias Seitz
a0934626d8 chore: rm reth-prmitives from rpc builder (#14966) 2025-03-11 22:56:41 +01:00
Arsenii Kulikov
73fdf89510 chore: bump revm (#14954) 2025-03-11 20:44:57 +00:00
Jennifer
5fba223bad Update metrics.md (#14813) 2025-03-11 16:36:16 +00:00
Matthias Seitz
e5615d0d9d chore: rm reth-prmitives from rpc (#14957) 2025-03-11 14:49:53 +00:00
Matthias Seitz
707c621cad chore: remove reth-primitives dep from eth api (#14958) 2025-03-11 14:49:43 +00:00
Ján Jakub Naništa
4920ad6dbe chore: Use cargo-chef to build the hivetests docker image (#14884)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2025-03-11 15:52:36 +01:00
Matthias Seitz
cdc6136999 chore: reorder trait impl fns (#14956) 2025-03-11 15:18:47 +01:00
Federico Gimenez
e536fbce95 fix: call validate_execution_requests from validate_version_specific_fields for ethereum engine validator (#14932) 2025-03-11 13:33:51 +01:00
Federico Gimenez
eaa45abb98 test: complete mine block test in e2e testsuite (#14849)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-03-11 10:49:44 +00:00
Matthias Seitz
4ed233730e chore: feature propagation (#14951) 2025-03-11 11:00:18 +01:00
Arsenii Kulikov
aaae30930f chore: bump revm (#14947) 2025-03-11 10:26:07 +01:00
Tim
1740903a70 fix(docker-nightly) use cross main (#14948) 2025-03-11 10:24:13 +01:00
Dan Cline
750326320b chore: remove commented SparseTrieEvent (#14946) 2025-03-11 10:23:51 +01:00
Matthias Seitz
8b391b9812 ci: allow unmaintained humantime (#14950) 2025-03-11 09:56:04 +01:00
Hai | RISE
536b1626a4 chore(SessionManager): send message without &mut self requirement (#14949) 2025-03-11 09:55:04 +01:00
Matthias Seitz
f9d2e10f68 chore: rm rpc conversion types (#14942) 2025-03-10 23:59:58 +00:00
Arsenii Kulikov
e5a801699d chore: bump alloy-chains (#14944) 2025-03-11 00:07:00 +01:00
Dan Cline
f880626c75 chore: use B256 Display for state root test assertion (#14943) 2025-03-10 22:05:42 +00:00
Ferran Borreguero
f91e8cad6d Parse L1 block values in Interop fork (#14869)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-10 21:24:49 +00:00
Dan Cline
0ddb4ede24 chore: enable revm portable by default for op-reth (#14937) 2025-03-10 20:50:19 +00:00
Matthias Seitz
4c6dce3881 chore: simplify rpc tx conversion (#14736) 2025-03-10 18:51:32 +00:00
Luca Provini
bd81f69cce Add other variant on Block import err (#14938) 2025-03-10 18:12:55 +00:00
Arsenii Kulikov
d616096fda chore: simplify NodePrimitives bounds (#14936) 2025-03-10 17:12:33 +00:00
Roman Krasiuk
c0a4c3b214 feat(ress): limit active connections (#14928) 2025-03-10 16:59:44 +00:00
Tim
38fc49fb20 add nightly builds (#14934) 2025-03-10 16:59:40 +00:00
Dan Cline
3c12ec36af chore: enable revm portable feature by default for binaries (#14931) 2025-03-10 16:09:30 +00:00
Matthias Seitz
60a9b2739a fix: exex head ahead of host (#14001) 2025-03-10 16:00:27 +00:00
Steven
730087269b feat: implement compact for alloy ethereum transaction (#14908)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-10 14:35:20 +00:00
Andrea Simeoni
d9a00b8477 feat/emit better payload events (#14923) 2025-03-10 14:20:14 +00:00
Matthias Seitz
4bdbb3ce38 fix: disable not only if requested (#14927) 2025-03-10 13:28:37 +00:00
Federico Gimenez
b7c824580e feat(op, txpool): introduce OpPooledTx trait (#14926) 2025-03-10 12:18:16 +00:00
Matthias Seitz
7c52e6c9d1 fix: clear tree state on unwind (#14866) 2025-03-10 11:25:53 +00:00
Matthias Seitz
4ecbe1919c feat: add bincode support to opreceipt (#14872) 2025-03-10 10:38:29 +00:00
Matthias Seitz
bda2852903 chore: remove reth-primitives dep from commands (#14919) 2025-03-10 11:38:02 +01:00
Matthias Seitz
141b845999 chore: remove reth-primitives dep from chain-state (#14914) 2025-03-10 11:37:49 +01:00
Arsenii Kulikov
91eb292e3e refactor: unify EVM traits (#14920) 2025-03-10 08:52:55 +00:00
VINEET PANT
a1ca2dec4c feat: implement InMemorySize for TxEnvelope and OpTxEnvelope #14913 (#14922) 2025-03-09 11:59:21 +00:00
Matthias Seitz
857b069d1a chore: remove reth-primitives dep from op rpc (#14915) 2025-03-08 22:33:49 +00:00
Arsenii Kulikov
d1f625f6bb chore: bump alloy-evm (#14917) 2025-03-08 21:25:56 +00:00
Matthias Seitz
a870ac4a03 chore: remove reth-primitives dep from consensus-common (#14912) 2025-03-08 10:01:31 +00:00
Matthias Seitz
a9fee96f04 chore: remove reth-primitives dep from evm (#14911) 2025-03-08 09:51:45 +01:00
cakevm
31697e5500 chore: Add 0x prefix and use macro if possible (#14907) 2025-03-08 07:46:04 +00:00
Matthias Seitz
dcddbe477c docs: correct activation note (#14910) 2025-03-08 08:29:34 +01:00
Dan Cline
c6c7870508 chore: add FactoryTx<F> for getting tx associated types (#14909) 2025-03-08 06:19:02 +00:00
Matthias Seitz
c1a255a832 chore: replace withencoded with alloy's (#14905) 2025-03-07 18:46:36 +01:00
Emilia Hane
e05574f9f7 chore(ci): Remove redundant licenses from allow list (#14903)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-07 18:43:26 +01:00
Veer Chaurasia
c3c152f62c replace reth-primitives deps in txpool with reth-primitives-traits (#14306)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-07 14:09:31 +00:00
michprev
fb0cd62ae3 fix: generate-jwt.sh dir with whitespace (#14896) 2025-03-07 13:42:38 +00:00
Soubhik Singha Mahapatra
493011ed0c changed block_with_senders() to recovered_block() (#14894) 2025-03-07 13:36:42 +00:00
Matthias Seitz
771cd3ce58 chore: impl encodable for tx (#14893) 2025-03-07 13:27:08 +00:00
Alexey Shekhirin
4f4db67bc1 feat(trie): update sparse trie storage roots independently (#14874) 2025-03-07 12:00:49 +00:00
Matthias Seitz
7b9470ef35 chore: bump alloy 0.12 (#14891)
Co-authored-by: Julian Meyer <julian.meyer@coinbase.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
2025-03-07 13:03:52 +01:00
Matthias Seitz
3536be5163 chore: update advisories (#14889) 2025-03-07 10:52:31 +01:00
Aurélien
333d1a7c9b feat: don't include operator fee params in receipts when both zero (#14880) 2025-03-06 21:01:12 +00:00
Alexey Shekhirin
a765af9e6b perf(tree): chunk multiproofs (#14800) 2025-03-06 15:45:29 +00:00
Emilia Hane
17d33c04ca chore(deps): Bump op-alloy (#14882) 2025-03-06 15:19:44 +00:00
Soubhik Singha Mahapatra
53e72c8e85 changed sealed_block_with_senders_range() into recovered_block_range() (#14876) 2025-03-06 13:40:17 +00:00
Emilia Hane
30eab29f42 fix(l2-withdrawals-root): isthmus header custom genesis (#14875) 2025-03-06 13:19:43 +00:00
Matthias Seitz
5d237fcc97 feat: add helper for eth body conversion (#14864) 2025-03-06 12:10:24 +00:00
Alexey Shekhirin
5ce2716b77 chore: add 0x prefix to b256! and address! calls (#14871) 2025-03-06 12:05:29 +00:00
Soubhik Singha Mahapatra
e212a253a1 modified get_sealed_block_with_senders() to get_recovered_block_with_senders() (#14865) 2025-03-06 10:13:07 +00:00
cakevm
42c8706f82 chore(primitives-traits): remove duplicate IntoIterator bounds in generics (#14861) 2025-03-06 08:34:17 +00:00
Arsenii Kulikov
b8fa08f452 chore: remove StateRoot variant from BlockValidationError (#14858)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-06 07:23:26 +00:00
Arsenii Kulikov
e5720e6d0d chore: bump alloy-evm and revm (#14855) 2025-03-06 00:37:39 +00:00
Arsenii Kulikov
6e125ce610 refactor: prepare BlockExecutionError for move to alloy-evm (#14857) 2025-03-05 23:04:36 +00:00
Maxim Evtush
5c7ba5c2f6 Added 0x prefix to transaction hash test values (#14854) 2025-03-05 22:20:55 +00:00
Dan Cline
56342a23cb chore: auto_impl TrieCursorFactory for reference (#14856) 2025-03-05 22:05:30 +00:00
Touutae-labs
7491307185 feat: add validate known account to optimism rpc (#14851)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-05 20:02:56 +00:00
Arsenii Kulikov
5576a7de49 feat: integrate alloy-hardforks (#14853) 2025-03-05 19:51:15 +00:00
bsh98
a308032898 feat: configuration of the tokio runtime (#14837) 2025-03-05 19:18:19 +00:00
Ryan Schneider
df18ded17a fix(mev_simBundle): log at trace rather than info level (#14852) 2025-03-05 16:49:57 +00:00
int88
3f277291b5 test: partially tx response for tx fetcher (#14817) 2025-03-05 15:56:32 +00:00
int88
b67bd2d337 invoke on_unsupported_by_peer of ConnectionHandler (#14411)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-05 15:30:40 +00:00
Matthias Seitz
afb071aca1 fix(rpc) enforce limit on reward percentiles (#14847) 2025-03-05 14:44:35 +00:00
Emilia Hane
fa70827ba5 fix(l2-withdrawals-root): Fix genesis hash for custom op chain (#14845) 2025-03-05 13:47:57 +00:00
Matthias Seitz
82b1676b1a chore: bump version 1.2.2 (#14846) 2025-03-05 14:46:35 +01:00
Ryan Schneider
d585730342 fix(eth_callBundle): Fix ethSentToCoinbase calculation (#14816) 2025-03-05 12:40:28 +00:00
Matthias Seitz
cb917c5f88 refactor: use tokio to fetch storage proofs (#14838) 2025-03-05 12:34:32 +00:00
Maxim Evtush
29e5c75670 Added 0x prefix (#14843) 2025-03-05 11:59:40 +00:00
Emilia Hane
fa41b86172 fix(l2-withdrawals-root): Compute op devnet genesis hash from genesis header (#14839) 2025-03-05 11:16:57 +00:00
Matthias Seitz
80e86aa0d6 fix: filter by deposit signature hash (#14841) 2025-03-05 11:17:50 +01:00
Arsenii Kulikov
18b71d9a90 refactor: prepare EthereumHardforks for move to alloy-evm (#14835) 2025-03-05 08:40:42 +00:00
Alexey Shekhirin
3036053191 feat(tree): multiproof manager metrics (#14819) 2025-03-05 08:14:28 +00:00
Akshay
0441f3a8d8 Fix: Increase gas limit in chain config (#14830) 2025-03-04 21:39:13 +00:00
Arsenii Kulikov
8ddd8d6f05 refactor: remove Primitives AT from BlockExecutionStrategy (#14833) 2025-03-04 19:31:49 +00:00
Matthias Seitz
fb24454af6 fix: apply eip2935 for op (#14832) 2025-03-04 19:08:11 +00:00
Arsenii Kulikov
7b2f889dcb fix: correctly configure extraData for Ethereum blocks (#14831) 2025-03-04 18:40:41 +00:00
Arsenii Kulikov
2eab45869f feat: BlockAssember + BlockBuilder (#14808) 2025-03-04 17:20:02 +00:00
Federico Gimenez
6368a303ad chore(hive): run devp2p/eth tests (#14826) 2025-03-04 16:25:40 +00:00
joshieDo
916b241532 fix: filter for more events when watching StaticFileProvider directory (#14827) 2025-03-04 14:37:09 +00:00
Federico Gimenez
e7fd146685 feat: e2e testsuite actions (#14773)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-04 13:06:13 +00:00
Muhammed Kadir Yücel
060f0b1bbb fix: use txpool.lifetime in pool maintainer correctly (#14823) 2025-03-04 13:05:07 +00:00
Matthias Seitz
08a7c52c25 fix: only check for best block number (#14822) 2025-03-04 12:07:45 +00:00
Roman Krasiuk
4b6c7d0aca feat(net): ress subprotocol (#14687) 2025-03-04 09:13:34 +00:00
Dan Cline
6bd8647637 chore: ignore ethereum-tests in local codespell check (#14815) 2025-03-04 10:06:54 +01:00
Matthias Seitz
c0d624ceb8 chore: ignore flaky bsc p2p test (#14818) 2025-03-04 09:59:31 +01:00
Ayush Dubey
6b602f433e Added engine_getBlobV1 metrics in grafana dashboard (#14732)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-03-04 08:48:28 +01:00
Arsenii Kulikov
54485df18a refactor: move isthmus helpers to reth-optimism-consensus (#14811) 2025-03-03 21:03:12 +00:00
Arsenii Kulikov
8ac42a0864 fix: correctly prune HeaderNumbers (#14812) 2025-03-03 20:50:42 +00:00
Arsenii Kulikov
2e347e76e7 fix: no-std for storage-api (#14810) 2025-03-03 20:06:40 +00:00
Alexey Shekhirin
7ba701a7a8 docs: typos (#14806) 2025-03-03 17:13:01 +00:00
Arsenii Kulikov
7413f11aa2 feat: ConfigureEvm::NextBlockEnvCtx (#14801) 2025-03-03 17:11:57 +00:00
Sumit
6a4a1e1f67 Feat: add a discv4 test to verify the bootnode event behaviour (#14787)
Co-authored-by: Sagar Rana <sagarrana.pvt@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-03 16:07:18 +00:00
Alexey Shekhirin
e0518e1f83 fix(tree): use only in-memory blocks when constructing trie input (#14729) 2025-03-03 13:27:22 +00:00
ben
e61483724b feat(reth-ipc): add request_timeout to client builder (#14788)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-03 12:25:09 +00:00
Matthias Seitz
18de3eb408 chore: misc tree (#14797) 2025-03-03 12:03:01 +00:00
Hopium
3c139a480f Fixed grammatical errors, typos, and spelling mistakes (#14796) 2025-03-03 10:24:06 +00:00
Matthias Seitz
b36088da99 chore: allow result too large (#14795) 2025-03-03 10:43:17 +01:00
Jacob Su
c701bba7ee refactor LaunchContext::with function. (#14792) 2025-03-03 09:53:24 +01:00
Matthias Seitz
fa22b2657b chore: use interop timestamp (#14782) 2025-03-02 12:51:09 +01:00
github-actions[bot]
ce6bf9ac69 chore(deps): weekly cargo update (#14785)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-02 10:38:37 +00:00
Udoagwa Franklin
0389c87666 feat: Feature gate traits inside storage-api that still depend on db-api (#14647)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-01 15:45:40 +00:00
Federico Gimenez
889aebea82 chore(ci): unpin op-geth for kurtosis-op (#14781) 2025-03-01 15:04:48 +00:00
Emilia Hane
5f05d52de3 chore(sdk): Use EthApiBuilder instead of FnOnce trait (#14442)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-01 07:06:16 +00:00
Joseph Zhao
64cc11ebbc Add dedicated Optimism Storage impl (#14654)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-03-01 06:31:39 +00:00
Yohann Kazoula
62821fbb1e Add pools evicted transactions metrics (#13946) 2025-03-01 05:39:25 +00:00
Pana
10bad4c869 fix broken link (#14768) 2025-03-01 06:33:24 +01:00
Alexey Shekhirin
ba2797c8be refactor(tree): remove root.rs (#14778) 2025-02-28 16:05:30 +00:00
Luca Provini
bffdda4312 Stateful overridable handshake (#14567)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-28 13:17:41 +00:00
Emilia Hane
6758612495 chore(sdk): clean up op engine caps (#14775) 2025-02-28 13:06:02 +00:00
Emilia Hane
6ce459aec7 chore(payload): Move ExecutionPayloadValidator into reth-ethereum-payload-builder (#14751) 2025-02-28 13:05:14 +00:00
Léa Narzis
732e3debe2 feat: add rlp support for snap message types (#14718) 2025-02-28 12:17:26 +00:00
Emilia Hane
ffabf7ebf7 feat(isthmus): Integrate OpExecutionPayloadValidator (#14207)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: caglarkaya <caglaryucekaya@gmail.com>
2025-02-28 11:21:31 +00:00
Alexey Shekhirin
6abe4407fb test(tree): move state root task test to payload processor (#14772) 2025-02-28 11:46:02 +01:00
Joseph Zhao
a1ca8d46d0 remove Option on is_paris_activated call (#14771) 2025-02-28 09:41:43 +00:00
Harrish Bansal
9f3041c351 User receipt Serdebincodecompat for chain type serde (#14669)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-28 08:45:26 +00:00
Jacob Su
8f803147e0 fix incorrect async func LaunchContextWith::with_resolved_peers; (#14769) 2025-02-28 07:52:14 +00:00
Arsenii Kulikov
dad7d802ff fix: sepolia paris block (#14766) 2025-02-27 22:30:31 +00:00
Matthias Seitz
9ca3bc22d1 chore: use block fn directly (#14765) 2025-02-27 21:27:54 +00:00
Alexey Shekhirin
bdb35ae30b fix(tree): state root task duration (#14763)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-27 20:44:31 +00:00
Ayush Dubey
ca4a6181ab Modified op-reth to always use all OP bootnodes when none are explicitly provided #14603 (#14619)
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-27 18:05:34 +00:00
Arsenii Kulikov
72d21c126a fix: no-std for op crates (#14762) 2025-02-27 17:35:47 +00:00
Roman Krasiuk
feab73a003 feat(trie): utility methods for getting difference for MultiProofTargets (#14761) 2025-02-27 17:08:36 +00:00
Emilia Hane
b61fa52515 chore(deps): Use async closure in bin crates (#14725)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-27 16:47:38 +00:00
DaniPopes
1cb5628f80 chore: fix examples lint not running in ci (#14760) 2025-02-27 16:33:50 +00:00
Alexey Shekhirin
70e31f1ed4 chore(tree): remove old insert_block_inner method (#14754) 2025-02-27 16:17:11 +00:00
Emilia Hane
2e542152f8 chore(deps): Bump msrv (#14724) 2025-02-27 16:09:42 +00:00
Alexey Shekhirin
7d3da7f324 chore(tree): report prewarm metrics (#14759) 2025-02-27 16:03:16 +00:00
Arsenii Kulikov
3ec3eb2412 chore: small NodeBuilder simplification (#14755) 2025-02-27 15:54:16 +00:00
Matthias Seitz
0dab1668fb chore: simplify provider builder setup (#14756) 2025-02-27 15:13:20 +00:00
Arsenii Kulikov
bdc3b1b9e3 feat: DebugNodeLauncher (#14738) 2025-02-27 14:23:12 +00:00
Matthias Seitz
e92a6a3472 refactor: introduce payload processor (#14589)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-02-27 14:12:24 +00:00
Matthias Seitz
08aee60143 feat: add helper conversion from revm Account (#14750) 2025-02-27 13:44:05 +00:00
Alexey Shekhirin
90f3502e40 fix(grafana): use correct datasource in variables (#14752) 2025-02-27 13:43:05 +00:00
Arsenii Kulikov
b2ead06d1d feat: pending block support in BlockExecutionStrategyFactory (#14730) 2025-02-27 13:25:04 +00:00
Roman Krasiuk
cbf31556a9 chore(trie): convert MultiProofTargets into unit struct (#14748) 2025-02-27 12:50:04 +00:00
caglarkaya
e50287b022 refactor: extract api trait methods into metered methods (#14740) 2025-02-27 12:17:47 +00:00
Roman Krasiuk
b4d1c85397 feat(trie): HashedPostState::multi_proof_targets (#14747) 2025-02-27 12:15:46 +00:00
Alexey Shekhirin
9216247887 feat(grafana): human-readable job variable selector (#14719) 2025-02-27 11:58:42 +00:00
Arsenii Kulikov
80250f0281 refactor(e2e): do not use EngineApiClient (#14739) 2025-02-27 10:48:01 +00:00
Dimitris Apostolou
4565cda599 chore(deps): avoid duplicate crates (#14681) 2025-02-27 07:47:08 +00:00
Dan Cline
d291d52954 feat(op): add builder methods for tx conditional and pool overrides (#14741) 2025-02-27 07:32:02 +00:00
Aurélien
1e48668bf2 feat: allow to transfer Executor accross threads (#14728) 2025-02-26 20:00:33 +00:00
Alexey Shekhirin
5072bd760d feat(reth-bench): generic transactions for send-payload commands (#14721) 2025-02-26 18:15:29 +00:00
Alexey Shekhirin
60c79a9323 chore(storage): cleanup consistent view revert state checks (#14734) 2025-02-26 16:53:05 +00:00
Emilia Hane
97bc3611db feat(engine): Op engine capabilities (#14733)
Co-authored-by: Ishika Choudhury <117741714+Rimeeeeee@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-26 16:06:51 +00:00
0xAtreides
009b09256c feat: Avoid propagating transactions with conditionals, closes #14706 (#14722) 2025-02-26 15:23:50 +00:00
Arsenii Kulikov
f94f37eb43 fix: correctly set txtype for eth_call (#14727) 2025-02-26 15:09:52 +00:00
Arsenii Kulikov
256351d4e3 feat: allow applying overrides for non-CacheDB databases (#14713) 2025-02-26 13:19:47 +00:00
Alexey Shekhirin
4ab2254d08 feat(tree): state root task multiproof metrics (#14534) 2025-02-26 12:49:04 +00:00
hexcow
0c96a23f8f fix: fix log key format for target_block_number argument (#14699) 2025-02-26 12:02:55 +00:00
Matthias Seitz
bb13be4826 chore: always set mint in deposit tx receipt (#14716) 2025-02-26 10:04:42 +00:00
Matthias Seitz
5b19846baa feat: extract insert_state to ProviderCaches (#14714) 2025-02-26 09:03:09 +00:00
fuder.eth
1809ee5330 Add Clonable Error Handling to ProviderError Enum (#14712) 2025-02-26 07:29:33 +00:00
Poulav Bhowmick
c7a1356a10 Added 0x prefix to all hex, macros and b256 (#14711) 2025-02-26 06:11:59 +00:00
Arsenii Kulikov
77aa17fb57 refactor: introduce BasicPayloadServiceBuilder (#14700) 2025-02-25 23:45:07 +00:00
kilavvy
75ca54b790 Refactor Session Management and Improve Documentation (#14707) 2025-02-25 18:08:39 +00:00
Léa Narzis
26ad9625da refactor(engine-api): change payload fn arg with ExecutionPayload (#14673)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-25 17:02:44 +00:00
emmmm
e35d9bada1 correction / fix comments (#14573) 2025-02-25 13:57:02 +00:00
witty
0174d93968 chore: fixed duplicate phrase issue in block description (#14698) 2025-02-25 12:55:32 +01:00
Emilia Hane
cf73f6eed6 feat(l2-withdrawals): Verify l2 withdrawals root in PayloadValidator (#14636) 2025-02-25 09:38:35 +00:00
Pana
84ef51f9cc remove needlessness async block and await op (#14694) 2025-02-25 08:53:49 +00:00
Hai | RISE
7267395b11 chore: use rx over tx for receiver name (#14693) 2025-02-25 08:45:55 +00:00
Matthias Seitz
4204b993fc feat: add helper for RecoveredBlock::clone_transactions_recovered (#14689) 2025-02-25 03:44:31 +00:00
Arsenii Kulikov
ee7e3fea2b feat: re-introduce debug.reorg logic (#14676) 2025-02-24 22:16:07 +00:00
Arsenii Kulikov
c40d059dd3 refactor: implement BlockExecutionStrategyFactory directly on EvmConfig (#14675) 2025-02-24 21:28:21 +00:00
Yohann Kazoula
a18b0fce7c Implement ExecutionPayload for OpExecutionData (#14682) 2025-02-24 20:36:37 +00:00
Ayush Dubey
38808e174f Disable default features for tracing #14526 (#14530)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-24 20:34:13 +00:00
Emilia Hane
6074d8d92c chore(sdk): Complete adapters for NodePrimitives ATs (#14672) 2025-02-24 16:26:49 +00:00
Alexey Shekhirin
64f639ae6e feat(storage): log revert state outcome in consistent view (#14684) 2025-02-24 16:15:40 +00:00
Federico Gimenez
434ee6bc0d chore(ci): remove batcher extra param from kurtosis op network config (#14679) 2025-02-24 14:59:16 +00:00
Léa Narzis
340d7ba008 refactor: merge signed tx traits (#14622) 2025-02-24 13:43:31 +00:00
Federico Gimenez
480c33f932 chore(hive): fix eest limit filtering (#14671) 2025-02-24 12:18:12 +00:00
hunterfarq
8223a0dfd8 fix: dead link txn_manager.rs (#14670) 2025-02-24 11:21:40 +00:00
Stefan Berat
426f144420 Add RLP encoding/decoding for RawCapabilityMessage (#14638) (#14661)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-24 10:02:03 +00:00
Yohann Kazoula
33443de09a Make PayloadOrAttributes generic over ExecutionData (#14666)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-24 08:50:39 +00:00
Léa Narzis
c72731e913 feat(op-pool-tx): add new field to store encoded 2718 bytes (#14665)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-24 08:40:16 +00:00
github-actions[bot]
4ada1535e3 chore(deps): weekly cargo update (#14663)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-23 11:21:08 +00:00
Sagar Rana
f0c9ca68d7 Removed unused BlockBatchRecord type (#14659) 2025-02-22 21:53:37 +00:00
Alexey Shekhirin
d39e24d9f3 feat(trie): parallel proof metrics (#14633) 2025-02-22 11:25:49 +00:00
Avory
107ab4fb79 feat: Add withdrawals support to debug build-block command (#14493)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-22 09:47:13 +00:00
NeoByteX
fa761f3e85 Correcting Verb Form in Headers Downloader and Stage Documentation (#14641) 2025-02-22 10:25:46 +01:00
Matthias Seitz
ea680785be chore: rm clone for bincodecompat receipt (#14628) 2025-02-22 08:52:59 +01:00
Yohann Kazoula
40364d5321 Relax EngineApi ExecutionData bounds (#14648)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-22 08:52:37 +01:00
Matthias Seitz
5c8a0a1dc9 chore: allow new advisory (#14650) 2025-02-22 08:50:40 +01:00
Poulav Bhowmick
9cb2a1e556 Extracted TransactionsManagerConfig creation as a standalone function (#14645) 2025-02-22 08:34:10 +01:00
Matthias Seitz
25db3b12e6 chore: add required rand feature for test (#14644) 2025-02-21 21:53:22 +01:00
Udoagwa Franklin
2101ae8918 Feat: Introduce db_models crate into storage-api crate and update imports (#14640) 2025-02-21 18:43:19 +00:00
Dan Cline
ae96ee9632 feat(trie): add sparse trie Display impl (#14544)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-02-21 17:37:40 +00:00
Poulav Bhowmick
d77c6061da Changed "match" to "if let some" to fix build errors (#14637)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-21 15:20:15 +00:00
Arsenii Kulikov
74a1151c07 feat: integrate TxEnv conversions (#14630) 2025-02-21 14:50:28 +00:00
Alexey Shekhirin
b3bd69b224 feat(root): metrics and logs for state root config (#14631) 2025-02-21 14:26:34 +00:00
Federico Gimenez
478f4e5204 feat(engine): allow to override has_enough_parallelism (#14608) 2025-02-21 12:56:33 +00:00
Joseph Zhao
a605035258 Remove unused Senderrecovery variant (#14629) 2025-02-21 12:40:07 +00:00
Joseph Zhao
86e8a2a245 Return RecoveredBlock in ensure_well_formed_payload (#14625) 2025-02-21 10:42:54 +00:00
DaniPopes
faa55d96bf perf(trie): optimize in memory cursor (#14600) 2025-02-21 09:22:38 +00:00
Harrish Bansal
81cff4a90b add metrics for engine_getBlobsV1 (#14621) 2025-02-20 20:02:52 +00:00
Emilia Hane
066482d81b feat(l2-withdrawals): Define OpExecutionPayloadValidator (#14591) 2025-02-20 18:02:30 +00:00
Matthias Seitz
c4066b0410 fix: conditional check (#14616) 2025-02-20 16:26:32 +00:00
Arsenii Kulikov
72210736ad feat: re-use BlockExecutionStrategy in payload building (#14609) 2025-02-20 15:06:19 +00:00
Matthias Seitz
09cf07d523 chore: pre alloc on send raw (#14611) 2025-02-20 15:00:01 +00:00
Arsenii Kulikov
8d51c608ce fix: handle Deposit in TryFrom<AnyRpcTransaction> (#14614)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-02-20 14:59:54 +00:00
Naman Garg
0500069772 chore(tree): replace LRU with FIFO for block tracking (#14587)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-20 14:43:28 +00:00
Emilia Hane
2a8f5b883b feat(l2-withdrawals): Move l2 withdrawals root computation into reth-optimism-storage (#14610) 2025-02-20 12:34:08 +00:00
Hai | RISE
8165659200 chore: remove outdated log (#14612) 2025-02-20 12:02:07 +00:00
Emilia Hane
f03e7e02f7 chore(payload): Custom PayloadError variant (#14607) 2025-02-20 11:45:34 +00:00
Federico Gimenez
246a9ffb20 test(db): complete DatabaseProviderFactory impl for MockEthProvider (#14605) 2025-02-20 11:44:55 +00:00
Arsenii Kulikov
2c069230aa chore: remove 'static bound from ConfigureEvmEnv (#14606) 2025-02-20 09:54:57 +00:00
Arsenii Kulikov
7ee8461bac feat: expose InvalidTxError in BlockExecutionError (#14597) 2025-02-20 09:22:22 +00:00
Emilia Hane
d075995205 chore(docs): Fix docs (#14602) 2025-02-20 09:20:18 +00:00
DaniPopes
c5df8fbaaf perf(tree): insert account cache only when not present (#14599) 2025-02-20 06:52:29 +00:00
Arsenii Kulikov
1bf46848a6 refactor: use BlockExecutorProvider in InvalidBlockWitnessHook (#14594) 2025-02-19 17:41:32 +00:00
Alexey Shekhirin
465af6e0f3 feat(tree): increase state root task thread pool size (#14455) 2025-02-19 15:37:19 +00:00
DaniPopes
36851cc8d8 chore: fix codspeed build (#14588) 2025-02-19 14:41:08 +00:00
int88
737f7833e8 peers.add_and_connect(): try to connect even if the peer has been added (#14581) 2025-02-19 14:21:43 +00:00
int88
f1f353edcc integration test of network state change (#14575) 2025-02-19 14:19:24 +00:00
Arsenii Kulikov
b9c81e4d94 feat: BlockExecutionStrategy::execute_transaction API (#14586) 2025-02-19 14:03:13 +00:00
Emilia Hane
e51e109723 chore(deps): Bump op-alloy (#14585) 2025-02-19 13:12:17 +00:00
Arsenii Kulikov
4f454c91d6 refactor: BlockExecutionStrategy API (#14480) 2025-02-19 13:10:50 +00:00
Solar Mithril
1ae733a7d1 Add interop hardfork in all relevant places. (#14582) 2025-02-19 12:18:37 +00:00
DaniPopes
c9a348dd2c chore(deps): bump breaking deps (#14570)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-19 11:36:15 +00:00
Emilia Hane
1e40e2dca2 chore(deps): Bump op-alloy (#14579) 2025-02-19 11:02:59 +00:00
Arsenii Kulikov
e92cf35ac9 refactor: simplify SystemCaller API (#14578) 2025-02-19 10:08:49 +00:00
Emilia Hane
849c04cb34 feat(l2-withdrawals): Decompose ExecutionPayloadValidator::ensure_well_formed_payload (#14566) 2025-02-19 09:25:29 +00:00
Federico Gimenez
974cfa192f chore(hive): rename expected eest failures (#14577) 2025-02-19 09:10:47 +00:00
Arsenii Kulikov
dde5269b7e chore: bump revm (#14568) 2025-02-19 09:08:43 +00:00
Matthias Seitz
cec1c11ece chore: handle all revm errors (#14574) 2025-02-19 01:28:39 +00:00
Federico Gimenez
3570f6b2f3 feat(reth-bench): substract block fetch waiting time from benchmark duration (#14299) 2025-02-18 20:53:10 +00:00
cakevm
534b028203 chore: make return for debug_codeByHash optional (#14572) 2025-02-18 18:42:15 +00:00
DaniPopes
545d5bdf16 chore(chainspec): use MAINNET_PRUNE_DELETE_LIMIT in MAINNET (#14569) 2025-02-18 16:24:55 +00:00
DaniPopes
3485ce45be chore(chainspec): remove MAINNET usage from ChainSpec::default (#14565) 2025-02-18 15:36:57 +00:00
Emilia Hane
c0a30f051e feat(op): isthmus genesis header (#14560)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-18 15:29:59 +00:00
Matthias Seitz
31b2819066 fix: add clear tx l1 cost back (#14564) 2025-02-18 14:56:49 +00:00
Arsenii Kulikov
29f4ca2a61 feat: no_std for reth-evm (#14561) 2025-02-18 12:54:56 +00:00
Arsenii Kulikov
67a98860e2 chore: bump alloy-evm (#14559) 2025-02-18 11:27:05 +00:00
Alexey Shekhirin
42f822305e fix(root): spawn state root task only if host has enough parallelism (#14555) 2025-02-18 09:48:34 +00:00
Matthias Seitz
5fe28fdf2a chore: phase out reth-primitives from optimism consensus (#14548) 2025-02-18 09:52:27 +01:00
Matthias Seitz
ffd0f11252 chore: remove needless clippy lint (#14550) 2025-02-18 08:18:59 +00:00
Veer Chaurasia
dde5cd8d9d Add Alias and update usage for emvenv (#14547) 2025-02-18 08:18:41 +00:00
Arsenii Kulikov
1804bbea6e chore: remove optimism feature (#14545)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-18 00:53:50 +01:00
DaniPopes
482f4557eb chore(db): move mod tables to db-api (#14540)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-17 20:53:39 +00:00
Arsenii Kulikov
336c3d1fac feat: alloy-evm and new revm integration (#14021)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: rakita <rakita@users.noreply.github.com>
2025-02-17 19:59:23 +00:00
DaniPopes
bb6dec7ceb chore(db): remove generic from iter_static_files (#14542) 2025-02-17 18:03:47 +00:00
Federico Gimenez
f69ca72dc5 feat(op, txpool, metrics): add metric for removed conditional txs (#14541) 2025-02-17 17:57:58 +00:00
DaniPopes
ea0a96a926 chore(storage-api): reduce dependence on reth-db (#14539) 2025-02-17 16:52:09 +00:00
DaniPopes
f17e701364 chore: fix warning in examples (#14537) 2025-02-17 16:49:40 +00:00
Matthias Seitz
e8286593ed fix: make genesis header for op (#14538) 2025-02-17 16:33:27 +00:00
DaniPopes
f6e8443b56 feat(debug-client): improve RPC BlockProvider implementation (#14536) 2025-02-17 16:00:48 +00:00
Matthias Seitz
41f0f01982 chore: allow missing total difficulty when loading node head (#14533) 2025-02-17 15:26:36 +00:00
Harrish Bansal
7fbeccca57 extending engine capabilities (#14528)
Co-authored-by: steven <corderosteven6@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-17 12:25:57 +00:00
Alexey Shekhirin
d6738c5044 feat: use PROMETHEUS_URL env var for Grafana in Docker Compose (#14531) 2025-02-17 12:00:13 +00:00
joshieDo
51e2f91b22 chore(hive): update name of expected failure eip7702_set_code_tx (#14532) 2025-02-17 11:23:50 +00:00
kustrun
344537a3a0 feat(rpc): Implement debug_codeByHash. (#14524) 2025-02-17 11:13:03 +01:00
kustrun
f2752756db chore(optimism/chainspec): Remove redundant crate prefixes. (#14525) 2025-02-17 10:39:57 +01:00
Gigabuidl
fbceb2b3b6 docs: update broken link run-a-node.md (#14521) 2025-02-17 10:38:45 +01:00
Arsenii Kulikov
c341ee3431 chore: relax bounds on RPC types (#14529) 2025-02-17 10:33:59 +01:00
Federico Gimenez
25579ce8a3 chore(docs): add book/cli to workspace exclusions (#14527) 2025-02-17 09:08:15 +00:00
github-actions[bot]
a96bc6110c chore(deps): weekly cargo update (#14522)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-16 16:47:32 +01:00
Poulav Bhowmick
07e8360c4d Removed weird ProviderError variants (#14518) 2025-02-15 22:48:29 +00:00
Matthias Seitz
b7f173fd88 fix: use correct table types on drop (#14519) 2025-02-15 22:07:14 +00:00
Joseph Zhao
22badc8155 feat: Extend Maybeconditional with helper fn (#14511) 2025-02-15 16:22:38 +00:00
caglarkaya
cb615cf5e1 refactor: replace into bound with standalone function (#14512) 2025-02-15 15:05:17 +00:00
Arsenii Kulikov
0f4914a944 feat: use SealedHeader in ChainSpec (#14514) 2025-02-15 13:30:05 +00:00
Matthias Seitz
8123d6bd3b feat: reexport reth-trie with trie feature (#14513) 2025-02-15 13:08:52 +00:00
Federico Gimenez
e4c8e479cf feat(op, txpool): add additional update routine for conditionals (#14497)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-15 08:30:09 +00:00
Emilia Hane
9c1988b5cc feat(l2-withdrawals): consensus rules (#14308) 2025-02-15 08:13:35 +00:00
cakevm
0e087ae1c3 chore: add Uniswap Labs bootnodes (#14507) 2025-02-15 08:00:31 +00:00
Joseph Zhao
113a87b4f8 Add serde-bincode-compat for receipt (#14399)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-14 20:33:13 +00:00
Ryan Schneider
16c3c5b733 fix(mev): Fix issues in mev_simBundle. (#14502) 2025-02-14 18:36:45 +00:00
Emilia Hane
cacaad1bcd chore(deps): Replace derive_more::Error with thiserror::Error (#14501) 2025-02-14 17:16:29 +00:00
Alexey Shekhirin
b6198b1f12 feat(evm, root): pass state change source to state hook (#14494) 2025-02-14 17:04:23 +00:00
Dan Cline
ab4b1764ad perf: do not fetch proofs for selfdestructed accounts (#14486) 2025-02-14 16:44:46 +00:00
DaniPopes
fe745ea636 chore(trie): small cleanups (#14496) 2025-02-14 15:50:38 +00:00
Alexey Shekhirin
9579ea93e4 chore(root): state root task and sparse trie task logs (#14495) 2025-02-14 14:47:23 +00:00
Dan Cline
713182d530 feat(trie): add DecodedAccountProof and DecodedMultiProof (#14425)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-02-14 14:28:00 +00:00
Shourya Chaudhry
8c2bcf11db refactor(trie): struct for passing hash and tree masks in sparse trie (#14468) 2025-02-14 13:03:58 +00:00
Emilia Hane
1c09351a93 fix(isthmus): include storage updates in l2 withdrawals root computation (#14307) 2025-02-14 12:11:51 +00:00
Udoagwa Franklin
72fdb7f9ec feat: Make db-models no-std (#14459)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: alpharush <0xalpharush@protonmail.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
Co-authored-by: Bilog WEB3 <155262265+Bilogweb3@users.noreply.github.com>
Co-authored-by: Vitalyr <158586577+Vitaliyr888@users.noreply.github.com>
Co-authored-by: Yohann Kazoula <yoh.kzl@gmail.com>
Co-authored-by: Shourya Chaudhry <149008800+18aaddy@users.noreply.github.com>
Co-authored-by: Poulav Bhowmick <bpoulav@gmail.com>
Co-authored-by: urb <urbadeil@gmail.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2025-02-14 11:59:50 +00:00
Dan Cline
735ff493a1 chore: rm reth_primitives from rpc_testing_util (#14488) 2025-02-14 10:16:22 +00:00
Dan Cline
817ad5c4aa feat(grafana): add proof panels to trie dashboard (#14484) 2025-02-13 22:38:10 +00:00
Matthias Seitz
270aefe900 chore: disable storage-api default features (#14474) 2025-02-13 21:05:19 +00:00
Matthias Seitz
b71934237d chore: add elided lifetime to impl Iterator (#14481) 2025-02-13 19:40:38 +01:00
Matthias Seitz
95b14f851b fix: handle tree event on new payload (#14475) 2025-02-13 17:52:27 +00:00
Alexey Shekhirin
431df62a4a feat(reth-bench): send-payload CLI (#14472) 2025-02-13 16:04:40 +00:00
Emilia Hane
08011a829e Disable default features for optimism crates in workspace manifest (#14467) 2025-02-13 15:22:02 +00:00
Alexey Shekhirin
d64fece1ca test(stages): download 15MB test file instead of 500MB (#14476) 2025-02-13 15:06:15 +00:00
Matthias Seitz
fd0e9dc3db fix static file derive (#14473) 2025-02-13 13:30:56 +00:00
Matthias Seitz
b45478c08c Revert "Disable default features for reth-storage-api in workspace manifest" (#14471) 2025-02-13 13:51:05 +01:00
Emilia Hane
58275b8931 Disable default features for reth-storage-api in workspace manifest (#14466)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-13 12:31:16 +00:00
urb
2827447953 feat: drop ExEx WAL on reth db drop (#11855)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-02-13 12:29:53 +00:00
Poulav Bhowmick
9dd90b5993 Simplified the sequencer forwarding RPC calls (#14386)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-13 12:16:07 +00:00
Shourya Chaudhry
84a375698d [Feature]: Add Opstack superchain registry support for genesis files (#14260)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-13 10:51:18 +00:00
Arsenii Kulikov
46462ae0a6 refactor: remove PostExecutionInput (#14464) 2025-02-13 10:24:00 +00:00
Matthias Seitz
f425a4dbcd chore: phase out reth-primitives from storage-api (#14462) 2025-02-13 10:00:00 +00:00
Arsenii Kulikov
cfb91e94dd chore: no_std for reth-execution-types (#14465) 2025-02-13 09:47:40 +00:00
Yohann Kazoula
a699ee5405 Upstream ExecutionData to alloy (#14188) 2025-02-13 09:02:33 +00:00
Matthias Seitz
dc88fa572a chore: rm comment about hardfork (#14463) 2025-02-13 03:03:00 +00:00
Vitalyr
aa1aa87088 fix typo (#14461) 2025-02-13 00:38:12 +00:00
Bilog WEB3
7e1896c41c chore: fix (#14456) 2025-02-13 00:27:48 +00:00
Matthias Seitz
c6b757ed93 fix: add lifetime (#14460) 2025-02-12 23:21:16 +00:00
Ryan Schneider
15dff0f6a6 feat(mev): Enable mev_ namespace. (#14457) 2025-02-12 21:01:00 +00:00
Roman Krasiuk
1e965caf5f fix(ci): docker release (#14458) 2025-02-12 20:40:45 +01:00
Federico Gimenez
f56f6332d9 chore(ci): update hive expected failures (#14454) 2025-02-12 17:06:57 +00:00
Matthias Seitz
1e0b0d897b chore: release v1.2.0 (#14438) 2025-02-12 17:38:01 +01:00
Matthias Seitz
f0530a76bf feat: add Block::seal (#14451) 2025-02-12 17:37:26 +01:00
Arsenii Kulikov
4f73e1a47e chore: remove BatchExecutor (#14453) 2025-02-12 15:56:42 +00:00
Alexey Shekhirin
1970a4425b fix(trie): reveal blinded sparse trie when calculating root (#14449) 2025-02-12 15:27:07 +00:00
Arsenii Kulikov
172369afd5 feat: add Consensus to ExecutionStage (#14447) 2025-02-12 14:48:14 +00:00
Dan Cline
3e07d65751 feat(grafana): add block validation overhead graph (#14431) 2025-02-12 13:30:29 +00:00
Dan Cline
bb67c0e2e9 fix(grafana): use correct datasource for all metrics (#14432) 2025-02-12 14:30:09 +01:00
Federico Gimenez
71b9f1225a feat(op, cli): add cli option to enable tx conditional (#14421) 2025-02-12 13:15:27 +00:00
Matthias Seitz
82903d9fe4 chore: export cli from reth ethereum (#14444) 2025-02-12 13:45:55 +01:00
Alexey Shekhirin
ac7b5959fb docs(tree): state root task (#14400)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-02-12 12:28:35 +00:00
Alexey Shekhirin
11eac03f00 feat(optimism): disable state root task by default (#14446) 2025-02-12 12:22:27 +00:00
DaniPopes
fc7a3e5bc6 chore: use shorter map names (#14445) 2025-02-12 11:59:42 +00:00
alpharush
9090125f0d Increase default gas limit from 30M to 36M (#13318)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-12 11:46:14 +00:00
Matthias Seitz
9f1602c03e chore: export exex (#14443) 2025-02-12 12:43:26 +01:00
Arsenii Kulikov
48bffd418f refactor: Add more low-level methods to Executor (#14440) 2025-02-12 11:15:01 +00:00
Matthias Seitz
9a805b06db chore: bump alloy 0.11.1 (#14439) 2025-02-12 10:15:10 +00:00
Aurélien
17712fe4e3 feat: add MaybeSerdeBincodeCompat to SignedTx (#14433) 2025-02-12 09:39:37 +00:00
Varun Doshi
faa6b9c125 feat: Return root result without blocking due to sparse trie Drop (#14333)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-02-12 09:23:17 +00:00
Matthias Seitz
e9b99b0610 chore: use reth-ethereum in example (#14409) 2025-02-12 08:56:15 +00:00
Emilia Hane
ea40f78e59 feat(l2-withdrawals): Define OpEngineApiBuilder (#14426) 2025-02-12 07:04:52 +00:00
Matthias Seitz
771a99be53 chore: phase out reth-primitives from op-evm (#14428) 2025-02-11 23:57:03 +00:00
XxAlex74xX
77bd2115fb Fix branch (#14416)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 21:18:11 +00:00
Matthias Seitz
fa2a571f8b chore: rm unused err variant (#14427) 2025-02-11 21:02:47 +00:00
Aurélien
302aa0b901 fix: use alloc::vec::Vec (#14423) 2025-02-11 21:53:47 +01:00
Aurélien
b7dfd5447f feat: impl serde for OpPrimitives (#14422)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 20:06:42 +00:00
Matthias Seitz
fab686ac05 feat: append tx conditional to pooled tx (#14403) 2025-02-11 19:59:09 +00:00
Emilia Hane
5f15d1e2a9 feat(l2-withdrawals): Define OpEngineApi (#14414)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 19:50:32 +00:00
Matthias Seitz
974b197d30 feat: add alloy-compat for op prims (#14406) 2025-02-11 19:15:34 +00:00
VolodymyrBg
3f680fd6cc docs: Complete missing stage descriptions in stages.md (#14415) 2025-02-11 20:20:56 +01:00
Alexey Shekhirin
155eced2ea chore(tree): expect message on state root handle unwrap (#14419) 2025-02-11 18:42:10 +00:00
Alexey Shekhirin
85fccde70e fix(tree): state root task finished log (#14418) 2025-02-11 18:18:24 +00:00
Matthias Seitz
5383f4b08e perf: only fetch parent if not latest (#14412) 2025-02-11 18:09:37 +00:00
Dan Cline
d727701a75 feat: add DecodedStorageProof and DecodedStorageMultiProof (#14391) 2025-02-11 16:05:20 +00:00
Matthias Seitz
bae79ec53d fix: use generic table types (#14413)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2025-02-11 15:29:22 +00:00
Federico Gimenez
f13158deb3 fix(ci): changes in kurtosis-op network config latest optimism package (#14402) 2025-02-11 15:19:13 +00:00
Dan Cline
8e479f36d3 chore: add root_with_updates method to sparse trie (#14393) 2025-02-11 14:47:19 +00:00
Matthias Seitz
1cd72206a1 chore: bump revm 19.5 (#14408) 2025-02-11 14:27:54 +00:00
Niclas Blomberg
3d1883d03f fix(validation-rpc): validate against parent, not latest (#14405) 2025-02-11 14:04:29 +00:00
Federico Gimenez
0f5d60150b feat(bin, engine): make state root task default (#14371) 2025-02-11 12:38:40 +00:00
Federico Gimenez
c4cb3f048d feat(engine): use Hash Builder as a fallback to the Sparse Trie on newPayload (#14387) 2025-02-11 12:25:48 +00:00
Matthias Seitz
09a6aab9f7 feat: add reth-op crate (#14401) 2025-02-11 11:38:03 +00:00
Elijah Hampton
2ba54bf1c1 Decode raw conditional correctly (#14397)
Co-authored-by: VeerChaurasia <veerchaurasia2005@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 10:31:51 +00:00
Veer Chaurasia
c9ea4231ff Add helper trait (#14394)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 10:19:54 +00:00
Dan Cline
0d64c40edc chore: remove unused arbitrary dep from optimism-primitives (#14392) 2025-02-11 09:56:10 +00:00
cakevm
63bec101bf chore: rm unused dependencies from optimism crates (#14396)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-11 09:07:54 +00:00
Matthias Seitz
ba8cec3550 fix: bytecode override (#14390) 2025-02-10 23:54:04 +00:00
Varun Doshi
85f66ff7ac feat: Add cli arg for pool lifetime (#14273)
Co-authored-by: Reentrancy <reentrancy@0xReentrancy.0xReentrancy>
Co-authored-by: Reentrancy <osawarumitchell@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-10 20:52:33 +00:00
Yohann Kazoula
ecabf7575e Introduce StatusEth69 for eth/69 status messages (#14292) 2025-02-10 20:46:48 +00:00
Federico Gimenez
d9e660bd56 feat: add cross-block cache size cli arg (#14305) 2025-02-10 19:31:40 +00:00
Fallengirl
731b771fa2 chore: correct the comments (#14339) 2025-02-10 19:32:36 +01:00
Federico Gimenez
fe322379ff feat(op, txpool): impl send_raw_tx_cond endpoint (#14311) 2025-02-10 18:16:24 +00:00
Matthias Seitz
2e8bc7d4b2 chore: re-export rpc types (#14381) 2025-02-10 19:14:09 +01:00
Arsenii Kulikov
4d9a98780f chore: abstract OpPayloadBuilder over ChainSpec (#14374) 2025-02-10 18:00:24 +00:00
Emilia Hane
477b747ef4 feat(l2-withdrawals): Use OpExecutionPayloadV4 for new payload v4 (#14379) 2025-02-10 17:46:52 +00:00
Poulav Bhowmick
cdb7c63d51 Added from<alloy_rpc_types_eth::Transaction> for TransactionSigned (#14350)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-10 17:27:49 +00:00
Alexey Shekhirin
30488a1292 fix(trie): do not reveal same node twice in sparse trie (#14370) 2025-02-10 17:12:15 +00:00
Aurélien
d4e37ce4b6 feat: add operator fee params on RPC L1BlockInfo (#14269)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-10 17:04:28 +00:00
Matthias Seitz
b9b519344f feat: add reth-eth meta crate (#14361) 2025-02-10 16:36:36 +00:00
Emilia Hane
c6ac747a70 feat(l2-withdrawals): Declare OpEngineApiServer and OpEngineApiClient (#14359) 2025-02-10 16:05:34 +00:00
Matthias Seitz
db375d2309 chore: remove code snippets from stages.md (#14367) 2025-02-10 16:59:28 +01:00
Roman Krasiuk
b495038fde feat(engine): invalid block event (#14365) 2025-02-10 14:35:40 +00:00
Alexey Shekhirin
a7f895e72a feat(tree): enter tracing span for each storage trie in state root task (#14363) 2025-02-10 12:44:55 +00:00
Aurélien
37adaf2d2e feat: avoid zstd dependency in reth-evm, reth-evm-ethereum and reth-optimism-evm (#14356) 2025-02-10 11:56:07 +00:00
Matthias Seitz
47bc55b061 chore: rm reth-primitives from eth payload (#14357) 2025-02-10 11:24:18 +00:00
0xNarumi
61728726d3 Fix: Correct functionality of get_queued_transactions_by_sender and get_pending_transactions_by_sender (#14353) 2025-02-10 10:37:25 +00:00
Arsenii Kulikov
7e3b135805 feat: EngineApiBuilder (#14354) 2025-02-10 10:10:40 +00:00
Roman Krasiuk
f84d497f31 prague: testnet timestamps (#14270) 2025-02-10 09:12:12 +00:00
Simon Oswald
46d63e8054 add debug_chainConfig endpoint (#14346) 2025-02-09 22:27:07 +00:00
Poulav Bhowmick
d57535caad added BeaconConsensusEngineHandle to RpcHandle (#14348) 2025-02-09 22:14:23 +00:00
Poulav Bhowmick
21370c3911 added helper error enums for L1BlockInfoError (#14326) 2025-02-09 14:33:09 +00:00
Arsenii Kulikov
104bd6e039 refactor: move ValidationApi setup to EthereumAddOns (#14342) 2025-02-09 14:14:53 +00:00
Poulav Bhowmick
b48426efdd added EventSender to FullNode type (#14268)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-09 14:04:12 +00:00
Federico Gimenez
197d6edee9 chore(ci): pin op-node image for kurtosis-op (#14343) 2025-02-09 13:13:45 +00:00
github-actions[bot]
570fcd318d chore(deps): weekly cargo update (#14340)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-09 11:54:27 +00:00
Roman Krasiuk
a215256075 feat(engine): emit events with executed blocks (#14341) 2025-02-09 11:07:10 +00:00
Arsenii Kulikov
46d3b6a32e test: add a test for devnet failure (#14288)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-08 17:06:42 +00:00
Matthias Seitz
7d0f5b757f chore: make stages types no-std (#14334) 2025-02-08 16:40:52 +00:00
Matthias Seitz
2b16b06a39 fix: update --rpc-cache.headers name (#14336) 2025-02-08 16:34:18 +00:00
Matthias Seitz
b2011353f2 feat: add other helpers for ProviderError (#14325) 2025-02-08 16:27:55 +00:00
Matthias Seitz
d56985a298 chore: add codec and serde features to prune types (#14327) 2025-02-08 15:52:38 +00:00
Matthias Seitz
d84eab125a chore: typos (#14330) 2025-02-08 16:06:05 +01:00
Matthias Seitz
1c3547cd00 chore: add serde feature to stages types (#14329) 2025-02-08 14:25:43 +00:00
Matthias Seitz
1a4f5441f3 chore: silence unused warnings (#14328) 2025-02-08 10:24:31 +01:00
Steven
5c231898ad feat: Add is_vx helpers for EngineApiMessageVersion (#14323) 2025-02-08 07:22:22 +00:00
Matthias Seitz
dbf4e23e63 chore: rm reth-primitives from engine api crate (#14324) 2025-02-08 07:17:56 +00:00
Matthias Seitz
7603b74890 feat: add providerfactory builder to OpNode (#14322) 2025-02-08 07:09:27 +00:00
Dan Cline
44985c3272 chore: rm reth_primitives from reth_revm (#14317) 2025-02-08 06:08:20 +00:00
Arsenii Kulikov
d99f0fa5ae fix: use custom generator in custom builder example (#14320) 2025-02-08 05:12:27 +00:00
Dan Cline
ea86211636 chore: bump alloy-trie to 0.7.9 (#14318) 2025-02-08 00:51:21 +00:00
Dan Cline
6710f037e4 chore: bump apache license year to 2025 (#14319) 2025-02-08 01:45:40 +01:00
Matthias Seitz
905fd37bde chore: misc eth strategy cleanup (#14315) 2025-02-07 22:42:19 +00:00
Dan Cline
d374e7366c feat: add standalone DockerfileOp for local building (#14309) 2025-02-07 19:39:27 +00:00
int88
e4e5cb04d8 integration test for capability version mismatch (#14304) 2025-02-07 19:32:48 +00:00
Dan Cline
54c4646971 feat: add granular prewarm metrics (#14282) 2025-02-07 18:20:18 +00:00
Dan Cline
da86ff39b9 feat: record save_cache duration metrics (#14281) 2025-02-07 17:55:52 +00:00
Alexey Shekhirin
b955551f8b docs(tree): state root task lifecycle (#14302) 2025-02-07 14:55:19 +00:00
Roman Krasiuk
d147a2093e fix(provider): fix pending block retrieval in find_block_by_hash (#14303) 2025-02-07 14:30:32 +00:00
Roman Krasiuk
5a714cda79 chore(engine): make block buffer pub (#14298) 2025-02-07 12:16:31 +00:00
int88
6dfcb7a85f fix: increment pending out on manually triggered connect (#14257)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-07 11:35:14 +00:00
Elijah Hampton
b8a4468c69 Introduce AnyError (#14294)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-07 11:08:16 +00:00
Roman Krasiuk
8f01951891 chore(engine): make invalid headers cache pub (#14297) 2025-02-07 10:55:15 +00:00
Alexey Shekhirin
d6a6424290 perf(tree): short-circuit multiproof computation on empty targets (#14265) 2025-02-07 10:53:38 +00:00
Matthias Seitz
69050721ea chore: rm unused cli args (#14295) 2025-02-07 09:40:24 +00:00
Manav Darji
d07db4bbe0 chore(txpool): explicity drift txpool on first event (#14290)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-07 09:07:07 +00:00
Steven
dc0488cf75 feat: remove from fspath conversion for storagelockerr (#14291) 2025-02-07 08:51:03 +00:00
Naman Garg
2933ec7298 perf(tree): state provider builder (#14279)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-02-07 03:31:44 +00:00
Matthias Seitz
be2a09e73b chore: rm todo (#14289) 2025-02-07 01:10:12 +01:00
Arsenii Kulikov
68952b3064 feat: abstract op executor over chainspec (#14285)
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2025-02-06 23:41:37 +00:00
Dan Cline
4066ad4cc5 feat: add newPayload latency gauge metric (#14287) 2025-02-06 22:35:03 +00:00
Arsenii Kulikov
1f1eabc428 feat: simplify PayloadBuilder setup (#14276) 2025-02-06 20:44:16 +00:00
Arsenii Kulikov
63d5feab33 refactor: extract OP txpool types to a separate crate (#14280) 2025-02-06 20:31:51 +00:00
Dan Cline
c9169705e2 perf(tree): add cross-block caching (#13769)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2025-02-06 17:38:03 +00:00
Matthias Seitz
98266f87da chore: use recovered api for prewarm (#14272) 2025-02-06 16:11:03 +00:00
comfsrt
2ee7748459 Avoiding infinite recursion in trait implementation (#14261)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-06 13:12:51 +00:00
Federico Gimenez
ad7dec3b6a feat(op, txpool): add conditionals to op pooled tx (#14264)
Co-authored-by: Hamdi Allam <hamdi.allam97@gmail.com>
2025-02-06 13:10:54 +00:00
Poulav Bhowmick
8c4c8c90cf Moved HashedPostState to trie-common crate (#14230)
Co-authored-by: DarkLord017 <sambhavjain170944@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-06 11:59:39 +00:00
Alexey Shekhirin
fd3fe8d6a2 feat(tree): more logs for proofs prefetching (#14263) 2025-02-06 11:50:07 +00:00
Arsenii Kulikov
823d065071 feat: abstract OpPooledTransaction and OpPool over consensus tx (#14256) 2025-02-06 11:26:06 +00:00
Shourya Chaudhry
5662508149 [Feature]: added max lifetime setting for queued transactions (#14242)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-06 10:36:03 +00:00
Aurélien
97ad6dfe1f feat: handle Isthmus operator fee params (#14243) 2025-02-06 10:34:31 +00:00
Dan Cline
41d51a109c chore: rm reth_primitives from reth_net_p2p (#14258) 2025-02-06 09:21:09 +00:00
Arsenii Kulikov
14a51b5292 feat: expose pool transaction in PayloadTransactions (#14249)
Co-authored-by: Hamdi Allam <hamdi.allam97@gmail.com>
2025-02-06 01:16:20 +00:00
Arsenii Kulikov
c1a305ca5c feat: relax BasicPayloadJobGenerator bounds (#14254) 2025-02-06 00:59:14 +00:00
Matthias Seitz
05d2a36b8b fix: use correct default for get_local_pending_transactions (#14253) 2025-02-06 00:10:48 +00:00
Dan Cline
d5277d5f27 chore: remove usages of reth_primitives from reth bin (#14252) 2025-02-06 00:02:12 +00:00
Dan Cline
3309484a30 chore: rm redundant Send,Sync bounds on ParallelProof (#14248) 2025-02-05 23:50:23 +00:00
Arsenii Kulikov
62a8e62c3d chore: simplify PayloadBuilder trait (#14246) 2025-02-05 23:20:31 +00:00
Matthias Seitz
f80d8f25f9 chore: use u64 for blobcount (#14250) 2025-02-05 23:15:24 +00:00
Dan Cline
06132f509c perf(trie): deduplicate already fetched prefetch targets (#14223)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-02-05 22:30:49 +00:00
Dan Cline
2c3faf9b2b chore: remove redundant bounds on StateRootTask (#14245) 2025-02-05 21:10:58 +00:00
Steven
9ac96e9393 feat: track max blobcount in forktracker (#14231)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-05 20:46:40 +00:00
Matthias Seitz
42a1912224 feat: add exceeds allowance error message (#14232) 2025-02-05 20:42:27 +00:00
Dan Cline
8f59efb96a chore: move Transaction lock acquired mdbx log to trace (#14218) 2025-02-05 19:07:20 +00:00
Dan Cline
af00d882d2 fix: use proofs from prefetch and updates for root completion (#14222) 2025-02-05 18:30:13 +00:00
Panagiotis Ganelis
7789d93001 refactor: Adds type downcasting helpers for InvalidPoolTransactionError (#14046)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-02-05 18:08:59 +00:00
Dan Cline
29e6e5cd5e feat: enable prewarm spawn metrics (#14229) 2025-02-05 14:17:46 +00:00
Federico Gimenez
49b6ae0dc4 chore(ci): update hive expected failures (#14239) 2025-02-05 13:37:57 +00:00
Arpit Temani
ab804d4650 fix: use blob params in payload building (#14217)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-05 13:07:42 +00:00
Matthias Seitz
8d35f26db9 chore: enable rand in test utils (#14234) 2025-02-05 13:01:39 +01:00
Matthias Seitz
2d4ccf10fe chore: simplify rpc block compat (#14225) 2025-02-05 11:40:22 +00:00
Arsenii Kulikov
a63f92e017 chore: use alloy traits for PoolTransaction (#14228) 2025-02-05 02:05:00 +00:00
Matthias Seitz
6d5607dc2b docs: add docs for instantiating EthFilter (#14224)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-02-05 01:12:33 +00:00
Dan Cline
a9ae060452 fix: use different cancel wrapper for prewarm tasks (#14221) 2025-02-04 21:06:50 +00:00
Emilia Hane
ad503a08fa feat(isthmus): withdrawals root in block building (#14209)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-04 18:31:00 +00:00
Matthias Seitz
f43cf9c18a fix: rm redundant revert in error message (#14215) 2025-02-04 17:40:42 +00:00
joshieDo
97ffdfa563 ci(hive): add ethereum/eest simulator (#14009) 2025-02-04 16:46:31 +00:00
Veer Chaurasia
d85c9001e4 Remove blocktime handling from maintain pool future (#14210) 2025-02-04 16:45:51 +00:00
Matthias Seitz
1303bb5dc6 chore: update authmodule new with new engine trait (#14206) 2025-02-04 17:48:18 +01:00
Dan Cline
b6ce1d90fd perf: warm transactions in parallel (#13759) 2025-02-04 16:25:51 +00:00
Federico Gimenez
6fecdac4ea fix(reth-bench): return error on invalid range (#14198) 2025-02-04 15:51:03 +00:00
Matthias Seitz
17dfad5828 feat: expose blob_store fn on top level pool type (#14205) 2025-02-04 17:05:05 +01:00
Matthias Seitz
7fb74066b8 feat: type erase concrete engine server trait (#14204) 2025-02-04 12:58:11 +00:00
Arsenii Kulikov
07090b315c feat: abstract OpBeaconConsensus over primitives and chainspec (#14171) 2025-02-04 12:55:51 +00:00
Arsenii Kulikov
740bf04351 fix: return correct prune_target_block when syncing (#14181) 2025-02-04 11:18:33 +00:00
Emilia Hane
b479b3439c feat(no_std): Add no_std support for reth-storage-api (#14187)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-04 11:23:35 +01:00
Arsenii Kulikov
e468d4d7c5 feat: add ExecutionData AT (#14179) 2025-02-04 01:08:47 +00:00
Matthias Seitz
754cd58b34 ci: ensure consensus crates remain riscv compatible (#14186) 2025-02-04 00:16:59 +00:00
Matthias Seitz
42dfc1c24b chore: rm unused prune error variant (#14185) 2025-02-04 00:13:49 +00:00
Matthias Seitz
e80d6f22ff ci: enable getreceipts hive test again (#14184) 2025-02-03 23:51:23 +00:00
Dan Cline
68e51af295 chore: rm unused rpc_types_compat import from reth-bench (#14182) 2025-02-03 23:41:36 +00:00
Matthias Seitz
9bda553017 feat: add helpers for handling other errors (#14180) 2025-02-03 23:34:13 +00:00
Matthias Seitz
af3eb83c90 chore: rm unused error variants (#14183) 2025-02-03 23:29:29 +00:00
Arpit Temani
556c79f787 chore: convert_to_payload_body_v1 (#14168) 2025-02-03 23:16:33 +00:00
Steven
d3373b3cfe feat: add dedicated blobpool args to cli (#14173) 2025-02-03 22:59:19 +00:00
Arsenii Kulikov
04c1d7120e refactor: couple ExecutionPayload and ExecutionPayloadSidecar (#14172) 2025-02-03 21:04:42 +00:00
Arsenii Kulikov
e3106889a8 feat: abstract EthTransactionValidator over ChainSpec (#14162) 2025-02-03 19:26:18 +00:00
Federico Gimenez
440e6695b5 chore(ci): unpin clippy (#14167) 2025-02-03 16:09:46 +00:00
Arsenii Kulikov
65c3bd7eda feat: abstract OP payload builder over transaction (#14153) 2025-02-03 14:57:41 +00:00
Matthias Seitz
7243aaf555 docs: add example docs (#14164) 2025-02-03 15:37:42 +01:00
Dan Cline
6f9aa3804b feat(grafana): add Datasource variable to dashboard (#14158) 2025-02-03 13:02:00 +00:00
Marson Kotovi4
0ad7de48b6 fix: rename variables and fix typos in tables.rs, execution.rs, and mdbx code (#14148) 2025-02-03 10:09:46 +00:00
Dan Cline
b06682e9af perf: add more granular newPayload metrics (#14134) 2025-02-02 20:04:07 +00:00
Dan Cline
4167610fab feat(grafana): add cache hitrate panel (#14135) 2025-02-02 19:28:46 +00:00
Matthias Seitz
2c58d451af chore: use rlp_length_for (#14144) 2025-02-02 18:42:53 +00:00
Arsenii Kulikov
0c3ccccba9 chore: simplify OpBuiltPayload (#14152) 2025-02-02 16:32:16 +00:00
github-actions[bot]
60337077c8 chore(deps): weekly cargo update (#14155)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-02 10:50:10 +00:00
joshieDo
a041b41b59 chore: use chainspec blob_params for blob calculations (#14139) 2025-02-01 16:41:22 +00:00
Matthias Seitz
fd4ca7d6d6 feat: simplify envelope conversion (#14146) 2025-02-01 14:29:41 +00:00
Matthias Seitz
6e0fbb469b meta: temporarily allow missing const for fn (#14147) 2025-02-01 14:29:16 +00:00
Arpit Temani
209b44829e chore: remove block_to_payload_v1 (#14143)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-01 11:06:35 +00:00
Matthias Seitz
5c7df17a48 chore(clippy): smol clippy fix (#14145) 2025-02-01 11:11:57 +01:00
Arpit Temani
7da6d671f6 chore: remove block_to_payload_v2 (#14142)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-01 09:22:02 +00:00
Matthias Seitz
d16187509e chore: rm Once-cell dep (#14141) 2025-02-01 09:06:07 +01:00
Steven
3d7215137a [wip] feat: alloy tx type conversions back to OpTransactionSigned (#14121)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-01 07:52:53 +00:00
Steven
9e6e2c4695 chore: phase out block_to_payload_v3 (#14140)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-02-01 07:41:28 +00:00
Léa Narzis
bf20c786e5 feat(eth-wire-types): add snap sync protocol types (#14119) 2025-01-31 22:55:42 +00:00
Dan Cline
33fc334e1f fix(grafana): fix rpc cache metrics panel (#14137) 2025-01-31 22:10:48 +00:00
Arsenii Kulikov
a39980a6f6 feat: generalize Block impls (#14133) 2025-01-31 22:05:09 +00:00
Arsenii Kulikov
1c9ef8c5a3 refactor: remove Receipts struct (#14130) 2025-01-31 21:59:31 +00:00
joshieDo
d30a1b6c7d fix(hive): overflow when timestamp is u64::max (#14132) 2025-01-31 20:53:48 +00:00
int88
3e0cd2eb3d integration test for trusted peer only (#14127) 2025-01-31 20:14:48 +00:00
joshieDo
d3acdda21b feat: integrate blob_params_at_timestamp (#14128) 2025-01-31 18:18:34 +00:00
Matthias Seitz
214f3b3b8e chore: rm redundant conversion fn (#14129) 2025-01-31 18:13:23 +00:00
Alexey Shekhirin
62edaf14d4 perf(mdbx): do not always collect the backtrace of a locked transaction (#14123) 2025-01-31 15:11:37 +00:00
abdaze
fe160e74df added helper function new_alloy_provider (#13579)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 14:47:31 +00:00
DevOrbitlabs
2d3bbb327d chore(transaction-pool): remove duplicate code (#13627)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 13:28:06 +00:00
DevOrbitlabs
6afededdbf feat: phase out payload conversion helpers (#14090)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 13:04:41 +00:00
DevOrbitlabs
54a5fcc24d feat: remove transaction_to_call_request helper fn (#14089)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 12:51:16 +00:00
Roman Krasiuk
5322877aed chore: bump alloy 0.11 (#14122)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 11:44:20 +00:00
maze
bd5dde54ef fix: BlockSource check for pending block (#14112) 2025-01-31 09:26:51 +00:00
Dan Cline
4ce5a60c58 feat(cli): add use-caching-and-prewarming flag (#14114) 2025-01-31 00:48:35 +00:00
Yohann Kazoula
4d00627559 Add helper functions to NewPooledTransactionHashes68 struct (#14118)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-31 00:30:38 +00:00
Arsenii Kulikov
28f2690e04 feat: abstract RPC error over HaltReason (#14104) 2025-01-30 20:51:01 +00:00
Alexey Shekhirin
590b58f978 fix(trie): update prefix set on the call to RevealedSparseTrie::update_rlp_node_level (#14108) 2025-01-30 19:32:09 +00:00
Matthias Seitz
2c56061b90 chore: rename ovm types (#14116) 2025-01-30 19:05:39 +00:00
int88
6ab1528896 eth for NetworkConfigBuilder (#14109) 2025-01-30 16:59:53 +00:00
Dan Cline
2e2167268f docs(reth-bench): add comprehensive setup and analysis docs (#14088)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-01-30 16:50:32 +00:00
Matthias Seitz
e21c654430 chore: reexport eip types for convenience (#14107) 2025-01-30 16:48:25 +00:00
Matthias Seitz
c25c8b0780 feat: add helpers for WithPeerId Option (#14106) 2025-01-30 16:48:13 +00:00
Poulav Bhowmick
59c6e7e452 added SealedHeaderFor alias to validate.rs and without_evm.rs (#14103)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-30 15:55:34 +00:00
Steven
54e1ddfdc1 feat: add alloy tx type conversions back (#14110) 2025-01-30 15:49:42 +00:00
Alexey Shekhirin
d3cec5a915 feat(root): state root task metrics (#14102) 2025-01-30 13:51:41 +00:00
Matthias Seitz
9bb39f1a7f chore: shrink cache queues (#14105) 2025-01-30 13:28:19 +00:00
Aditya Bisht
89f8667cd4 fix: Add dummy system tx in op dev mode (#14062)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-30 13:03:35 +00:00
Arsenii Kulikov
98a021ee7d feat: abstract over Evm::Error (#14085)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-30 13:02:20 +00:00
Roman Krasiuk
6b13409812 feat(engine): update pending block on InsertExecutedBlock (#14098) 2025-01-30 11:09:22 +00:00
Matthias Seitz
277e9f6e1e chore: add example for sending tx hashes (#14094) 2025-01-30 11:44:28 +01:00
Matthias Seitz
97278abe01 fix: ensure the pending block has the requested hash (#14096) 2025-01-30 10:14:42 +00:00
Matthias Seitz
9592215473 feat: add missing serde derive (#14095) 2025-01-30 11:27:28 +01:00
Debjit Bhowal
4eb65250a7 Export chainspec's HardforkBlobParams struct publicly (#14092) 2025-01-30 10:08:20 +00:00
Dan Cline
2b5cb351d5 chore(trie): remove reth-primitives dep (#14080) 2025-01-29 23:13:09 +00:00
joshieDo
5a7e057636 fix: validate block against header on reth import (#14076) 2025-01-29 22:42:43 +00:00
Dan Cline
d175d6475d chore(ethereum-node): remove reth-primitives dep (#14081) 2025-01-29 22:41:56 +00:00
Dan Cline
7b965e0232 chore(trie-db): remove reth-primitives dep (#14079) 2025-01-29 22:41:46 +00:00
Matthias Seitz
5ab9b9159c chore: rm todos that are nofixes (#14082) 2025-01-29 22:41:29 +00:00
Alexey Shekhirin
2216c8a8ba fix(root): do not re-calculate targets for sparse trie update (#14074) 2025-01-29 21:19:34 +00:00
Dan Cline
665ca2e89b feat: enable state root task during persistence (#12392)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-01-29 19:57:32 +00:00
Tuan Tran
974cea1d38 feat(chainspec): add Chainspec::blob_fee_params_at_timestamp (#14049)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 19:18:00 +00:00
Alexey Shekhirin
04ddcdfae5 feat(trie): include address on storage trie update error (#14075) 2025-01-29 18:37:56 +00:00
Matthias Seitz
376a5ddf55 chore: make optypedtx fields private (#14065) 2025-01-29 17:49:09 +00:00
Matthias Seitz
9001cc2cec chore: remove reth-primitives dep from consensus (#14067) 2025-01-29 16:51:53 +00:00
Federico Gimenez
88c878da0c chore: update reth-bench docs (#14060) 2025-01-29 16:51:31 +00:00
Matthias Seitz
b6875b13af chore: relax cache bounds (#14068) 2025-01-29 15:09:46 +00:00
DevOrbitlabs
38dfe94625 feat: replace BincodeRepr From bound with conversion function (#14069) 2025-01-29 14:29:18 +00:00
DevOrbitlabs
00593d2079 chore: correct the docs (#14070) 2025-01-29 14:29:04 +00:00
Dhruv Agarwal
6d5514964b feat(rpc): created EthApiBuilder type (#14041)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 13:43:10 +00:00
Arsenii Kulikov
5fcefcea8c refactor: remove PruneModes from batch executor (#14025) 2025-01-29 11:50:37 +00:00
Steven
2652ec8af5 chore: make transaction type fields private (#13915)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 10:56:07 +00:00
Matthias Seitz
ed593ae257 feat: introduce helper alias type (#14058) 2025-01-29 10:14:45 +00:00
Poulav Bhowmick
fd7074eac2 feat: modified MultiConsumerLruCache to track inMemory usage (#14034)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 10:01:28 +00:00
Ryan Schneider
c7152ee9fa feat(rpc/validation): Expose metric for validation disallow list size. (#14057)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 09:50:26 +00:00
Matthias Seitz
dac2085d46 fix: return the correct action on drop (#14054) 2025-01-29 09:47:04 +00:00
yohkaz
a4b408848f Make impls for MockEthProvider more generic (#14055)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-29 09:44:06 +00:00
joshieDo
d6e055dffa fix: check for duplicate request types on validation (#14056) 2025-01-29 00:08:31 +00:00
Matthias Seitz
01309ec03a docs: add note about recorded transfer logs (#14053) 2025-01-28 20:58:04 +00:00
Matthias Seitz
14ac107c89 chore: bump revm 19.4 (#14031) 2025-01-28 20:14:56 +00:00
joshieDo
7db8e42dc1 feat: validate headers loaded from file on reth import (#14050) 2025-01-28 20:05:37 +00:00
Matthias Seitz
9bc07cc5bd feat: introduce ProviderFactoryBuilder (#13989) 2025-01-28 19:34:03 +00:00
Matthias Seitz
4653d3dd3a docs: add docs about bincode compat (#14045) 2025-01-28 16:49:27 +00:00
int88
ba6a1122d8 integration test for max outgoing connections (#14039) 2025-01-28 14:59:19 +00:00
caglarkaya
77568f8d3e feat: introduce custom exex wal errors (#11789)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2025-01-28 14:18:33 +00:00
Matthias Seitz
36eec984a0 chore: rename evm to headers in dashboard (#14036) 2025-01-28 13:53:41 +00:00
Matthias Seitz
5cf0276f1e chore: rm optimism feature from reth-provider (#14035) 2025-01-28 13:31:26 +00:00
Arsenii Kulikov
0f2e2faeda refactor: remove Events generic from RPC types (#14033) 2025-01-28 13:29:27 +00:00
Tien Dao
42dc1ed04b docs(exex): Expand documentation with examples, assumptions, and invariants. (#13581)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-28 12:32:21 +00:00
georgehao
2e4376f359 add format checker to .toml (#13968)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-28 12:20:58 +00:00
Alexey Shekhirin
22c1de501b feat(tree): handle no-op updates in trie update differences (#14013) 2025-01-28 12:00:39 +00:00
polytur
cc5493f6b4 fix: redirect issues in documentation links (#14032) 2025-01-28 11:16:50 +00:00
kien-rise
e11e1f30fa perf: remove empty HashMap instances from TrieUpdates and HashedPostState (#13976) 2025-01-28 11:00:05 +00:00
DaniPopes
af30448f4c chore: update profiles (#14029) 2025-01-28 10:26:39 +00:00
Matthias Seitz
d709c8a0d2 chore: use BlockNumHash in exex (#14015) 2025-01-28 10:24:29 +00:00
Dan Cline
83a9b08ad7 chore(tree): simplify insert_executed (#14026) 2025-01-28 10:14:54 +00:00
Matthias Seitz
1751370a5a feat: extend example with tx handling (#14030) 2025-01-28 11:11:09 +01:00
Dan Cline
cd45a20eeb chore(trie): remove from_cache_state (#14028) 2025-01-28 08:53:32 +00:00
joshieDo
a8a70f47da ci(hive): remove tests from expected failures (#14027) 2025-01-28 02:03:38 +00:00
joshieDo
57159fede9 fix: add EthereumHardfork::Frontier by default on genesis to chainspec impl (#14024) 2025-01-28 00:14:37 +00:00
dependabot[bot]
d6067deb0e chore(deps): bump docker/build-push-action from 5 to 6 (#14023)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 23:39:22 +00:00
Dan Cline
b9e361cbea feat(rpc): implement debug_executionWitnessByHash (#14022)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-01-27 22:08:31 +00:00
Dan Cline
2b44d17d5f chore: remove reth-primitives dep from reth-engine-tree (#14019) 2025-01-27 21:44:21 +00:00
Dan Cline
ddc9375a60 chore: remove executed_block from EthBuiltPayload (#14017)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-27 21:27:57 +00:00
Dan Cline
e2c45f2b1f chore: move EthPrimitives to reth-ethereum-primitives (#14018) 2025-01-27 19:43:57 +00:00
Dan Cline
2e34fe1840 perf: do not clone recovered block (#14016) 2025-01-27 18:50:39 +00:00
Matthias Seitz
afd43db9b8 feat: add network request proxy example (#13974) 2025-01-27 18:49:03 +00:00
Dan Cline
6b1b9c41aa feat(evm): add nonce methods to TxEnv (#14014) 2025-01-27 18:11:29 +00:00
github-actions[bot]
2d044a24c0 chore(deps): weekly cargo update (#13992)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-01-27 17:37:09 +00:00
Dan Cline
4e7856621b fix: do not record trie root metrics for ParallelProof (#13960) 2025-01-27 17:12:28 +00:00
VolodymyrBg
2cdde508d0 feat(eth-wire): improve Capability arbitrary implementation (#14011)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-27 17:08:56 +00:00
Matthias Seitz
0e2f79c3de docs: add section about recovery naming (#14012) 2025-01-27 17:00:38 +00:00
Matthias Seitz
515c367c8b feat: add find-transaction-by-hash (#14008) 2025-01-27 16:17:29 +00:00
Arsenii Kulikov
cde951732e refactor: store plain receipts instead Options in Receipts (#14010) 2025-01-27 16:05:48 +00:00
Alexey Shekhirin
0fa79c6c65 fix(root): drop sparse trie tx sender when state updates finished (#14004) 2025-01-27 15:31:44 +00:00
Arsenii Kulikov
33bf34b2fb fix: gracefully handle missing persisted_trie_updates (#13942) 2025-01-27 14:02:53 +00:00
Matthias Seitz
b9a6e65d8c chore: rm unused databasemetadata trait (#14003) 2025-01-27 12:22:07 +00:00
Alexey Shekhirin
d858a9f87d test(trie): use DB for hash builder in sparse trie fuzz (#13754)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-01-27 11:46:52 +00:00
Alexey Shekhirin
3538c53317 feat(trie): more logs for proofs (#13843) 2025-01-27 11:39:27 +00:00
Matthias Seitz
79a5217c07 chore: use asref path for open db (#13998) 2025-01-27 11:14:38 +00:00
Alexey Shekhirin
6342162826 feat(mdbx): record backtrace of read transactions and log on timeout (#13707) 2025-01-27 10:53:06 +00:00
Dan Cline
bdb3969287 feat: add make profiling to Makefile (#13996) 2025-01-27 09:31:17 +00:00
Roman Krasiuk
07e9c1b22e chore(net): derive Arbitrary on RequestPair (#13997) 2025-01-27 09:29:33 +00:00
Matthias Seitz
8a453ba1ed chore: enable no-std for execution types crate (#13986) 2025-01-25 17:27:52 +01:00
planetBoy
139fe14e5f chore: fix spelling issues (#13978) 2025-01-25 17:10:35 +01:00
Julian Meyer
68a1de799d chore: fix error messages for request validation (#13983) 2025-01-25 11:01:56 +00:00
cakevm
280b6bf1b7 chore: Changed visibility of Cli struct attributes to pub for op-reth (#13985) 2025-01-25 10:31:12 +00:00
Julian Meyer
60f9277dc5 feat: validate empty execution requests for OP (#13980) 2025-01-24 21:54:35 +00:00
Matthias Seitz
a087731199 perf: add eth response backpressure (#13971)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-01-24 21:20:22 +00:00
Matthias Seitz
049543655a feat: impl inmemory for vec (#13964) 2025-01-24 21:00:18 +00:00
Matthias Seitz
5dac5cfc62 chore!:unify trait fn naming for recovery (#13981) 2025-01-24 20:56:46 +00:00
Isaac Izard
61ae871d94 chore: update links crates/ethereum-forks/src/hardfork/ethereum.rs (#13977) 2025-01-24 19:36:14 +00:00
Matthias Seitz
d401dc5e73 feat: add a helper to create txenv (#13979) 2025-01-24 19:29:09 +00:00
Matthias Seitz
abcfbfda72 test: Add ValidBlocks and InvalidBlocks blockchain tests (#13969)
Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2025-01-24 20:37:37 +01:00
Tony Bo
fe9e788cf4 feat: Add open db transaction graph in grafana dashboard (#13611) 2025-01-24 18:33:46 +00:00
Roman Krasiuk
0cd63cdf4b test: reenable test_state_root_task test (#13911)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-01-24 18:28:02 +00:00
Arsenii Kulikov
203fed0f64 feat: add Spec generic for EvmEnv (#13975) 2025-01-24 15:59:55 +00:00
Matthias Seitz
621b30f037 feat: add clone_transactions convenience fn (#13962) 2025-01-24 14:02:50 +00:00
Arsenii Kulikov
7e9d6ae454 chore: remove fill_ APIs (#13970) 2025-01-24 12:35:49 +00:00
Arsenii Kulikov
006eea0c34 feat: generic TxEnv (#13957) 2025-01-24 10:48:44 +00:00
Léa Narzis
1296bacb87 refactor: change latest block == parent hash by block window distance check (#13961) 2025-01-24 09:43:06 +00:00
Matthias Seitz
8a3d9b3899 docs: receipts cache touchups (#13963) 2025-01-24 09:48:11 +01:00
Dan Cline
ee7820f2e3 fix: only increment proofs_processed for state update proofs results (#13956) 2025-01-23 23:04:18 +00:00
Moe Mahhouk
b97d9b4d2e chore: refine the reproducible builds and add it to the release workflow (#13947) 2025-01-23 17:47:01 +00:00
DevEloperate
28cf43cdcc docs: fix broken links in docs/crates/network.md (#13948) 2025-01-23 17:17:34 +00:00
Dan Cline
9bbfb6096e chore: add comment to crunchy pin (#13949) 2025-01-23 17:02:04 +00:00
Dan Cline
a162571bd4 chore: use more block_num_hash in insert_block_inner (#13943) 2025-01-23 16:39:16 +00:00
DevOrbitlabs
9039909a78 feat: integrate request validation in EnginveValidator (#13858)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-01-23 16:11:30 +00:00
Dan Cline
187634fd2f feat: add sealed_block method to ExecutedBlock (#13945) 2025-01-23 15:56:50 +00:00
Dan Cline
5a40c68c73 chore: do not clone already recovered block (#13944) 2025-01-23 15:56:24 +00:00
Dhanraj Avhad
cc8558fa11 feat(test-utils): Make MockEthProvider generic over Transaction (#13853)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-22 23:18:43 +00:00
Matthias Seitz
69375780f5 chore: rm unused capabilities code (#13935) 2025-01-22 23:15:21 +00:00
Matthias Seitz
3e181ab53a chore: use alloy-eip2124 directly (#13941) 2025-01-22 23:14:42 +00:00
Matthias Seitz
4dcc135495 feat: add NetworkManager::eth (#13936) 2025-01-22 23:05:36 +00:00
Matthias Seitz
24c5234a50 chore: disable default features for engine primitives (#13939) 2025-01-22 23:04:48 +00:00
Dan Cline
a3015c8a3a feat(sdk): introduce PrimitivesTy helper type (#13933) 2025-01-22 22:29:33 +00:00
Dan Cline
05b4205243 fix: temporarily pin crunchy (#13938) 2025-01-22 21:40:34 +00:00
Dan Cline
f64dd8a977 chore: remove some unnecessary direct imports (#13934) 2025-01-22 22:08:48 +01:00
Léa Narzis
6c762565b8 refactor: finalize proofs mod move from reth-primitives to reth-primitives-traits (#13875) 2025-01-22 20:15:47 +00:00
Emilia Hane
3b0e70a512 chore(ci): Exclude reth-payload-builder from wasm check (#13932) 2025-01-22 20:13:59 +00:00
Emilia Hane
3e961806b6 feat(no_std): Add no_std support for reth-payload-primitives (#13922) 2025-01-22 20:12:36 +00:00
Emilia Hane
5238486882 feat(no_std): Add no_std support for reth-ethereum-engine-primitives (#13931) 2025-01-22 20:11:59 +00:00
Emilia Hane
97851754df feat(no_std): Add no_std support for reth-engine-primitives (#13924) 2025-01-22 20:11:34 +00:00
Matthias Seitz
66fb8c8cac chore: remove network dep from tree (#13921) 2025-01-22 20:10:53 +00:00
0x
2ab2b6ef88 chore: 404 link layout.md (#13920) 2025-01-22 18:38:02 +00:00
Matthias Seitz
22a5c10a07 chore: retry empty responses (#13923) 2025-01-22 18:29:22 +00:00
Matthias Seitz
82a0734c19 chore: use flz estimate (#13930) 2025-01-22 18:24:25 +00:00
Arsenii Kulikov
d10dfaca1e fix(engine): attempt to advance persistence after it finished (#13928) 2025-01-22 17:22:26 +00:00
Matthias Seitz
073aee175f chore: replace maili deps with op-alloy (#13927) 2025-01-22 17:58:06 +01:00
Matthias Seitz
56f2c43582 tests: misc p2p blockbody roundtrip tests (#13925) 2025-01-22 16:21:05 +00:00
DevOrbitlabs
926ad2a639 feat: unify recover fn result type (#13897)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-22 14:58:36 +00:00
rebustron
5170112c1f chore: remove broken link layout.md (#13919) 2025-01-22 15:58:15 +01:00
Arsenii Kulikov
23ebf96188 chore: move receipts pruning to provider (#13886) 2025-01-22 13:41:13 +00:00
Federico Gimenez
cd44fc3d09 chore(ci): set --rpc.eth-proof-window for kurtosis-op (#13916) 2025-01-22 11:04:19 +00:00
Matthias Seitz
b263b5c62d chore: decrease private access (#13912) 2025-01-22 02:32:04 +01:00
Matthias Seitz
901240877a feat: add transactions_iter helper (#13910) 2025-01-21 23:37:51 +00:00
Dan Cline
6d2648dc1b feat: restore custom build profiles in RETH_BUILD_PROFILE (#13906) 2025-01-22 00:03:18 +01:00
Roman Krasiuk
d2b454236f perf(root): untangle the state root task (#13898) 2025-01-21 22:46:34 +00:00
joshieDo
6c3b1b8bcd feat: add S3Stage downloader (#13784) 2025-01-21 18:10:02 +00:00
Dan Cline
ace28d8a90 chore: move and integrate ConfigureEvmFor (#13896) 2025-01-21 17:56:17 +00:00
Matthias Seitz
c1fd0ce4a1 chore: use builtin launch fn for opnode (#13900)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-01-21 17:52:03 +00:00
Matthias Seitz
b63dc2ad89 chore: move SealedHeader::cloned to &H (#13904) 2025-01-21 15:49:10 +00:00
Matthias Seitz
b0b1d9d8df feat: add transactions_recovered iter (#13903) 2025-01-21 15:49:00 +00:00
Julian Meyer
6dabd5244e feat: implement Optimism builder DA limits (#13757)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-21 13:29:02 +00:00
joshieDo
0a5de2fdae feat: add StaticFileBlockWithdrawals to db-model (#13894) 2025-01-21 13:25:18 +00:00
Matthias Seitz
3317ea1f2c docs: cleanup discv4 docs (#13884) 2025-01-21 13:53:03 +01:00
Dan Cline
c4b147c031 chore: move state root task result handling to fn (#13892)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2025-01-21 11:53:17 +00:00
Matthias Seitz
50dae68dce chore: rm legacy helper traits (#13895) 2025-01-21 00:34:52 +00:00
Matthias Seitz
21761ad497 perf: check block cache for requested header (#13890) 2025-01-20 20:09:31 +00:00
Matthias Seitz
93d6f807c0 perf: lift chainspec call (#13889) 2025-01-20 20:07:08 +00:00
Matthias Seitz
64214fd186 chore: deprecate recoveredtx alias (#13887) 2025-01-20 18:07:14 +00:00
Dan Cline
1e71002056 feat: add state_hook_sender fn on StateRootTask (#13885) 2025-01-20 17:07:56 +00:00
Matthias Seitz
7483c1e292 chore: mark ecrecovered types as deprecated (#13882) 2025-01-20 15:46:36 +00:00
Dan Cline
ca63696779 chore: move node builder trait helpers to separate module (#13883) 2025-01-20 15:46:26 +00:00
Matthias Seitz
390165a024 chore: misc asset cleanup (#13881) 2025-01-20 15:04:35 +00:00
Federico Gimenez
a1da528ca5 chore(ci): add failing rpc-compat test to hive expected failures (#13880) 2025-01-20 14:57:11 +00:00
Matthias Seitz
28f2ebe7a0 chore: use correct compressed size estimation fn (#13876) 2025-01-20 13:35:26 +00:00
Dan Cline
6cc660c7f0 feat: add ConfigureEvmFor, ConfigureEvmEnvFor helper traits (#13865) 2025-01-20 12:26:45 +00:00
Léa Narzis
d2ad477b0e refactor: mv proofs mod to reth-primitives-traits and split tests (#13871) 2025-01-20 12:18:29 +00:00
joshieDo
f527b5a60d feat: get BlockMeta table values from static file or database (#13844) 2025-01-20 11:18:50 +00:00
Arsenii Kulikov
f28c71c006 chore: simplify evm setup (#13864) 2025-01-19 20:07:20 +00:00
github-actions[bot]
88de40a678 chore(deps): weekly cargo update (#13866)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2025-01-19 18:02:27 +00:00
Federico Gimenez
8197894090 chore(ci): remove eth_feeHistory from hive's rpc-compat expected failures (#13869) 2025-01-19 12:59:54 +00:00
Matthias Seitz
4d17cde9f5 fix(net): increment in counter after peer's state is marked as in (#13863) 2025-01-18 19:29:54 +00:00
Matthias Seitz
20a3a6a4cb chore: rm pooled transaction tests (#13860) 2025-01-18 15:53:53 +00:00
Matthias Seitz
f59865b682 chore: use exported oncelock (#13859) 2025-01-18 15:46:58 +00:00
Arsenii Kulikov
c46f23f8de feat: add Evm trait (#13823) 2025-01-18 15:42:39 +00:00
Matthias Seitz
cef0c927c9 test: rm reth-pirmitives block tests (#13850) 2025-01-18 12:45:44 +00:00
Matthias Seitz
264105e177 chore: phase out reth-primitives from eth-wire (#13855) 2025-01-18 11:55:27 +00:00
Matthias Seitz
bcf4f1bae3 test: move reth-primitives tx tests (#13852) 2025-01-18 11:41:38 +00:00
Steven
43f3822e9a feat: Track DA cost in Op Pooled transactions (#13806)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-18 11:20:19 +00:00
Dan Cline
5db01290f8 chore: remove redundant strategy fn impls (#13838)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-01-17 13:03:11 +00:00
Matthias Seitz
0cc1ff0a0a feat: expose additional eth functions on engine api (#13837) 2025-01-17 12:49:11 +00:00
Alexey Shekhirin
12d3fbefff fix(trie): check branch node masks if store_in_db_trie is None (#13828) 2025-01-17 12:49:07 +00:00
Roman Krasiuk
f66c7cc80d chore(trie): make rlp_node fns pub (#13818) 2025-01-17 12:46:16 +00:00
DaniPopes
a505f49147 ci: install mold as the linker (#13842) 2025-01-17 12:42:44 +00:00
πa
d9ef7f6df6 chore: not panic on RpcBlockProvider (#13841) 2025-01-17 12:42:03 +00:00
joshieDo
a8c883c6b6 feat: extend BlockBodyIndicesProvider with block_body_indices_range (#13829) 2025-01-17 11:21:05 +00:00
Alexey Shekhirin
43bd94ac4e fix(trie): reveal blinded node along with masks in sparse trie (#13827) 2025-01-17 11:00:57 +00:00
Roman Krasiuk
4147bd0dc9 chore(trie): derive Clone on noop cursor factories (#13840) 2025-01-17 10:48:46 +00:00
Dan Cline
83b5619889 fix: pin clippy to nightly-2025-01-16 (#13839) 2025-01-17 06:12:23 +00:00
Alexey Shekhirin
64197c0064 chore(trie): branch node has only one child log (#13836) 2025-01-17 01:26:57 +01:00
Arsenii Kulikov
8efe441cc0 feat: use reth-ethereum-primitives (#13830) 2025-01-17 01:22:21 +01:00
Alexey Shekhirin
7e972ea23d fix(trie): use correct store_in_db_trie value for sparse extension nodes (#13826) 2025-01-16 16:45:23 +00:00
Dhruv Agarwal
a90ecd9057 feat(cli): added header request retry in stages run command (#13816) 2025-01-16 16:24:12 +00:00
youyyytrok
9b68cf88c7 chore: rm broken link in hooks README.md (#13814) 2025-01-16 16:05:38 +00:00
DaniPopes
b10b438765 ci: use reusable cargo update workflow (#13824) 2025-01-16 16:04:08 +00:00
Ashish Thapa
13ecd6afa1 Nit: replace block and sender with RecoveredBlock in ExecutedBlock (#13804)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-16 15:56:16 +00:00
Debjit Bhowal
7df983802e Higher limit for total_difficulty.bit_len (#13820) 2025-01-16 15:44:15 +00:00
Alexey Shekhirin
2c21edfed5 fix(trie): empty sparse trie branch node masks (#13825) 2025-01-16 15:10:09 +00:00
Alexey Shekhirin
590496d0e4 chore(trie): less logs for sparse branch node updates (#13811) 2025-01-16 13:47:18 +00:00
Arsenii Kulikov
265f783c22 refactor: always create Evm through ConfigureEvm (#13812) 2025-01-16 11:40:45 +00:00
Alexey Shekhirin
f1f9d5a652 fix(trie): delete removed node from updated nodes in sparse trie (#13822) 2025-01-16 11:09:37 +00:00
Roman Krasiuk
1948e0f79c feat(trie): sparse trie accessors (#13815) 2025-01-16 09:30:53 +00:00
Alexey Shekhirin
bbc592c5bf fix(trie): remove branch nodes in sparse trie that shouldn't be stored (#13808) 2025-01-16 08:47:17 +00:00
Alexey Shekhirin
ac73b52079 fix(trie): remove branch nodes from updates if it was deleted (#13813) 2025-01-16 08:47:14 +00:00
Roman Krasiuk
11bd9dded3 fix(builder): prague blob params activation (#13810) 2025-01-15 18:32:13 +00:00
Arsenii Kulikov
fd52b634ed chore: trim ConfigureEvm trait (#13807) 2025-01-15 18:31:16 +00:00
Arsenii Kulikov
d5978a78b4 refactor: use EvmEnv when setting up Evm (#13800) 2025-01-15 16:09:03 +00:00
Moe Mahhouk
f2bf02413f chore: add distroless minimal base image (#13788) 2025-01-15 02:38:53 +00:00
Matthias Seitz
4b8714d61a fix: correct trusted peer excemptions (#13801) 2025-01-15 02:04:06 +00:00
Matthias Seitz
83b2fb9b41 feat: add SealedBlock in reth-primitives-traits (#13735) 2025-01-15 01:12:43 +00:00
joshieDo
1267718c7e feat: introduce StaticFileSegment::BlockMeta (#13226) 2025-01-14 23:47:28 +00:00
Arsenii Kulikov
46f4d73c4d chore: remove DefaultExternalContext AT (#13797) 2025-01-14 22:40:22 +00:00
Dan Cline
d318aa3c85 fix: track local senders better during truncation (#13768)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2025-01-14 22:04:44 +00:00
Alexey Shekhirin
c4a591d16c fix(tree): use in memory trie cursor for trie updates comparison in tree (#13789) 2025-01-14 20:22:46 +00:00
Arsenii Kulikov
b4610a04e6 feat: add receipt builder for OpExecutionStrategy (#13792) 2025-01-14 13:11:18 +00:00
Matthias Seitz
feccf3595b chore: bump revm 19.3 (#13793) 2025-01-14 14:25:35 +01:00
joshieDo
df00877b70 fix(cmd): initialize StaticFileProducer with config PruneModes unwind command (#13791) 2025-01-13 21:54:53 +00:00
Alexey Shekhirin
d761ac42f5 feat(trie): blinded providers trace logs (#13786) 2025-01-13 17:24:37 +00:00
Ocheretovich
6ac5785b35 docs: edited the "deny" shield link. (#13779) 2025-01-13 16:29:24 +00:00
int88
6f7c445742 chore: remove unused p2p error type (#13785) 2025-01-13 15:56:19 +00:00
Arsenii Kulikov
749facc477 feat: add evm_for_block helper to simplify EVM setup (#13787) 2025-01-13 15:25:37 +00:00
Roman Krasiuk
ac25fd8c18 feat(engine): validate execution requests (#13685) 2025-01-13 10:40:46 +00:00
github-actions[bot]
4e3810a17c chore(deps): weekly cargo update (#13776)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-13 05:21:47 +00:00
Tien Dao
75ee913f0b refactor: update receipt codec from HackReceipt to OpGethReceipt (#13738) 2025-01-13 05:21:25 +00:00
Hai | RISE
23526646cb perf(op-receipts): reuse l1_block_info for multiple receipts (#13781) 2025-01-13 05:09:02 +00:00
Dan Cline
567d5c60e6 feat: add snmalloc support (#13771) 2025-01-12 02:43:24 +00:00
Matthias Seitz
cc84f83b6c fix: apply legacy cleanup to opnode (#13775) 2025-01-11 19:59:13 +01:00
Tien Nguyen
8e7768db2a feat: integrate EngineArgs into NodeCommand (#13748)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-11 17:27:11 +00:00
Roman Krasiuk
6ef86e9340 feat(rpc): setters for TransportRpcModules (#13773) 2025-01-11 15:35:40 +00:00
Tien Dao
ebf300d236 test(validation): add tests for EIP-7702 transaction filtering in EthMessageFilter (#13756) 2025-01-11 16:36:20 +01:00
Federico Gimenez
5a23708eb0 chore: make clippy happy (#13772) 2025-01-11 11:15:06 +00:00
Matthias Seitz
ca30702f85 test: add json genesis test (#13770) 2025-01-10 23:04:37 +00:00
Alexey Shekhirin
1bf8d50461 feat(tree): when comparing trie updates, check the database (#13765) 2025-01-10 15:56:20 +00:00
Alexey Shekhirin
c601712147 feat(tree): --engine.state-root-task-compare-updates (#13763) 2025-01-10 12:30:50 +00:00
Alexey Shekhirin
69f9e1628a fix(trie): sparse trie tree masks (#13760) 2025-01-10 11:28:54 +00:00
Dan Cline
986c75434a chore(tree): use MultiProofTargets for PrefetchProofs (#13717) 2025-01-09 20:27:50 +00:00
Roman Krasiuk
1f78b9e7e4 chore(trie): reveal witness by ref (#13751) 2025-01-09 15:34:57 +00:00
Federico Gimenez
4a8c88f4d0 chore(engine): use Arc<rayon::ThreadPool> for StateRootTask (#13755) 2025-01-09 14:25:00 +00:00
Matthias Seitz
bf65ed45c5 chore!: make senders fields private (#13752) 2025-01-09 14:58:09 +01:00
Roman Krasiuk
66f934b8d0 chore(trie): simplify blinded provider (#13753) 2025-01-09 13:23:31 +00:00
Roman Krasiuk
017217f3eb feat(trie): add leaf value retrieval methods to SparseStateTrie (#13750) 2025-01-09 11:40:45 +00:00
Matthias Seitz
383eb2331c chore: integrate Test trait for sealed types (#13746) 2025-01-09 09:06:28 +01:00
Dan Cline
d0684cf8bb chore: remove outdated as _; imports (#13744) 2025-01-09 05:32:51 +01:00
Dan Cline
fd092a267e chore: remove Block generic from apply_pre_execution_changes (#13743) 2025-01-09 05:32:22 +01:00
Hai | RISE
ceaa3d3705 perf(persistence): reuse cursor for updating history indices (#13622) 2025-01-09 05:31:53 +01:00
Matthias Seitz
99932e4377 feat: add Test traits for Header and Block (#13741) 2025-01-09 05:16:41 +01:00
Hai | RISE
875c45bc31 fix(ci): install missing deps for wasm build checks (#13745) 2025-01-09 03:42:37 +00:00
Matthias Seitz
28d52312ac feat: add SealedBlock::clone_sealed_header (#13739) 2025-01-08 17:33:56 +00:00
Dan Cline
d336ceb27e perf: introduce moka cached state provider (#12214) 2025-01-08 16:11:20 +00:00
Arsenii Kulikov
73ed3ea440 chore: add Hardfork::boxed (#13737) 2025-01-08 15:32:12 +00:00
Matthias Seitz
f2521b54de chore: misc SealedBlock prep (#13736) 2025-01-08 16:07:52 +01:00
Matthias Seitz
b5734bfb65 chore: rm last mentions of deprecated crates (#13734) 2025-01-08 14:40:30 +00:00
Matthias Seitz
6bfb3bb6f8 chore: rm redundant std cfgs (#13733) 2025-01-08 14:30:24 +00:00
Arsenii Kulikov
8f2ecc44e8 refactor: reduce Hardforks trait usage (#13728) 2025-01-08 14:02:49 +00:00
Matthias Seitz
9d51260fbc chore: rename error types (#13732) 2025-01-08 15:00:32 +01:00
Matthias Seitz
53ccb5d465 chore: rm blockchaintree api crate (#13731) 2025-01-08 14:56:15 +01:00
Matthias Seitz
4d3cd2f248 chore: rm blockchaintree dep from errors (#13730) 2025-01-08 14:40:18 +01:00
Matthias Seitz
cb22b17b3e chore: rm blockchaintree dep from engine-tree (#13729) 2025-01-08 14:34:28 +01:00
Roman Krasiuk
bd4947112d perf(trie): set trie mask bits directly (#13724) 2025-01-08 12:49:39 +00:00
Matthias Seitz
a3f8a9d38b chore!: rename blockchainprovider2 (#13727) 2025-01-08 13:52:17 +01:00
Matthias Seitz
052a730e3c chore!: rm legacy blockchain tree crate (#13726) 2025-01-08 13:51:51 +01:00
Matthias Seitz
2f94aeebed chore!: rm legacy blockchain provider (#13725) 2025-01-08 13:35:07 +01:00
Matthias Seitz
dcd4b24ae1 chore!:rm beacon consensus crate (#13723) 2025-01-08 13:13:41 +01:00
Matthias Seitz
baf92e33fb chore: rm beacon consensus deps everywhere (#13722) 2025-01-08 12:49:54 +01:00
Matthias Seitz
856479bfcf chore: rm unused hooks (#13721) 2025-01-08 12:21:47 +01:00
Matthias Seitz
d9ab9ca4d4 chore: rm beacon consensus dep from engine-tree (#13720) 2025-01-08 11:46:03 +01:00
Roman Krasiuk
91fef2904a feat: SparseStateTrie::reveal_witness (#13719) 2025-01-08 10:19:28 +00:00
Matthias Seitz
7876a89191 chore: move beacon consensus engine event (#13718) 2025-01-08 00:36:27 +00:00
Emilia Hane
93667e0820 feat(no-std): add no_std support for reth-optimism-consensus (#13692) 2025-01-07 23:51:58 +00:00
Matthias Seitz
fb6902880c chore: rm beacon consensus deps (#13716) 2025-01-07 22:31:04 +00:00
Matthias Seitz
ccaf9da732 chore: relax arb for sealedwithsenders (#13715) 2025-01-07 22:18:10 +00:00
Matthias Seitz
818eb7d408 chore: move beacon handle type (#13714) 2025-01-07 21:36:33 +00:00
Matthias Seitz
027f80ebb7 chore: remove blockchaintree dep from reth bin (#13712) 2025-01-07 21:28:40 +00:00
Matthias Seitz
760062288e chore: remove rayon from reth primitives (#13711) 2025-01-07 21:00:48 +00:00
Matthias Seitz
7fca8ceb3f feat: add standalone rayon recovery functions (#13710) 2025-01-07 20:21:05 +00:00
DevOrbitlabs
35392bd8e9 chore: make SealedBlock.header field private (#13646)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-07 19:44:39 +00:00
James Prestwich
3e980e61d8 Discussion draft: change DB Writer to take value references (#13672) 2025-01-07 17:38:09 +00:00
Matthias Seitz
2b301aa102 feat: use engine launcher as default (#13709) 2025-01-07 17:16:21 +00:00
Tin Chung
f7f2012156 refactor: Consensus trait error type (#13655) 2025-01-07 16:11:42 +00:00
Emilia Hane
b2c00418df fix(ci): Enable wasm check for reth-optimism-primitives (#13693)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-07 15:52:50 +00:00
Alexey Shekhirin
9127d0e0ff feat(root): compare trie updates of state root task with regular root (#13704) 2025-01-07 14:36:02 +00:00
Léa Narzis
0d5c0d2701 refactor: move LazyLock and OnlyLock exports to primitives traits (#13682) 2025-01-07 14:28:57 +00:00
Matthias Seitz
4d12dcda7c chore: make engine-tree independent of blockchaintree (#13705) 2025-01-07 14:51:31 +01:00
Matthias Seitz
61bbca1ae0 chore: reduce blockchaintree usage (#13702) 2025-01-07 14:51:11 +01:00
Matthias Seitz
3e86bb54d4 docs: add additional BasicPayloadJob docs (#13706) 2025-01-07 14:50:56 +01:00
Matthias Seitz
d90d745aae chore: remove reth-primitives dep from op-primitives (#13699) 2025-01-07 12:02:46 +00:00
kien-rise
c74b8f0bfc perf: relax condition in seek_inner (#13614) 2025-01-07 11:41:50 +00:00
Federico Gimenez
107dfaeaa9 feat(engine): wire StateRootTask in EngineApiTreeHandler (#12639)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2025-01-07 10:27:16 +00:00
Matthias Seitz
3212af2d85 chore: release 1.1.5 (#13700) 2025-01-07 10:15:15 +01:00
Matthias Seitz
c697543af0 chore: relax tryfrom impl (#13691) 2025-01-06 23:19:11 +00:00
Matthias Seitz
28761dbffe chore: rm usage of PooledTransactionsElementEcRecovered alias (#13690) 2025-01-06 22:26:46 +00:00
Matthias Seitz
15b50dac23 chore: disable reth-primitives std default feature (#13687) 2025-01-06 22:21:47 +00:00
Matthias Seitz
9bda8f0588 Revert "feat(no-std): enable no_std support for op consensus rules" (#13689) 2025-01-06 23:04:42 +01:00
Matthias Seitz
6103bd9a6e chore: no-std consensus common (#13686) 2025-01-06 22:53:40 +01:00
Emilia Hane
89a93c5570 feat(no-std): enable no_std support for op consensus rules (#13684) 2025-01-06 22:48:45 +01:00
Matthias Seitz
28fde3fbf5 chore: move signedtx ext trait (#13677) 2025-01-06 20:53:03 +00:00
Matthias Seitz
5e659b3130 chore: move accesslist tests (#13680) 2025-01-06 20:23:27 +00:00
Alexey Shekhirin
721a581180 fix(tree): do not reveal nodes twice in sparse trie (#13674) 2025-01-06 20:20:50 +00:00
Dan Cline
50f8c6d93e chore: remove optimism feature from execution-types tests (#13676) 2025-01-06 20:20:05 +00:00
Matthias Seitz
895dda5312 chore: rm uneccessary serde mod (#13681) 2025-01-06 20:06:43 +00:00
Matthias Seitz
682b2b2cd3 chore: remove duplicated compact consts (#13679) 2025-01-06 19:19:39 +00:00
Matthias Seitz
4d191696ba chore: use secp fns directly (#13675) 2025-01-06 18:32:42 +00:00
bendanzhentan
20e003f9b4 feat(primitives): re-export alloy Recovered (#13670) 2025-01-06 17:20:58 +00:00
Alexey Shekhirin
fbf7430d9b chore(root): log multiproof calculation (#13673) 2025-01-06 17:04:58 +00:00
Matthias Seitz
09f2f4adfe chore: bump revm 19.2 (#13667) 2025-01-06 17:37:40 +01:00
joshieDo
bd345378b6 chore: remove unused WithdrawalsProvider::latest_withdrawal (#13671) 2025-01-06 16:15:09 +00:00
Tony Bo
873009fd68 refactor: Remove standalone from_recovered functions and make part of TransactionCompat trait (#13653) 2025-01-06 14:52:42 +00:00
DevOrbitlabs
923a805e1e chore(consensus): Cut down on reth-primitives::TransactionSigned usage (#13659) 2025-01-06 14:34:31 +00:00
Tuan Tran
20d3fa6bbb feat: rename reth_primitives::RecoveredTx functions to match alloy::Recovered (#13663) 2025-01-06 14:27:43 +00:00
DaniPopes
d10af50e45 ci: prettify hive/parse.py (#13668) 2025-01-06 13:53:58 +00:00
Alexey Shekhirin
49d1b50ca5 chore(trie): parallel storage proof should not error on closed recv (#13448) 2025-01-06 11:06:10 +00:00
Udoagwa Franklin
f4ce10b7f0 feat: Implement "Add BlockBody::transaction_count helper function" (#13660) 2025-01-05 14:31:20 +00:00
github-actions[bot]
bfa97c1522 chore(deps): weekly cargo update (#13657)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2025-01-05 13:16:59 +00:00
Matthias Seitz
7c70e88634 chore: mark op chainspec riscv (#13654) 2025-01-04 18:04:48 +01:00
Matthias Seitz
72eabe0579 chore: replace trie-common dep with alloy-trie (#13652) 2025-01-04 18:04:40 +01:00
Ties
2c94d7bbaa docs(ci): remove moved deny workflow (#13645) 2025-01-04 13:48:04 +00:00
Tomas Milukas
c4f8a64d9a integrate EIP-7840 in chainspec (#13605) 2025-01-04 11:20:58 +00:00
Matthias Seitz
b18b0ee848 chore: use generics for RecoveredTx (#13650) 2025-01-04 11:14:24 +00:00
Matthias Seitz
fc9d95a4d1 chore: use HashMap::from_iter (#13649) 2025-01-04 11:43:26 +01:00
Glow
86399e2aea feat: remove PartialEq+Eq from ProviderError and all others affected (#13592)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-04 10:27:35 +00:00
Akase Haruka
91d09de440 fix: no_std case hashmap imports (#13617) 2025-01-04 09:49:06 +00:00
Matthias Seitz
8befda56b0 feat: add helper iter for tx hashes (#13638) 2025-01-04 10:51:00 +01:00
Matthias Seitz
9b44e2aaf9 chore: rm another payload conversion fn (#13637) 2025-01-03 17:16:07 +00:00
Matthias Seitz
dbff11aa70 test: move tests out of reth-primitives (#13636) 2025-01-03 17:04:18 +00:00
Matthias Seitz
b84a488851 chore: rm unused recovery fns (#13634) 2025-01-03 16:41:07 +00:00
Matthias Seitz
9923e5ac5b chore: rm some direct header access (#13633) 2025-01-03 16:40:00 +00:00
DevOrbitlabs
8f854cbbb6 feat: merge BlockBodyTxExt trait into BlockBody (#13613)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2025-01-03 15:57:59 +00:00
Matthias Seitz
afdffadafd chore: use alloy TransactionMeta (#13632) 2025-01-03 15:49:22 +00:00
Matthias Seitz
5b050feca4 chore: use alloy-eip2124 code (#13629) 2025-01-03 15:29:36 +00:00
Matthias Seitz
dbd4f0c4fe chore: make block field private (#13628) 2025-01-03 15:10:32 +00:00
Matthias Seitz
82013f46da chore: use more payload conversion fns (#13625) 2025-01-03 16:05:22 +01:00
Matthias Seitz
3c9139e30f chore: remove redundant payload fn (#13624) 2025-01-03 14:17:39 +01:00
Matthias Seitz
74de0d4068 chore: bump alloy 0.9.2 (#13623) 2025-01-03 12:50:13 +01:00
David Cardenas
355d868b6b chore: update license to 2025 (#13616) 2025-01-03 11:28:35 +01:00
Matthias Seitz
b69c2ebee0 chore: use native conversions for payload to block (#13608) 2025-01-02 16:20:28 +00:00
Roman Krasiuk
1b9bdcc253 fix: implement StateCommitmentProvider for BlockchainProvider (#13620) 2025-01-02 12:43:58 +00:00
Roman Krasiuk
6aaf6a5839 chore: lower file client bad message log verbosity (#13619) 2025-01-02 11:03:08 +00:00
Aurélien
c0a8a7b218 feat: handle Isthmus in revm_spec_by_timestamp_after_bedrock() (#13607) 2024-12-31 10:53:37 +00:00
Matthias Seitz
f163b3d3f9 feat: use alloy block types (#13518) 2024-12-31 09:30:15 +00:00
DaniPopes
9a062c0844 chore(bench): more determinism (#13603) 2024-12-31 02:42:07 +00:00
DaniPopes
c253d12af7 chore(deps): bump alloy-trie 0.7.8 (#13604) 2024-12-31 02:02:21 +00:00
Matthias Seitz
e9332f9cc9 chore: bump alloy 0.9.1 (#13602) 2024-12-30 23:05:10 +00:00
Matthias Seitz
0ac4475637 chore: add ChainSpec::from_genesis (#13601) 2024-12-30 21:52:05 +00:00
DevOrbitlabs
41104933c1 feat(metrics): Add cumulative transaction counters to improve observability (#12273)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-12-30 21:19:36 +00:00
Ragnar
5629ba0bb1 feat(bench): make benchmark inputs deterministic using fixed seed (#13586)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-12-30 21:11:27 +00:00
Matthias Seitz
0b135a2670 feat: update revm 19 alloy 09 (#13594) 2024-12-30 19:49:39 +01:00
Tien Dao
a6325c41e0 fix: net/nat retain https scheme for external (#13507) 2024-12-30 18:11:52 +00:00
Tien Dao
0b598cf407 fix(storage): update proptest configuration for deterministic bench runs (#13580) 2024-12-30 18:06:22 +00:00
Skylar Ray
00ad7f61d5 chore: correct typo docs (#13557)
Co-authored-by: futreall <ancur09@hotmail.com>
2024-12-30 17:26:07 +00:00
Tuan Tran
e79199a3be feat(tx-pool): make benchmark inputs deterministic (#13570) 2024-12-30 17:24:23 +00:00
DevOrbitlabs
8b60ff199d feat(engine): make benchmark inputs deterministic (#13536) 2024-12-30 17:15:01 +00:00
Matthias Seitz
c2a57287ce chore: include typename in assert (#13595) 2024-12-30 15:12:25 +01:00
Antonio Viggiano
343bee568f chore: use correct assert message (#13591) 2024-12-29 13:48:44 +00:00
Matthias Seitz
86e383f507 chore: simplify transaction to call request conversion (#13574) 2024-12-29 14:32:27 +01:00
Matthias Seitz
4649d6f041 chore: move payload builder types to standalone mod (#13593) 2024-12-29 14:23:47 +01:00
Gengar
e2abcc8b8f chore: use correct error message (#13587) 2024-12-29 11:28:48 +00:00
github-actions[bot]
bcfaad2ed4 chore(deps): weekly cargo update (#13589)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-12-29 11:19:56 +00:00
Matthias Seitz
711c5e812e chore: replace match with let else (#13585) 2024-12-28 18:44:54 +00:00
Matthias Seitz
ad89056e48 chore: disable chainspec default features (#13583) 2024-12-28 18:29:59 +01:00
Matthias Seitz
5a21bda0e8 chore: add no-std support for eth-wire-types (#13577) 2024-12-28 11:49:31 +00:00
Federico Gimenez
f9989c646a chore: update WASM build exclusion list (#13576) 2024-12-28 10:55:52 +00:00
Roman Krasiuk
91dd4171af chore(db): relax consistent view provider bound (#13566) 2024-12-27 19:16:26 +00:00
Matthias Seitz
55a972d94d chore: rm unused dep and add required (#13569) 2024-12-27 19:01:24 +00:00
Matthias Seitz
bc8d4fed1e fix: use correct vars (#13567) 2024-12-27 17:44:57 +01:00
Arsenii Kulikov
4994cdf0b0 feat: integrate OpPrimitives (#13556) 2024-12-27 15:11:11 +00:00
Roman Krasiuk
c35fe4ac54 fix(pool): oversized data error (#13565) 2024-12-27 15:10:14 +00:00
Roman Krasiuk
4ef9537e0a fix(pool): max init code error (#13564) 2024-12-27 15:07:10 +00:00
Hoa Nguyen
8f81f0ccf2 feat(net): make benchmark inputs deterministic (#13563) 2024-12-27 14:16:25 +00:00
Matthias Seitz
d644900a80 chore: simplify revm specId mapping (#13553) 2024-12-27 11:14:10 +00:00
Arsenii Kulikov
6049b6eb0a feat: use new engine in e2e tests for OP (#13558) 2024-12-27 11:00:21 +00:00
Hoa Nguyen
0933e1b07d feat: generic data primitives block builder test framework (#13522) 2024-12-27 09:41:29 +00:00
Federico Gimenez
df294e424b chore: make clippy happy (#13561) 2024-12-27 09:38:41 +00:00
Hai | RISE
56ce046317 perf: query bytecodes with &B256 to avoid copying code hash (#13559) 2024-12-26 14:58:56 +00:00
duvbell
951e2fd641 chore(version) Remove const_format dependency (#13504) 2024-12-25 12:41:32 +00:00
Hai | RISE
031f430b8f perf: query accounts with &Address to avoid copying address (#13554) 2024-12-25 12:31:28 +00:00
Hai | RISE
14c1c0be69 fix: typo in thread name (#13555) 2024-12-25 12:28:03 +00:00
greg
3fbb23035f fix: debug client etherscan (#13542)
Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-25 08:42:57 +00:00
Arsenii Kulikov
00c8ec7713 chore: deduplicate FillTxEnv traits (#13551) 2024-12-25 08:07:46 +00:00
Arsenii Kulikov
edd25118d0 chore: make EthStorage generic over transaction (#13549) 2024-12-25 07:59:59 +00:00
Arsenii Kulikov
90edbff5eb feat: impl compression traits for op primitives (#13550) 2024-12-25 07:58:48 +00:00
Arsenii Kulikov
9542573854 refactor: avoid using NoopTransactionPool in OP payload builder (#13547) 2024-12-25 07:57:53 +00:00
Arsenii Kulikov
cec31ad4aa feat: introduce OpPooledTransaction (#13548) 2024-12-25 07:48:14 +00:00
Arsenii Kulikov
c6e38bed5e feat: add more impls for OpTransactionSigned (#13546) 2024-12-24 19:54:52 +00:00
Arsenii Kulikov
41283d3db0 chore: relax cli bounds (#13543) 2024-12-24 16:43:52 +00:00
Arsenii Kulikov
c822337fd6 fix: Compact impl for OpTypedTransaction (#13544) 2024-12-24 15:36:42 +00:00
Matthias Seitz
a4410c83e8 feat: add L2EthApiExt trait (#13539) 2024-12-24 14:58:52 +01:00
Arsenii Kulikov
9773b85568 chore: relax EngineNodeLauncher bounds (#13540) 2024-12-24 13:04:05 +00:00
abdaze
f67625fd67 Add drop aware sender new type (fixes #13242) (#13495)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-24 10:13:20 +00:00
Arsenii Kulikov
934fd1f7f0 chore: make NodeEvent generic over NodePrimitives (#13534) 2024-12-23 23:31:59 +00:00
Arsenii Kulikov
af1c9b7614 refactor: integrate BuiltPayload::Primitives (#13484)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-23 23:06:47 +00:00
Matthias Seitz
4c1208e9d9 feat: add missing from impls (#13527) 2024-12-23 22:45:18 +00:00
Arsenii Kulikov
c6d42ad8c4 chore: move EventSender out of BeaconConsensusEngineHandle (#13533) 2024-12-23 22:44:19 +00:00
Arsenii Kulikov
6822d4f18b fix(simulate_v1): fill transactions sequentually (#13532) 2024-12-23 22:42:27 +00:00
DaniPopes
02ad280de6 chore(bench): fix non deterministic bench IDs (#13530) 2024-12-23 22:39:54 +00:00
Arsenii Kulikov
5ea8f31896 chore: reuse build_import_pipeline for OP (#13529) 2024-12-23 22:39:29 +00:00
Matthias Seitz
8579c08d63 fix: only skip last tx commit (#13528) 2024-12-23 20:36:00 +00:00
Steven
3e15ae387a feat: use batch tx validation in eth validator (#13490)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-23 18:59:19 +00:00
bendanzhentan
0d8efd8f69 chore: expose execution error of debug_cmd/merkle.rs (#13515) 2024-12-23 18:20:17 +00:00
wizard
50dfd301d3 Fix typo in the command example in the comments Update main.rs (#13524) 2024-12-23 19:33:16 +01:00
Arsenii Kulikov
855029b3ca feat: make ReceiptFileClient generic over receipt (#13523) 2024-12-23 17:33:12 +00:00
Matthias Seitz
ec21e895c1 chore: rm evmenvprovider trait (#13503) 2024-12-23 10:46:09 +00:00
Matthias Seitz
a0dcb0c522 chore: replace root fns with alloys (#13501) 2024-12-23 10:46:06 +00:00
DaniPopes
03a3391318 chore(bench): codspeed name workaround (#13519) 2024-12-23 10:45:41 +00:00
Matthias Seitz
d0e5e04e6b chore: mark chainspec as riscv compatible (#13517) 2024-12-23 10:01:51 +00:00
Matthias Seitz
517e5dbb06 chore: disable default std serde_json feature (#13513) 2024-12-23 10:46:35 +01:00
Matthias Seitz
6e140108f0 chore: disable op- default features (#13511) 2024-12-23 09:12:51 +01:00
Matthias Seitz
f5fdef895f chore: remove unused rand (#13512) 2024-12-23 08:59:32 +01:00
Matthias Seitz
3ab28a5907 chore: use imported b256 types (#13509) 2024-12-23 08:02:17 +01:00
Matthias Seitz
bafbaa351e ci: mark trie-common as risc compatible (#13510) 2024-12-23 08:02:01 +01:00
futreall
dcdde399ff chore: correct typos docs (#13505) 2024-12-23 07:35:07 +01:00
Tien Dao
d12392d084 docs: update https external link (#13508) 2024-12-23 07:10:17 +01:00
Matthias Seitz
1d0bb3d127 chore: disable itertools default features (#13500) 2024-12-22 20:31:12 +01:00
Matthias Seitz
0a5e430268 chore: bump alloy-trie and nybbles (#13502) 2024-12-22 20:12:08 +01:00
Matthias Seitz
369d74515a docs: use ots_ prefix (#13498) 2024-12-22 19:50:07 +01:00
Matthias Seitz
f791f39348 fix: reth-trie no_std case hashmap (#13497)
Co-authored-by: lightsing <light.tsing@gmail.com>
2024-12-22 18:47:53 +01:00
Arsenii Kulikov
2dd0ec340d chore: use NoopConsensus in CLI unwind (#13487) 2024-12-22 18:29:27 +01:00
loopersage
e0ba41d6d4 update links in crates/static-file/static-file/README.md (#13462) 2024-12-22 18:29:01 +01:00
Arsenii Kulikov
a163a5c19d feat: relax eth_callBundle bounds (#13485) 2024-12-22 18:28:25 +01:00
Arsenii Kulikov
05382ec387 chore: relax build_receipt (#13486) 2024-12-22 18:27:43 +01:00
github-actions[bot]
de477ba91a chore(deps): weekly cargo update (#13494)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-12-22 08:56:14 +00:00
crStiv
62bbc8baa7 fix typos (#13489) 2024-12-21 09:56:40 +00:00
Kunal Arora
82af170687 feat(ethereum-forks): remove total difficulty for hardfork check (#13362)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-12-20 15:28:05 +00:00
Matthias Seitz
dc6394b05b feat: add block traits for alloy types (#13470) 2024-12-20 15:27:45 +00:00
DaniPopes
d217c67129 ci: don't run codspeed in merge_group for now (#13483) 2024-12-20 14:21:09 +00:00
Kunal Arora
f29dd4c5cc chore(chain-state): MemoryOverlayStateProvider as alias (#13285)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2024-12-20 14:16:48 +00:00
Matthias Seitz
4e9f8c2747 chore: add missing from impl (#13477) 2024-12-20 14:03:07 +00:00
Federico Gimenez
a9f835defc chore(engine): remove allow dead code annotations in StateRootTask (#13480) 2024-12-20 13:09:28 +00:00
Matthias Seitz
42af22fc7c chore: enable std with arbitrary (#13479) 2024-12-20 12:16:42 +00:00
Emilia Hane
06806758db chore(consensus): Add docs ab soon deprecated BeaconConsensusEngine (#13439) 2024-12-20 12:15:59 +00:00
Matthias Seitz
d1dcc0b14b chore: remove revm default std (#13478) 2024-12-20 11:37:58 +00:00
Matthias Seitz
557ebef283 chore: use try into directly (#13476) 2024-12-20 11:36:51 +00:00
DaniPopes
09c64202b6 chore: fix unused import in net fetcher (#13474) 2024-12-20 11:36:26 +00:00
DaniPopes
a4f86b0e2d feat: set up codspeed (#13372) 2024-12-20 11:21:51 +00:00
Matthias Seitz
3966130844 chore: make trie-common no-std (#13473) 2024-12-20 11:16:09 +00:00
Matthias Seitz
30e8c78171 chore: rm async from state root from bench (#13472) 2024-12-20 10:50:03 +00:00
Matthias Seitz
378d80a22a chore: sprinkle a few track_caller (#13471) 2024-12-20 10:44:59 +00:00
Federico Gimenez
37ef2010f6 perf(engine): include selfdestructs in StateRootTask bench input (#13293)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2024-12-20 09:22:48 +00:00
Matthias Seitz
3c4a0dcfbd chore: fix reth-primitives traits test build (#13467) 2024-12-20 08:43:41 +00:00
Matthias Seitz
2183e49552 fix: use correct merge activation block for sepolia (#13466) 2024-12-20 08:42:54 +00:00
Kero
04af67879c chore: assert etl_config.file_size != 0 (#13435) 2024-12-20 08:30:41 +00:00
Alexey Shekhirin
1009607c49 fix(tree): destroyed accounts should not have storage in state root task (#13460)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-12-20 08:21:49 +00:00
Matthias Seitz
431c993cee chore: bump alloy 0.8.2 (#13459) 2024-12-20 08:56:01 +01:00
Arsenii Kulikov
058cfe2f98 chore: relax PayloadBuilderService bound (#13456) 2024-12-19 14:58:07 +00:00
Arsenii Kulikov
b271f0cc6d chore: relax pool maintain future (#13455) 2024-12-19 14:57:51 +00:00
Matthias Seitz
f3b1d0fbe7 meta: update code owners (#13457) 2024-12-19 15:48:22 +01:00
Matthias Seitz
7a3e6d8319 chore: use op feature for engine local (#13454) 2024-12-19 14:16:08 +00:00
Federico Gimenez
0a0a2d425d perf(engine): use ParallelProof::multiproof in StateRootTask (#13260) 2024-12-19 12:28:15 +00:00
Alexey Shekhirin
790a1e2898 fix(trie): memoize the hash of a revealed sparse node (#13233) 2024-12-19 11:51:37 +00:00
Federico Gimenez
d1b3dee5cb perf(trie): use local ThreadPool in Parallel::multiproof (#13416) 2024-12-19 11:48:12 +00:00
bendanzhentan
5639552f95 fix: drop and remove lockfile when test (#13437) 2024-12-19 11:34:00 +00:00
Matthias Seitz
320a0b9af9 feat: add manual broadcast in full (#13453) 2024-12-19 12:44:20 +01:00
Matthias Seitz
726d064afb chore: add missing getters (#13444) 2024-12-19 12:33:26 +01:00
Dan Cline
2eecf75c35 chore: remove redundant Send bounds for BlockReader types (#13452) 2024-12-19 10:57:13 +00:00
Dan Cline
d5a096f52f chore: remove redundant bound in EthRequestHandler (#13450) 2024-12-19 10:48:41 +00:00
Dan Cline
1364e25468 chore: add BlockBody associated type helpers (#13451) 2024-12-19 10:47:39 +00:00
Dan Cline
b26e9e0d1c chore: add helper trait for BlockReader tied to NetworkPrimitives (#13449) 2024-12-19 10:46:40 +00:00
Dan Cline
7250ca5d77 chore: add docs for removing from state in system calls (#13447) 2024-12-19 10:39:11 +00:00
Pelle
ef033abaf9 Removed manual implementations of core::error::Error (#13370)
Co-authored-by: router <router@router.ian>
2024-12-18 00:01:48 +00:00
SangyunOck(adi-dunamu)
c51a188c72 fix: return bool for set_max_da_size (#13423) 2024-12-17 22:01:47 +00:00
Roman Krasiuk
1e402fae87 feat(root): support proof prefetch in the task (#13428)
Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
2024-12-17 17:02:46 +00:00
Alexey Shekhirin
48fee88cf0 feat(engine): integrate state root task and comment it (#13265) 2024-12-17 16:01:39 +00:00
Roman Krasiuk
e663f959b8 chore(root): cleanup some debt (#13427) 2024-12-17 15:14:50 +00:00
Roman Krasiuk
abc4ff9779 fix(root): send error on failure to retrieve provider (#13426) 2024-12-17 14:39:25 +00:00
Matthias Seitz
30d48cc97f fix: call bundle recursion (#13425) 2024-12-17 13:33:14 +00:00
Federico Gimenez
dc7818cdf1 chore(ci): update hive rpc-compat expected failures (#13424) 2024-12-17 13:14:34 +00:00
cody-wang-cb
03649f256d Add holocene mainnet time (#13419) 2024-12-17 05:38:18 +00:00
Matthias Seitz
952eeae2a1 chore: bump alloy 0.8.1 (#13418) 2024-12-16 20:33:17 +00:00
Arsenii Kulikov
82f21a3e39 chore: move database to FullNodeTypes (#13414) 2024-12-16 15:54:13 +00:00
Alexey Shekhirin
cdf2904aed chore(engine): state root task debug logs (#13415) 2024-12-16 12:17:32 +00:00
Alexey Shekhirin
ce4e35c814 chore(engine): log about finished state updates in state root task (#13411) 2024-12-16 11:31:02 +00:00
Matthias Seitz
37ca54784b perf: rm redundant lookup (#13398) 2024-12-16 11:26:00 +00:00
Dan Cline
8b647d6ddf feat: introduce OpNetworkPrimitives (#13335) 2024-12-16 11:24:36 +00:00
Matthias Seitz
4405f1b3d3 perf: remove redundant fallback cleanup (#13401) 2024-12-16 11:06:34 +00:00
Roman Krasiuk
f36e369021 chore: extra data (#13410) 2024-12-16 03:58:36 +00:00
Matthias Seitz
091c5499ba chore: replace TrieAccount with alloy's (#13397) 2024-12-16 02:57:02 +00:00
Matthias Seitz
4e6ed39b6d chore: rm evm_env_for_raw_block function (#13403) 2024-12-16 02:55:17 +00:00
github-actions[bot]
c314aa6093 chore(deps): weekly cargo update (#13407)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-12-15 10:05:32 +00:00
Dan Cline
7e41a4b14a feat: impl SignedTransaction for OpPooledTransaction (#13406) 2024-12-14 23:02:34 +00:00
Kero
ed7b778bbe perf: skip lockfile exist checking when disable-lock enabled (#13355) 2024-12-14 20:18:37 +00:00
Arsenii Kulikov
d7397e6b8d chore: make ensure_well_formed_payload generic over transaction (#13404) 2024-12-14 17:21:42 +00:00
Matthias Seitz
ef24efece9 fix: break instead of return (#13402) 2024-12-14 17:20:55 +00:00
Matthias Seitz
9e2ebf1a6a chore: rm noisy debug_asserted traces (#13399) 2024-12-14 11:53:41 +01:00
Matthias Seitz
d50e8fa325 chore: downgrade noisy debugs (#13400) 2024-12-14 11:53:25 +01:00
Elvis
fd2491a3f1 Micro optimizations for pending hash fetching (#13220) 2024-12-14 09:00:08 +00:00
Ayodeji Akinola
b525231224 chore: Introduce helper type for evm cfg and env tuple (#13377) 2024-12-14 08:53:59 +00:00
joshieDo
16f6d7a0c3 chore: add test_segment_config_backwards (#13394) 2024-12-14 08:18:36 +00:00
Matthias Seitz
7874f0c65a chore: releax on canonical state change (#13392) 2024-12-13 22:56:28 +00:00
Arsenii Kulikov
138004bf3b chore: move serde bincode compat bound to NodePrimitives (#13393) 2024-12-13 19:33:53 +00:00
Matthias Seitz
fb962fcd1b chore: rm blob_versioned_hashes (#13390) 2024-12-13 18:48:57 +00:00
Matthias Seitz
a7ebd15d24 chore: unify unchecked naming (#13391) 2024-12-13 18:34:37 +00:00
Arsenii Kulikov
d087488479 feat: make block <-> payload conversions generic over transaction (#13389) 2024-12-13 18:25:31 +00:00
Federico Gimenez
ca4095a6a8 perf(engine): include spent calculation time in StateRootTask output (#13387) 2024-12-13 18:08:38 +00:00
Arsenii Kulikov
8e6ad7a7fe feat: make Block generic over transaction (#13388) 2024-12-13 18:08:10 +00:00
Kero
233dc7d35b fix(test): exclude lock file from storage files count (#13343) 2024-12-13 16:35:04 +00:00
Matthias Seitz
e89d171fc8 chore: use reth-primitives-traits-directly (#13386) 2024-12-13 15:13:33 +00:00
Matthias Seitz
b67e5a262c chore: remove PooledTransactionsElement alias (#13384) 2024-12-13 14:48:56 +00:00
Tomas Milukas
197f274b31 Propagating OpDAConfig to OpPayloadBuilder (#13375) 2024-12-13 14:14:48 +00:00
Matthias Seitz
ed2c69295d feat: relax on new head in validator (#13352) 2024-12-13 13:59:40 +00:00
Matthias Seitz
bed722b267 chore: ignore warnings from hickory (#13385) 2024-12-13 13:38:34 +00:00
Hai | RISE
df697f2cc0 perf(history_by_block_hash): reuse provider instead of creating two (#13382) 2024-12-13 13:38:30 +00:00
joshieDo
a69abd42f9 chore: add roundtrip test for StaticFileSegment filename (#13381) 2024-12-13 13:17:48 +00:00
Matthias Seitz
8c7d399240 chore: use pow for bsc p2p example (#13380) 2024-12-13 13:10:50 +00:00
Matthias Seitz
acc125a528 chore: rm pooledtx element type (#13286) 2024-12-13 12:58:40 +00:00
Matthias Seitz
088925c08a chore: misc sealed fn (#13378) 2024-12-13 12:49:32 +00:00
Matthias Seitz
f347977765 chore: use hash fn directly (#13379) 2024-12-13 12:28:48 +00:00
Arsenii Kulikov
fb649977a1 chore: small Requests clean up (#13374) 2024-12-13 10:08:02 +00:00
Alexey Shekhirin
008cb25d00 chore(trie): make MultiProofTargets a type alias (#13364) 2024-12-13 09:02:39 +00:00
Dan Cline
02f76b813e feat: remove default receipts for network components (#13371) 2024-12-12 23:44:55 +00:00
Matthias Seitz
1289a760a0 test: add 7702 mock tx variant (#13373) 2024-12-13 00:58:22 +01:00
Arsenii Kulikov
8f262e542b feat: ethereum-specific transaction (#13368) 2024-12-12 23:33:22 +00:00
DaniPopes
cfdd740a9b chore: unused dependencies warnings (#13369) 2024-12-12 22:06:34 +00:00
Arsenii Kulikov
a212e1b36f chore: remove the workaround for pre-bedrock OP transactions (#13365) 2024-12-12 21:27:12 +00:00
Matthias Seitz
d29bca811f docs: document fork_id behaviour (#13367) 2024-12-12 20:54:21 +00:00
Matthias Seitz
1535664cd7 chore: update holocene fns (#13366) 2024-12-12 21:37:28 +01:00
Arsenii Kulikov
80035c3e7b chore: move all secp256k1 helpers to primitives-traits (#13363) 2024-12-12 20:19:18 +00:00
Roman Krasiuk
124aae19bf chore(builder): remove extra data from basic payload generator (#13353)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-12 19:31:06 +00:00
Matthias Seitz
c816a3b758 chore: relax some op pool validator internals (#13358) 2024-12-12 18:05:18 +00:00
Matthias Seitz
55fa59952c chore: rm redundant return (#13361) 2024-12-12 17:52:32 +00:00
Matthias Seitz
a7fd82267a feat: relax maintain (#13349) 2024-12-12 17:47:14 +01:00
Roman Krasiuk
e9577729f8 fix(builder): desired block gas limit (#13351) 2024-12-12 16:29:33 +00:00
Alexey Shekhirin
6ff2510ad9 perf(engine): cache proof targets in proof sequencer for state root task (#13310) 2024-12-12 16:28:12 +00:00
Federico Gimenez
5ef21cdfec fix(engine): return error on StateRootTask multiproof and root calculation failures (#13356) 2024-12-12 15:23:52 +00:00
Matthias Seitz
c339811727 chore: rm reth-provider dep from payload crate (#13348) 2024-12-12 14:44:35 +00:00
Arsenii Kulikov
aef9023781 chore: use OpTypedTransaction directly (#13350) 2024-12-12 14:31:37 +00:00
joshieDo
59fb0e210d chore: add BlockBodyIndicesProvider trait (#13347) 2024-12-12 13:49:44 +00:00
Arsenii Kulikov
cdb03ac0b1 feat: optimism-specific receipt (#13317)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-12-12 13:43:35 +00:00
Ayodeji Akinola
f7dc27f026 chore: update gas limit on new head block (#13333) 2024-12-12 13:27:59 +00:00
Federico Gimenez
b94a31f6d8 feat(trie): replace TrieInput by its components in ParallelProof (#13346) 2024-12-12 13:24:47 +00:00
Victor Castell
dbc8766c83 docs: inline mermaid diagrams while aquamarine is fixed (#13302) 2024-12-12 12:57:49 +00:00
Matthias Seitz
90fcfb90e7 chore: unify noop provider impls (#13345) 2024-12-12 14:13:39 +01:00
Miguel Oliveira
aca4a2db39 feat(rpc): remove total difficulty (#13303)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-12 12:52:34 +00:00
Tien Nguyen
dcdf13731e feat: make BuiltPayload generic (#13337) 2024-12-12 12:35:04 +00:00
Matthias Seitz
3f55071f62 chore: relax eth pooled tx (#13271) 2024-12-12 12:31:44 +00:00
Matthias Seitz
efd090dc9e chore: move secp256 crypto to primitive-traits (#13341) 2024-12-12 12:21:22 +00:00
Matthias Seitz
3b08b659aa chore: impl evm env provider for noop (#13342) 2024-12-12 12:20:42 +00:00
Tien Nguyen
92fae83c0d feat(reth-execution-types): make generic DisplayBlocksChain (#13336) 2024-12-12 11:47:02 +00:00
Tuan Tran
b19eb79664 feat(blockchain-tree-api): remove manual implementations of core::error::Error (#13332) 2024-12-12 11:25:36 +00:00
joshieDo
7764b9a038 chore: add OmmersProvider trait (#13331) 2024-12-12 11:20:03 +00:00
Arsenii Kulikov
328d4937f2 fix: use generic receipt in StaticFileProducer (#13324) 2024-12-11 22:08:09 +00:00
Roman Krasiuk
c553b1e86d feat(builder): ethereum builder config (#13315) 2024-12-11 21:26:25 +00:00
Emilia Hane
3d12a4eafa chore(sdk): fix docs to match generic tx type (#13316) 2024-12-11 20:46:07 +00:00
Emilia Hane
5b19badd9b feat(op-isthmus): impl Debug for BlockchainProvider (#13312) 2024-12-11 19:44:18 +00:00
Matthias Seitz
941ffb51fa chore: rm chainspec max gas limit (#13308) 2024-12-11 19:29:06 +00:00
Federico Gimenez
8fd305adc2 chore(ci): refactor code to build image used in several workflows (#13304) 2024-12-11 18:58:32 +00:00
Federico Gimenez
e6d28e4f27 chore(ci): run kurtosis-op twice a day (#13305) 2024-12-11 18:41:30 +00:00
Alexey Shekhirin
411c5eabc7 feat(engine): integrate blinded provider factory into state root task (#13294) 2024-12-11 18:15:39 +00:00
Matthias Seitz
e7753257d4 chore: use consistent naming for tx fns (#13306) 2024-12-11 17:45:06 +00:00
Arsenii Kulikov
2df385a771 feat: ethereum-specific receipt (#13295) 2024-12-11 17:13:23 +00:00
Arsenii Kulikov
61099cdd4d chore: remove MaybeArbitrary trait (#13301) 2024-12-11 15:36:36 +00:00
Matthias Seitz
8f6492d70e perf: rm redundant clones (#13299) 2024-12-11 14:21:31 +00:00
Alexey Shekhirin
432e536d4b fix(trie): parallel proof should return empty storage proofs (#13300) 2024-12-11 14:21:23 +00:00
Matthias Seitz
9891917f61 chore: rm receiptsext trait (#13296) 2024-12-11 14:20:27 +00:00
DaniPopes
6550d82abd perf: pass blinded_node path by reference (#13298) 2024-12-11 14:06:24 +00:00
Ayodeji Akinola
17d38c9152 feat(EthApi): Add broadcast stream for incoming raw transactions (#13165) 2024-12-11 13:54:51 +00:00
Matthias Seitz
1602baef6d fix: only terminate the stream if range is empty (#13281)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-12-11 13:08:21 +00:00
Matthias Seitz
b6e682ef73 chore: move tx errors (#13288) 2024-12-11 12:25:51 +00:00
Arsenii Kulikov
394f973acd chore: improve CompactZstd macro (#13277) 2024-12-11 11:58:12 +00:00
Matthias Seitz
f2141925b0 chore: rm associated type (#13292) 2024-12-11 11:48:39 +00:00
Matthias Seitz
fa340b5321 chore: bump version 1.1.4 (#13291) 2024-12-11 11:08:39 +01:00
Matthias Seitz
2dda8a9d13 chore: cut down on tx_type usage (#13287) 2024-12-11 09:37:02 +00:00
Tuan Tran
b34f23d880 chore: Generic data prims EngineSyncController (#13037)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-11 09:36:37 +00:00
faheelsattar
6b7bf2a0ad refactor: use constructor functions (#13255) 2024-12-11 09:36:27 +00:00
Matthias Seitz
d345ffc58c fix: fromstr impl for miner variant (#13289) 2024-12-11 08:53:48 +00:00
Matthias Seitz
b424ad36dc chore: reduce revm scope in txpool (#13274) 2024-12-11 07:35:11 +00:00
Matthias Seitz
9be5a78146 chore: introduce receipts generic (#13276) 2024-12-11 07:11:57 +00:00
DaniPopes
0494ca01d5 perf: trie micro optimizations (#13282) 2024-12-11 04:52:42 +00:00
DaniPopes
0144a433df perf: reduce size of DatabaseError (#13283) 2024-12-11 02:49:15 +00:00
DaniPopes
7b9ca0af73 perf: enable map-foldhash alloy-primitives feature globally (#13278) 2024-12-11 00:01:43 +00:00
Dan Cline
37f3933db2 feat: add NetworkPrimitives to NetworkBuilder (#13169)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-12-10 20:56:32 +00:00
morito
73f1583455 Bump alloy to 0.8.0 (#13268)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-10 20:06:21 +00:00
Matthias Seitz
62e2cbfe86 chore: remove unused evm env provider fns (#13272) 2024-12-10 18:43:42 +00:00
Alexey Shekhirin
8aada7a243 feat(engine): parallel sparse storage roots (#13269) 2024-12-10 18:29:07 +00:00
Arsenii Kulikov
88a9bd72d4 feat: make engine block downloaders generic over block (#13273) 2024-12-10 15:38:37 +00:00
joshieDo
4c39b98b62 chore: add StorageLocation to BlockBodyWriter trait (#13266) 2024-12-10 13:56:35 +00:00
Arsenii Kulikov
d97449dae4 fix: bounds for BundleApi (#13267) 2024-12-10 14:50:16 +01:00
Matthias Seitz
36c0142e58 chore: release 1.1.3 (#13262) 2024-12-10 12:10:47 +01:00
Matthias Seitz
fdc9b3188a chore: use trait fn for blob gas (#13261) 2024-12-10 10:07:15 +00:00
Dan Cline
15470b4350 feat: make bodies downloader generic over header (#13259) 2024-12-10 09:29:51 +00:00
Arsenii Kulikov
da99986ea2 feat: relax bounds for EngineApiTreeHandler (#13257)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-10 09:06:39 +00:00
Miguel Oliveira
d856c8e5bc feat(engine): add error logging in state_hook (#13252)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-12-10 08:39:43 +00:00
Dan Cline
b3752cd2e8 feat: remove default types from headers stage (#13258)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-12-10 03:38:26 +00:00
Arsenii Kulikov
5ee776a2ee chore: pass primiitves generic to EngineApiTreeHandler fields (#13256) 2024-12-10 02:04:11 +00:00
Dan Cline
c9bd64018a chore: use BlockWithParent for StageError (#13198) 2024-12-10 00:21:46 +00:00
Arsenii Kulikov
980e62a5b8 chore: relax ProviderFactory setup (#13254) 2024-12-10 00:17:34 +00:00
Matthias Seitz
386e4b3ebd feat: extract zstd compressors (#13250) 2024-12-09 22:19:50 +00:00
Arsenii Kulikov
eb6080863b feat(rpc): relax VaidationApi and EngineApi (#13241) 2024-12-09 21:48:29 +00:00
angel-ding-cb
af5dc60867 Return a propoer error code for txpool is full error (#13245) 2024-12-09 20:43:10 +00:00
Matthias Seitz
bf1688525e chore: add blob_versioned_hashes_iter to block body (#13246) 2024-12-09 20:36:07 +00:00
Federico Gimenez
3c132958d1 perf(engine): add StateRootTask bench (#13212) 2024-12-09 19:52:58 +00:00
Alexey Shekhirin
f4ae4399da perf(trie): use entry API in sparse trie (#13240) 2024-12-09 19:41:00 +00:00
Arsenii Kulikov
c7c84f2d3f feat: relax bounds for eth_simulateV1 (#13232) 2024-12-09 19:08:49 +00:00
Matthias Seitz
3af2afe995 chore: relax more consensus functions (#13236) 2024-12-09 18:26:32 +00:00
Alexey Shekhirin
a3e90e18b6 fix(trie): retain updates only for sparse branch nodes in the prefix set (#13234) 2024-12-09 17:33:17 +00:00
Dan Cline
b5bbb8d751 chore: rename HighestStaticFiles::min (#13235) 2024-12-09 17:14:39 +00:00
Alexey Shekhirin
da5ffc24c2 fix(trie): reveal extension child in sparse trie when updating a leaf (#13183) 2024-12-09 15:12:36 +00:00
DaniPopes
3bc7b00fb3 ci: move deny to lint (#13230) 2024-12-09 15:03:50 +00:00
Matthias Seitz
49d3d82b64 chore: use BlockHeader trait (#13224) 2024-12-09 14:59:34 +00:00
Matthias Seitz
3e859058cd chore: add default impls for withdrawals and ommers root (#13229) 2024-12-09 14:59:18 +00:00
greg
233f893a93 fix: deny advisory RUSTSEC-2024-0421 (#13227)
Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>
2024-12-09 14:14:45 +00:00
Alessandro Mazza
13302ca655 feat(db): make init_db function accepts a TableSet (#13222) 2024-12-09 12:09:54 +00:00
Dan Cline
d68d7c8da0 feat: bound NetworkPrimitives types by proper traits (#13196) 2024-12-09 11:15:41 +00:00
Federico Gimenez
f7a3476046 chore(engine): simplify StateRootTask creation and hook management (#13213) 2024-12-09 10:40:43 +00:00
Matthias Seitz
465692b5af test: add tracing test (#13221) 2024-12-09 10:57:50 +01:00
github-actions[bot]
73785ccf05 chore(deps): weekly cargo update (#13216)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-12-08 12:27:31 +00:00
Matthias Seitz
08b875f4f5 chore: feature gate reth-codecs in trie-common (#13215) 2024-12-07 22:15:32 +01:00
Matthias Seitz
2846dd242e chore: flip tx conversion impl (#13208) 2024-12-07 19:19:43 +00:00
Matthias Seitz
abaeb35fd1 chore: make reth-network-peers risc compatible (#13210) 2024-12-07 14:29:42 +01:00
Federico Gimenez
828ddbaca4 chore(engine): refactor code to transform EvmState into HashedPostState (#13207) 2024-12-07 13:13:21 +00:00
Matthias Seitz
410d361638 chore: move calculate tx root to blockbody trait (#13209) 2024-12-07 12:17:11 +00:00
Dan Cline
42a1ba3a82 chore: make zip_blocks generic over header (#13199) 2024-12-07 11:26:01 +00:00
Emilia Hane
4fa86c5484 Add placeholder OpHardfork::Isthmus (#13112)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-07 06:22:19 +00:00
Arsenii Kulikov
6b35b05993 feat: relax bounds for EthPubSub (#13203)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-07 05:30:56 +00:00
Hai | RISE
4d2c5767ec perf(txpool): remove more clones (#13189) 2024-12-07 05:30:36 +00:00
Dan Cline
52b8ff4b0c chore: fix cargo check -p reth-stages --tests (#13200) 2024-12-07 05:29:49 +00:00
Dan Cline
7e9d2c1a34 chore: remove unused trie-common alloy-serde dep (#13201) 2024-12-07 05:00:51 +00:00
Arsenii Kulikov
9167e454b5 refactor: simplify and relax some RPC bounds (#13202) 2024-12-07 03:28:50 +00:00
Dan Cline
552c6237a8 feat: make BlockResponse generic over header (#13195) 2024-12-06 21:35:51 +00:00
Matthias Seitz
e9915702fa perf: call increment once (#13193) 2024-12-06 21:08:22 +00:00
Léa Narzis
2183752f8d refactor(prune-types/prune): move PruneLimiter to reth-prune (#13182) 2024-12-06 20:48:52 +00:00
Hai | RISE
a0326e4f86 perf: more FxHashMaps for SenderId key (#13188) 2024-12-06 20:35:30 +00:00
Hai | RISE
c608679963 perf(AllTransactions-iter): do not clone all transactions by default (#13187) 2024-12-06 21:38:20 +01:00
Dan Cline
e615010cc6 fix: don't use reserved word None in bug template (#13192) 2024-12-06 21:33:07 +01:00
Matthias Seitz
53f7297618 chore: rm validate delegate (#13190) 2024-12-06 19:57:01 +00:00
Matthias Seitz
4f28d6c7a4 chore: disable url default features (#13191) 2024-12-06 21:07:21 +01:00
Harsh Vardhan Roy
cd13bd91cd feat: unify ReceiptWithBloom from Alloy (#13088)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-12-06 19:12:44 +00:00
Matthias Seitz
55f931d0b9 chore: introduce ethereum-primitives crate (#13185) 2024-12-06 18:28:27 +00:00
Matthias Seitz
c9c6eb5aaa chore: rm unused evm provider fn (#13184) 2024-12-06 17:08:12 +00:00
Alessandro Mazza
627ceae86b feat(db): initialize db with tables (#13130)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-06 16:24:54 +00:00
Matthias Seitz
806a1b1e88 chore: use slice arg for tx decoding (#13181) 2024-12-06 16:21:04 +00:00
Alexey Shekhirin
e29b4eec48 fix(trie): delete self destructed accounts from sparse trie (#13168) 2024-12-06 14:02:03 +00:00
Matthias Seitz
cb3e9f8441 chore: remove some excessive allocs in hot path (#13176) 2024-12-06 14:01:13 +00:00
Hai | RISE
fdff4f18f2 feat(DbTx): add get_by_encoded_key (#13171) 2024-12-06 13:58:17 +00:00
Hai | RISE
634db30b6b perf(tx-pool): reuse write lock to insert txs batch (#12806) 2024-12-06 13:28:40 +00:00
Matthias Seitz
2f46fe6d48 chore: use leaner NoopProvider in network (#13178) 2024-12-06 12:49:57 +00:00
Arsenii Kulikov
cf2a6a1ee8 feat: EthApi traits abstraction (#13170) 2024-12-06 12:30:50 +00:00
Matthias Seitz
ab87f22cab fix: push job front of queue (#13177) 2024-12-06 10:44:40 +00:00
Elvis
d3e09c8c43 perf: profile TransactionsManager::poll hash fetching (#12975)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-06 10:11:29 +00:00
Skylar Ray
44a66d32b5 chore: Code Simplification and Optimization (#12840)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-06 11:12:24 +01:00
joshieDo
242bbaa9c4 fix: throw error if genesis header found on static files, but empty db (#13157) 2024-12-06 09:05:10 +00:00
Alexey Shekhirin
6453b62094 feat(trie): use branch node hash masks in sparse trie (#13135) 2024-12-06 08:45:08 +00:00
Matthias Seitz
da98285469 feat: re-export used deps from reth-codecs (#13167) 2024-12-06 09:45:30 +01:00
Matthias Seitz
6fc4e8acd2 chore: make reth codec support optional (#13166) 2024-12-06 09:44:33 +01:00
Hai | RISE
f82a20a616 fix: txpool tests (#13172) 2024-12-06 09:18:23 +01:00
Federico Gimenez
d939876f39 chore(engine): add StateHookSender constructor (#13162)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-05 23:45:28 +01:00
Arsenii Kulikov
8226fa0cac feat: use network tx for Pool::Pooled (#13159)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-05 19:50:43 +01:00
Ahmet Yazıcı
4fe5c2a577 Allow replacement txs with exactly price bump (#13161) 2024-12-05 19:24:28 +01:00
Matthias Seitz
56624f820f chore: add typed2718 to txtype (#13076) 2024-12-05 15:58:19 +00:00
Steven
d71a4be982 feat: Add ratelimiting to OpWitness API (#12998)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-05 15:42:52 +00:00
Federico Gimenez
eb4aa2c077 fix(engine): wait for all state updates before returning state root task result (#13156) 2024-12-05 15:32:32 +00:00
joshieDo
3ccbda8e1a chore: add reference to the troubleshooting page on mdbx::Error::Access (#13151) 2024-12-05 15:21:01 +00:00
Steven
6f0cfefe51 feat: Support sending raw capability messages (#13028)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-05 15:11:15 +00:00
Hai | RISE
da03b7989e perf(trie): avoid (de)allocating an extra prefix set (#13020) 2024-12-05 13:45:43 +00:00
Arsenii Kulikov
b4124dd1b0 feat: make RPC cache generic over primitives (#13146) 2024-12-05 13:14:51 +00:00
Matthias Seitz
804dc99ef4 feat: impl compact for alloy txtype (#13152) 2024-12-05 12:13:14 +00:00
Matthias Seitz
659448241b chore: reuse alloy proof fns (#13091) 2024-12-05 11:44:48 +00:00
Matthias Seitz
e022b6fd92 chore: bump alloy 073 (#13150) 2024-12-05 11:51:26 +01:00
Matthias Seitz
0016d91ed6 feat: install op miner endpoint (#13147) 2024-12-05 11:35:09 +01:00
joshieDo
305ca2f9a5 docs: add docker and error code 13 to troubleshooting chapter (#13133) 2024-12-05 11:34:12 +01:00
Matthias Seitz
08c9df8cb3 chore: bump pprof (#13148) 2024-12-05 11:15:03 +01:00
Emilia Hane
33f8e5cd01 Bump op-alloy (#13142) 2024-12-05 08:39:52 +00:00
Dan Cline
1f6b7d1239 feat: wire network primitives to remaining components (#13143) 2024-12-04 22:51:19 +00:00
Matthias Seitz
874cf89022 feat: add OpBuilder config (#13132) 2024-12-04 21:07:43 +00:00
Alexey Shekhirin
27dab59ceb feat(trie): collect branch node hash masks when calculating a proof (#13129) 2024-12-04 20:34:37 +00:00
Matthias Seitz
337272c88b chore: add typed receipt for Receipt (#13140) 2024-12-04 20:20:45 +00:00
Léa Narzis
fbd2d6eeda refactor: split NetworkEventListenerProvider (#12972) 2024-12-04 18:27:58 +00:00
joshieDo
0daa456f3a chore: add container question to bug template (#13134) 2024-12-04 17:56:47 +00:00
Roman Krasiuk
3091386fd1 fix(witness): collect witness using sparse trie (#13072) 2024-12-04 14:45:23 +00:00
Matthias Seitz
d298fb1b81 fix(op): add missing op consensus validation check (#13122) 2024-12-04 14:27:49 +00:00
Emilia Hane
24af0a83a0 Extend revm spec tests for holocene (#13111) 2024-12-04 13:56:05 +00:00
Woolfgm
589fc2a68d Fix typos in documentation (#13094) 2024-12-04 14:45:51 +01:00
Hai | RISE
53243a29f3 perf: avoid cloning bytecode when converting revm's &AccountInfo to reth's Account (#13126) 2024-12-04 13:13:35 +00:00
kien-rise
8d1a332119 feat: make PoolInner functions pub (#13124) 2024-12-04 12:48:15 +00:00
Léa Narzis
025885f2ad refactor(sdk): complete generic impl for PersistenceService over N::Primitives (#13044) 2024-12-04 10:50:46 +00:00
Federico Gimenez
c060df92af chore(ci): fix hive patch (#13123) 2024-12-04 09:52:14 +00:00
Arsenii Kulikov
5c07669ef6 chore: remove TransactionSignedNoHash (#13120) 2024-12-04 08:59:01 +01:00
Arsenii Kulikov
4e73bb04c2 refactor: pending block construction (#13109) 2024-12-04 00:15:03 +00:00
Dan Cline
d164e3ec98 chore: bound most NetworkBuilder methods by NetworkPrimitives generic (#13119) 2024-12-04 00:14:25 +00:00
Arsenii Kulikov
8a00d2d25c chore: relax rpc bounds (#13100) 2024-12-04 00:13:47 +00:00
Dan Cline
c6add45c0d chore: propagate network primitives generic to EthStream usages (#13117) 2024-12-03 22:06:42 +00:00
Dan Cline
bdfbcab531 feat: use generic CapabilityMessage everywhere (#13116) 2024-12-03 22:06:36 +00:00
Dan Cline
601e8b9147 feat: make TransactionsManager Future impl generic over NetworkPrimitives (#13115) 2024-12-03 22:06:29 +00:00
Matthias Seitz
e9484b2437 chore: remove redundant enum (#13113) 2024-12-03 20:55:08 +00:00
Dan Cline
35cfd41863 feat: make import_transactions use network generics (#13110) 2024-12-03 20:55:04 +00:00
Arsenii Kulikov
0fcc6cf19e feat: Add Transaction AT to ConfigureEvm (#13106) 2024-12-03 17:09:44 +00:00
frisitano
886471d693 Introduce HashedPostStateProvider (#12607)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-03 16:56:17 +00:00
Roman Krasiuk
e4c7fac9db chore(trie): make Debug impl work for any provider (#13107) 2024-12-03 16:43:35 +00:00
Dan Cline
64c6343fd1 chore: propagate network primitives to on_command, on_network_event (#13084) 2024-12-03 16:42:54 +00:00
Arsenii Kulikov
9d5e159968 feat: make InvalidBlockHook generic over NodePrimitives (#13105) 2024-12-03 15:38:10 +00:00
Hai | RISE
7008ac22df perf(validate-tx-pool): fast non-allocating is_local (#13096) 2024-12-03 14:53:07 +00:00
Alessandro Mazza
6baf519c9e feat(custom-tables): don't record metrics for custom tables (#13104) 2024-12-03 14:27:20 +00:00
Roman Krasiuk
39f936ede2 chore: move sparse errors to reth-execution-errors (#13101) 2024-12-03 14:20:15 +00:00
Darshan Kathiriya
8f61af0136 introduce tableset and impl for tables enum (#12617)
Co-authored-by: dkathiriya <lakshya-sky@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-03 14:07:43 +00:00
Alexey Shekhirin
61cb3dedca fix(trie): do not persist root branch nodes in sparse trie (#13071)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-12-03 13:51:04 +00:00
Matthias Seitz
ca3d9895e2 feat: impl noop miner api endpoint (#13102) 2024-12-03 13:50:59 +00:00
Roman Krasiuk
0aa4701d30 fix(trie): short circuit leaf removal if missing (#12988)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-12-03 13:40:29 +00:00
Alexey Shekhirin
a8feec839f perf(engine): do not clone proof targets (#13061) 2024-12-03 13:22:25 +00:00
Matthias Seitz
1404073e05 feat: add miner rpc bindings (#13099) 2024-12-03 13:12:13 +00:00
Roman Krasiuk
e4c0f192ee chore(trie): exclude blinded providers from Debug impl (#13098) 2024-12-03 13:08:54 +00:00
Roman Krasiuk
bedc68e8f4 chore(evm): migrate execution errors back to thiserror (#13097) 2024-12-03 12:39:29 +00:00
Matthias Seitz
bfcd98326c feat: add Op DA config (#13095) 2024-12-03 12:38:00 +00:00
Matthias Seitz
84e1fb92e0 feat: impl more noop functions (#13029) 2024-12-03 10:58:33 +00:00
Matthias Seitz
82b97a8dd3 chore: fix unused warning (#13090) 2024-12-03 09:46:41 +00:00
Federico Gimenez
383b8c242e fix(engine): get_proof_targets only add fetched accounts if they have new storage (#13015)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-12-03 09:01:02 +00:00
morito
74017bac0a feat: Use PrimitiveSignature instead of Signature (#13087) 2024-12-03 08:48:21 +00:00
Arsenii Kulikov
5724114947 feat: use primitive transaction as PoolTransaction::Consensus (#13086) 2024-12-03 08:46:37 +00:00
Roman Krasiuk
ae8912fa73 feat(trie): proof blinded providers (#13085) 2024-12-03 08:38:17 +00:00
Emilia Hane
ea82cbdc60 chore(sdk): define OpTransactionSigned (#11433) 2024-12-03 06:47:46 +00:00
Arsenii Kulikov
9ed9fa241d refactor: rename TransactionSignedEcRecovered to RecoveredTx (#13074) 2024-12-02 23:36:09 +00:00
Matthias Seitz
9831953781 chore: flatten reth-primitives dep (#13082) 2024-12-02 21:55:56 +00:00
Dan Cline
039f1215d0 chore: make has_eip4844 generic over SignedTransaction (#13083) 2024-12-02 21:46:54 +00:00
Matthias Seitz
2c5a1a743a chore: disable nybbles default feature (#13081) 2024-12-02 21:17:54 +00:00
Roman Krasiuk
bcfe9ebb25 feat(trie): SparseStateTrie::new (#13068) 2024-12-02 21:07:18 +00:00
joshieDo
80d0fb0cda chore: set event logs from StaticFileProducer and Pruner to debug (#13080) 2024-12-02 21:03:00 +00:00
Matthias Seitz
65193bdaf3 feat: add std feature to network-peers (#13078) 2024-12-02 20:56:21 +00:00
Matthias Seitz
156984b377 chore: misc direct imports (#13079) 2024-12-02 20:36:30 +00:00
Matthias Seitz
756eafa1aa chore: disable default features op forks (#13073) 2024-12-02 20:20:45 +00:00
Matthias Seitz
d7f5846a37 chore: add tx trait bounds to primitives (#13075) 2024-12-02 19:53:41 +00:00
Dan Cline
8d10b93295 chore: rename codecs optimism feature to op (#13067)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-02 19:28:20 +00:00
Minhyuk Kim
6cea9955b6 Check holocene activation based on the parent's timestamp (#13060)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-02 18:55:00 +00:00
Arsenii Kulikov
c61a0713b4 feat: bump alloy (#13070) 2024-12-02 18:34:13 +00:00
Darshan Kathiriya
675410def1 add replace and remove methods (#13059)
Co-authored-by: dkathiriya <lakshya-sky@users.noreply.github.com>
2024-12-02 18:10:27 +01:00
Matthias Seitz
aacf5d13d2 chore: disable more default features (#13065) 2024-12-02 18:03:33 +01:00
Hai | RISE
30800af6ec perf(validate-tx-pool): fast non-allocating is_create (#13063) 2024-12-02 16:28:47 +00:00
Matthias Seitz
8a047ed6e4 chore: move Integerlist to db-api (#13062) 2024-12-02 16:02:19 +00:00
joshieDo
6789ff4a1e chore: add OpEthApiBuilder and OpEthApiInner (#13009) 2024-12-02 14:56:55 +00:00
Matthias Seitz
332cce1f9b feat: add header AT to provider (#13030)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-12-02 13:24:48 +00:00
Matthias Seitz
519a10ae99 chore: remove OpTxType new type (#12715) 2024-12-02 13:24:21 +00:00
Federico Gimenez
dd055a4615 feat(executor): call hook with state changes after post block balance increments (#13050) 2024-12-02 12:11:08 +00:00
Roman Krasiuk
df4673ef80 trie: init storage blinded provider with account (#13058) 2024-12-02 12:09:39 +00:00
Matthias Seitz
8d5668a23a chore: disable reth-ethereum-forks default features in workspace (#13054) 2024-12-02 11:29:54 +00:00
Roman Krasiuk
0884611668 chore(trie): remove infallible variant (#13057) 2024-12-02 11:25:40 +00:00
Querty
1b34f3e78d feat(rpc): enhance eth_getLogs error handling with block range feedback (#12790)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-12-02 11:19:34 +00:00
Matthias Seitz
3855519a50 chore: disable revm primitives workspace default features (#13055) 2024-12-02 11:19:20 +00:00
Alexey Shekhirin
cccbd90e7b docs(trie): duplicate comment in sparse trie (#13056) 2024-12-02 11:09:03 +00:00
github-actions[bot]
4f19fc67b1 chore(deps): weekly cargo update (#13043)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-12-02 10:15:55 +00:00
Matthias Seitz
1134c5d61a chore: mark ethereum-forks as rv32imac (#13053) 2024-12-02 10:12:31 +00:00
Roman Krasiuk
b91d0f8711 feat(trie): blinded node provider (#13027) 2024-12-02 10:10:37 +00:00
Matthias Seitz
ae3b3ddf42 chore: use alloy's blockwithparent (#13052) 2024-12-02 10:09:24 +00:00
Roman Krasiuk
04f8c58485 perf(trie): storage multiproof overallocation (#12959) 2024-12-02 10:07:32 +00:00
Tien Nguyen
c2ab690ad1 feat: introduce EthMessage variant to NetworkHandleMessage (#13033) 2024-12-02 10:02:05 +00:00
Arsenii Kulikov
3f93f35c20 feat: add Header AT to EthChainSpec (#13046) 2024-12-02 00:56:00 +00:00
Arsenii Kulikov
7f88e62781 feat: bump alloy (#12930)
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
2024-12-02 00:55:17 +00:00
Darshan Kathiriya
890f082453 feat(rpc): create revm env on demand (#13017)
Co-authored-by: dkathiriya <lakshya-sky@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-30 17:27:20 +00:00
Matthias Seitz
3dc6f506b0 chore: disable alloy-rlp default features (#13042) 2024-11-30 18:40:26 +01:00
Arsenii Kulikov
4634625181 feat: make ommers table generic over header (#13038) 2024-11-30 17:16:06 +00:00
Léa Narzis
ebd413fce2 feat: make PersistenceAction generic over NodePrimitives (#13019) 2024-11-30 16:15:47 +00:00
Matthias Seitz
5a0b523189 chore: remove rand feature (#13040) 2024-11-30 17:38:53 +01:00
Matthias Seitz
00b3447947 cachore: disable alloy-chains default features (#13039) 2024-11-30 17:22:21 +01:00
Hoa Nguyen
9b1d676438 feat: move eip1186 conversion helpers to reth-trie-common proofs (#12985)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-30 16:01:19 +00:00
Hoa Nguyen
7353dc94a8 feat: generic receipt ExecuteOutput (#12966) 2024-11-30 15:49:54 +00:00
Hoa Nguyen
e0cad9fdae feat: generic data primitives PersistenceHandle (#12968) 2024-11-30 15:49:00 +00:00
Federico Gimenez
489d4e8595 feat(eecutor): send EvmState in state hook (#13025) 2024-11-30 12:37:05 +00:00
Hoa Nguyen
0ff2827a79 refactor: use is_none_or instead of map_or (#13035) 2024-11-30 11:09:49 +00:00
Arsenii Kulikov
5d71150355 feat: consensus trait generic over NodePrimitives (#13026) 2024-11-29 22:26:36 +00:00
Tien Nguyen
55ddaab1e4 feat: make generic data primitives EvmEnvProvider (#12981) 2024-11-29 21:10:56 +00:00
Panagiotis Ganelis
aa93e7f8a7 refactor: Make BlockType generic and relax implementations (#12955) 2024-11-29 19:12:25 +00:00
Matthias Seitz
36eaf565d9 chore: add default for 2718 transactions (#13018) 2024-11-29 16:08:58 +00:00
Matthias Seitz
b09c345257 feat: add blob_gas_used to block body (#13012) 2024-11-29 14:51:18 +00:00
Matthias Seitz
7f11fa5368 chore: relax block impl bounds (#13013) 2024-11-29 14:50:12 +00:00
Hai | RISE
f6895126dd perf: remove clone in trie walker (#13004) 2024-11-29 14:40:17 +00:00
Tien Nguyen
b10ffba33d feat: add check empty when broadcasting transactions (#13008)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-29 14:21:45 +00:00
tedison
db6e5b5cd4 feat: make js-tracer feature optional for node builder crate (#12178)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-29 14:15:21 +00:00
Arsenii Kulikov
95b52b3be0 chore: relax pipeline bounds (#13011) 2024-11-29 13:57:38 +00:00
Arsenii Kulikov
29289ccaec feat: add Primitives AT to BlockExecutorProvider (#12994) 2024-11-29 12:53:25 +00:00
Arsenii Kulikov
b6b8c474ab feat: on-disk reorg E2E test (#12977) 2024-11-29 12:41:46 +00:00
Arsenii Kulikov
1f1671ad8c feat: SerdeBincodeCompat trait (#12991) 2024-11-29 12:23:16 +00:00
Alexey Shekhirin
a8e2b77df5 chore(trie): sparse trie trace logs and assertion messages (#12969) 2024-11-29 11:10:38 +00:00
Matthias Seitz
a01e0319e4 feat: add clone into consensus (#12999) 2024-11-29 10:53:05 +00:00
Matthias Seitz
b6ba822cc3 chore: disable serde-with default features (#13002) 2024-11-29 10:51:44 +00:00
Matthias Seitz
4d65b2f5db chore: misc raw message (#13006) 2024-11-29 10:50:24 +00:00
Steven
37dca23402 replace thiserror-no-std with thiserror (#12432)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-29 09:41:39 +00:00
Matthias Seitz
88bde87f70 chore: reduce reth-primitives usage in node-core (#13000) 2024-11-29 08:35:12 +01:00
Tien Nguyen
b10f576933 chore: make generic header consensus validation (#12965) 2024-11-29 07:09:37 +00:00
Matthias Seitz
fa9cabd975 chore: acquire trace guard for eth_simulate_v1 (#12935) 2024-11-29 08:18:45 +01:00
John
8590f7a5d5 chore: remove redundant words in comment (#12997)
Signed-off-by: hishope <csqiye@126.com>
2024-11-29 06:33:26 +00:00
Matthias Seitz
39d4c1a427 chore: use new payload validator in tree (#12987) 2024-11-29 06:26:18 +00:00
Arsenii Kulikov
3b4edb0a69 feat: use generic SignedTx in SenderRecoveryStage (#12996) 2024-11-29 06:24:11 +00:00
Zach Obront
599b808fb6 feat(ci): add rv32im compilation checks (#12925) 2024-11-29 06:20:50 +00:00
Arsenii Kulikov
3f9816e1c4 feat: integrate generic primitives into pruner (#12995) 2024-11-29 04:56:48 +00:00
Arsenii Kulikov
9fe459e2ef fix: disable state root calculation for eth_simulateV1 (#12993) 2024-11-29 04:55:38 +00:00
Arsenii Kulikov
793fc23e05 fix: correctly poll NetworkState (#12973) 2024-11-28 19:35:32 +00:00
Roman Krasiuk
da53d7698f perf(trie): init hashed storage only on existing **changed** slots (#12980) 2024-11-28 18:38:31 +00:00
Alexey Shekhirin
ae395e871c fix(engine): fetched proof targets in state root task (#12983) 2024-11-28 18:27:42 +00:00
Matthias Seitz
aea56135d5 chore: lower tmp ban duration for trusted or static peers (#12961) 2024-11-28 17:01:13 +00:00
Roman Krasiuk
29d84e4cef fix(tree): account info on state update in root task (#12978) 2024-11-28 16:53:16 +00:00
Matthias Seitz
856dc7d9c5 ci: ignore ethereum crates for testing (#12976) 2024-11-28 16:44:38 +00:00
Matthias Seitz
8e1945592b fix: cap request gas limit in eth estimate (#12970) 2024-11-28 16:34:41 +00:00
Federico Gimenez
ca72d45662 chore(engine): remove uneeded if (#12974) 2024-11-28 16:25:24 +00:00
Léa Narzis
9f20ebc29a refactor(tx-pool): add enum InvalidKind to mark_invalid (#12845) 2024-11-28 16:23:27 +00:00
Matthias Seitz
cca6372e87 feat: integrate type specific engine validator in tree service (#12952) 2024-11-28 16:09:54 +00:00
Hoa Nguyen
55b758ac10 feat: generic data primitives EngineApiEvent (#12964) 2024-11-28 15:58:38 +00:00
Roman Krasiuk
e1b25c80c2 perf(tree): keep storage trie around for updates (#12971) 2024-11-28 15:52:25 +00:00
Roman Krasiuk
8c86d63a42 perf(trie): avoid update reallocation & track wiped (#12929) 2024-11-28 14:18:38 +00:00
Matthias Seitz
1210fd938d chore: make ethereum-node deps leaner (#12963) 2024-11-28 14:06:32 +00:00
Alexey Shekhirin
8589503a3b feat(engine): use SparseStateTrie::update_account in state root task (#12960) 2024-11-28 13:48:05 +00:00
Roman Krasiuk
eac02d9458 fix(trie): always create empty storage multiproofs (#12915) 2024-11-28 13:01:57 +00:00
Matthias Seitz
1d5bd46594 chore: make op-node-testing- leaner (#12958) 2024-11-28 12:48:36 +00:00
Roman Krasiuk
c274462059 perf: use alloy hash map in trie related code (#12956) 2024-11-28 12:12:47 +00:00
Roman Krasiuk
e9a6e4525e feat(trie): SparseStateTrie::update_account (#12954) 2024-11-28 12:00:18 +00:00
Federico Gimenez
cbcf79a18e chore(engine, state root task): remove unused StdReceiverStream struct (#12953) 2024-11-28 11:14:18 +00:00
Roman Krasiuk
b2e1da3ebc fix(tree): root task storage leaf removal (#12950) 2024-11-28 10:28:07 +00:00
Roman Krasiuk
064f9393ff perf(tree): reveal multiproof in tree task (#12949) 2024-11-28 10:26:58 +00:00
Alexey Shekhirin
28ef5749e7 feat(engine): integrate sparse trie into the state root task (#12907) 2024-11-28 09:46:08 +00:00
Tien Nguyen
39e057375a chore: make generic header InvalidHeaderCache (#12940) 2024-11-28 09:20:17 +00:00
maze
a3eb302f72 chore: pass generic header to validate_header_gas (#12931) 2024-11-28 08:03:44 +00:00
Tien Nguyen
bb0bd77916 chore: make generic data primitives TreeState (#12924) 2024-11-28 07:53:26 +00:00
Tien Nguyen
0df02ca2b9 chore: pass generic header and body to validate_shanghai_withdrawals (#12923) 2024-11-28 07:49:27 +00:00
Matthias Seitz
2179301590 feat: add functions for env creation (#12928) 2024-11-27 22:35:23 +00:00
Tien Nguyen
8d70e8921b chore: pass generic header to validate_header_base_fee (#12921) 2024-11-27 19:59:50 +00:00
Roman Krasiuk
47245642ca feat(trie): SparseStateTrie::storage_trie_mut (#12913) 2024-11-27 19:18:31 +00:00
Matthias Seitz
00c5b69af4 feat: integrate node primitives in engine handler (#12914) 2024-11-27 18:23:57 +00:00
Roman Krasiuk
2700db1258 feat(trie): SparseStateTrie::remove_storage_leaf (#12912) 2024-11-27 17:59:58 +00:00
Matthias Seitz
2705e3a7dd feat: add helpers for opcode tracing (#12899) 2024-11-27 16:34:16 +00:00
Matthias Seitz
f9ad3f8cca chore: add fs-util::open (#12911) 2024-11-27 16:22:23 +00:00
Roman Krasiuk
26bfe7c037 feat: SparseStateTrie::reveal_multiproof (#12909) 2024-11-27 16:18:54 +00:00
Arsenii Kulikov
7a6053078c fix: small db provider fixes (#12908) 2024-11-27 15:54:58 +00:00
Arsenii Kulikov
7a6a725d91 feat: add Receipt AT to writer traits (#12892) 2024-11-27 15:31:13 +00:00
Federico Gimenez
1131bdecc3 feat(engine): proof fetching on state update for StateRootTask (#12458)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-11-27 14:14:29 +00:00
Arsenii Kulikov
533b555f87 feat: add Receipt AT to ReceiptProvider (#12890) 2024-11-27 14:02:25 +00:00
Matthias Seitz
b62929c390 feat: add engine validator addon (#12905) 2024-11-27 13:40:48 +00:00
Emilia Hane
db9b86a7d6 Upcast trait bound on BlockBody::Transaction to SignedTransaction (#12903) 2024-11-27 11:56:33 +00:00
Arsenii Kulikov
42c24f07d9 refactor: unify code paths for receipts removal (#12887) 2024-11-27 11:43:38 +00:00
Joseph Zhao
a0e2961d73 chore: make BeaconConsensusEngineEvent generic over data primitives (#12831)
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
2024-11-27 11:40:00 +00:00
Matthias Seitz
b33757fcbe feat: extends engine validator (#12900) 2024-11-27 11:31:24 +00:00
Z
51afa4cdc9 chore(sdk): Add MaybeArbitrary to all ATs on NodePrimitives (#12847) 2024-11-27 09:54:39 +00:00
Pelle
3b8c661ad4 added generic header (#12897)
Co-authored-by: router <router@router.ian>
2024-11-27 09:42:39 +01:00
Hai | RISE
acfcfbdcf3 perf: minimize clones when saving blocks (#12870) 2024-11-27 09:08:19 +01:00
Hai | RISE
6b3c7c651e fix(ci): warn instead of failing no tests (#12893) 2024-11-27 07:50:32 +00:00
Matthias Seitz
02f3427dae feat: introduce networkprimitives in transition fetcher (#12889) 2024-11-26 22:25:42 +00:00
Matthias Seitz
e8d63e4a0b chore: fix unused warning (#12888) 2024-11-26 19:32:54 +00:00
Arsenii Kulikov
38cf6c900d refactor: improve state writing functions for db provider (#12885) 2024-11-26 18:26:22 +00:00
frisitano
83af493179 Introduce StateCommitment in StateProviders (#12602)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-26 16:48:32 +00:00
Matthias Seitz
5dc914be80 chore: make cargo t compile for reth-trie-common (#12884) 2024-11-26 16:38:12 +00:00
Arsenii Kulikov
2ce741709f feat: relax provider bounds (#12857) 2024-11-26 16:26:36 +00:00
ftupas
d51b347c81 feat: add utility trait methods to Transaction (#12704) 2024-11-26 16:24:01 +00:00
Matthias Seitz
ebf837e6e8 chore: unify more tx signed fns (#12883) 2024-11-26 16:21:52 +00:00
Federico Gimenez
6bba5e6630 chore(ci): debug logs on kurtosis-op client advance check failure (#12882) 2024-11-26 15:37:34 +00:00
Matthias Seitz
4dfaa46380 chore: unify recover_singer (#12881) 2024-11-26 15:19:58 +00:00
Arsenii Kulikov
2d6b8937c3 refactor: unify logic for writing receipts (#12878) 2024-11-26 14:24:40 +00:00
Matthias Seitz
dee0b8c055 feat: relax constraints for on_get_pooled_txs (#12880) 2024-11-26 14:23:27 +00:00
Roman Krasiuk
a0f99df21b feat(trie): StorageRootProvider::storage_multiproof (#12879) 2024-11-26 14:01:31 +00:00
Alexey Shekhirin
b6d6bf5eed deps: bump sysinfo (#12874) 2024-11-26 13:47:06 +00:00
Tien Nguyen
2840b6f677 chore: make OrderedSealedBlock generic over header and body types (#12830) 2024-11-26 13:44:12 +00:00
Matthias Seitz
277631092d feat: use pooled AT for get_pooled_transactions (#12876) 2024-11-26 13:00:50 +00:00
Roman Krasiuk
c19b8e1a2b chore(trie): remove todo comment (#12875) 2024-11-26 12:57:58 +00:00
Roman Krasiuk
2b4fa3bbf1 dep(trie): remove reth-trie dep from reth-trie-sparse (#12872) 2024-11-26 12:53:52 +00:00
Roman Krasiuk
2dc92880ba chore(trie): move trie updates to reth-trie-common (#12863) 2024-11-26 12:09:12 +00:00
Arsenii Kulikov
26fc701814 feat: NodePrimitivesProvider (#12855) 2024-11-26 12:06:55 +00:00
Matthias Seitz
b34fb7883a feat: make PooledTransactionsElementEcRecovered generic over transaction (#12869) 2024-11-26 12:02:23 +00:00
Steven
dab63e649f feat: emit node event when inserted executed block (#12726)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-26 12:00:41 +00:00
Matthias Seitz
334ccd0a53 chore: add helper for encoded (#12868) 2024-11-26 12:00:07 +00:00
Matthias Seitz
a28fa243c0 feat: use Pooled type for get_pooled_transaction_element in pool trait (#12867) 2024-11-26 11:44:44 +00:00
Matthias Seitz
1b4048e47d chore: add encodable to pooled recovered (#12866) 2024-11-26 10:44:57 +00:00
Roman Krasiuk
aa0a114b0d chore(trie): introduce serde feature on reth-trie-common (#12864) 2024-11-26 10:34:23 +00:00
Matthias Seitz
9d2e04c77e chore: relax mempool impl (#12865) 2024-11-26 10:12:36 +00:00
Matthias Seitz
13cd77c935 test: enable op prim arbitrary in e2e test-utils (#12862) 2024-11-26 09:57:07 +00:00
Roman Krasiuk
fae44bf74a chore(trie): move prefix sets to reth_trie_common (#12860) 2024-11-26 09:29:28 +00:00
kien-rise
96d61dd44b feat: add pending_transactions_max in trait TransactionPool (#12856) 2024-11-26 09:21:42 +00:00
Thomas Coratger
82eb38312c trie: add unit tests for nibbles (#12758) 2024-11-26 03:07:43 +00:00
Arsenii Kulikov
404f8f8778 refactor: unify logic for writing headers (#12858) 2024-11-26 01:38:46 +00:00
Victor Castell
b96c0d9897 docs: clarify installation guide NVMe term (#12853) 2024-11-25 19:51:37 +00:00
Arsenii Kulikov
8e4a917ec1 refactor: isolate BlockchainTree setup in DefaultEngineLauncher (#12852) 2024-11-25 17:10:49 +00:00
Arsenii Kulikov
c44e11b8ad feat: add Block AT to BlockReader (#12837) 2024-11-25 14:28:56 +00:00
Alexey Shekhirin
e2c42ae242 test(trie): use proof nodes helper (#12848) 2024-11-25 14:20:08 +00:00
Alexey Shekhirin
6b088bd881 perf(engine): sparse trie calculation for state root task (#12843) 2024-11-25 14:15:12 +00:00
Arsenii Kulikov
9f37d40b78 feat: enforce relations between block parts on NodePrimitives (#12846) 2024-11-25 13:44:00 +00:00
Arsenii Kulikov
863c5233fc feat: ChainStorageReader (#12836) 2024-11-25 13:29:25 +00:00
Alexey Shekhirin
04dd005af9 feat(trie): sparse trie methods for trie task integration (#12720) 2024-11-25 13:13:01 +00:00
Jun Song
caac226c73 chore: make CanonicalInMemoryState generic over sealed header and block (#12835) 2024-11-25 12:54:45 +00:00
Arsenii Kulikov
dcaa06a01a feat: make more block types generic (#12812) 2024-11-25 10:50:10 +00:00
Matthias Seitz
02824da4fc chore: remove default bound for txs (#12834) 2024-11-24 11:47:37 +00:00
github-actions[bot]
53839a952d chore(deps): weekly cargo update (#12813)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-24 11:33:42 +00:00
morito
c8e5b233ef Use adjust_index_for_rlp from alloy (#12815) 2024-11-24 11:08:30 +00:00
Matthias Seitz
736edf70ad fix: check withdrawals in op builder (#12832) 2024-11-24 11:03:56 +00:00
Federico Gimenez
8958e9f4df chore(ci): run hive 2x/day (#12829) 2024-11-24 10:50:02 +00:00
Federico Gimenez
e020eb71bd chore(payload): fix withdrawals field pre-shanghai in Ethereum payload (#12828) 2024-11-24 10:28:31 +00:00
tedison
21bc75df39 feat: start implementing OpTransaction (#12529)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-24 09:08:36 +00:00
Tien Nguyen
a552b1ffc9 chore: make EngineSyncEvent generic over data primitives (#12827) 2024-11-24 08:57:34 +00:00
Matthias Seitz
0d6ebec574 Revert "Revert "chore(sdk): Add MaybeArbitrary as super trait"" (#12810)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-24 07:46:16 +00:00
0xriazaka.eth
6695d07c65 Make PostExectuionInput generic over receipt (#12814)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-24 06:53:01 +00:00
Matthias Seitz
9b289351b6 feat: use defined pool type internally (#12803) 2024-11-23 14:33:19 +00:00
Matthias Seitz
7c5cb90e9a feat: add signedtx for pooled tx (#12799) 2024-11-23 14:27:51 +00:00
Matthias Seitz
795e29cb5b Revert "chore(sdk): Add MaybeArbitrary as super trait" (#12809) 2024-11-23 15:54:39 +01:00
Matthias Seitz
c869c71183 Revert "fix: add arbitrary feature for op cli dev" (#12808) 2024-11-23 15:42:36 +01:00
Matthias Seitz
c96118346a chore: rm unused variant type (#12798) 2024-11-23 14:25:18 +00:00
Matthias Seitz
69e54da049 chore: remove duplicated functions (#12804) 2024-11-23 14:24:17 +00:00
Matthias Seitz
e3ffb3f43b fix: add arbitrary feature for op cli dev (#12807) 2024-11-23 15:22:49 +01:00
Z
ebb4fc2bb6 chore(sdk): Add MaybeArbitrary as super trait (#12661)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-23 11:43:14 +00:00
Matthias Seitz
0d17f14e3d perf: inline pooled transactions max (#12805) 2024-11-23 08:08:41 +01:00
Matthias Seitz
13786c76d4 chore: use inmemory size functions for tx impl (#12802) 2024-11-23 06:21:29 +01:00
Matthias Seitz
f8a88c50d1 chore: add missing from impl (#12801) 2024-11-23 06:21:20 +01:00
Hai | RISE
047bf8630a perf(rpc-tx-helpers): simplify clones (#12800) 2024-11-23 05:05:03 +00:00
Arsenii Kulikov
5db3ad1a67 feat: add Transaction AT to TransactionsProvider (#12794) 2024-11-22 23:04:42 +00:00
Matthias Seitz
36db1c2407 chore: simplify cost calc (#12796) 2024-11-22 20:13:07 +00:00
Matthias Seitz
6a97a6dfe4 chore: include payload id in debug msg (#12795) 2024-11-22 19:53:46 +00:00
Matthias Seitz
9a7a733a08 feat: impl InMemorySize for PooledTx (#12791) 2024-11-22 19:41:46 +00:00
Matthias Seitz
71fd63d9ac feat: add try_into_pooled_eip4844 (#12792) 2024-11-22 19:41:11 +00:00
Matthias Seitz
2d5256cb05 chore: use existing transaction fns (#12793) 2024-11-22 19:14:58 +00:00
Maks
55d047fcf6 Grammar and Typo Fixes in Documentation (#12789) 2024-11-22 19:02:46 +01:00
Matthias Seitz
5b5e69b64e feat: add InMemorySize for more alloy types (#12788) 2024-11-22 16:24:51 +00:00
Matthias Seitz
0416550c53 chore: move traits for safe and finalized block read/write (#12786) 2024-11-22 15:53:42 +00:00
Arsenii Kulikov
7f95f1bf07 feat: generic static file masks (#12785) 2024-11-22 15:52:51 +00:00
Matthias Seitz
362e2ed0af chore: rename transaction_by_id_no_hash fn (#12783) 2024-11-22 15:35:50 +00:00
Matthias Seitz
7b156f058c feat: impl alloy transaction for pooled tx (#12787) 2024-11-22 15:29:04 +00:00
Matthias Seitz
ba1a1687b0 chore: simplify typed to signed tx (#12781) 2024-11-22 15:12:36 +00:00
Matthias Seitz
cbd9d6dc05 chore: remove no hash usage in tests (#12782) 2024-11-22 15:11:03 +00:00
Matthias Seitz
9a2eacdb9c chore: move traits used by legacy engine to separate mod (#12784) 2024-11-22 15:53:14 +01:00
Tien Nguyen
f2860006f7 chore: replace TransactionSigned struct inits with new functions (#12779) 2024-11-22 14:28:59 +00:00
Hai | RISE
64728e0856 refactor: simplify withdrawals outcome (#12780) 2024-11-22 14:15:43 +00:00
Steven
87ecb43413 replace BlockWithSenders with fn (#12695) 2024-11-22 13:52:08 +00:00
Matthias Seitz
3384c84f6f chore: more useful tx conversions (#12778) 2024-11-22 13:47:40 +00:00
Matthias Seitz
852fba6524 chore: replace blobtx fields with signed (#12774) 2024-11-22 13:34:09 +00:00
Matthias Seitz
26ecda223f chore: some additional pool docs (#12776) 2024-11-22 13:33:43 +00:00
Hai | RISE
73cd92f5f5 chore(pending-pool): remove unused all txs (#12777) 2024-11-22 13:31:44 +00:00
Arsenii Kulikov
7f5fd80cb7 feat: integrate SignedTx AT into StaticFileProviderRW (#12764) 2024-11-22 11:49:25 +00:00
Matthias Seitz
3d93b81a7e chore: replace pooled elements with signed (#12773) 2024-11-22 11:19:03 +00:00
Matthias Seitz
f2126f2c05 chore: move withencoded struct (#12770) 2024-11-22 11:06:42 +00:00
Hai | RISE
ef3e0b360f perf(op-payload): remove unneeded clone (#12771) 2024-11-22 10:31:06 +00:00
Matthias Seitz
a163929724 feat: add signed conversions (#12772) 2024-11-22 11:58:20 +01:00
Matthias Seitz
3765ae2444 feat: add TransactionSigned::new fns (#12768) 2024-11-22 11:37:34 +01:00
Federico Gimenez
7d24aa40e8 chore(trie): log proof result send error (#12749) 2024-11-22 08:44:56 +00:00
Arsenii Kulikov
d3b68656c2 fix: always truncate static files (#12765) 2024-11-22 08:30:56 +00:00
Matthias Seitz
f211aacf55 chore: rm tx alias re-export (#12762) 2024-11-22 01:07:04 +01:00
Matthias Seitz
0eaef1f1dc chore: rm unused error variants (#12763) 2024-11-22 00:48:38 +01:00
Matthias Seitz
39e7fdeeb3 chore: remove txext trait (#12760) 2024-11-21 23:29:08 +00:00
Steven
4442b5d6fa feat: convert hash field to OnceLock<TxHash> on TransactionSigned (#12596)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-11-21 22:40:29 +00:00
Matthias Seitz
6f6fb005ab chore: remove feature gated import (#12761) 2024-11-21 23:56:18 +01:00
Matthias Seitz
1061e46816 chore: use new is_broadcastable_in_full (#12757)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-11-21 20:44:50 +00:00
Matthias Seitz
367478c6f1 chore: use hash ref (#12756) 2024-11-21 20:21:28 +00:00
Arsenii Kulikov
0558235b98 refactor: unify logic for blocks removal (#12743)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-11-21 19:47:33 +00:00
Matthias Seitz
edeacbecfb fix: bad databaseargs default (#12747) 2024-11-21 18:46:39 +00:00
Emilia Hane
c2323b4e49 chore(sdk): add adapters for header and body to NodeTypes (#12723) 2024-11-21 18:17:16 +00:00
Emilia Hane
3d477e7d6f Replace use of fully qualified syntax (#12751) 2024-11-21 17:53:57 +00:00
Nils
f8d683e80e Improve metrics hooks setup (fixes #12672) (#12684)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-21 17:03:15 +00:00
Emilia Hane
2093d2bd9a chore(sdk): Add NodePrimitives::BlockHeader and NodePrimitives::BlockBody (#12647) 2024-11-21 17:03:05 +00:00
Hai | RISE
2c7b404c24 perf(evm-config): return &Arc<ChainSpec> (#12748) 2024-11-21 16:46:44 +00:00
Emilia Hane
ad7885b48c chore(sdk): Define helper trait MaybeCompact (#12683) 2024-11-21 16:10:06 +00:00
Alexey Shekhirin
96f7572404 chore(net): downgrade pending sesion timeout log to trace (#12745) 2024-11-21 15:52:38 +00:00
Matthias Seitz
54ff4c7349 feat: relax more tx manager bounds (#12744) 2024-11-21 15:35:43 +00:00
Arsenii Kulikov
c73dadacb2 refactor: unify code paths for trie unwind (#12741) 2024-11-21 15:20:29 +00:00
Matthias Seitz
9d3f8cc6a2 docs: add additional eth validator docs (#12742) 2024-11-21 13:31:03 +00:00
Matthias Seitz
4f946733c3 feat: add is_broadcastable_in_full to txtype (#12739) 2024-11-21 13:30:04 +00:00
Matthias Seitz
9fbe3468e8 chore: use TransactionSigned trait bound for tx msg building (#12737) 2024-11-21 13:29:09 +00:00
Matthias Seitz
4eca2fa1ee chore: rm network event handling from node events (#12736) 2024-11-21 13:28:08 +00:00
Matthias Seitz
fa7ad036ea chore: force disable 4844 for op pool (#12740) 2024-11-21 13:27:02 +00:00
Alexey Shekhirin
42aea7b9f6 feat(trie): retain branch nodes in sparse trie (#12291) 2024-11-21 11:49:42 +00:00
Matthias Seitz
ac1867b631 feat: add a way to convert consensus to pooled variant (#12734) 2024-11-21 11:22:35 +00:00
Matthias Seitz
d00920c421 chore: relax tryfrom error (#12735) 2024-11-21 11:08:07 +00:00
Matthias Seitz
c2e6938606 chore: move prune event type (#12732) 2024-11-21 10:41:34 +00:00
Jun Song
b9169399f3 chore: add pretty printing for pruned segment info (#12710) 2024-11-21 10:22:42 +00:00
Matthias Seitz
1b874dcc6c feat: use broadcast tx generic (#12733) 2024-11-21 10:14:31 +00:00
Ivan
33730536f5 Do not print whole block in debug! logs (#12729) 2024-11-21 09:35:32 +00:00
Emilia Hane
80268a1ce7 chore(sdk): move reth_primitives_traits::TxType into transaction module (#12722) 2024-11-21 09:30:21 +00:00
Arsenii Kulikov
0c5984179e refactor(storage): unify blocks insertion logic (#12694) 2024-11-20 22:48:39 +00:00
Arsenii Kulikov
749f98e021 chore: add header and body generics to SealedBlockWithSenders (#12717) 2024-11-20 18:56:35 +00:00
Matthias Seitz
a0d7503eb1 feat: use network primitives pooled transaction AT (#12718) 2024-11-20 17:52:06 +00:00
Matthias Seitz
8df9045fd8 fix: use correct timestamp for op receipt (#12716) 2024-11-20 16:02:02 +00:00
Matthias Seitz
04729f3c66 chore: introduce network primitives to transactions handle (#12711) 2024-11-20 14:39:32 +00:00
Matthias Seitz
68abcb1fe9 chore: rm unused file (#12713) 2024-11-20 14:39:19 +00:00
Matthias Seitz
b3b083fb82 chore: add generics to broadcast (#12714) 2024-11-20 14:33:56 +00:00
Matthias Seitz
ce0bcee416 chore: move tx builder fns (#12709) 2024-11-20 14:25:16 +00:00
Thomas Coratger
0d4b1e73d4 test(tx-pool): add more unit tests for tx-pool best (#12691) 2024-11-20 14:19:54 +00:00
Matthias Seitz
e3702cfc87 chore: move tracing futures to workspace (#12707) 2024-11-20 12:28:58 +00:00
Matthias Seitz
f9b764f6e8 chore: misc lint suggestion (#12706) 2024-11-20 12:28:47 +00:00
Matthias Seitz
402f96600b chore: move txtype constants to codecs (#12705) 2024-11-20 12:18:58 +00:00
Matthias Seitz
f12d7a9264 chore: use ethereum-forks types directly (#12702) 2024-11-20 11:15:48 +00:00
Arsenii Kulikov
868f3acdbc feat: integrate HeaderValidator + make FileClient generic over block (#12681) 2024-11-20 11:07:24 +00:00
ftupas
6977cf0453 feat: add TaskSpawner to spawn validation requests as blocking (#12543)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-20 10:56:44 +00:00
Matthias Seitz
ce4a32017a chore: rm unused codec derive (#12700) 2024-11-20 10:48:09 +00:00
Matthias Seitz
9c7536484c chore: bump op-alloy (#12696) 2024-11-20 10:35:10 +00:00
Matthias Seitz
b178f3a160 chore: add receipts to networkprimitives (#12699) 2024-11-20 10:34:16 +00:00
Hai | RISE
7b13a22698 perf(tx-pool): avoid copying tx cost (#12629) 2024-11-20 09:56:12 +00:00
Thomas Coratger
11847b4f1e text(tx-pool): add unit tests for tx pool state (#12690) 2024-11-20 09:53:53 +00:00
Matthias Seitz
2c885eee21 chore: rm unused windows import (#12697) 2024-11-20 09:46:47 +00:00
Thomas Coratger
3b12028319 text(tx-pool): add unit tests for DiskFileBlobStore (#12692) 2024-11-20 09:13:17 +00:00
Thomas Coratger
942ba7e823 tx-pool: impl From<SubPool> for Destination (#12689) 2024-11-20 08:27:09 +00:00
joshieDo
10caa9f846 fix: use body.recover_signers_unchecked instead on try_with_senders_unchecked (#12668) 2024-11-20 01:12:43 +00:00
Matthias Seitz
02a90e1c0b chore: rm allowance from oog error (#12686) 2024-11-19 20:46:28 +00:00
Emilia Hane
aa34a2795b chore(sdk): make reth-chain-state types generic over receipt (#12667) 2024-11-19 20:16:45 +00:00
Emilia Hane
fcb5050f87 Add SDK codeowners (#12685) 2024-11-19 19:59:21 +00:00
Matthias Seitz
7c7baca980 chore: group tx manager functions (#12679) 2024-11-19 18:25:01 +00:00
Matthias Seitz
8c467e4291 chore: genericify some net tx types (#12677) 2024-11-19 18:07:17 +00:00
Federico Gimenez
37181c357a feat(executor): add init methods to set TxEnv overrides (#12551)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-19 17:58:46 +00:00
Emilia Hane
2b21bcf425 chore(sdk): Add adapter type for NodePrimitives::Receipt (#12674) 2024-11-19 17:44:10 +00:00
Matthias Seitz
d49f91378b chore: use jsonrpsee server crate directly (#12673) 2024-11-19 17:31:56 +00:00
Tien Nguyen
565fd4d133 chore(exex): emit warn log when WAL grows beyond a certain number of blocks (#12634) 2024-11-19 17:09:22 +00:00
Roman Krasiuk
3408059393 feat(trie): introduce TRIE_ACCOUNT_RLP_MAX_SIZE constant (#12638) 2024-11-19 16:01:44 +00:00
Alexey Shekhirin
50c875b33c feat(trie): short-circuit account/storage reveal in sparse trie (#12663) 2024-11-19 15:39:41 +00:00
Arsenii Kulikov
1e7189d3e4 feat: trait-based storage API (#12616)
Co-authored-by: joshie <93316087+joshieDo@users.noreply.github.com>
2024-11-19 15:39:28 +00:00
Matthias Seitz
66a9d3e424 fix: run upkeep manually (#12664) 2024-11-19 15:33:19 +00:00
Matthias Seitz
6615fd2efc chore: re-export header from primitives traits (#12657) 2024-11-19 13:46:31 +00:00
dependabot[bot]
03992a53ec chore(deps): bump dcarbone/install-jq-action from 2 to 3 (#12645)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-19 13:32:52 +00:00
Emilia Hane
da77ffc951 chore(sdk): Move reth_optimism_node::OpPrimitives into reth-optimism-primitives (#12649) 2024-11-19 12:53:34 +00:00
Cypher Pepe
0db10a13a5 fix: typos in troubleshooting.md (#12652) 2024-11-19 13:05:30 +01:00
0xriazaka.eth
e924bdab37 Header validator (#12648)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-11-19 10:42:40 +00:00
Federico Gimenez
b78f20f5cb fix: do not delegate is_optimism check for Ethereum ChainSpec (#12650) 2024-11-19 10:07:30 +00:00
Thomas Coratger
206ba29f0b tx-pool: add all method for AllPoolTransactions (#12643) 2024-11-19 10:06:33 +00:00
Matthias Seitz
496bf0bf71 chore: bump version 1.1.2 (#12651) 2024-11-19 11:13:59 +01:00
Emilia Hane
06bf5c7783 chore(sdk): make Chain generic over data primitives (#12635) 2024-11-19 09:27:23 +00:00
AJStonewee
e859e1711d docs: small fix in HARDFORK-CHECKLIST.md (#12646) 2024-11-19 00:13:03 +00:00
Emilia Hane
641d1288e9 chore(sdk): limit FillTxEnv to super trait of FullSignedTx (#12614) 2024-11-18 21:43:26 +00:00
witty
7fb862cbde Typo Update private-testnet.md (#12633) 2024-11-18 21:59:58 +01:00
Jennifer
f1279b3549 Run kurtosis e2e test 2x/day (#12641) 2024-11-18 20:34:09 +00:00
Emilia Hane
55b51364b0 fix(discv5): warning discv5 config socket override (#12636) 2024-11-18 16:27:39 +00:00
Roman Krasiuk
8aa9b71ef7 chore(witness): simplify wiped storage retrieval (#12637) 2024-11-18 15:51:46 +00:00
Federico Gimenez
1d2934ba69 feat(trie): turn TrieWitness methods into public functions (#12510) 2024-11-18 15:02:39 +00:00
Arsenii Kulikov
2dc75fb996 fix: correctly prune transactions during on-disk reorgs (#12630) 2024-11-18 14:09:44 +00:00
Federico Gimenez
8339c716b4 feat(engine): introduce sync implementation of StateRootTask (#12378) 2024-11-18 13:58:31 +00:00
Federico Gimenez
26ce7fbdb2 feat(trie): add extend method to MultiProof (#12467) 2024-11-18 13:56:14 +00:00
github-actions[bot]
dc45aa9fff chore(deps): weekly cargo update (#12611)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-11-18 13:40:44 +00:00
Emilia Hane
ff22c8eef8 chore(sdk): Define MaybeSerde (#12577)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-18 13:30:44 +00:00
Thomas Coratger
cee11dfb7c test(tx-pool): add more unit tests for pending pool (#12603) 2024-11-18 13:28:59 +00:00
Thomas Coratger
292e9d9812 test(tx-pool): add more unit tests for blob pool (#12605) 2024-11-18 13:28:43 +00:00
Dmitry
773f558ad6 Fix Minor Documentation Errors (#12601) 2024-11-18 14:37:13 +01:00
Dmitry
66887bbfaa Typo Update profiling.md (#12631) 2024-11-18 14:28:15 +01:00
wizard
32a4d9ea08 Fix grammatical error in lib.rs (#12632) 2024-11-18 14:27:35 +01:00
Matthias Seitz
b5bb3157c3 test: add tests for base l1 blockinfo (#12609) 2024-11-18 14:19:30 +01:00
Oliver
a84f58bcb8 chore: use keccak256 from alloy (#12628) 2024-11-18 12:00:57 +00:00
Hai | RISE
626224e301 chore: refactor MockTransaction (#12627) 2024-11-18 11:57:22 +00:00
Tien Nguyen
378e097aea chore(sdk): Add InMemorySize as super trait (#12615) 2024-11-18 11:56:10 +00:00
Matthias Seitz
4daec16272 feat: add EthereumEthApiTypes (#12618) 2024-11-18 11:52:36 +00:00
Matthias Seitz
8aaac6d7c2 feat: add TokioTaskExecutor::boxed (#12619) 2024-11-18 11:47:30 +00:00
Matthias Seitz
1acdf9b2d4 fix: add additional op checks for chain specific check (#12623) 2024-11-18 11:33:38 +00:00
Matthias Seitz
4b4f9cf406 feat: install op debug exeuction witness (#12622) 2024-11-18 10:53:12 +00:00
Emilia Hane
5056a08112 fix(deps): Fix dev-deps for reth-primitives (#12612) 2024-11-18 09:03:54 +00:00
Matthias Seitz
cfd4523537 feat: add merge_if_module_configured (#12608) 2024-11-18 10:17:55 +01:00
Emilia Hane
7ae8ce1d00 chore(sdk): Add blanket impls for refs to prim traits (#12613) 2024-11-17 16:48:27 +00:00
Federico Gimenez
2f3fde8fb5 feat: fix WASM build for crates dependent on reth-payload-primitives (#12610) 2024-11-17 10:26:15 +00:00
Federico Gimenez
bf92a5fb59 feat: split reth-payload-primitives (#12600) 2024-11-16 17:36:57 +00:00
Arsenii Kulikov
735eb4b97c chore(cli): unify trait bounds (#12604)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-16 17:22:17 +00:00
Thomas Coratger
dda1906588 rm more generics when useless (#12595) 2024-11-16 16:06:57 +00:00
Matthias Seitz
d9ed07a367 chore: remove revm-primitives re-export (#12599) 2024-11-16 11:33:09 +01:00
Matthias Seitz
d52c7194d1 chore: move triewriter trait (#12598) 2024-11-16 11:32:56 +01:00
Matthias Seitz
1945cd8b42 chore: move hashing writer trait (#12597) 2024-11-16 10:37:14 +01:00
Thomas Coratger
3614a37ff6 test(tx-pool): add more unit tests for parked pool (#12591) 2024-11-16 10:08:25 +01:00
Emilia Hane
e182df71a1 chore(sdk): Remove duplicate trait BlockHeader (#12584) 2024-11-16 05:25:02 +00:00
Matthias Seitz
fc97a0cbaf chore: make clippy happy (#12594) 2024-11-16 06:04:39 +01:00
Darshan Kathiriya
2dc9a06321 chore(sdk): add NetworkPrimitives for NetworkManager (#12530)
Co-authored-by: dkathiriya <lakshya-sky@users.noreply.github.com>
2024-11-16 05:59:53 +01:00
Hopium
7745046b0b Fix grammar in MDBX documentation (#12580)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-16 05:44:37 +01:00
Thomas Coratger
c160005531 rm generics when useless (#12581) 2024-11-16 05:39:49 +01:00
Ayodeji Akinola
5276093e71 chore(util): Add reth payload util (#12590) 2024-11-16 05:39:34 +01:00
Matthias Seitz
02237bfa71 feat: add contains fns to transport rpc modules (#12593) 2024-11-16 05:19:40 +01:00
Matthias Seitz
b31b1ea288 feat: add op debug witness api (#12583)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-11-15 19:44:53 +00:00
Arsenii Kulikov
f0b8b9b221 feat: add tx_number consistency check to StaticFileProviderRW (#12570)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-15 19:04:35 +00:00
Matthias Seitz
6e00e58426 feat: add payload witness fn (#12579) 2024-11-15 17:33:37 +00:00
Matthias Seitz
841267d1b2 feat: add helpers to obtain the execution witness for a payload (#12573) 2024-11-15 16:16:55 +00:00
Krishang Shah
ac5976ff51 feat: implement Compact for OpTxType (#12537) 2024-11-15 16:05:19 +00:00
Emilia Hane
5f66fa448e chore(sdk): improve usability TxType trait (#12548) 2024-11-15 13:31:35 +00:00
Arsenii Kulikov
56826cbdbb fix: remove redundant check in bodies stage (#12569) 2024-11-15 12:35:35 +00:00
Matthias Seitz
efa350d28d ci: exclude more crates for op tests (#12568) 2024-11-15 12:44:16 +01:00
Matthias Seitz
305a1cee0b feat: introduce debug witness api (#12567)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-11-15 10:54:02 +00:00
Arsenii Kulikov
72a52d5ea5 feat: make StaticFileProvider generic over NodePrimitives (#12565) 2024-11-15 10:42:58 +00:00
Matthias Seitz
cd9da550da chore: extract witness recorder helper type (#12566) 2024-11-15 10:31:14 +00:00
Thomas Coratger
44964ac171 engine-primitives: make engine-tree independent of beacon-consensus crate (#12560) 2024-11-15 08:56:46 +00:00
Thomas Coratger
93ec6d48fe net: use BlockWithParent in SyncTarget::Gap (#12514) 2024-11-15 08:43:21 +00:00
Thomas Coratger
1aa316e4bc fmt(primitives): group pub use transaction (#12561) 2024-11-15 09:41:37 +01:00
Thomas Coratger
28478a5144 primitives: rm alloy HOLESKY_GENESIS_HASH reexport (#12562) 2024-11-15 09:35:27 +01:00
Thomas Coratger
7a7a6de2cd primitive-traits: simplify SealedHeader::default (#12563) 2024-11-15 09:35:00 +01:00
Dan Cline
61d32e9bfd fix(rpc): remove reference to preimage bool in debug_executionWitness (#12559) 2024-11-14 22:37:39 +00:00
Arsenii Kulikov
d028c1cbb4 refactor: don't reference StaticFileProvider in static_file::Segment (#12558) 2024-11-14 22:07:57 +00:00
Arsenii Kulikov
d8af28bbfa refactor: use DBProvider in LatestStateProvider (#12557) 2024-11-14 22:05:07 +00:00
Matthias Seitz
b1729d22e4 feat: impl block for sealedblock (#12555) 2024-11-14 22:03:09 +00:00
Arsenii Kulikov
a534db8714 refactor: use DBProvider in HistoricalStateProvider (#12556) 2024-11-14 20:57:31 +00:00
Matthias Seitz
28a5b631d1 chore: move gas_spent_by_transactions to traits (#12541) 2024-11-14 20:35:04 +00:00
Matthias Seitz
870ffae909 chore: use crates directly in eth-wire (#12554) 2024-11-14 19:03:15 +01:00
Matthias Seitz
a7bb1d1fa3 chore: remove constants reexport (#12549) 2024-11-14 18:36:31 +01:00
Matthias Seitz
bd29f82567 chore: replace reth-chainspec dep with alloy chains (#12550) 2024-11-14 18:15:27 +01:00
Emilia Hane
b1635fcba2 chore(sdk): make BlockBatchRecord generic over receipt (#12449) 2024-11-14 16:10:46 +00:00
Emilia Hane
217d9f7c12 chore(sdk): Add trait bound Compact on <T as FullTransaction>::Type (#12534) 2024-11-14 15:58:04 +00:00
Matthias Seitz
4a0bc37cbb chore: rm reth testing utils dep from reth-primitives-traits (#12542) 2024-11-14 17:08:46 +01:00
Matthias Seitz
c5d1b813e4 chore: add missing debugs for pool types (#12546) 2024-11-14 17:03:28 +01:00
Arsenii Kulikov
77e687c28c feat: relax BodyStage bounds (#12539) 2024-11-14 15:23:15 +00:00
Noisy
3154a4f66c Documentation Improvements: Grammar Corrections and Clarity Enhancements (#12545) 2024-11-14 16:35:04 +01:00
Arsenii Kulikov
ff6b78a362 feat: move body writing to BlockWriter trait (#12538) 2024-11-14 13:50:32 +00:00
Steven
5c655e44f6 introduce standalone estimate gas type (#12344)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-14 12:32:29 +00:00
Steven
7bd7c37b13 feat: display warning for op-mainnet launch without pre-Bedrock state (#11765)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-14 11:01:23 +00:00
Thomas Coratger
68a6ada460 tx-pool: add PoolUpdateKind for CanonicalStateUpdate (#12525) 2024-11-14 08:47:56 +00:00
leopardracer
457ac5f73f fix: typos in documentation files (#12528) 2024-11-14 09:46:58 +01:00
Thomas Coratger
d505089960 tx-pool: rm useless allow deprecated (#12526) 2024-11-13 21:53:00 +00:00
Arsenii Kulikov
c326708ffc feat: add simple kurtosis test for OP stack (#12506) 2024-11-13 17:38:30 +00:00
Matthias Seitz
0d850e7f05 fix: consume all payload variants (#12520)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-11-13 17:13:00 +00:00
Tien Nguyen
413d651391 chore: simplify import path (#12523) 2024-11-13 17:11:32 +00:00
Ayodeji Akinola
7a1698c504 chore(utils): Util function for headers request (#12501) 2024-11-13 17:07:59 +00:00
Thomas Coratger
001f3899fd primitives: rm alloy Header reexport (#12515) 2024-11-13 16:41:25 +00:00
Matthias Seitz
e6f3191c62 chore: rm cfg imports (#12518) 2024-11-13 15:16:16 +01:00
Emilia Hane
9e77d916e1 chore(sdk): improve usability tx primitive traits (#12437) 2024-11-13 13:35:59 +00:00
Thomas Coratger
9313737dbb primitives: use SealedHeader::seal (#12507) 2024-11-13 13:41:56 +01:00
Matthias Seitz
527767cc34 chore: remove unused trait bound for evmenv (#12505) 2024-11-13 13:15:42 +01:00
Federico Gimenez
68e7ad6fe5 chore(dep): bump alloy-trie (#12511) 2024-11-13 11:21:58 +00:00
Matthias Seitz
281c415cb0 chore: reorder validation items (#12503) 2024-11-13 11:28:28 +01:00
Ashutosh Varma
bf44c9724f feat: add support for eth_signTransaction (#12500) 2024-11-13 10:45:32 +01:00
Matthias Seitz
03f3646355 chore: use let some notation (#12494) 2024-11-13 10:15:34 +01:00
Matthias Seitz
39392e95f1 chore: only issue single header request (#12496) 2024-11-13 10:15:14 +01:00
Matthias Seitz
5c62d68dd8 chore: rm unused error variants (#12499) 2024-11-13 10:14:55 +01:00
Matthias Seitz
b7e8d5aa3e chore: add SealedHeader::seal (#12497) 2024-11-13 08:34:20 +00:00
Matthias Seitz
2f794b6b99 chore: rm unhinged attributes ordering (#12498) 2024-11-13 03:06:13 +01:00
Matthias Seitz
1ce067b77b chore: rm direct reth-provider dep (#12492) 2024-11-13 02:42:47 +01:00
Steven
cef7ec80c1 Move CanonChainTracker to storage-api (#12491) 2024-11-13 02:00:07 +01:00
Matthias Seitz
b0a39e8abc chore: import static file types directly (#12490) 2024-11-13 01:06:33 +01:00
Matthias Seitz
a96dee17f5 chore: bump alloy 064 (#12488) 2024-11-13 01:06:25 +01:00
Thomas Coratger
ce50370ba5 primitives: rm alloy Withdrawal reexport (#12487) 2024-11-13 00:15:50 +01:00
Matthias Seitz
a71dd9c91f chore: introduce tuple type for pruned info (#12484) 2024-11-13 00:13:11 +01:00
Matthias Seitz
115a20ea6a fix: deposit tx gasPrice must be 0 (#12486) 2024-11-13 00:12:59 +01:00
Ayodeji Akinola
3c56686000 feat(rpc): add compression to JSON-RPC (#12352) 2024-11-13 00:12:45 +01:00
Panagiotis Ganelis
8221e5bd54 chore: MoveStatsReader trait to storage-api and reexport it from old provider crate (#12485) 2024-11-12 20:58:16 +00:00
clabby
b6558f6bcf chore: Update Holocene timestamp for Sepolia (#12479) 2024-11-12 20:57:41 +00:00
Matthias Seitz
9884167684 chore: move standalone types to types crate (#12483) 2024-11-12 19:40:29 +00:00
Arsenii Kulikov
b39957612a feat: make more network components generic over primitives (#12481) 2024-11-12 19:29:42 +00:00
Panagiotis Ganelis
fa5daef07d chore: Move HistoryWriter trait to storage-api and reexport it from old provider crate (#12480) 2024-11-12 18:35:51 +00:00
Matthias Seitz
4a8eb7a0c0 chore: add DUPSORT trait const (#12477) 2024-11-12 17:19:06 +00:00
Matthias Seitz
e6a6fc4c2e chore: only fetch deposit info for deposit tx (#12474) 2024-11-12 15:37:21 +00:00
Léa Narzis
0cd34f911c feat: add ovm BlockFileCodec (#12247)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-12 15:27:28 +00:00
Arsenii Kulikov
aece53ae88 feat: make downloaders and clients generic over block parts (#12469)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-12 15:13:21 +00:00
Emilia Hane
3a337cd7d4 chore(deps): Update op-alloy to 0.6.4 in manifest (#12472) 2024-11-12 14:04:07 +00:00
Emilia Hane
a620d7c2f1 chore(deps): bump alloy to 0.6.3 (#12468) 2024-11-12 13:00:06 +00:00
Steven
c44edf5ce2 make PayloadStore operate on PayloadBuilder (#12460)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-12 13:15:28 +01:00
malik
6c1833de31 chore: remove unessarcy clone (#12463) 2024-11-12 11:48:39 +00:00
Federico Gimenez
179aa04707 test(trie): add ParallelProof unit test (#12413) 2024-11-12 11:29:51 +00:00
Emilia Hane
9f29107abb chore(sdk): add NodePrimitives::TxType (#12332) 2024-11-12 11:11:37 +00:00
Emilia Hane
a2e11977d8 chore(sdk): Add InMemorySize as super trait of data primitive traits (#12465) 2024-11-12 10:52:26 +00:00
Emilia Hane
b5f7eca72f chore(sdk): make ExecutionOutcome generic over receipt (#12448)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-11-12 10:38:00 +00:00
Darshan Kathiriya
bad7a4f0c9 use result for TransactionCompact::fill. (#12170)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: dkathiriya <lakshya-sky@users.noreply.github.com>
2024-11-12 10:31:32 +00:00
c0np4nn4
c261532a27 chore: move trie functions to alloy (#12438) 2024-11-12 10:15:52 +00:00
joshieDo
f38503c2bc chore: move (Full)NodePrimitives to reth-primitive-traits (#12461)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-12 09:58:36 +00:00
Özgün Özerk
5edca402b0 feat(op): define OpTxType (#12443) 2024-11-12 09:07:05 +00:00
malik
2f8a2f0fbb chore: remove unnecessary clone (#12455) 2024-11-11 18:12:24 +00:00
Tuan Tran
eccff7d24b chore(reth_primitives): Use trait for size methods in primitive types (#12201)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-11 16:54:00 +00:00
Arsenii Kulikov
24b3e63ab3 feat: make Consensus trait generic over block parts (#12451) 2024-11-11 16:35:01 +00:00
Emilia Hane
11fd5aa45e chore(sdk): define new BlockHeader trait (#12452) 2024-11-11 16:21:39 +00:00
clabby
c4f10bd11b feat(spec): Holocene activation time for {OP/Base} Sepolia (#12453) 2024-11-11 15:19:50 +00:00
Emilia Hane
9773635344 chore(sdk): make Receipts generic over receipt (#12447) 2024-11-11 13:10:40 +00:00
Kien Trinh
0014248cd0 [refactor] move new_payload_v4 into EngineAPI (#12445)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-11 12:57:02 +00:00
Emilia Hane
b0329ee4d7 chore(sdk): impl Receipt for reth_primitives::Receipt (#12446) 2024-11-11 12:52:21 +00:00
Kien Trinh
29b9238394 [refactor] move new_payload_v3 into EngineAPI (#12442)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-11 12:23:52 +00:00
Tuan Tran
cdce7ee345 chore: move new_payload_v1 into type EngineAPI (#12430) 2024-11-11 12:16:43 +00:00
Tuan Tran
78e70d6229 chore: move new_payload_v2 into type EngineAPI (#12431) 2024-11-11 12:00:57 +00:00
Emilia Hane
5d5f442024 chore(sdk): define helper trait FullNodePrimitives (#12331) 2024-11-11 11:58:34 +00:00
Steven
56b5937691 Move payload_attributes function to trait (#12427) 2024-11-11 11:56:06 +00:00
Steven
9ff80977b5 renamed OptimismHardforks to OpHardforks (#12441) 2024-11-11 11:24:59 +00:00
Federico Gimenez
de6813093d chore(trie): rename reth-trie-parallel modules (#12444) 2024-11-11 11:23:07 +00:00
Arsenii Kulikov
365f6a1f69 feat: NetworkPrimitives (#12435) 2024-11-11 10:59:41 +00:00
Matthias Seitz
b893a8879d chore: fix deny (#12439) 2024-11-10 21:03:19 +01:00
Emilia Hane
3774100a05 chore(sdk): impl SignedTransaction for TransactionSigned (#12187) 2024-11-10 13:11:58 +00:00
github-actions[bot]
7110397f89 chore(deps): weekly cargo update (#12433)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-11-10 12:58:26 +00:00
Emilia Hane
23ec0af51d chore(sdk): auto trait bounds NodePrimitives (#12398) 2024-11-10 12:56:36 +00:00
ftupas
c1b4fd84c5 refactor: remove trait bound on TxType (#12379) 2024-11-10 12:25:55 +00:00
Matthias Seitz
7eaa0a8f9f chore: add PayloadBuilder to RpcNodeCore (#12428) 2024-11-09 18:27:18 +01:00
Matthias Seitz
1b1f0f3ef8 chore: add Sync to PayloadBuilder (#12425) 2024-11-09 17:58:31 +01:00
Thomas Coratger
59ebebaa63 primitives: rm alloy Withdrawals reexport (#12421)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-09 13:09:46 +00:00
Matthias Seitz
ae257f5685 chore: restrict payload builder error type (#12423) 2024-11-09 13:51:45 +01:00
Emilia Hane
a299f501ce chore(sdk): payload builder AT on NodeComponents and FullNodeComponents (#11529)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-09 09:53:33 +00:00
Emilia Hane
430fe0de18 chore(sdk): Add NodePrimitives::Transaction and NodePrimitives::SignedTx (#12330)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-09 09:20:25 +00:00
Matthias Seitz
08451ef278 chore: rm unused file (#12420) 2024-11-09 10:05:15 +01:00
Thomas Coratger
d2f494bd88 primitives: replace primitive Withdrawals with alloy (#12119)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-09 07:55:06 +00:00
nk_ysg
b5fce61738 ecies: use align_num value (#12139)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2024-11-09 07:42:37 +00:00
Matthias Seitz
7a65cce1e1 chore: rm fqs for NodeCore (#12418) 2024-11-09 08:29:41 +01:00
Matthias Seitz
f86efcc800 chore: clippy happy (#12419) 2024-11-09 08:29:27 +01:00
Steven
5cfe9a9879 renamed OptimismHardfork to OpHardfork (#12410) 2024-11-08 18:29:34 +00:00
Matthias Seitz
fc484b793f test: fix test vectors (#12411) 2024-11-08 19:28:22 +01:00
Roman Krasiuk
ba4f169f87 chore(db): add log for read transaciton monitor sleep time (#12408) 2024-11-08 15:23:56 +00:00
Federico Gimenez
f03b762036 feat: introduce ParallelProof (#12403) 2024-11-08 15:20:26 +00:00
Hai | RISE
0da914eaeb chore: enable dbg_macro lint (#12409) 2024-11-08 15:03:29 +00:00
Matthias Seitz
86230d9962 chore: include path in panic (#12407) 2024-11-08 15:50:57 +01:00
Léa Narzis
74d7fe3075 feat(rpc): optimize block validation with state caching (#12299)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-08 15:50:48 +01:00
Matthias Seitz
32ebb181ca chore: rm duplicated cfg (#12406) 2024-11-08 14:31:15 +01:00
Arsenii Kulikov
bce7031155 feat: allow generic values in tables! macro (#12400) 2024-11-08 11:57:01 +00:00
Seva Zhidkov
02d2593b2e feat(transaction-pool): chaining & static txs for best transactions trait (#12320)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-08 11:45:27 +00:00
Steven
9f6f63d45a CLI parameter to specify the broadcast channel capacity of PendingPool (#12388)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-08 10:50:46 +00:00
Arsenii Kulikov
462540fa30 fix: pending transaction ordering (#12382)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-08 10:24:02 +00:00
Hoa Nguyen
f373efe01d refactor: phase out alloy-rpc-types usage (#12395) 2024-11-08 11:36:17 +01:00
wangjingcun
c5ab4243e7 chore: remove redundant words in comment (#12394)
Signed-off-by: wangjingcun <wangjingcun@aliyun.com>
2024-11-08 11:23:02 +01:00
Steven
87f328f957 replace BuilderBlockValidationRequestV3 with alloy type (#12396) 2024-11-08 05:33:30 +00:00
Arsenii Kulikov
c7b6a35113 feat: bump alloy (#12391) 2024-11-08 00:46:24 +00:00
Matthias Seitz
eb7bb08b51 fix: remove independent tx from all (#12387) 2024-11-08 00:29:17 +01:00
Steven
dbe8c83b48 renamed OptimismInvalidTransactionError to OpInvalidTransactionError (#12384) 2024-11-07 21:32:48 +00:00
Arsenii Kulikov
d19032fca1 chore: remove auto-seal consensus (#12385) 2024-11-07 21:29:49 +00:00
Arsenii Kulikov
29da7d744a fix: eth_getProof response (#12370) 2024-11-07 19:31:17 +00:00
Matthias Seitz
d0baf926bf chore: improve deps for payload prims (#12374) 2024-11-07 17:56:35 +01:00
Steven
e911fe9ff0 renamed OptimismBlockExecutionError to OpBlockExecutionError (#12383) 2024-11-07 16:30:54 +00:00
Kunal Arora
b1642f966f feat(payload): add support for stack of payload builders (#11004)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-07 15:33:31 +00:00
Matthias Seitz
cf095a7536 chore: reorder super (#12380) 2024-11-07 16:42:37 +01:00
Alexey Shekhirin
190a1d8bb4 feat(trie): reveal storage slots and calculate storage root in sparse trie (#12145) 2024-11-07 15:21:53 +00:00
greg
37e1f77047 chore: remove unused deconstruction (#12377)
Signed-off-by: Gregory Edison <gregory.edison1993@gmail.com>
2024-11-07 14:58:09 +00:00
Matthias Seitz
9596b1c08b chore: rm reth-provider dep (#12376) 2024-11-07 15:53:26 +01:00
Thomas Coratger
764371d246 test(eth-engine): add unit tests for payload_id method (#12295) 2024-11-07 14:34:24 +00:00
wheval
473e172ac4 chore: change "Reporting a Vulnerability" to "Report a Vulnerability" (#12372) 2024-11-07 13:37:40 +01:00
joshieDo
cf72b6f38d chore: move helper methods from DatabaseProvider to DBProvider as defaults (#12367) 2024-11-07 12:06:53 +00:00
Hai | RISE
eab1a72577 perf(OpPayloadBuilderCtx): reuse Evm between txs (#12369) 2024-11-07 12:05:28 +00:00
Arsenii Kulikov
581a2f1d47 refactor(rpc): unify system caller invocations (#12360) 2024-11-07 11:05:55 +00:00
Steven
f0a1f919ff New panel for new_payload_forkchoice_updated_time_diff metric (#12363) 2024-11-07 10:58:59 +00:00
Delweng
581cef3303 feat(rpc/admin): return deposit_contract_address for the admin_NodeInfo RPC (#12362)
Signed-off-by: jsvisa <delweng@gmail.com>
2024-11-07 10:53:11 +00:00
Hai | RISE
6d05788de2 perf(default_ethereum_payload): reuse Evm between txs (#12365) 2024-11-07 10:52:25 +00:00
Hai | RISE
037dffeb15 perf(OpBuiltPayload): Arc SealedBlock (#12361) 2024-11-07 10:51:05 +00:00
Emilia Hane
d31e1d601d chore(sdk): Add NodePrimitives::Receipt (#12357) 2024-11-07 09:59:17 +00:00
joshieDo
29a9e97797 feat: add PrimitiveSignature to test-vectors compact tests (#12366) 2024-11-07 11:00:48 +01:00
Steven
8e8a1a827d renamed OptimismPayloadBuilderError to OpPayloadBuilderError (#12364) 2024-11-07 08:56:16 +00:00
Steven
2d945292ac renamed OptimismEngineValidatorBuilder to OpEngineValidatorBuilder (#12359) 2024-11-06 21:22:34 +00:00
Hai | RISE
302ed291e4 perf(EthBuiltPayload): Arc SealedBlock (#12351) 2024-11-06 20:33:49 +00:00
Matthias Seitz
fe2b02828d feat: use 1559 functions directly (#12356) 2024-11-06 20:30:49 +00:00
Federico Gimenez
2c5ba732b7 feat(engine): integrate executor with StateRootTask (#12335)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-11-06 19:27:33 +00:00
Steven
e084bed089 renamed OptimismAddOns to OpAddOns (#12348) 2024-11-06 19:22:00 +00:00
Hai | RISE
dc0a6007e3 fix(pool-args): saturating_mul max sizes to avoid overflow (#12350) 2024-11-06 18:24:18 +00:00
Jun Song
c2e8e2f4f9 Add queued_outgoing_messages panel for grafana (#12306) 2024-11-06 16:53:45 +00:00
Arsenii Kulikov
38fdc93a12 feat: bump alloy (#12215)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-06 14:50:25 +00:00
Thomas Coratger
12b0637485 refactor(trie): small refactor in HashedPostState::from_reverts (#12319)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-06 14:35:47 +00:00
Matthias Seitz
b5f8c72095 chore: misc trait bounds (#12347) 2024-11-06 14:27:06 +00:00
Emilia Hane
660ca389e7 chore(sdk): define FullSignedTx trait (#12327) 2024-11-06 13:21:17 +00:00
Emilia Hane
d8edf9c80e chore(sdk): define FullBlock trait (#12326) 2024-11-06 13:20:51 +00:00
Federico Gimenez
098fa7f611 feat(engine): use execute_with_state_hook in ExecutorMetrics (#12316) 2024-11-06 11:38:29 +00:00
Steven
4048117bcf Track time diff between new_payload and FCU (#12245)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-06 10:20:33 +00:00
tedison
4bac1530d7 feat: add gas averages over time into grafana (#12237) 2024-11-06 10:19:15 +00:00
Thomas Coratger
8ec3af65b4 test(tokio-util): add unit tests for RateLimit (#12297) 2024-11-06 09:45:22 +00:00
Thomas Coratger
f1ac9b87b8 refactor(rpc): simplifications with DatabaseRef calls (#12294) 2024-11-06 09:45:00 +00:00
Eniko Nagy
1a091a7643 fix: allow SOURCE_DATE_EPOCH to be overridable (#12342) 2024-11-06 08:44:12 +00:00
Steven
e34a88d2cc renamed OptimismNode to OpNode (#12338) 2024-11-06 08:30:15 +00:00
Léa Narzis
0c7700f2c7 feat(payload) : optimize new payload job by fetching only header hash instead of block (#12343) 2024-11-06 07:58:45 +00:00
tedison
3f02e18dc5 fix: add dev feature in error message to generate test vectors (#12084) 2024-11-06 07:30:08 +00:00
Skanda Bhat
6ddb3eac97 feat: mev_simBundle (#12218)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-11-05 17:28:18 +00:00
Matthias Seitz
ab037756e5 feat: make it configurable how txs are yielded (#12337) 2024-11-05 15:17:42 +00:00
greg
39a667bbfe feat: graceful incoming connection closing (#12282)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-05 14:58:16 +00:00
Thomas Coratger
0e83203658 primitives: rm alloy BlobTransactionSidecar reexport (#12310) 2024-11-05 14:40:10 +00:00
Matthias Seitz
5af551782c feat: restructure op builder (#12229) 2024-11-05 14:04:52 +00:00
Thomas Coratger
15c230bac2 primitives: rm alloy BlobTransactionValidationError reexport (#12311) 2024-11-05 12:17:28 +00:00
Matthias Seitz
5c2e9417fc chore: 1.1.1 (#12334) 2024-11-05 13:00:16 +01:00
Thomas Coratger
441ddbf085 primitives: rm more alloy block reexports (#12308) 2024-11-05 11:37:56 +00:00
Matthias Seitz
556995fc5d chore: limit initial status size (#12324) 2024-11-05 11:23:20 +00:00
Matthias Seitz
4222cbe682 chore: switch op to new engine (#12329) 2024-11-05 11:11:04 +00:00
Steven
e3173407e1 renamed OptimismEngineValidator to OpEngineValidator (#12312) 2024-11-05 10:07:58 +00:00
Thomas Coratger
967cbc4e97 primitives: rm alloy Signature reexport (#12313) 2024-11-05 04:15:15 +00:00
Thomas Coratger
d5f0103601 primitives: rm alloy BlockNumHash reexport (#12304) 2024-11-04 14:54:58 +00:00
Federico Gimenez
3fe22343f1 feat(engine): add StateRootTask skeleton (#12305) 2024-11-04 12:48:32 +00:00
Thomas Coratger
0475af8bdb primitives: rm alloy BlockId reexport (#12303) 2024-11-04 11:47:18 +00:00
Thomas Coratger
566f2b4950 primitives: rm alloy BlockHashOrNumber reexport (#12302) 2024-11-04 10:15:56 +00:00
Thomas Coratger
56b76871ed primitives: rm alloy Withdrawal reexport (#12296) 2024-11-04 08:21:17 +00:00
Thomas Coratger
9814041603 primitives: rm useless OP_ constants (#12298) 2024-11-04 08:18:13 +00:00
garwah
bb03578eed chore: Move FillTxEnv::fill_tx_env into SignedTransaction trait and implement in TransactionSigned (#12186)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-11-04 07:01:40 +00:00
Kien Trinh
21d911abb2 docs: add debug.etherscan in the book (#12293)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-03 17:49:07 +00:00
Deon
61f19ab2dc Refactor: use fully-qualified paths in Compact derives(Deon Branch) (#12279)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-03 17:03:45 +00:00
tedison
4e3b32c5af feat: add more decimals to database growth (#12288) 2024-11-03 15:40:49 +00:00
Steven
20d3b21904 renamed OptimismEngineTypes to OpEngineTypes (#12285) 2024-11-03 15:26:31 +00:00
github-actions[bot]
e167cc9b09 chore(deps): weekly cargo update (#12289)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-11-03 13:51:20 +00:00
Steven
e374e4bfe9 renamed OptimismEvmConfig to OpEvmConfig (#12284) 2024-11-02 19:18:31 +00:00
Arsenii Kulikov
adff5a9429 feat: remove AnyNetwork usage (#12280) 2024-11-02 18:14:10 +00:00
Steven
af38a1a2d0 renamed OptimismPayloadTypes to OpPayloadTypes (#12281) 2024-11-02 18:04:25 +00:00
Léa Narzis
2aba40b17c feat: add CachedReads::extend (#12277)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-02 14:22:17 +00:00
Matthias Seitz
f2de55d8fe chore: make some fields owned (#12274) 2024-11-02 12:16:08 +00:00
Federico Gimenez
c74d2a06f2 chore(ci): unpin kurtosis (#12272) 2024-11-02 10:30:17 +00:00
Steven
dbdf60ba11 renamed OptimismBeaconConsensus to OpBeaconConsensus (#12271) 2024-11-02 09:22:58 +00:00
Steven
9593f4d08d renamed OptimismGenesisInfo to OpGenesisInfo (#12270) 2024-11-02 08:42:42 +00:00
Steven
962fa6685b Use Arc<ChainSpec> in SystemCaller (#12268)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-02 07:41:11 +00:00
Arsenii Kulikov
d7ead13bda fix: clippy lints (#12269) 2024-11-02 07:17:31 +00:00
Ryan Schneider
d8bbd36b2f feat: flashbots_validateBuilderSubmissionV4 (#12243) 2024-11-01 21:35:47 +00:00
Steven
c72f11cc85 renamed OptimismConsensusBuilder to OpConsensusBuilder (#12265) 2024-11-01 21:34:14 +00:00
Matthias Seitz
a911104fe9 test: make cargo t compile in db-models (#12263) 2024-11-01 21:03:17 +00:00
Matthias Seitz
fdf10a7dc2 test: make cargo t compile in codecs (#12261) 2024-11-01 20:58:59 +00:00
Steven
166a2346dc renamed OptimismExecutorBuilder to OpExecutorBuilder (#12258) 2024-11-01 20:19:47 +00:00
joshieDo
969ca3e63b fix: check hashed state for loading TriePrefixSets::destroyed_accounts (#12235) 2024-11-01 17:14:22 +00:00
Matthias Seitz
bc69f6348f feat: add asref impls (#12257) 2024-11-01 17:08:41 +00:00
Matthias Seitz
41c4bab0f7 chore: use deref directly (#12256) 2024-11-01 16:02:49 +00:00
Steven
d810001279 renamed OptimismNetworkBuilder to OpNetworkBuilder (#12255) 2024-11-01 15:34:48 +00:00
Matthias Seitz
eaac2aa2cf chore: simplify cached db usage (#12242) 2024-11-01 14:17:31 +00:00
Thomas Coratger
d5a3a3a849 test(chain-state): add unit tests for CanonStateNotification (#12110) 2024-11-01 13:57:34 +00:00
Léa Narzis
c1a68f23cf refactor: move payload/builder/src/database.rs to revm/src/cached.rs (#12252)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-11-01 14:55:23 +01:00
Aliaksei Misiukevich
f6bd11c711 feature: transaction's input truncate function (#12236)
Signed-off-by: nadtech-hub <taberlick@gmail.com>
2024-11-01 14:54:55 +01:00
Emilia Hane
f93dbf54c3 Remove redundant SignedTransaction::Signature (#12185) 2024-11-01 11:49:37 +00:00
caglarkaya
927be855ff feat: track buffered outgoing messages (#12220) 2024-11-01 11:32:12 +00:00
nk_ysg
f52186cc4d db-api: opt StorageShardedKey encode, decode (#12143) 2024-11-01 11:30:03 +00:00
Matthias Seitz
c6b740801f chore: apply same member order (#12253) 2024-11-01 11:11:54 +00:00
Darshan Kathiriya
2758a560c0 txpool: added a helper to filter pending txns by predicate (#12204) 2024-11-01 12:10:55 +01:00
Thomas Coratger
249c600dd9 rpc: add rename method in TransportRpcModules (#12239) 2024-11-01 10:34:48 +00:00
Thomas Coratger
f0cef9dc51 revm: add Database Either helper type (#12240) 2024-11-01 10:33:58 +00:00
Thomas Coratger
39bc8ce81a refactor(revm): simplify Database impl for StateProviderDatabase (#12241) 2024-11-01 11:35:06 +01:00
Matthias Seitz
8d31b65242 chore: clippy happy (#12248) 2024-11-01 11:17:43 +01:00
Steven
921d1cc4b5 renamed OptimismPoolBuilder to OpPoolBuilder (#12246) 2024-11-01 10:44:16 +01:00
Steven
bd8c4eceb2 replace DisplayHardforks with Box<dyn Display> (#12219)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-31 20:20:41 +00:00
Arsenii Kulikov
d020b41f6a feat: flashbots_validateBuilderSubmissionV3 (#12168) 2024-10-31 19:22:42 +00:00
Steven
998b3b3d3a renamed OptimismPayloadBuilder to OpPayloadBuilder (#12234) 2024-10-31 19:21:38 +00:00
Dan Cline
d555f9ef3a chore(book): fix engine api typo (#12231) 2024-10-31 20:21:55 +01:00
Federico Gimenez
219def9582 chore(ci): pin kurtosis to working version (#12225) 2024-10-31 16:21:06 +00:00
Steven
460e26cc51 renamed OptimismBuiltPayload to OpBuiltPayload (#12227) 2024-10-31 15:51:33 +00:00
Matthias Seitz
1f1dcc950d chore: simplify SystemCaller setup (#12223) 2024-10-31 13:45:55 +00:00
Roman Krasiuk
76c5aef911 fix(trie): move to sibling on invalid tree mask (#12193)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-10-31 10:53:59 +00:00
Steven
41044a2601 Apply beacon system call to trace_block (#12030)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-31 09:07:20 +00:00
Matthias Seitz
66cc619128 chore: rm deprecated txpool fn (#12198) 2024-10-31 08:34:31 +00:00
Steven
9659717e83 renamed OptimismPayloadBuilderAttributes to OpPayloadBuilderAttributes (#12213) 2024-10-31 08:34:11 +00:00
Léa Narzis
c19af293a6 feat: add rlp support for EthVersion (#12221) 2024-10-31 08:33:33 +00:00
Matthias Seitz
e5fc048139 docs: add context truncated input (#12207) 2024-10-30 22:43:26 +00:00
0xriazaka.eth
b42b189210 Reth primitives traits tx type (#11720)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-10-30 21:45:16 +00:00
Matthias Seitz
09c666d676 test: add test case for BestTransactions (#12209) 2024-10-30 18:36:38 +00:00
Matthias Seitz
0c39704950 feat: add missing is active at timestamp fns (#12206) 2024-10-30 18:04:44 +00:00
Matthias Seitz
b3e8327065 chore: rename v1 type (#12205) 2024-10-30 17:56:36 +00:00
Kaushik Donthi
755fac08dd Wrap sidecar in arcs (#11554)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-30 16:06:37 +00:00
Matthias Seitz
bb8da983b0 feat: add is_ethereum trait fn (#12197) 2024-10-30 15:39:12 +00:00
Abhishek kochar
ff9a42ae8f feat(eth69): support for ETH69 (#12158)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-30 14:13:03 +00:00
cody-wang-cb
93a9b8a218 feat: Eip1559 params in extradata (#11887)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-30 12:59:19 +00:00
Thomas Coratger
2778ba3d52 tx-pool: fix ExceedsGasLimit error message order (#12191) 2024-10-30 11:30:49 +00:00
Dan Cline
6e794ee673 fix(ecies): bound initial header body size (#12172) 2024-10-30 11:29:48 +00:00
DaniPopes
367b4ed18a chore(meta): update SECURITY.md (#12190) 2024-10-30 11:10:14 +01:00
frisitano
129f3ba911 feat: introduce StateCommitment type (#11842) 2024-10-30 08:48:43 +00:00
Kufre Samuel
734c78fdfb feat(discv4): neighbors packet logging (#12042)
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2024-10-29 21:24:35 +00:00
tedison
82784183e7 feat: transaction trait (#11877) 2024-10-29 16:47:12 +00:00
Thomas Coratger
2e750f0ca0 test(prune): add unit tests for ReceiptsLogPruneConfig (#11916) 2024-10-29 14:57:35 +00:00
joshieDo
1006ce78c5 feat(provider): use NodeTypes on DatabaseProvider instead (#12166) 2024-10-29 14:37:41 +00:00
Matthias Seitz
58f24e0056 chore: remove generate sidecar fn (#12167) 2024-10-29 14:35:42 +00:00
Hoa Nguyen
e92ecfbc22 feat: Introduce trait for OpTransaction (#11745)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-29 14:34:12 +00:00
Matthias Seitz
f545877bb8 Revert "Revert "feat: add geometry to database args"" (#12165) 2024-10-29 13:23:54 +00:00
Alexey Shekhirin
52328422aa feat(storage): pass changesets to unwind methods (#7879) 2024-10-29 13:18:12 +00:00
Matthias Seitz
6f3600dc38 Revert "feat: add geometry to database args" (#12164) 2024-10-29 13:58:57 +01:00
Thomas Coratger
4a8799f98b consensus: add unit tests for ForkchoiceStateTracker and ForkchoiceStateHash (#12077) 2024-10-29 12:17:48 +00:00
Evan Chipman
0f9ba64e95 feat: add geometry to database args (#11828)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-29 12:17:04 +00:00
joshieDo
1653877ed5 chore(ci): try to read all vectors on compact-codec before exiting in error (#12160) 2024-10-29 12:14:41 +00:00
Thomas Coratger
3c60778126 storage: into_iter with self by value (#12115) 2024-10-29 12:01:59 +00:00
Debjit Bhowal
dd18af1f16 feat: without-evm cli option in reth (#12134)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-29 11:15:20 +00:00
joshieDo
2dbbd152cb chore(provider): remove unused BlockExecutionReader trait (#12156) 2024-10-29 11:00:22 +00:00
Léa Narzis
7880d4ddb0 refactor: change PayloadConfig to use parent header instead of parent block (#12159) 2024-10-29 09:52:00 +00:00
Dan Cline
b48fa68f65 fix(ecies): ecies typo (#12155) 2024-10-29 05:14:34 +00:00
Matthias Seitz
cc2a33cfc0 feat: rate limit incoming ips (#12153) 2024-10-29 02:09:11 +00:00
Matthias Seitz
fbe04625b9 test: use port0 in tests (#12154) 2024-10-29 00:04:24 +00:00
zilayo
0297b8f694 fix: use net::discv5 for reth's discv5 tracing target namespace (reverts #12045) (#12151) 2024-10-28 23:59:52 +00:00
greged93
462157880c dev: track invalid transactions by sender in pool (#12138) 2024-10-28 23:51:20 +00:00
Matthias Seitz
367eb44177 chore: remove one unwrap (#12152) 2024-10-28 23:18:37 +00:00
Matthias Seitz
05ee75f32c fix: restrict concurrent incoming connections (#12150) 2024-10-28 22:31:10 +00:00
Dan Cline
ddc9bda315 fix(op): fix payload id calculation (#11730)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-28 20:27:56 +00:00
Emilia Hane
37d9643607 chore(rpc): remove redundant LoadState::cache (#12147) 2024-10-28 18:10:30 +00:00
Emilia Hane
28f8c47dc0 chore(rpc): remove redundant LoadTransaction::cache (#12148) 2024-10-28 18:10:18 +00:00
Emilia Hane
3d62bfde14 chore(rpc): add super trait RpcNodeCoreExt to LoadReceipt (#12149) 2024-10-28 18:09:58 +00:00
Emilia Hane
473026f40a chore(rpc): remove redundant LoadFee::cache (#12146) 2024-10-28 16:51:45 +00:00
Emilia Hane
0733da9e12 chore(rpc): relax FullNodeComponents trait bound on OpEthApi to RpcNodeCore (#12142) 2024-10-28 16:37:11 +00:00
Emilia Hane
06d73eec8a chore(rpc): inline trait methods of RpcNodeCore impl (#12144) 2024-10-28 16:35:26 +00:00
Emilia Hane
b36b021aa2 chore(rpc): define trait RpcNodeCoreExt and replace LoadBlock::cache (#12141) 2024-10-28 15:59:26 +00:00
Alexey Shekhirin
1276277568 test(trie): use proptest to generate random values (#12140) 2024-10-28 15:57:58 +00:00
0xOsiris
3f4634ccbc chore: add version to PayloadBuilderAttributes::try_new (#12137) 2024-10-28 14:37:36 +00:00
Alexey Shekhirin
af5ae5a792 perf(trie): reduce allocations in sparse trie rlp node calculation (#12092) 2024-10-28 13:55:31 +00:00
Hoa Nguyen
380e237257 refactor: replace receipt envelope encoded with trait (#11742)
Co-authored-by: Tuan Tran <tropicaldog17@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-28 13:48:32 +00:00
github-actions[bot]
e446feb116 chore(deps): weekly cargo update (#12108)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-10-28 12:44:11 +00:00
Alexey Shekhirin
1f1c68d65e perf(trie): cache prefix set lookups in sparse trie (#12088) 2024-10-28 12:36:12 +00:00
Thomas Coratger
72096221df refactor(chainspec): refac and improved doc for last_block_fork_before_merge_or_timestamp (#12114) 2024-10-28 12:08:57 +00:00
Thomas Coratger
719ca3a682 chain-spec: use alloy MAINNET_DEPOSIT_CONTRACT_ADDRESS constant (#12113) 2024-10-28 11:56:28 +00:00
Arsenii Kulikov
d74730af3b feat: add a wrapper for BestTransactions prioritizing given senders (#12123) 2024-10-28 13:31:08 +01:00
joshieDo
87a615fe26 fix(ci): remove renaming from compact-codec (#12133) 2024-10-28 13:28:52 +01:00
Léa Narzis
b5c0a46363 feat: add pending|queued txs pool helpers (#12128) 2024-10-28 13:03:20 +01:00
0xOsiris
0d07d27f3c feat: Add version to BeaconEngineMessage FCU (#12089)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-28 13:00:36 +01:00
Alexey Shekhirin
1b0f625f1d perf(trie): collect only changed sparse nodes at a depth (#12093) 2024-10-28 11:06:26 +00:00
Alexey Shekhirin
268090e879 bench(trie): RevealedSparseTrie::update_rlp_node_level (#12046) 2024-10-28 10:44:36 +00:00
Emilia Hane
8f5fd1d70c chore(rpc): remove redundant EthTransactions::provider (#12121) 2024-10-28 10:14:40 +00:00
Emilia Hane
77e5748124 chore(rpc): remove redundant LoadFee::provider (#12122) 2024-10-28 10:14:11 +00:00
joshieDo
e4bd13534d fix(ci): remove import path from type names on compact-codec (#12125) 2024-10-28 10:13:43 +00:00
Alexey Shekhirin
0f86287b65 fix(trie): sparse trie walk should be done in a sorted manner (#12087) 2024-10-28 10:09:47 +00:00
Thomas Coratger
fbdebe08e0 chain-state: fix typo (#12112) 2024-10-28 11:16:33 +01:00
Thomas Coratger
8605d04a09 refactor: rm re-exports of alloy eip 4844 constants (#12120) 2024-10-28 08:30:06 +00:00
Thomas Coratger
1c36b71612 docs: small fix in payload doc (#12116) 2024-10-28 07:13:47 +00:00
Parikalp Bhardwaj
0c516091b8 TransactionsHandle propagation commands should not adhere to caching (#12079)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-27 15:11:03 +00:00
Emilia Hane
b7b3f8149c chore(rpc): remove redundant Trace::evm_config (#12102) 2024-10-27 14:24:21 +00:00
Emilia Hane
131cc5175e chore(rpc): remove redundant EthBlocks::provider (#12109) 2024-10-27 09:21:34 +00:00
Emilia Hane
768404c59e chore(rpc): remove redundant trait bounds in eth api (#12105) 2024-10-27 08:30:02 +00:00
Emilia Hane
e158369a68 chore(rpc): remove redundant trait method LoadBlock::provider (#12100) 2024-10-27 07:35:24 +00:00
Thomas Coratger
fae36bd25f refactor(storage): small refactor (#12106) 2024-10-27 02:00:32 +00:00
Thomas Coratger
8eb1742284 refactor(tx-pool): small refactor (#12107) 2024-10-27 01:59:57 +00:00
Emilia Hane
988c5ee4c5 chore(rpc): Add super trait RpcNodeCore to LoadPendingBlock (#12098) 2024-10-26 23:11:53 +00:00
Emilia Hane
a98dc3973f chore(rpc): simplify trait bounds on EthApiSpec impl (#12101) 2024-10-26 18:56:29 +00:00
Matthias Seitz
923f4ffa92 chore: only check for better payload if tx_pool (#12097) 2024-10-26 18:22:46 +00:00
Hai | RISE
ab07fcfb11 chore(op): simplify blob fields in newly built block header (#12035) 2024-10-26 17:02:14 +00:00
Emilia Hane
1bdf429af5 Remove trait method Call::evm_config (#12095) 2024-10-26 16:20:08 +00:00
lazymio
b257408060 Fix readonly check in libmdbx-rs (#12096) 2024-10-26 16:17:21 +00:00
Ryan Schneider
f616de6d94 feat(rpc): Start to implement flashbots_validateBuilderSubmissionV3 (#12061) 2024-10-26 16:15:08 +00:00
Thomas Coratger
09ebecffc7 prune: add unit tests for PruneInput get_next_tx_num_range (#12081) 2024-10-26 16:11:57 +00:00
Emilia Hane
d5f5c0f112 chore(rpc): set RpcNodeCore as supertrait for LoadState (#12094) 2024-10-26 15:40:46 +00:00
Yu Zeng
019f347385 chore: move optimism execution types test to optimism crate (#12026) 2024-10-26 15:04:17 +00:00
Emilia Hane
a06c3af832 chore(rpc): Remove provider and network trait methods from EthApiSpec (#12050) 2024-10-26 13:03:22 +00:00
Emilia Hane
44e4c47803 chore(sdk): add helper trait to node API to simplify type definition (#10616) 2024-10-26 10:55:26 +00:00
Darshan Kathiriya
ac329bfce1 perf: improve debug_traceBlock performance (#11979)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-26 07:44:47 +00:00
greged93
cecdf611e9 feat: map_chainspec for NodeConfig (#12068) 2024-10-26 06:11:27 +00:00
greged93
e0ad59834d dev: add requests to EthBuiltPayload (#12072) 2024-10-26 06:10:15 +00:00
Arsenii Kulikov
fa59bd512e fix: correctly detect first sync on headers stage (#12085) 2024-10-25 23:18:34 +00:00
AJStonewee
a349919b5c docs: remove deleted op-sync workflow from docs (#12086)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-25 22:44:00 +00:00
Kien Trinh
16b64d8284 feat(make): add docs lint (#12082) 2024-10-25 20:22:02 +00:00
Jeff
d91cacd14a feat(rpc): rpc rate limiter impl (#11952)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-25 17:11:24 +00:00
tedison
e676d71d0b feat: Freeze payload if final (#12078)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-25 17:08:01 +00:00
Thomas Coratger
5568cca846 primitive-traits: add unit tests for Account (#12048) 2024-10-25 16:39:52 +00:00
Debjit Bhowal
e93e373853 making command public (#12074) 2024-10-25 14:21:17 +00:00
Matthias Seitz
09506aa130 chore: rm TransactionFilter (#12066) 2024-10-25 12:25:52 +00:00
Matthias Seitz
07bda5d453 chore: EthBuiltPayload touchups (#12067) 2024-10-25 12:17:32 +00:00
Matthias Seitz
26d1b1524b fix: ignore discovered peers with tcp port 0 (#12065) 2024-10-25 12:17:07 +00:00
Arsenii Kulikov
58441c158b fix: fail on unwind during reth import (#12062) 2024-10-25 12:10:20 +00:00
tedison
a87d654c55 feat: introduce iterator for default_ethereum_payload function (#11978) 2024-10-25 11:48:58 +00:00
joshieDo
2ae7ee51e0 fix: increase arbitrary::Unstructured buffer size if NotEnoughData is thrown (#12069) 2024-10-25 10:13:46 +00:00
Matthias Seitz
269d705c70 test: ensure we acquire file lock in tests (#12064) 2024-10-25 08:38:07 +00:00
tedison
5a5ec73c37 Change return type of ReceiptBuilder (#11987) 2024-10-25 05:02:43 +00:00
Arsenii Kulikov
d9889787a7 feat: improve e2e tests API + feeHistory test (#12058) 2024-10-25 05:01:44 +00:00
Thomas Coratger
c3182f2a64 primitives-traits: small refac for IntegerList and more doc (#12049) 2024-10-25 04:37:20 +00:00
Panagiotis Ganelis
674616cab9 chore: change net::discv5 log target to discv5 (#12045) 2024-10-25 03:56:21 +00:00
Matthias Seitz
965dabacad chore: add missing helpers to BestTransactions (#12044) 2024-10-25 05:57:09 +02:00
joshieDo
ea4fb26063 ci: enable compact-codec job (#12056) 2024-10-25 00:23:51 +00:00
joshieDo
777417ad8a feat: add reth test-vectors compact --write|--read (#11954) 2024-10-24 18:34:12 +00:00
Alexey Shekhirin
ba78e43938 fix(exex): relax ExExContext trait bounds (#12055) 2024-10-24 16:52:13 +00:00
Deil Urba
2fba3c027b feat: ExExContext's dynamic config (#11983) 2024-10-24 13:32:44 +00:00
Matthias Seitz
e74f185d95 feat: add BestTransactions::filter_transactions (#12041) 2024-10-24 13:28:25 +00:00
Thomas Coratger
53c5476637 chore(primitive-traits): rm EIP1559_ constants (#12036) 2024-10-24 13:20:11 +00:00
greged93
11149d295e feat(payload builder): transaction pool filter (#10542)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-24 13:13:05 +00:00
Thomas Coratger
bea6e278df primitive-traits: use alloy MIN_PROTOCOL_BASE_FEE constant (#12037) 2024-10-24 12:29:24 +00:00
Matthias Seitz
8b317f206f fix: exclude withdrawals from uncle block (#12038) 2024-10-24 14:36:52 +02:00
Arsenii Kulikov
5e4da59b3a feat: Add more complex E2E test (#12005) 2024-10-24 11:12:34 +00:00
Matthias Seitz
2d83f20489 chore: reuse alloy-primitives logs bloom (#12031) 2024-10-24 11:12:13 +00:00
Thomas Coratger
d50da7fcd6 primitives-traits: use alloy SEPOLIA_GENESIS_HASH constant (#12024) 2024-10-24 10:50:43 +00:00
Deil Urba
ebd1ed9fb8 feat(exex): notifications trait (#11972) 2024-10-24 10:49:14 +00:00
Thomas Coratger
8bfb7f9ce9 primitive-traits: use alloy BEACON_NONCE constant (#12029) 2024-10-24 09:58:50 +00:00
Thomas Coratger
bbeb799dc1 primitive-traits: rm ALLOWED_FUTURE_BLOCK_TIME_SECONDS constant (#12028) 2024-10-24 09:56:05 +00:00
Thomas Coratger
84a30b0404 primitive-traits: use alloy INITIAL_BASE_FEE constant (#12022) 2024-10-24 09:53:15 +00:00
Hoa Nguyen
0df3148357 feat(payload): introduce payload freezing for predetermined blocks (#11790) 2024-10-24 06:29:07 +00:00
Emilia Hane
e04d1b4b4a perf(net): P2P sink, revert pull/11658 (#11712) 2024-10-24 06:04:57 +00:00
nk_ysg
fcca8b1523 refactor: BlockchainTestCase::run rm repetitive convert ForkSpec to ChainSpec (#11896)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-24 05:26:25 +00:00
Hai | RISE
d7f08cd876 chore: remove some clones (#12008) 2024-10-24 05:09:14 +00:00
Emilia Hane
7a06298cf7 chore(rpc): make TransactionCompat::fill stateful (#11732) 2024-10-24 04:46:07 +00:00
caglarkaya
082f2cd235 refactor: use op-alloy deposit signature (#12016) 2024-10-24 01:19:39 +00:00
Roman Krasiuk
40935321e3 chore(cli): engine cli options conflict with legacy (#11993) 2024-10-24 00:28:16 +00:00
Thomas Coratger
f2195026cc test: more unit tests for TreeState (#11687) 2024-10-24 00:10:00 +00:00
Thomas Coratger
044e2d6aea refactor(primitive-traits): use alloy EPOCH_SLOTS constant (#12018) 2024-10-23 23:15:45 +00:00
Thomas Coratger
565e4b400d refactor(primitive-traits): use alloy ETHEREUM_BLOCK_GAS_LIMIT constant (#12019) 2024-10-23 23:15:15 +00:00
Matthias Seitz
2fb63b0491 chore: dont log if nothing to evict (#12015) 2024-10-23 19:40:29 +00:00
Matthias Seitz
d6f5a89a27 test: tests for empty block bodies (#12013) 2024-10-23 18:40:57 +00:00
Julian Meyer
57a21fcb9e chore: increase max proof window (#12001) 2024-10-23 16:22:51 +00:00
Alexey Shekhirin
b73261936e chore(trie): prefix set doc comment clarification (#12010) 2024-10-23 15:59:22 +00:00
Alexey Shekhirin
f3853e71b3 test(trie): get sparse trie nodes at depth (#12007) 2024-10-23 15:22:59 +00:00
Federico Gimenez
bf612bee50 chore(hive): update expected failures (#12006) 2024-10-23 15:03:25 +00:00
Oliver
89eb73f3d2 refactor: replace extra fields with ExecutionPayloadSidecar in engine (#11901) 2024-10-23 14:44:37 +00:00
Thomas Coratger
889a7e0b98 primitive-traits: use alloy _DURATION constants (#11960) 2024-10-23 14:31:22 +00:00
Thomas Coratger
b7167a9ddc test(tx-pool): add unit test for GetPooledTransactionLimit (#11975) 2024-10-23 14:30:57 +00:00
Oliver
fa30a4f758 feat: add osaka hardfork (#11984) 2024-10-23 14:29:32 +00:00
Alexey Shekhirin
e98a050dc7 fix(trie): account for existing nodes when revealing a node (#11836) 2024-10-23 14:27:52 +00:00
joshieDo
8a40d5c6aa feat(providers): add AtomicBlockchainProvider (#11705)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-23 13:40:14 +00:00
Matthias Seitz
ab407e7444 chore: bump alloy 054 (#12000) 2024-10-23 13:39:41 +00:00
Matthias Seitz
55d98bbc6e fix: check failed find nodes requests before sending new ones (#11997) 2024-10-23 13:37:39 +00:00
Thomas Coratger
252cdf7f35 storage: add unit tests for StorageRevertsIter (#11999) 2024-10-23 13:35:24 +00:00
Thomas Coratger
5e0ba4104d tx-pool: migrate ensure_max_init_code_size to PoolTransaction trait (#11976) 2024-10-23 13:11:59 +00:00
Thomas Coratger
386379efd5 test(tokio-util): add unit tests for EventSender (#11980) 2024-10-23 12:58:56 +00:00
Hai | RISE
cf4e774542 chore: Ethereum -> Optimism in comment of optimism_payload (#11998) 2024-10-23 15:12:44 +02:00
Arsenii Kulikov
ff04de380d chore: bump alloy-eip7702 (#11986)
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2024-10-23 12:53:29 +00:00
Matthias Seitz
7fd28df2b4 fix: re-establish bond on ping (#11989) 2024-10-23 11:39:12 +02:00
Thomas Coratger
ee1260a1de refactor(tx-pool): move is_underpriced to ValidPoolTransaction impl (#11938) 2024-10-23 11:38:45 +02:00
Matthias Seitz
6e5176221f fix: ping oldest more often (#11988) 2024-10-22 23:20:19 +00:00
Arsenii Kulikov
74eb37523a fix: correctly poll BasicBlockDownloader (#11981) 2024-10-22 22:38:44 +00:00
alpharush
d68dca1a26 chore: fix cargo feature warning (#11900)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-22 22:34:09 +00:00
Moe Mahhouk
527d344dda feat: Add reproducible build profile (#10459)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-22 21:52:49 +00:00
Matthias Seitz
8bfbd97795 feat(discv4): add soft_remove_node (#11970) 2024-10-22 21:19:34 +00:00
Thomas Coratger
22171d27bf chore: unpin serde (#11977) 2024-10-22 20:24:25 +00:00
Matthias Seitz
28c61c15b4 fix: invoke prometheus recorder on op-reth Cli::run (#11982) 2024-10-22 19:46:00 +00:00
Matthias Seitz
3174bd5c91 chore: bump aquamarine (#11965) 2024-10-22 18:12:15 +00:00
Alexey Shekhirin
e70b112420 feat(trie): update sparse trie hashes below level (#11969) 2024-10-22 18:04:58 +00:00
Matthias Seitz
468ac0d43b chore: log enode (#11974) 2024-10-22 17:00:10 +00:00
Alexey Shekhirin
8b1dfcca3f test(trie): proptest <-> alloy maps integration (#11962) 2024-10-22 14:56:17 +00:00
Federico Gimenez
b20a271551 chore(tree): improved debug logging for block insertion (#11958) 2024-10-22 14:56:04 +00:00
Alexey Shekhirin
b3015c75b1 fix(trie): removing a blinded leaf should result in an error (#11869)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-10-22 13:31:37 +00:00
Francis Li
60337d9614 feat(rpc): Add flags to disable read tx timeout (#11856) 2024-10-22 12:43:25 +00:00
Matthias Seitz
df57aedba6 chore: bump discv5 (#11966) 2024-10-22 12:34:03 +00:00
James Prestwich
90aaad8285 opt: reduce allocs for parse_deposits_from_receipts (#11949) 2024-10-22 11:53:39 +00:00
joshieDo
cab76f2083 fix(engine): run pruner after saving blocks (#11927) 2024-10-22 11:39:08 +00:00
Thomas Coratger
e8205936da primitive-traits: rm unused SELECTOR_LEN (#11959) 2024-10-22 13:38:45 +02:00
Matthias Seitz
75b39bc264 chore: run clippy locked (#11964) 2024-10-22 13:28:27 +02:00
Matthias Seitz
0df7f65f3d chore: serde 1.0.210 (#11963) 2024-10-22 13:09:44 +02:00
Thomas Coratger
4a68c5e2d4 refactor(rpc): small refactor in block_with_senders (#11950) 2024-10-22 12:35:27 +02:00
Luca Provini
1342747c9b fix: spawn network manager on test exex ctx (#11907) 2024-10-22 12:35:09 +02:00
Thomas Coratger
e52f647644 chore(primitives): use alloy eth conversion constants (#11892) 2024-10-22 12:34:53 +02:00
dependabot[bot]
2973f0c3e8 chore(deps): bump dawidd6/action-homebrew-bump-formula from 3 to 4 (#11951)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-22 12:33:47 +02:00
Matthias Seitz
51594c9a68 chore: relax payload traits (#11947) 2024-10-21 21:36:44 +00:00
Lion - dapplion
f2ac547666 Add custom beacon withdrawals example (#9497)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
2024-10-21 21:02:44 +00:00
Matthias Seitz
88a38de4d7 chore(rpc): relax some types (#11946) 2024-10-21 20:46:16 +00:00
Arsenii Kulikov
cc895e7052 fix: always accept transactions with current nonce (#11931) 2024-10-21 20:14:48 +00:00
Thomas Coratger
387b0f8b36 refactor(tx-pool): small refactor for contains_conflicting_transaction (#11935) 2024-10-21 20:14:18 +00:00
Thomas Coratger
4d3b35dbd2 test(tx-pool): add unit test for remove_sender_count (#11939) 2024-10-21 19:31:40 +00:00
Thomas Coratger
1f4ca32e35 refactor(primitives-traits): rm useless trait bounds for Receipt (#11942) 2024-10-21 19:18:30 +00:00
Matthias Seitz
7f47ef0fd3 chore: spawn eth_calls as blocking tasks (#11944) 2024-10-21 19:18:24 +00:00
Alexey Shekhirin
bddd3202e4 test(trie): narrow the range of keys for sparse trie fuzz (#11937) 2024-10-21 19:04:09 +00:00
Federico Gimenez
d9d184d498 feat: default impl for some BlockExecutionStrategy methods (#11941) 2024-10-21 18:47:50 +00:00
Matthias Seitz
3f2a41bd3f chore: rm redundant trait bound (#11940) 2024-10-21 18:05:06 +00:00
Thomas Coratger
20dc0c7da0 some fmt (#11933) 2024-10-21 17:25:33 +00:00
Federico Gimenez
7119bb1fe0 chore: introduce ExecuteOutput (#11929) 2024-10-21 12:34:23 +00:00
nk_ysg
f25cceb9f9 perf: use Vec::with_capacity and reserve_exact (#11904) 2024-10-21 11:59:09 +00:00
Matthias Seitz
aba4991d0a docs: note about type changes (#11925) 2024-10-21 10:31:29 +00:00
greged93
bdad91b700 docs: update grafana docs (#11908) 2024-10-21 09:42:46 +00:00
Federico Gimenez
fbb27ebdad chore(ci): update excluded crates in wasm checker (#11915) 2024-10-21 08:24:36 +00:00
Thomas Coratger
ddc82e2645 test(static-file): add unit tests for HighestStaticFiles implementation (#11912) 2024-10-21 06:31:29 +00:00
Thomas Coratger
2e8a8fe6f6 doc(storage): add missing documentation for nippy-jar (#11913) 2024-10-20 23:10:36 +00:00
Thomas Coratger
0270128d4f refactor(txpool): small refactor in DiskFileBlobStoreInner get_exact (#11911) 2024-10-20 21:42:45 +00:00
Oliver
a188597a3c ci: merge sync jobs (#11909) 2024-10-20 20:55:14 +00:00
Federico Gimenez
5fca07ca87 fix: impl BlockExecutionStrategy for OpExecutionStrategy generic over EvmConfig (#11910) 2024-10-20 19:23:31 +00:00
nk_ysg
e9c09723ed docs(blockchain-tree): rm comment (#11903) 2024-10-20 14:39:42 +00:00
github-actions[bot]
de07436f0e chore(deps): weekly cargo update (#11902)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-10-20 12:43:31 +00:00
Federico Gimenez
453ba2d9ac feat: switch to composable executor for Optimism (#11846) 2024-10-20 08:46:18 +00:00
caglarkaya
422ab17354 feat: use next free nonce in eth_sendTransaction (#11873) 2024-10-19 22:14:52 +00:00
liamaharon
cf4a4454ec fix: feature propagation (#11888)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-19 20:36:11 +00:00
greged93
6c026daf92 docs: explain how to add metrics to grafana (#11875) 2024-10-19 20:20:23 +00:00
Federico Gimenez
cd828c06d9 feat: switch to composable executor for Ethereum (#11838) 2024-10-19 17:59:32 +00:00
greged93
d0ac833946 perf: avoid cloning in payload builder (#11899) 2024-10-19 16:56:48 +00:00
Hai | RISE
e2ecb6224d chore: remove unused deps (#11898) 2024-10-19 16:54:07 +00:00
Matthias Seitz
f8969cbbc2 docs: add hardfork checklist (#11897)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-19 16:14:02 +00:00
Gerson
a78de201b3 Refactor of state_change functionality (#11878)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-19 16:01:26 +00:00
Oliver
c803012085 chore: use Requests instead of Vec<Bytes> (#11895) 2024-10-19 15:17:14 +00:00
Dan Cline
1efa764b34 chore(engine): rename enveloped associated types to envelope (#11812)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-19 13:29:29 +00:00
Matthias Seitz
1a1aa2f8c3 feat: add map_pool fn (#11890) 2024-10-19 13:18:20 +00:00
Thomas Coratger
ddc5ac3fa7 refactor(rpc): small refactor in trace_filter (#11894) 2024-10-19 13:12:28 +00:00
Matthias Seitz
3793b907ea chore: better start finish persisted block logs (#11893)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-19 13:05:53 +00:00
Oliver
3bd695ee63 feat: update el requests for devnet 4 (#11865)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-19 12:48:35 +00:00
Arsenii Kulikov
2ae93682b4 refactor: move EngineValidator setup to RpcAddOns (#11850) 2024-10-19 10:08:34 +00:00
Thomas Coratger
da5079d11f test(txpool): add unit test for BlobStoreCanonTracker (#11885) 2024-10-19 08:28:42 +00:00
Thomas Coratger
2f559c62bf primitives: use alloy MAXIMUM_EXTRA_DATA_SIZE constant (#11881) 2024-10-19 08:28:10 +00:00
Thomas Coratger
a6daafc6a4 refactor(txpool): small refactor for InMemoryBlobStore impl (#11886) 2024-10-19 08:27:29 +00:00
greged93
a4126b3a53 feat: tasks executor metrics in grafana (#11815)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-18 22:15:08 +00:00
Thomas Coratger
655fc1a55a rpc: add unit tests for RpcModuleSelection (#11883) 2024-10-18 22:13:02 +00:00
Thomas Coratger
eee5e0d41f bump rust to 1.82 (#11876) 2024-10-18 20:08:09 +00:00
Matthias Seitz
a908f97773 chore: simplify update fn (#11880) 2024-10-18 18:21:55 +00:00
Ayodeji Akinola
587c91f1cf Optimize Sender Recovery Process (#11385) 2024-10-18 15:17:11 +00:00
Matthias Seitz
9c8f5d89d8 chore: rm v2 get bodies functions (#11870) 2024-10-18 11:47:56 +00:00
Arsenii Kulikov
8d32fd788b feat: allow awaiting payload in progress (#11823)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-18 10:45:51 +00:00
Emilia Hane
cfd066c071 chore(sdk): SignedTransaction abstraction (#11432)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-18 09:43:23 +00:00
Emilia Hane
cb604826b7 chore(sdk): Define NodePrimitives::Block (#11399) 2024-10-18 09:23:25 +00:00
Thomas Coratger
5859f93c56 primitives: use alloy EMPTY_ constants (#11852) 2024-10-18 08:53:21 +00:00
Thomas Coratger
0c70f6bd35 primitives: use alloy KECCAK_EMPTY constant (#11851) 2024-10-18 08:25:22 +00:00
Matthias Seitz
dfcaad4608 chore: remove some cfg imports (#11864) 2024-10-17 22:42:24 +00:00
Thomas Coratger
62e7625b16 primitives: use alloy *_TX_TYPE_ID constants (#11853) 2024-10-17 22:41:59 +00:00
Matthias Seitz
f3c0dda0d3 perf: use existing block hash functions (#11858) 2024-10-17 22:40:33 +00:00
Matthias Seitz
96ad6d5bd5 chore: rm unused reth-revm c-kzg feature (#11860) 2024-10-17 22:40:15 +00:00
DaniPopes
bc43613be3 chore: disable SC2034 in check_wasm.sh (#11854) 2024-10-17 20:33:37 +00:00
Thomas Coratger
b57cbfd21b primitives: use alloy DEV_GENESIS_HASH constant (#11849) 2024-10-17 20:29:31 +00:00
0xriazaka.eth
8eb5d4f047 Remove unsafe from impl Compact for ClientVersion (#11318)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2024-10-17 20:28:13 +00:00
Thomas Coratger
a6c8bda029 primitives: use alloy MAINNET_GENESIS_HASH constant (#11848) 2024-10-17 19:44:04 +00:00
Matthias Seitz
52848a352a fix: check for prague timestmap on pool init (#11847) 2024-10-17 18:13:05 +00:00
Dan Cline
76edc38823 fix(rpc): apply beacon root contract call in debug_traceTransaction (#11845) 2024-10-17 17:48:05 +00:00
nk_ysg
0a1473b6e7 perf(blockchain-tree:) use Vec::reserve_exact (#11839) 2024-10-17 16:40:59 +00:00
Kunal Arora
1aa3ce1a5a feat(cli): add ChainSpecParser type to rethCli (#11772) 2024-10-17 16:32:29 +00:00
Emilia Hane
9db28d91a4 chore(sdk): Impl alloy_consensus::Transaction for TransactionSigned (#11843) 2024-10-17 16:29:17 +00:00
nk_ysg
2131c87edb refactor: rm redundant clones in tests (#11840) 2024-10-17 14:40:10 +00:00
Matthias Seitz
6ba4bbe4aa chore: make op-evm compile with no-std (#11834) 2024-10-17 13:54:32 +00:00
Emilia Hane
52407b18de chore(sdk): incorporate block module into reth-primitives-traits (#11835) 2024-10-17 13:14:48 +00:00
Thomas Coratger
3bc3e71699 primitives: use EMPTY_OMMER_ROOT_HASH const when possible (#11833) 2024-10-17 11:21:40 +00:00
nk_ysg
b77265e61b reth-bench: rm redundant clone (#11829) 2024-10-17 10:59:27 +00:00
Matthias Seitz
f8902b59f5 chore: pedantic style change (#11832) 2024-10-17 10:54:28 +00:00
Steven
b47ce92d9a replace ChainSpec to use EthereumHardforks trait (#11824) 2024-10-17 10:36:25 +00:00
Roman Krasiuk
4254b80a89 bench(trie): avoid unnecessary clones in hash builder repeated bench (#11827) 2024-10-17 10:27:57 +00:00
Alexey Shekhirin
bac244ae97 feat(trie): sparse trie leaf removal (#11752)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-10-17 10:20:56 +00:00
Thomas Coratger
491f154c34 primitives-traits: rm redundant definitions of EMPTY_OMMER_ROOT_HASH (#11820) 2024-10-17 09:30:26 +00:00
Roman Krasiuk
63a75fdd95 fix(trie): intermediate trie node hashes (#11826) 2024-10-17 08:07:45 +00:00
Roman Krasiuk
e3e83b7e71 docs(trie): revealed sparse trie invariants (#11825) 2024-10-17 08:03:25 +00:00
Matthias Seitz
e828b34ed1 chore: rm features from test utils (#11816) 2024-10-17 03:06:23 +00:00
Matthias Seitz
b57a5607cb test: make provider compile with cargo t (#11817) 2024-10-17 03:05:26 +00:00
joshieDo
1b97b1d942 fix(staged-sync): prevent StaticFileProducer from running with an unwinded target on legacy engine (#11717) 2024-10-17 03:00:25 +00:00
Thomas Coratger
24287e8562 primitives: use EMPTY_ROOT_HASH when possible (#11822) 2024-10-16 23:02:44 +00:00
Thomas Coratger
025cb3b70e primitive-traits: rm redundant EMPTY_ROOT_HASH definition (#11811)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-16 22:07:27 +00:00
Matthias Seitz
5a82f20a29 chore: rm 1 usage of optimism feature (#11813) 2024-10-16 22:03:33 +00:00
Matthias Seitz
d2ca8f3a2b fix: update block interval properly (#11546) 2024-10-16 21:59:58 +00:00
Thomas Coratger
82862fabd7 primitives: rm redundant functions for Transaction (#11747) 2024-10-16 20:33:57 +00:00
Kien Trinh
b1cc16809b feat(cli): make pruning block interval an option (#11810) 2024-10-16 20:13:16 +00:00
Alexey Shekhirin
a2249b0b04 fix(exex): filter only WAL files when walking the directory (#11802) 2024-10-16 19:23:15 +00:00
Roman Krasiuk
756a47e4e2 chore: add shekhirin to trie code owners (#11809) 2024-10-16 18:33:29 +00:00
Roman Krasiuk
dcaa432155 chore(trie): use RlpNode::as_hash (#11808) 2024-10-16 18:31:58 +00:00
Roman Krasiuk
e5cd026e03 deps: alloy-trie@0.7.2 (#11807) 2024-10-16 17:49:57 +00:00
Kunal Arora
099987fc3d chore(cli): add default_client_version to rethCli (#11773)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-16 17:30:26 +00:00
Roman Krasiuk
12cab204b5 fix(witness): branch node children decoding (#11599) 2024-10-16 17:21:25 +00:00
Matthias Seitz
6b2ec42e48 docs: clarify max rpc tracing requests (#11796)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-16 16:50:18 +00:00
Federico Gimenez
281307fe4c chore(ci): update list of crates excluded from wasm checks (#11787) 2024-10-16 15:47:35 +00:00
greged93
cb7fd084a6 chore: remove &self from update_estimated_gas_range (#11799) 2024-10-16 15:05:59 +00:00
Emilia Hane
6ad1275e6b chore(sdk): move block traits into reth-primitives-traits (#11780) 2024-10-16 15:04:23 +00:00
Matthias Seitz
c76d319444 chore: rm optimism feature from reth-revm (#11797) 2024-10-16 12:44:19 +00:00
Evan Chipman
6f04110876 chore: rename SenderId::into_id to SenderId::into_transaction_id (#11793)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-16 12:25:27 +00:00
Matthias Seitz
eec861fe9f chore: rm unused optimism feature (#11794) 2024-10-16 11:59:41 +00:00
Federico Gimenez
87399ae2c1 chore: rename executor and provider Generic -> Basic (#11788) 2024-10-16 11:20:42 +00:00
greged93
248b6b5905 fix: task executor metrics (#11738) 2024-10-16 10:39:25 +00:00
Thomas Coratger
d421931b7e trie: simplify usage of HashedStorage with default (#11662) 2024-10-16 10:31:23 +00:00
Federico Gimenez
f49a4ae185 feat: add OpExecutionStrategy (#11761) 2024-10-16 10:13:46 +00:00
Matthias Seitz
e454b2402b chore: use highest known nonce (#11784) 2024-10-16 09:44:15 +00:00
Federico Gimenez
0f903b1e20 feat: add EthExecutionStrategy (#11584) 2024-10-16 09:40:33 +00:00
Federico Gimenez
323d8edfb9 feat: implement batch executor (#11753) 2024-10-16 09:02:23 +00:00
Matthias Seitz
a14a9fd8b0 chore: add chain_id shortcut (#11782) 2024-10-16 08:59:20 +00:00
joshieDo
a6358d2e6f feat(provider): add *StateProviderRef creation methods to DatabaseProvider (#11776) 2024-10-16 08:52:56 +00:00
joshieDo
183cea4577 chore(provider): move state_provider_from_state to BlockState impl (#11777) 2024-10-16 08:13:30 +00:00
Kien Trinh
b8147708ad feat(txpool): function to return the next free nonce (#11744)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-16 08:05:56 +00:00
nk_ysg
3f3a7ef023 unify &Option<T> to Option<&T> (#11755) 2024-10-16 07:57:28 +00:00
0xriazaka.eth
d4be773f5f chore: move tests in reth_execution_types::chain to reth-evm-optimism (#11115)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-15 20:47:23 +00:00
Matthias Seitz
78415ff7c5 chore: include hash in trace (#11762) 2024-10-15 19:18:21 +00:00
Matthias Seitz
4144d6ea24 chore: add get_database_args (#11766) 2024-10-15 19:17:31 +00:00
Arsenii Kulikov
7f92760655 fix: estimateGas edge case (#11764) 2024-10-15 18:43:56 +00:00
nk_ysg
7b1b1fcb3b chore(stage test): use with_capacity (#11759) 2024-10-15 16:24:25 +00:00
Matthias Seitz
77a382f59b chore: allow missing const (#11750) 2024-10-15 16:21:08 +00:00
Matthias Seitz
04f5b53462 chore: touchups PayloadOrAttributes (#11749) 2024-10-15 15:47:04 +00:00
Thomas Coratger
5aceb3e11e primitives: rm redundant chain_id function for Transaction (#11751) 2024-10-15 15:27:26 +00:00
Arsenii Kulikov
6fb271036d feat: move RPC launch to add-ons (#11532) 2024-10-15 14:51:40 +00:00
Roman Krasiuk
a235f7214c feat(trie): sparse trie (#11741) 2024-10-15 13:53:43 +00:00
joshieDo
c4d7b59183 perf(rpc): add optional block argument to trace_block_until_with_inspector (#11631) 2024-10-15 13:04:20 +00:00
Federico Gimenez
161605313a feat: sketch composable executor (#11447) 2024-10-15 11:12:41 +00:00
DaniPopes
3cb4bf266d chore(deps): bump alloy-trie 0.7 (#11362)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-10-15 10:53:34 +00:00
Jonathan LEI
39f0ab4116 chore: turn off reth-revm default features (#10215)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-15 10:32:25 +00:00
Thomas Coratger
5e386130da primitives: impl alloy_consensus::Transaction for Transaction (#11727) 2024-10-15 08:42:15 +00:00
Federico Gimenez
e92fbaea30 chore(ci): do not run hive on legacy engine (#11733) 2024-10-15 08:35:47 +00:00
Matthias Seitz
0b6397217c chore: rm optimism feature from chainspec (#11722) 2024-10-15 08:24:10 +00:00
Deil Urba
3ab1f9559e feat: replace once_cell with std (#11694)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-10-15 08:21:01 +00:00
caglarkaya
2a86245649 feat: extend txpool remove txs utility (#11702) 2024-10-15 08:19:23 +00:00
Matthias Seitz
e0a26ac9a2 feat: add node builder helpers (#11731) 2024-10-15 08:08:45 +00:00
Thomas Coratger
cf38ff5401 primitive: introduce reth Transaction trait (#11728) 2024-10-15 08:02:00 +00:00
Dan Cline
0dbc374639 feat(ci): add workflow for git sha container builds (#11721) 2024-10-14 22:38:15 +00:00
Delweng
9f9de0fab9 fix(rpc/trace): return empty if after >= traces (#11715)
Signed-off-by: jsvisa <delweng@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-14 19:24:20 +02:00
Federico Gimenez
600a394571 feat: update SystemCaller (#11718) 2024-10-14 15:52:34 +00:00
Delweng
f684dd4c4c chore(clippy): enable if_then_some_else_none lint (#11679)
Signed-off-by: jsvisa <delweng@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-14 15:45:26 +00:00
Arsenii Kulikov
523bfb9c81 feat: refactor and integrate local engine into EngineNodeLauncher (#11703) 2024-10-14 13:21:41 +00:00
joshieDo
c05a900542 perf(rpc): use Arc<SealedBlockWithSenders> on cache and rpc (#11635) 2024-10-14 12:44:28 +00:00
Emilia Hane
9c8360e532 fix(net): remove outdated debug assert TransactionFetcher (#11713) 2024-10-14 11:41:50 +00:00
Alexey Shekhirin
a087b52dc2 perf(rpc): do not clone filter matcher on every block tracing (#11714) 2024-10-14 10:58:15 +00:00
caglarkaya
b637101894 docs: move ExEx book examples (#11616)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-10-14 09:50:07 +00:00
Matthias Seitz
7c2c3a6a5c fix: respect --debug.terminate --debug.max-block (#11710) 2024-10-14 09:46:00 +00:00
Roman Krasiuk
d2233fcc0d feat: new reth-trie-sparse crate (#11707) 2024-10-14 09:22:27 +00:00
Varun Doshi
a129f62aaa feat: reset pruned numbers on stage drop (#11491)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-10-14 09:19:04 +00:00
Emilia Hane
482468579f chore(sdk): define trait Receipt (#11643) 2024-10-14 09:12:29 +00:00
Kien Trinh
a049dff0b7 tests(node-builder): basic exex test update for apply function (#11695)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-14 09:11:24 +00:00
Matthias Seitz
176496189d Revert "chore(stages): reduce the progress logging " (#11698) 2024-10-14 08:29:58 +00:00
github-actions[bot]
661b260f61 chore(deps): weekly cargo update (#11696)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-10-13 14:39:44 +00:00
Matthias Seitz
6d8d327129 chore: set request budget to 2 (#11699)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-13 14:32:52 +00:00
Thomas Coratger
ffb78b3dc7 refactor(tree): small refac for BlockBuffer (#11691) 2024-10-13 10:58:55 +00:00
Federico Gimenez
c03399d1eb chore(ci): unpin clippy (#11697) 2024-10-13 09:25:56 +00:00
Delweng
67c5725077 chore(clippy): fix the very complex type used (#11689)
Signed-off-by: jsvisa <delweng@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-12 18:53:33 +00:00
greged93
53bd6872db feat(op): opchainspec builder (#11630)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-12 15:57:25 +00:00
Kien Trinh
c47621754f feat: add helper function to modify node builder (#11682) 2024-10-12 15:45:47 +00:00
Delweng
86c6ba5d8d chore(forkid): simplify and add comment of the set_head_priv (#11686)
Signed-off-by: jsvisa <delweng@gmail.com>
2024-10-12 15:18:43 +00:00
Delweng
de736a53cc chore(stages): reduce the progress logging (#11653)
Signed-off-by: jsvisa <delweng@gmail.com>
2024-10-12 13:29:20 +00:00
Matthias Seitz
9ec4c00024 chore: we dont need sat here (#11678) 2024-10-12 13:28:08 +00:00
Matthias Seitz
b365bd52f2 docs: complete sentence (#11685) 2024-10-12 13:27:52 +00:00
Thomas Coratger
db1d64b1c8 test: more unit tests for HashedPostState (#11663) 2024-10-12 12:46:03 +00:00
Matthias Seitz
8ebf10b4ac fix: only +1 on the pool nonce (#11680) 2024-10-12 12:42:46 +00:00
Matthias Seitz
5c84daba11 fix: dont remove txs manually (#11683) 2024-10-12 11:19:48 +00:00
Emilia Hane
43fe46f0d3 fix(net): decrease budget for header reqs to process before yielding thread (#11636) 2024-10-12 08:06:19 +00:00
Arsenii Kulikov
75dda1c398 fix: always poll new pool imports (#11675) 2024-10-12 04:24:06 +00:00
0xDmtri
5e1bd04941 chore(examples): fix db-access example with RO provider (#11670)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-11 18:53:34 +00:00
Thomas Coratger
f2440c7635 test: add unit tests for ChainInfoTracker (#11642)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-10-11 18:52:36 +00:00
Thomas Coratger
b51299b86b refac: small refactor in BlockchainProvider2 (#11660) 2024-10-11 18:22:20 +00:00
Thomas Coratger
160e4b2ce7 tx-pool: simplify FinalizedBlockTracker update logic (#11664) 2024-10-11 18:11:58 +00:00
Thomas Coratger
bca11aa2dd clippy: add from_iter_instead_of_collect warn (#11666) 2024-10-11 17:56:33 +00:00
Francis Li
d8b7f6014f fix(rpc): add missing codes for witness (#11673) 2024-10-11 17:55:22 +00:00
nk_ysg
0affb976a0 transaction-pool:rm redundance clone (#11667) 2024-10-11 17:49:29 +00:00
nk_ysg
ad2a2f2101 chore(test): use collect void realloc (#11669) 2024-10-11 16:27:24 +00:00
Ayene
6a56ae75b0 fix(docs): remove ci link (#11665)
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-10-11 15:31:11 +00:00
Emilia Hane
c29c1f5fa8 chore(net): log p2p stream flush error (#11659) 2024-10-11 13:34:52 +00:00
Matthias Seitz
6d3aa5a0d5 Revert "fix(net): batch P2PStream sends" (#11658) 2024-10-11 14:17:07 +02:00
Matthias Seitz
c4411991e1 feat: add override for additional_validation_tasks (#11655) 2024-10-11 09:45:44 +00:00
Federico Gimenez
8fc703cf82 chore(ci): remove assertoor workflow (#11656) 2024-10-11 08:21:59 +00:00
Matthias Seitz
ad485277de feat: propagate helper (#11654)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-10-11 08:28:07 +02:00
Oliver
cb123084bf docs: LoadFee::eip1559_fees returns base fee, not max fee per gas (#11652) 2024-10-11 02:53:19 +00:00
Matthias Seitz
1ba631ba95 feat: store safe block num as well (#11648) 2024-10-10 19:32:15 +02:00
Matthias Seitz
250785f833 chore: preempt single block downloading (#11647) 2024-10-10 19:15:06 +02:00
Matthias Seitz
fca1cd8181 fix: don't unwrap missing requests (#11646) 2024-10-10 16:54:06 +00:00
joshieDo
1d2c6d5ada chore(rpc): don't recover sender if we have it (#11645) 2024-10-10 15:43:58 +00:00
Alexey Shekhirin
d027b7b938 feat(bin): make experimental engine default (#11612) 2024-10-10 15:04:31 +00:00
Matthias Seitz
58bac0ee30 chore: release 1.1.0 (#11640) 2024-10-10 14:59:04 +00:00
Alexey Shekhirin
456d507797 feat(ci): move book clippy and tests to matrix (#11618) 2024-10-10 13:48:30 +00:00
Alexey Shekhirin
90cb3629a5 feat(exex): commit only notifications with unfinalized blocks to WAL (#11638) 2024-10-10 13:13:14 +00:00
Federico Gimenez
8a11830272 feat(ci): add Kurtosis workflow (#11615) 2024-10-10 12:24:24 +00:00
Matthias Seitz
01f382b739 docs: clarify op-mainnet --debug.tip (#11634) 2024-10-10 12:04:18 +00:00
cody-wang-cb
47c3a481de Broadcast external IP from NAT in enode record (#10274)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-10 11:12:27 +00:00
Steven
b50e710f84 Remove duplicate EngineTypes comment (#11624) 2024-10-10 10:31:57 +00:00
Roman Krasiuk
68f38210e0 feat(trie): noop hashed cursors (#11627) 2024-10-10 10:28:57 +00:00
Roman Krasiuk
e9a436ae96 chore(trie): make initialization of in-memory trie cursors pub (#11628) 2024-10-10 10:28:46 +00:00
Matthias Seitz
eb9565d22d fix: always handle payload building for opstack (#11629) 2024-10-10 09:39:40 +00:00
Alexey Shekhirin
58bfa60cea feat(evm, trie): more metrics (#11613) 2024-10-10 08:27:01 +00:00
Matthias Seitz
a4b8150201 fix: actually commit (#11626) 2024-10-10 08:15:53 +00:00
Federico Gimenez
672e3111c6 chore(ci): disable hive discord alerts (#11625) 2024-10-10 07:50:40 +00:00
Dan Cline
701f51bd2d chore(metrics): remove redundant starting metrics log (#11621) 2024-10-10 01:14:39 +00:00
Matthias Seitz
2b97779880 fix: persist finalized block (#11623) 2024-10-10 00:54:39 +00:00
Matthias Seitz
33d5eb322d test: add sanity test for local txs args (#11620) 2024-10-09 19:41:50 +00:00
Matthias Seitz
076b1a2c22 chore: bump op-alloy (#11617) 2024-10-09 18:40:48 +02:00
Roman Krasiuk
40faed6ea0 fix(witness): destroyed slots as proof targets (#11596) 2024-10-09 15:59:28 +00:00
Matthias Seitz
adf3a0da6b fix: 7702 gas fields (#11614) 2024-10-09 15:51:25 +00:00
joshieDo
7c818c1021 chore(rpc): use block_hash as BlockId on eth_callMany (#11595) 2024-10-09 15:28:35 +00:00
joshieDo
b787d9e521 perf(rpc): optimistically retrieve block if near the tip on eth_getLogs (#11582) 2024-10-09 13:45:40 +00:00
Emilia Hane
fb8bd77df3 fix(net): add concurrency param from config to TransactionFetcherInfo (#11600)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-09 12:32:16 +00:00
Alexey Shekhirin
f5d68443a3 fix(grafana): set instance variable from reth_info metric (#11607) 2024-10-09 12:12:44 +00:00
Matthias Seitz
67e83b6685 feat: add helper function to provde the tx manager config (#11608) 2024-10-09 14:12:54 +02:00
Matthias Seitz
83962095ec feat: add tx propagation mode (#11594) 2024-10-09 13:42:55 +02:00
Roman Krasiuk
5ad6484386 fix(trie): prefix set extension (#11605) 2024-10-09 11:20:58 +00:00
Matthias Seitz
3c4a94fb76 fix: set system tx correctly (#11601) 2024-10-09 11:12:28 +00:00
Matthias Seitz
8ba7bc0799 fix: set deposit gasprice correctly (#11603) 2024-10-09 11:00:17 +00:00
Emilia Hane
570c1df7ec fix(net): max inflight tx reqs default (#11602) 2024-10-09 10:32:18 +00:00
Matthias Seitz
d5372a739e fix: active inflight count (#11598) 2024-10-09 10:03:25 +00:00
joshieDo
62954591d2 perf(rpc): use Arc<BlockWithSenders on full_block_cache (#11585) 2024-10-09 08:33:29 +00:00
Matthias Seitz
1e1de3dd77 fix: use original bytes for codes (#11593) 2024-10-09 02:48:36 +00:00
Arsenii Kulikov
3141f6db26 fix: simplify reorg handling (#11592) 2024-10-09 02:04:16 +00:00
John
e427eb2027 docs: delete missing part path (#11590)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-08 19:27:08 +00:00
Matthias Seitz
f5f76206fd feat: add mul support for SubPoolLimit (#11591)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-08 19:03:47 +00:00
Matthias Seitz
f332f71561 chore: also derive arb for test (#11588) 2024-10-08 18:30:30 +00:00
joshieDo
f7c76291a1 chore(rpc): use block_hash instead on fetching debug_trace_block block (#11587) 2024-10-08 18:26:44 +00:00
Federico Gimenez
95913cb9b5 chore(ci): remove expected failures related to checksummed addresses (#11589) 2024-10-08 20:31:55 +02:00
Matthias Seitz
6917b12d82 chore: bump alloy primitives 0 8 7 (#11586) 2024-10-08 20:31:37 +02:00
joshieDo
10eb1e8b3f chore(providers): test race condition on all BlockchainProvider2 macro tests (#11574) 2024-10-08 17:10:23 +00:00
Arsenii Kulikov
fda6e353d5 fix: in-memory trie updates pruning (#11580)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-08 16:18:27 +00:00
Alexey Shekhirin
b09734a59c fix(exex): exhaust backfill job when using a stream (#11578) 2024-10-08 15:52:36 +00:00
Arsenii Kulikov
e18b0bab90 feat: impl Encodable2718 and Decodable2718 for PooledTransactionsElement (#11482) 2024-10-08 14:33:31 +00:00
Matthias Seitz
c61ae1371b chore: rm bad cap function (#11562) 2024-10-08 14:25:00 +00:00
Matthias Seitz
c13ab7a292 chore: replace some revm deps (#11579) 2024-10-08 14:23:56 +00:00
Matthias Seitz
c32d4c3f2a chore: rm unused optimism feature from engine api (#11577) 2024-10-08 14:23:54 +00:00
Luca Provini
946f1a4c18 feat: adding a new method to network config builder (#11569) 2024-10-08 13:27:42 +00:00
joshieDo
67db43d0ac chore(provider): add more test coverage on BlockchainProvider non-range queries (#11564) 2024-10-08 13:17:57 +00:00
joshieDo
65e6683295 fix(provider): fix sub overflow on tx_range queries for empty blocks (#11568) 2024-10-08 12:54:47 +00:00
Oliver
cb431f1f5c chore: relax trait bound for EthTransactions (#11571) 2024-10-08 12:54:22 +00:00
Matthias Seitz
4163835b93 fix: actually configure the custom gas limit (#11565) 2024-10-08 11:04:48 +00:00
Alexey Shekhirin
3765dbe470 docs(exex): include code for ExEx book from real files (#11545) 2024-10-08 10:46:53 +00:00
Debjit Bhowal
a2cfa9e050 Added InternalBlockExecutionError to execute.rs exports (#11525)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-08 10:27:18 +00:00
Matthias Seitz
ece894bd28 chore: rm unused optimism feature from compat (#11560) 2024-10-08 10:02:34 +00:00
Roman Krasiuk
548f5b9c6d feat(trie): expose storage proofs (#11550) 2024-10-08 09:47:15 +00:00
Matthias Seitz
6e92ab8e43 chore: rm unused optimism feature (#11559) 2024-10-08 09:03:50 +00:00
greged93
33b78dcf2b chore: chain manual serialisation implementation (#11538) 2024-10-08 09:02:32 +00:00
Steven
5eb71e32c6 Introduce Op PayloadTypes Impl (#11558)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-08 08:42:14 +00:00
Matthias Seitz
5e288b2469 chore: rm redundant type hint (#11557) 2024-10-08 01:06:16 +00:00
Matthias Seitz
b67f004fbe chore: move ethfiltererror (#11552) 2024-10-07 21:54:42 +00:00
Emilia Hane
c35b8beb35 fix(grafana): remove rate function from panel "Transactions by Type in Pool" (#11542) 2024-10-07 16:42:09 +00:00
Dan Cline
a6b564e054 fix(op-reth): add jemalloc feature to optimism-cli for version (#11543) 2024-10-07 16:41:22 +00:00
Steven
9a732f6b78 Introduce Eth PayloadTypes Impl (#11519)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-07 16:30:57 +00:00
Parikalp Bhardwaj
8ca5ec9b72 Refactor get_payload_bodies_by_hash_with to be non-blocking (#11511)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-07 16:11:59 +00:00
Matthias Seitz
54c8305fb6 chore: enforce window (#11540) 2024-10-07 15:35:47 +00:00
Alexey Shekhirin
8a0bcbb356 feat(exex): subscribe to notifications with head using ExExContext (#11500) 2024-10-07 15:31:15 +00:00
David
04fa08cd4c grafana: add metrics of all transactions in pool by type (#11515)
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-10-07 15:12:52 +00:00
Matthias Seitz
d4e9dd10e4 chore: dont fail on ttd (#11539) 2024-10-07 14:47:52 +00:00
Matthias Seitz
e94d72b7bb fix: acquire permit first (#11537) 2024-10-07 14:10:39 +00:00
joshieDo
6a1ec0d1a2 ci: add windows cargo check (#11468) 2024-10-07 11:52:01 +00:00
tedison
f8228482ac feat: add get_highest_tx_by_sender to pools (#11514)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-07 11:42:56 +00:00
crazykissshout
f5c9701e72 chore: delete rpc-types (#11528) 2024-10-07 11:25:24 +00:00
Thomas Coratger
74a645339c rpc: use eth_api() method (#11516) 2024-10-07 09:41:30 +00:00
Dan Cline
4b12f3285a fix(tree): make state methods work for historical blocks (#11265)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-10-07 09:12:35 +00:00
joshieDo
7842673903 feat(provider): add test_race to BlockchainProvider2 tests (#11523) 2024-10-07 09:06:28 +00:00
Thomas Coratger
d2ab6352c6 test: add unit tests for PruneLimiter (#11517) 2024-10-07 09:02:10 +00:00
github-actions[bot]
c08c00f2ec chore(deps): weekly cargo update (#11518)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-10-06 14:28:31 +00:00
Matthias Seitz
41455dfcdd feat: expose Op node network_config helper (#11506) 2024-10-05 18:12:28 +00:00
Matthias Seitz
51db6564d6 feat: add PoolBuilderConfigOverrides (#11507) 2024-10-05 18:11:28 +00:00
Matthias Seitz
cb078f9eae fix: cap gas limit properly (#11505) 2024-10-05 18:06:21 +00:00
Matthias Seitz
659dec9e66 chore: rm from genesis impl (#11509) 2024-10-05 17:44:33 +00:00
Emilia Hane
36de90fdc3 chore(lint): fix clippy::needles_lifetimes (#11496) 2024-10-05 11:08:08 +00:00
garwah
28750e5b0e chore: Remove duplicate EthereumChainSpecParser in favor of existing EthChainSpecParser (#11412)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-05 10:52:08 +00:00
Parikalp Bhardwaj
a846cbdcee Add metrics for failed deliveries to Grafana dashboard (#11481) 2024-10-05 12:11:29 +02:00
Varun Doshi
2ca6141233 feat: rpc replace function created (#11501)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-05 09:14:06 +00:00
Eric Woolsey
08c4065482 Reexport optimism specific crates from op-reth (#11499) 2024-10-05 09:07:14 +00:00
Delweng
72865f1d83 fix(rpc-eth-types): incorrect error msg(; -> :) (#11503)
Signed-off-by: jsvisa <delweng@gmail.com>
2024-10-05 08:48:18 +00:00
joshieDo
093b1a16df chore(provider): add more test coverage on BlockchainProvider::*by_block_range queries (#11488) 2024-10-04 18:57:44 +00:00
Emilia Hane
16bc9c8b49 chore(lint): fix lint storage (#11485) 2024-10-04 17:19:02 +00:00
Matthias Seitz
1f190ad8ea chore: rm deposit contract config for op (#11479) 2024-10-04 15:44:47 +00:00
Matthias Seitz
62e629329a test: ensure default hash matches (#11486) 2024-10-04 17:43:35 +02:00
joshieDo
a42cfbbae7 chore(provider): add more test coverage on BlockchainProvider::*by_tx_range queries (#11480) 2024-10-04 15:05:17 +00:00
Emilia Hane
d5ddb4129d chore(lint): fix lint primitives (#11487) 2024-10-04 13:33:18 +00:00
Emilia Hane
16c39d919e chore(sdk): SealedHeader generic over header (#11429) 2024-10-04 13:29:36 +00:00
Alexey Shekhirin
b537672886 chore(db): capture tx opening backtrace in debug mode (#11477) 2024-10-04 12:10:32 +00:00
Alexey Shekhirin
227e293390 fix(exex): use thresholds in stream backfill (#11478) 2024-10-04 11:05:57 +00:00
Alexey Shekhirin
0ce1dd6794 chore(exex): more backfill debug logs (#11476) 2024-10-04 10:08:04 +00:00
greged93
72e0ab1000 chore: op chainspec (#11415) 2024-10-04 10:06:06 +00:00
garwah
c5cfaf116b feat: Add metrics to track transactions by type in txpool (#11403)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-04 09:12:31 +00:00
Matthias Seitz
399192c347 chore: use block.body directly (#11474) 2024-10-04 08:37:48 +00:00
Varun Doshi
5fd6906b31 feat: cleaned up prepare_call_env() (#11469)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-04 08:14:50 +00:00
Federico Gimenez
af1eb61072 feat(perf): integrate OnStateHook in executor (#11345) 2024-10-04 08:11:38 +00:00
Thomas Coratger
2dc5f5d745 test: add unit tests for CanonicalChain (#11472) 2024-10-04 07:36:24 +00:00
Eric Woolsey
1fe9f324b0 Relax Trait Bounds on TransactionPool::Transaction and EthPoolTransaction (#11079)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-04 07:34:29 +00:00
Matthias Seitz
84370b81d7 feat: make addons stateful (#11204)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-10-04 08:34:37 +02:00
Francis Li
ab06997986 chore(rpc): remove include_preimage param on debug_execution_witness (#11466) 2024-10-03 18:38:55 +00:00
joshieDo
b4d5adeeb1 chore: use block_ref on CanonicalInMemoryState (#11467) 2024-10-03 17:32:31 +00:00
Matthias Seitz
d72e438c06 fix: windows build (#11465) 2024-10-03 18:26:45 +02:00
Emilia Hane
6c16df2365 Map TransferKind::EofCreate => OperationType::OpEofCreate (#11090)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-03 15:32:03 +00:00
joshieDo
af465623cb chore(provider): clone after filtering on sealed_headers_while (#11459)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-03 17:38:00 +02:00
Matthias Seitz
7d092a265d fix: use correct rpc errors (#11463) 2024-10-03 15:14:10 +00:00
Alexey Shekhirin
a0867a6b05 feat(grafana): ExEx WAL (#11461) 2024-10-03 15:12:37 +00:00
Matthias Seitz
59c6329ffa fix: ensure the request's gas limit does not exceed the target gas limit (#11462) 2024-10-03 14:57:03 +00:00
Francis Li
f1aae36c69 feat(rpc): Add codes in execution witness return (#11443) 2024-10-03 14:06:34 +00:00
joshieDo
96f1406a14 chore(provider): use block_ref instead on BlockState (#11458) 2024-10-03 13:48:37 +00:00
Matthias Seitz
e567810951 chore: release 1.0.8 (#11457) 2024-10-03 13:45:32 +00:00
Matthias Seitz
91af1a75c2 feat: add metrics for failed deliveries (#11456) 2024-10-03 13:44:41 +00:00
joshieDo
ac85fc0507 chore(provider): find last_database_block_number with BlockState anchor instead (#11455) 2024-10-03 13:19:02 +00:00
joshieDo
8cd052c4d9 chore(provider): use get_in_memory_or_storage_by_block on fn block_body_indices (#11452) 2024-10-03 13:17:17 +00:00
Alexey Shekhirin
a6b1fee539 chore(exex): adjust WAL gauge metric names (#11454) 2024-10-03 13:10:07 +00:00
joshieDo
05a7bdc9ac chore(provider): use get_in_memory_or_storage on transactions_by_block_range (#11453) 2024-10-03 13:08:38 +00:00
greged93
4960b927bc feat: impl payload attributes builder (#11336)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-03 12:27:05 +00:00
Alexey Shekhirin
601c6fe73e fix(exex): limit the duration of a backfill job to 30 seconds (#11450) 2024-10-03 12:10:08 +00:00
joshieDo
73d5ce78c3 chore: replace Compact with bincode on ETL usage of SealedHeader (#11442) 2024-10-03 11:48:24 +00:00
Alexey Shekhirin
fe1f189e69 fix(exex): WAL size metric (#11448) 2024-10-03 11:43:36 +00:00
Thomas Coratger
7fbe19a9bf primitives: remove optimism re-export in reth-primitives (#11438) 2024-10-03 10:38:18 +00:00
Alexey Shekhirin
575669b744 fix: env tempdir failure on WAL creation (#11446)
Co-authored-by: 0xurb <urbadeil@gmail.com>
2024-10-03 09:54:42 +00:00
Ammar Arif
6b261db644 docs: fix wrong method name (#11441) 2024-10-02 22:47:07 +00:00
Matthias Seitz
70d498d296 chore: make clippy happy (#11439) 2024-10-02 19:19:13 +00:00
joshieDo
5ec448ef94 feat: add get_in_memory_or_storage_by_tx_range (#11414)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-02 17:45:06 +00:00
Hai | RISE
c4ce9977f2 fix: reset pruned sender numbers on stage drop (#11150) 2024-10-02 17:36:43 +00:00
Alexey Shekhirin
16be8b9059 feat(exex): commit notifications to WAL before sending to ExExes (#11354) 2024-10-02 16:18:33 +00:00
Varun Doshi
3bbbade9cf Fix: Reorder all serde_bincode_compat module definitions (#11435)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-02 16:18:06 +00:00
Alexey Shekhirin
e882d00f1a feat(exex): WAL metrics (#11431) 2024-10-02 15:49:03 +00:00
joshieDo
2ca8231e73 chore(provider): dont recover sender from BlockState transaction on transaction_sender (#11424) 2024-10-02 13:55:07 +00:00
Federico Gimenez
e2f35ce6df chore: remove temporary allow attribute (#11428) 2024-10-02 13:05:02 +00:00
Emilia Hane
d36683d1a3 chore(sdk): define traits for primitives Block and BlockBody (#11411) 2024-10-02 12:39:19 +00:00
joshieDo
da23e1ce8d chore(provider): rename to get_in_memory_or_storage_by_block_range_while (#11421) 2024-10-02 12:23:02 +00:00
Alexey Shekhirin
b66e4f5ad3 fix(exex): do not finalize WAL with a block higher than finalized header (#11420) 2024-10-02 11:58:45 +00:00
Alexey Shekhirin
b44fff4dd0 feat(chain-state): notify about new safe/finalized only if modified (#11383) 2024-10-02 11:51:41 +00:00
Matthias Seitz
afbe2bb5e9 fix: apply 4788 system call in tracing (#11417) 2024-10-02 11:50:06 +00:00
Alexey Shekhirin
2a4f46b750 feat(stages): fail Execution if post execute commit input isn't consumed (#11418) 2024-10-02 11:47:45 +00:00
Alexey Shekhirin
4491b0d96a feat(trie): bincode compatibility for trie updates (#11409) 2024-10-02 11:22:07 +00:00
nk_ysg
a07efa7b5b chore: rm todos (#11400) 2024-10-02 10:40:50 +00:00
Alexey Shekhirin
8d3a03a3b9 fix(exex): check exex head against node head to determine canonical (#11410) 2024-10-02 10:29:16 +00:00
Alexey Shekhirin
82cc96d0c0 fix(stages): call post execute/unwind commit hooks (#11413) 2024-10-02 10:24:05 +00:00
greged93
d47904f7cd dev: swap_remove (#11405) 2024-10-02 10:13:44 +00:00
joshieDo
7c15326e0b feat: add get_in_memory_or_storage_by_block to BlockchainProvider2 (#11384) 2024-10-02 09:05:48 +00:00
nk_ysg
64fae4d0f2 chore: rm crate reth-rpc-types (#11341) 2024-10-02 11:16:20 +02:00
garwah
d5bdc1c8c0 feat(net): Perform graceful network shutdown before dropping network in NetworkManager (#11404)
Co-authored-by: garwah <garwah@garwah>
2024-10-02 11:15:12 +02:00
Matthias Seitz
7cec526370 chore: make clippy happy (#11408) 2024-10-02 10:09:44 +02:00
Matthias Seitz
c6529a830d chore: add metric and trace for already executed blocks (#11406) 2024-10-02 10:07:33 +02:00
Matthias Seitz
12554c426f fix: fetch header by hash (#11407) 2024-10-02 10:07:22 +02:00
nk_ysg
2d59212512 ci: pin clippy to working version (#11401) 2024-10-02 07:23:38 +00:00
Matthias Seitz
07dc861a94 chore: rename default chainspec parser (#11398) 2024-10-01 22:22:57 +00:00
Dan Cline
7e4b1bff7a chore(Makefile): separate features by spaces only (#11393) 2024-10-01 22:20:26 +00:00
Roman Krasiuk
408d793bfd fix(engine): is_fork header traversal (#11368) 2024-10-01 21:58:24 +00:00
Alexey Shekhirin
9c6e31fcb9 feat(primitives): bincode compatibility for EIP-7702 transaction (#11394) 2024-10-01 21:04:32 +00:00
Matthias Seitz
9c9b1fdf84 fix: add tracing features to op binary (#11395) 2024-10-01 21:34:07 +02:00
Federico Gimenez
b9341a7b47 fix(tree): use in-memory data first to query total difficulty (#11382) 2024-10-01 18:57:32 +00:00
Matthias Seitz
2d221dbf49 fix: use pending state if available (#11391) 2024-10-01 18:34:14 +00:00
DaniPopes
b722272c49 chore(db): simplify Compact for Vec (#11361) 2024-10-01 17:44:59 +00:00
joshieDo
22ddc98c06 fix(provider): handle race on fn transaction_id (#11380) 2024-10-01 17:42:29 +00:00
nk_ysg
b5b7005741 chore: Remove redundant impl NetworkManager (#11390) 2024-10-01 17:39:58 +00:00
DaniPopes
fbc01d6cfa chore(deps): bump some breaking deps (#11388) 2024-10-01 17:26:47 +00:00
DaniPopes
707067ab4d chore: limit tracing logs to debug by default (#11377) 2024-10-01 16:13:28 +00:00
Alexey Shekhirin
9c041d252b fix(exex): set next file ID when creating WAL storage (#11372) 2024-10-01 16:06:28 +00:00
Alexey Shekhirin
86f12b7f53 feat(trie): deserialize trie updates with serde as hex (#11369) 2024-10-01 14:28:59 +00:00
Roman Krasiuk
7fab4c3118 perf(engine): avoid unnecessary arc clones on new head (#11381) 2024-10-01 14:24:02 +00:00
Matthias Seitz
0a183b4bf9 feat: add ReputationChangeWeights::zero (#11375) 2024-10-01 14:21:52 +00:00
Roman Krasiuk
d8b9f5db54 test(engine): improve deep reorg test (#11378) 2024-10-01 14:21:38 +00:00
DaniPopes
19593d403d chore: propagate std feature to alloy-trie (#11371) 2024-10-01 14:15:17 +00:00
greged93
15e3e0e110 dev: block_with_senders on BlockState (#11363)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-01 13:40:09 +00:00
Alexey Shekhirin
6b3a75917e fix(evm): propagate optimism and test features correctly (#11373) 2024-10-01 13:34:31 +00:00
joshieDo
b29d81c859 fix(provider): use canonical_chain on range lookups (#11332) 2024-10-01 12:29:04 +00:00
Matthias Seitz
b20854052e docs: misc in memory docs (#11365) 2024-10-01 12:07:39 +00:00
Matthias Seitz
94b076d2c7 chore: log num hash (#11364) 2024-10-01 12:07:07 +00:00
Federico Gimenez
bdbdb143dc ci(hive): update expected rpc-compat failures (#11367) 2024-10-01 11:53:33 +00:00
Alexey Shekhirin
a8a380ff54 feat(exex): use rmp-serde for WAL storage (#11353)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-10-01 09:55:42 +00:00
Matthias Seitz
f51ac78d5a fix: never ban trusted peers (#11254)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-10-01 07:35:59 +00:00
Ayodeji Akinola
6bbb07bbab chore(cli): Add warning for misconfigured HTTP API flags (#11360)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-10-01 03:37:14 +00:00
Dan Cline
c2cabcae71 fix(hooks): sort reverts in BundleState before comparison (#11358) 2024-09-30 22:27:27 +00:00
DaniPopes
68f0b0a08f perf(db): use Into to encode StoredNibbles (#11350) 2024-09-30 21:59:03 +00:00
Alexey Shekhirin
d6113e1040 feat(exex, primitives): serde bincode compatibility (#11331)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-30 21:20:43 +00:00
joshieDo
6e1cc1b948 fix(provider): replace block_state_by_tx_id with get_in_memory_or_storage_by_tx_id (#11340) 2024-09-30 17:49:29 +00:00
Federico Gimenez
6d57b9eaac feat: wire SystemCaller (#11321) 2024-09-30 15:59:55 +00:00
Dan Cline
09f0526e70 fix(providers): collect BlockState before constructing DB provider (#11338)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-30 15:50:15 +00:00
Arsenii Kulikov
42afcbd75a impl Encodable2718, Decodable2718 for TransactionSigned (#11218) 2024-09-30 15:36:38 +00:00
Matthias Seitz
24b6341205 fix: sequencer client must be arced (#11337) 2024-09-30 13:10:33 +00:00
lazymio
92aeff083b fix(libmdbx): Some options can only be set after mdbx_env_open (#11328) 2024-09-30 12:51:46 +00:00
Matthias Seitz
a5538bc041 chore: alloy 0.4 (#11334) 2024-09-30 12:48:37 +00:00
Roman Krasiuk
e8153e5e2c deps: remove reth-metrics-derive for metrics-derive (#11335) 2024-09-30 12:13:56 +00:00
Alexey Shekhirin
bf679b430e feat(exex): finalize WAL below the given block (#11324) 2024-09-30 10:25:17 +00:00
Dan Cline
ae4aeb44d9 chore(builder): reorder revm State import (#11316) 2024-09-30 10:04:47 +00:00
Matthias Seitz
2ae8ea3b14 feat: add SystemCaller helper type (#11068)
Co-authored-by: Federico Gimenez <federico.gimenez@gmail.com>
Co-authored-by: Federico Gimenez <fgimenez@users.noreply.github.com>
2024-09-30 09:59:23 +00:00
Roman Krasiuk
17aa3d61f6 fix(trie): witness empty root node (#10972) 2024-09-30 08:08:45 +00:00
Alexey Shekhirin
e02a2de2d0 feat(exex): finalize WAL with the lowest finished height (#11323) 2024-09-30 08:06:40 +00:00
Thomas Coratger
e21d75f9aa primitives: rm more alloy_primitives reexports (#11325) 2024-09-30 01:06:47 +00:00
Thomas Coratger
ea1d04aa75 primitives: rm more alloy_primitives reexports (#11255) 2024-09-29 16:48:54 +00:00
Thomas Coratger
55bf29e6d2 use core::error::Error (#11317) 2024-09-29 16:47:48 +00:00
Dan Cline
b8aeecae62 chore: update default payload builder logs (#11315) 2024-09-29 10:32:52 +00:00
Alexey Shekhirin
ce1f669b9b feat(exex): finalize WAL only when all ExExes are on the canonical chain (#11289) 2024-09-29 10:29:12 +00:00
github-actions[bot]
d94462bfef chore(deps): weekly cargo update (#11319)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-29 09:54:20 +00:00
Caio
3297dcb4eb Remove unused dependencies (#11320) 2024-09-29 09:23:18 +00:00
Matthias Seitz
65f7e883e7 chore: rm ToRpcError usage from engine crate (#11311) 2024-09-28 16:06:17 +00:00
Matthias Seitz
6828bbacc9 chore: use core::error (#11313) 2024-09-28 16:05:50 +00:00
Matthias Seitz
1bead52d57 chore: relax trait bounds on transact fns (#11310) 2024-09-28 13:37:40 +00:00
Skanda Bhat
4850c298f0 feat: mev_simBundle (#11252)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-28 13:23:05 +00:00
Arsenii Kulikov
2aa3dd0fd8 feat: use OpChainSpec in OptimismNode and its components (#11304) 2024-09-28 13:06:52 +00:00
caglarkaya
b090578b77 fix: improve ecies error fatal variants (#11303) 2024-09-28 12:21:20 +00:00
nk_ysg
375acdfedc chore(op): unify crate name reth-optimism-* (#11223) 2024-09-28 10:49:17 +00:00
Abhishek kochar
50461281e7 chore(blockchain-tree): replace reth-primitives with alloy-eips (#11276)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-28 10:48:17 +00:00
DaniPopes
50265b15db chore: remove generics from Decode and Decompress (#11295) 2024-09-27 21:49:49 +00:00
DaniPopes
e48f2a29cd perf(db): cache ProcessUID::own in memory (#11302) 2024-09-27 21:49:46 +00:00
DaniPopes
1009289c3d chore(deps): bump tracy (#11305) 2024-09-27 22:54:48 +02:00
Alexey Shekhirin
1bbf8b6306 test(rpc): filter test is taking too long (#11288) 2024-09-27 18:38:28 +00:00
DaniPopes
d8f16b83b7 perf(trie): use unstable sort when sorting for computing roots (#11301) 2024-09-27 18:37:23 +00:00
Matthias Seitz
6c92f8a26d chore: rename param (#11287) 2024-09-27 20:37:13 +02:00
nk_ysg
9863a17d2d chore(exex):move maximum ExExManager capacity to a constant (#11293)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-09-27 18:18:04 +00:00
ben
49f044f6e1 fix(reth-ipc): pass through extensions from request (#11300) 2024-09-27 18:15:39 +00:00
evalir
5b585ebc22 chore(rpc): use alloy's Keccak256 hasher instead of manually concatenating hash bytes (#11298) 2024-09-27 17:53:53 +00:00
DaniPopes
e962983896 perf(db): use encode_to in Scale implementations (#11297) 2024-09-27 17:42:46 +00:00
DaniPopes
bf18fd927c perf: improve IntegerList API to avoid allocations (#11292) 2024-09-27 16:46:33 +00:00
Roman Krasiuk
8dfab3354b feat(trie): extract StorageProof (#11269) 2024-09-27 15:57:24 +00:00
Alexey Shekhirin
dbd9a2bb35 feat(exex): send canonical notifications when head is provided (#11280) 2024-09-27 15:22:03 +00:00
DaniPopes
07e94e7fa5 perf(db): use smallvec for mdbx table names (#11291) 2024-09-27 15:20:43 +00:00
Starkey
0446ec471a optimism: fix 'expecte' (#11290) 2024-09-27 14:59:21 +00:00
Abhishek kochar
fbb0b11f07 chore(exex-eips): replace reth-primitives with alloy-eips (#11275)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-27 14:28:03 +00:00
joshieDo
ea060fe9a0 feat: ExExEvent::FinishedHeight takes BlockNumHash instead (#11278)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-09-27 13:22:46 +00:00
Matthias Seitz
098018db49 perf: remove sidecar clone if no listeners (#11285) 2024-09-27 12:59:42 +00:00
Matthias Seitz
247f029e2d chore: add traces for blob sidecar ops (#11284) 2024-09-27 12:56:52 +00:00
Matthias Seitz
6757ab8190 fix: make canonical_chain atomic and canonical (#11283) 2024-09-27 12:47:00 +00:00
Matthias Seitz
ba4e41110b chore: use Arc over Box (#11281) 2024-09-27 13:46:55 +02:00
Matthias Seitz
650cf755a6 docs: clarify block order (#11279) 2024-09-27 13:04:56 +02:00
greged93
136a8227bf feat: canonical state for local engine (#11245) 2024-09-27 09:44:52 +00:00
Roman Krasiuk
5706e03422 chore(trie): early return on empty state (#11271) 2024-09-27 09:14:09 +00:00
Alexey Shekhirin
67221247c5 feat(exex): WAL handle (#11266) 2024-09-27 09:10:35 +00:00
Alexey Shekhirin
37b0c56b85 feat(exex): add parent hash to WAL block cache, index by hashes (#11263) 2024-09-27 08:06:44 +00:00
joshieDo
da6b1e7c64 feat(exex): write notification files atomically (#11264) 2024-09-26 21:23:09 +00:00
Alexey Shekhirin
13a3c2c8cc chore(exex): remove unneeded code (#11267) 2024-09-26 21:04:36 +00:00
Roman Krasiuk
77992e3254 deps: alloy-trie@0.6.0 (#11260) 2024-09-26 18:30:48 +00:00
Dan Cline
f4cbfbcd79 feat(tree): introduce reorg count metrics in new engine (#11226) 2024-09-26 17:14:44 +00:00
Thomas Coratger
ad64de8962 primitives: rm more alloy_primitives reexports (#11250)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-26 16:18:56 +00:00
nk_ysg
2e05ec008a move op storage tests into new crate reth-optimism-storage (#11233) 2024-09-26 15:42:05 +00:00
Aliaksei Misiukevich
6d0159eb70 feat: tx and receipt compression utils for no-std config (#11112) 2024-09-26 15:09:33 +00:00
joshieDo
d46f76264d fix(cli): fix ImportReceiptsOp (#11216) 2024-09-26 14:55:28 +00:00
Matthias Seitz
6a7d8938c7 chore: update revm and alloy primitives (#11235)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-09-26 14:33:29 +00:00
Matthias Seitz
3a255a1cab chore:include payload id in trace (#11249) 2024-09-26 12:42:58 +00:00
Arsenii Kulikov
65f2664471 feat: make NetworkConfigBuilder independent of concrete ChainSpec (#11176) 2024-09-26 11:37:20 +00:00
Thomas Coratger
f2a508df34 primitives: rm more alloy_primitives reexports (#11222) 2024-09-26 11:29:18 +00:00
Thomas Coratger
edd8fe4648 primitives: rm H* deprecated types (#11246) 2024-09-26 10:47:18 +00:00
Federico Gimenez
42d2e485de chore(trie): replace ParallelStateRoot with AsyncStateRoot (#11213) 2024-09-26 08:25:19 +00:00
Arsenii Kulikov
353fd60d29 refactor: extract optimism receipts hashing logic to reth-optimism-consensus (#11230) 2024-09-26 10:24:04 +02:00
Federico Gimenez
4a05826097 ci: pin clippy to working version (#11237) 2024-09-26 10:10:57 +02:00
Abhishek kochar
20d695031a chore(evm): replace reth-primitives with alloy (#11232)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-26 09:38:03 +02:00
nk_ysg
ece0944070 reth-codec: remove unused derives from alloy compat types (#11231) 2024-09-26 09:02:10 +02:00
Dan Cline
35034065da chore(tree): make tree trace targets all engine::tree (#11227) 2024-09-25 20:58:55 +00:00
Dan Cline
653c0898a8 chore(tree): add legacy tree metrics to new engine (#11175) 2024-09-25 19:49:27 +00:00
nk_ysg
76a6e0db69 remove IntoRecoveredTransaction (#11221) 2024-09-25 17:10:11 +00:00
Matthias Seitz
4ef9635fa9 chore: update helper fn (#11209) 2024-09-25 16:51:58 +00:00
joshieDo
4070498a1d fix(storage): only delete static file if last_block is on a previous static file (#11029)
Co-authored-by: Alexgao001 <alex.g@nodereal.io>
2024-09-25 16:38:29 +00:00
James Prestwich
1d56382b8d doc: update some exexhead docs (#11214) 2024-09-25 15:37:25 +00:00
Alexey Shekhirin
63f56734ec refactor(exex): move notifications to a separate module (#11212) 2024-09-25 15:00:55 +00:00
joshieDo
d891d402b7 feat(storage): add HeaderExt to compact Header (#11166) 2024-09-25 14:50:54 +00:00
Thomas Coratger
c00516c3f9 rpc-types: rm alloy-rpc-types-engine reexport (#11206) 2024-09-25 14:49:50 +00:00
Alexey Shekhirin
3d034519af feat(exex): ExExNotification::into_inverted (#11205) 2024-09-25 13:13:28 +00:00
Federico Gimenez
1e0a35e744 perf(engine): migrate to AsyncStateRoot (#10927)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-25 12:34:54 +00:00
Thomas Coratger
2022dd3de5 primitives: rm alloy_consensus::transaction reexports (#11191) 2024-09-25 12:13:48 +00:00
Alexey Shekhirin
2224e6c48b feat(exex): finalize ExEx WAL on new finalized block header (#11174) 2024-09-25 11:53:51 +00:00
Jennifer
5d2867f2c5 feat(rpc): Replace TypedTransactionType (#11089)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-25 11:34:58 +00:00
joshieDo
466f21acfa feat: verify unused bits on types derived with Compact (#11131) 2024-09-25 11:27:37 +00:00
joshieDo
2350403755 chore(cli): print an hex encoded string instead on reth db get ... --raw (#11195) 2024-09-25 11:09:48 +00:00
Thomas Coratger
4884c0003a primitives: rm TxKind reexport (#11197) 2024-09-25 11:07:05 +00:00
Thomas Coratger
9165f4c51d primitives: rm UintTryTo reexport (#11196) 2024-09-25 11:06:48 +00:00
Thomas Coratger
648e2a4f7d primitives: rm revm-primitives reexport (#11193) 2024-09-25 11:06:27 +00:00
Thomas Coratger
2b20a0dbfc primitives: rm alloy_eips::eip2930 reexports (#11188) 2024-09-25 09:15:59 +00:00
Federico Gimenez
dba6c01295 feat: add slack notification for hive tests (#11189) 2024-09-25 08:05:30 +00:00
garwah
ab66f58e5c chore: Remove ChainSpec from PayloadConfig (#11103)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-25 06:45:51 +00:00
Thomas Coratger
53f23bf3dc primitives: rm alloy_eips::eip7702 reexport (#11179)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-25 06:44:30 +00:00
Dan Cline
1994959fb2 chore(tree): move persistence_state out of mod.rs (#11180) 2024-09-24 23:15:38 +00:00
Thomas Coratger
3bd966c594 primitives: rm alloy_genesis reexport (#11181) 2024-09-24 23:15:19 +00:00
Thomas Coratger
c09bb04950 primitives: rm alloy_eips::eip4844::kzg_to_versioned_hash reexport (#11182) 2024-09-24 23:15:06 +00:00
Dan Cline
547d25b646 chore(tree): log and diff header root difference in witness hook (#11184) 2024-09-24 23:14:51 +00:00
Dan Cline
7e21a6581a feat(grafana): create initial Reth Performance grafana (#11183) 2024-09-24 23:14:32 +00:00
Alexey Shekhirin
d3e959bbd0 fix(chain-state): fork choice stream should return only when changed (#11178) 2024-09-24 19:06:13 +00:00
Thomas Coratger
c434e52632 primitives: rm alloy_eips::eip1559::calc_next_block_base_fee reexport (#11177) 2024-09-24 19:04:15 +00:00
Arsenii Kulikov
ae3d279cc3 feat: relax chainspec bounds on NodeBuilder and rpc types (#11160) 2024-09-24 17:47:04 +00:00
Francis Li
d3114b4eec feat(witness): use block executor to execute block inside debug_execution_witness (#11149) 2024-09-24 16:48:32 +00:00
joshieDo
4da5f1f388 fix(storage): dont skip consistency checks for op-mainnet if using minimal bootstrap (#11099) 2024-09-24 15:10:44 +00:00
Emilia Hane
f2082e0411 chore(rpc): remove redundant trait bound (#11162) 2024-09-24 14:46:26 +00:00
Alexey Shekhirin
aac78821c3 feat(exex): write ahead log (#10995) 2024-09-24 14:19:44 +00:00
Dan Cline
f606b70b7f feat(trie): use packed encoding HashSet<Nibbles> serialization (#11147) 2024-09-24 14:05:15 +00:00
Matthias Seitz
94d1d8719d feat: add transact function to 7251 (#11158) 2024-09-24 13:40:53 +00:00
Matthias Seitz
c0f0dd78a7 feat: add transact function to 4788 (#11157) 2024-09-24 13:39:40 +00:00
Abhishek kochar
6e64a14a6f chore(ethereum): replace reth-primitives with alloy (#11155)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-24 11:33:11 +00:00
Arsenii Kulikov
c851a1740c feat: EngineValidator (#11144) 2024-09-24 11:23:52 +00:00
Matthias Seitz
73962b1eae feat: add transact function to 7002 (#11156) 2024-09-24 11:23:36 +00:00
Rohit Narurkar
fb0555ae7d Refactor Block (#10913)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-09-24 10:14:08 +00:00
Dan Cline
b06bc1088a fix: use nibbles map serialization for TrieUpdates (#11146) 2024-09-24 10:11:53 +00:00
krane
33d88a4372 feat: add FlatCallTracer (#11114) 2024-09-24 09:55:32 +00:00
nk_ysg
68d76f6469 chore(codecs-derive): update should_use_alt_impl (#11148) 2024-09-24 07:54:15 +00:00
Dan Cline
f9b8dc4035 feat(trie): add way to serialize maps with Nibbles keys (#11141) 2024-09-24 00:28:31 +00:00
Dan Cline
c7a18fd078 chore(trie-common): make tests run without arbitrary (#11142) 2024-09-23 22:40:27 +00:00
Dan Cline
89b6ad2406 fix: increment post block balances in invalid block hook (#11139) 2024-09-23 19:08:49 +00:00
Dan Cline
ed2679be2e feat(grafana): make execution duration percentage stack plot (#11137) 2024-09-23 18:27:23 +00:00
Dan Cline
50ab150ee0 fix(docs): fix error message for missing jwtsecret flag (#11138) 2024-09-23 18:24:05 +00:00
Federico Gimenez
efa5d45e4e feat(trie): use global thread pool in async state root calculation (#11057) 2024-09-23 17:45:12 +00:00
Matthias Seitz
b29ff1f6cc chore: remove redundant phantom (#11134) 2024-09-23 17:36:48 +00:00
Federico Gimenez
fc12639b9b fix(tree): adjust both number and hash when removing persisted blocks from memory (#11133)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-09-23 16:57:18 +00:00
Matthias Seitz
a16b3dd6f5 feat: add execute_with_witness (#11074) 2024-09-23 16:50:58 +00:00
Alexey Shekhirin
7b128d6923 feat(engine): save original files for witness invalid block hook (#11132) 2024-09-23 16:43:39 +00:00
Federico Gimenez
3fa1e28e12 chore: unify last persisted block hash and number in PersistenceState (#11126) 2024-09-23 16:01:56 +00:00
Matthias Seitz
f81c7d075c chore: rm redundant builder types (#11129) 2024-09-23 15:37:45 +00:00
Arsenii Kulikov
cf294ce397 feat: add ChainSpec AT to EngineTypes (#11054) 2024-09-23 15:02:57 +00:00
greged93
faca096263 chore: remove reth-rpc-types import (#11125) 2024-09-23 14:43:27 +00:00
joshieDo
07f5971ae1 docs(ci): add docs to bench.yml (#11128) 2024-09-23 14:31:33 +00:00
Aurélien
15aee9b144 feat: use alloy Signature type (#10758)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-23 13:29:48 +00:00
github-actions[bot]
fba837468c chore(deps): weekly cargo update (#11101)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-09-23 13:23:53 +00:00
Thomas Coratger
ed1de8996d primitives: use alloy Header struct (#10691) 2024-09-23 12:53:43 +00:00
Oliver
7529d36515 feat: add set code tx helper to e2e utils (#11118) 2024-09-23 12:03:41 +00:00
garwah
cbfc6723cc chore: Log an error when failing to resolve external ip address (#11085)
Co-authored-by: garwah <garwah@garwah>
2024-09-23 11:59:12 +00:00
nk_ysg
bb27f37cc7 storage-api: update BlockReaderIdExt (#11110) 2024-09-23 09:47:15 +00:00
Federico Gimenez
d21d070605 chore(hive): update expected failures (#11121) 2024-09-23 09:34:50 +00:00
Oliver
750dc0a9d6 feat: add deploy tx helper to e2e utils (#11117) 2024-09-23 09:21:01 +00:00
Oliver
a2b8baf0e4 docs: correct requested_empty_payload metric docs (#11119) 2024-09-23 08:50:42 +00:00
greged93
560b061e5e chore: clear reth rpc types from reth binary (#11120) 2024-09-23 08:50:24 +00:00
Abhishek kochar
242a3ab06b chore(exex): replace reth-primitives with alloy (#11104)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-23 06:32:01 +00:00
Steven
875e0e5b11 Add payload builder metrics to Grafana dashboard (#11102) 2024-09-23 03:49:27 +00:00
Thomas Coratger
2684594ec1 rpc: rm useless reexports in reth-rpc-types (#11113) 2024-09-23 00:29:47 +00:00
joshieDo
0a6845b051 fix(cli): handle case when first transaction range is None on reth db stats (#11107) 2024-09-22 16:47:37 +00:00
nk_ysg
52c72a3b1d use HashMap::with_capacity (#11106) 2024-09-22 15:26:54 +00:00
Thomas Coratger
159bf2cf16 rpc: rm useless alloy_rpc_types reexport (#11098)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-22 14:29:35 +00:00
Thomas Coratger
63dfa9a4dc rpc: rm useless alloy_rpc_types_debug reexport (#11095)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-22 13:50:53 +00:00
Thomas Coratger
f7b895ef4a rpc: rm useless alloy_rpc_types_trace reexport (#11096)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-22 13:14:11 +00:00
0xriazaka.eth
f4d11f48bc Split MevApi trait into two #11036 (#11081)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-22 12:48:33 +00:00
Thomas Coratger
405fc4361a rpc: rm useless alloy-rpc-types-anvil reexport (#11094)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-22 12:44:03 +00:00
Thomas Coratger
fdcfe6ef29 rpc: rm useless alloy-rpc-types-mev reexport (#11093) 2024-09-22 11:59:45 +00:00
greged93
b4ad28dfb4 chore: reth payload without reth rpc types (#11097) 2024-09-21 20:20:42 +00:00
Thomas Coratger
4c92075de2 rpc: rm useless alloy_rpc_types_txpool reexport (#11092) 2024-09-21 20:19:00 +00:00
Thomas Coratger
b9712c5ec5 rpc-types: replace reth TransactionRequest by alloy (#11091) 2024-09-21 18:52:59 +00:00
joshieDo
5113e29074 chore(storage): add test cases for Transactions and Receipts truncation (#11070) 2024-09-21 16:06:28 +00:00
DaniPopes
c36b2f75b3 chore: stop using static mut (#11088) 2024-09-21 15:16:25 +00:00
Matthias Seitz
f141a74f8b fix: enable js-tracer (#11087) 2024-09-21 16:01:45 +02:00
greged93
b56d638e3f chore: replace reth-rpc-types by alloy-rpc-types (#11071)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-21 10:51:31 +00:00
Matthias Seitz
542c1487c9 chore: allow static mut ref (#11083) 2024-09-21 12:28:03 +02:00
garwah
6975177d05 Add new NetIf variant to NatResolver for IP resolution via network interface (#10922)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Emilia Hane <emiliaha95@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-21 12:17:42 +02:00
Dan Cline
95d65dc022 chore: remove dead_code on InMemoryAccountTrieCursor (#11080) 2024-09-21 08:51:55 +02:00
Federico Gimenez
3416145574 perf: increase threads in global pool (#11075) 2024-09-20 17:56:46 +00:00
Dan Cline
5e1b49429f feat(tree): add more insert block debug logs (#11078) 2024-09-20 17:09:20 +00:00
Emilia Hane
66089682d7 Move OptimismHardfork to new crate reth_optimism_forks (#10963) 2024-09-20 16:51:45 +00:00
Emilia Hane
63f2d59068 Replace reth-provider dep in reth-rpc-eth-types (#11077) 2024-09-20 16:37:45 +00:00
crazykissshout
da098044ba docs: fix rpc-types-compat in docs (#11076) 2024-09-20 18:26:45 +02:00
Emilia Hane
b5adf24a65 chore(rpc): remove use of extensible transaction + receipt types (#9774) 2024-09-20 15:00:28 +00:00
joshieDo
05f862af41 chore(storage): add test cases for Header truncation (#11048) 2024-09-20 10:32:40 +00:00
greged93
7cf492d525 feat(payload): abstract payload builder in trait (#10965)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-20 07:12:14 +00:00
Håvard Anda Estensen
08bdec9efa net: replace reth-primitive imports with alloy-eips (#11027)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-20 06:23:38 +00:00
crazykissshout
4ae286e69f docs: correct optimism snapshot download url (#11065) 2024-09-20 05:42:35 +00:00
Thomas Coratger
b9140cccb5 test: improve test coverage for 4844 rlp transactions (#11058) 2024-09-20 04:05:46 +00:00
Abhishek kochar
a8220791ae chore(engine): replace reth_primitives with alloy_primitives (#11064)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-20 03:50:42 +00:00
Emilia Hane
b562ea3100 chore(deps): bump revm to 14.0.2 (#11063) 2024-09-20 03:20:17 +00:00
Emilia Hane
1393a0b9e2 chore(ci): unpin nightly version in lint job (#11062) 2024-09-20 02:59:20 +00:00
Emilia Hane
884c74d5ed chore(rpc): use FullNodeComponents::Network in EthApiBuilderCtx (#10996) 2024-09-20 01:56:05 +00:00
Dan Cline
84db469f71 fix(discv5): change default discv5 port (#11051)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-09-20 01:23:32 +00:00
Dan Cline
ec565304d7 fix(tree): prevent noisy canonical block debug logs (#11061) 2024-09-20 00:55:32 +00:00
Oliver
e4065201a0 refactor: use pre-genned wallet from e2e utils in test (#11059) 2024-09-20 00:43:31 +00:00
Dan Cline
c9057d75c1 feat: add Display for BeaconConsensusEngineEvent (#11055) 2024-09-19 23:52:36 +00:00
Dan Cline
f9eb20d0a0 feat: impl Display for ChainEvent (#11056) 2024-09-19 22:47:15 +00:00
Matthias Seitz
75b7172cf7 fix: rm more windows (#11050) 2024-09-19 19:50:37 +02:00
joshieDo
69c8ddb330 feat: add blocks_per_file field to StaticFileProvider (#11043) 2024-09-19 17:36:23 +00:00
Matthias Seitz
9f23443029 chore: use alloy-chains is_ethereum (#11049) 2024-09-19 16:59:28 +00:00
Arsenii Kulikov
c3d090adf4 feat: make NodeConfig generic over ChainSpec (#11039) 2024-09-19 16:05:09 +00:00
Roman Krasiuk
65fb29c773 chore(engine): revert disabling parallel state root (#11047) 2024-09-19 15:43:45 +00:00
Matthias Seitz
1fbf1a91f1 Revert "chore(op-payload-builder): Refactor optimism_payload into smaller, reusable functions" (#11041) 2024-09-19 15:36:32 +00:00
nk_ysg
893ea95d3e hash_keys bench: use HashSet::with_capacity (#11044) 2024-09-19 15:07:44 +00:00
0xKitsune
0349d7b289 Update OptimismPayloadBuilder field visibility (#11042) 2024-09-19 14:25:09 +00:00
Arsenii Kulikov
6cb26f72af feat: make DatabaseProvider generic over chainspec (#10978) 2024-09-19 14:23:06 +00:00
nk_ysg
161c2d2b0d reth-stages: remove duplicate buf clear (#11035) 2024-09-19 14:09:32 +00:00
Håvard Anda Estensen
8ba95a1667 chain-state: replace primitive imports with alloy-eips (#11038) 2024-09-19 13:54:07 +00:00
greged93
668807802b feat: local engine (#10803) 2024-09-19 13:07:15 +00:00
Matthias Seitz
89ca7a9ef1 test: 4844 testdata (#11033) 2024-09-19 12:29:41 +00:00
Roman Krasiuk
c92b3738cb fix(engine): state retrieval for parallel root with persisted parent (#10966) 2024-09-19 12:25:47 +00:00
0xKitsune
ddb79ef08b Update function visibility for cfg_and_block_env() (#11022) 2024-09-19 11:36:17 +00:00
Emilia Hane
5f022e1cd1 fix(lint): lint warnings for db benchmark tools (#11011) 2024-09-19 11:32:07 +00:00
Abhishek kochar
f9abc8a35c chore(payload): replace reth_primitives with alloy_primitives (#11030)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-19 11:23:38 +00:00
Matthias Seitz
03e89b1af6 fix: only decode fields (#11031) 2024-09-19 13:39:24 +02:00
Emilia Hane
4674bfdcb1 fix(lint): lint warnings trie tests (#11012) 2024-09-19 13:22:48 +02:00
Emilia Hane
9246eac3b0 fix(lint): lint warnings consensus test-utils (#11013) 2024-09-19 13:22:26 +02:00
Emilia Hane
43439b4824 fix(lint): lint warnings in reth-eth-wire (#11008) 2024-09-19 13:22:09 +02:00
Emilia Hane
5f45f63565 fix(lint): lint warnings rpc builder (#11014) 2024-09-19 13:21:46 +02:00
Emilia Hane
79fe634853 fix(lint): warnings engine API (#11015) 2024-09-19 13:21:33 +02:00
Emilia Hane
6747203f91 fix(lint): warnings ef testing (#11016) 2024-09-19 13:21:19 +02:00
Emilia Hane
d668216b8c fix(lint): warnings network tests (#11017) 2024-09-19 13:17:37 +02:00
Emilia Hane
2f635b8e4e fix(lint): warnings rpc testing utils (#11018) 2024-09-19 13:17:21 +02:00
Emilia Hane
81094d4403 fix(lint): ethereum node tests (#11019) 2024-09-19 13:17:07 +02:00
Emilia Hane
46ada1a595 fix(lint): op-reth tests (#11020) 2024-09-19 13:16:51 +02:00
Arsenii Kulikov
180f10001c feat: make reth-stages independent of concrete DatabaseProvider (#10934)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-19 10:47:55 +00:00
Emilia Hane
9e7e3247cc fix(lint): lint warnings for storage codecs fuzz (#11009) 2024-09-19 10:41:39 +00:00
crazykissshout
c1fedd7d97 docs: recorrect the sentry (#11028) 2024-09-19 10:30:33 +00:00
greged93
4a7eb6e914 fix: update pool gas limit (#11025) 2024-09-19 10:18:04 +00:00
Roman Krasiuk
2924d88339 chore(engine): disable parallel state root (#11024) 2024-09-19 09:52:10 +00:00
Håvard Anda Estensen
ae9b13f4a1 net: replace reth-primitive imports (#11023) 2024-09-19 08:29:01 +00:00
0xKitsune
883975dc90 chore(op-payload-builder): Refactor optimism_payload into smaller, reusable functions (#10904) 2024-09-18 23:18:29 +00:00
Emilia Hane
a636408199 fix(lint): lint for derive Compat (#11005) 2024-09-18 23:10:54 +00:00
Emilia Hane
fcd822c5f0 fix(lint): lint warnings for libmdbx benches (#11007) 2024-09-18 22:43:32 +00:00
Emilia Hane
dfd62ef68b (fix): lint warning IPC (#11006) 2024-09-18 22:40:53 +00:00
Håvard Anda Estensen
1f642353ca Handle non-default cargo target dir (#10775) 2024-09-18 22:35:56 +00:00
Matthias Seitz
000b41233d chore: remove windows cfg (#11002) 2024-09-18 20:29:05 +00:00
Håvard Anda Estensen
ef06c850e4 storage: replace reth-primitive imports with alloy-eips (#10992) 2024-09-18 20:21:27 +00:00
Roman Krasiuk
f64aecfbc8 feat(cli): expose tree engine persistence configuration (#10999) 2024-09-18 18:24:01 +00:00
nk_ysg
c09f650a3a chore: move eip7251 impl (#11000) 2024-09-18 18:15:10 +00:00
nk_ysg
6fc2a23b8b chore: move eip7002 impl (#10998) 2024-09-18 17:44:56 +00:00
nk_ysg
e8402385a0 chore(reth-primitives): use COMPACT_EXTENDED_IDENTIFIER_FLAG (#10926) 2024-09-18 17:40:44 +00:00
Arsenii Kulikov
91eb50c59f feat: eth_simulateV1 support (#10829)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-18 17:38:04 +00:00
Thomas Coratger
06b9792792 emv: add BlockHeader trait and default fill_block_env (#10993) 2024-09-18 17:36:55 +00:00
joshieDo
c2019e35de feat: allow syncing op-mainnet with only state and without importing blocks/receipts (#10850)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-09-18 17:10:38 +00:00
Håvard Anda Estensen
80c1159cb8 storage: replace reth-primitive imports (#10981)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-18 16:14:53 +00:00
krane
a92017bddb chore: make error msg conform to normal usage (#10988) 2024-09-18 16:10:52 +00:00
greged93
6d49dc130a feat: extend pool configuration (#10985) 2024-09-18 16:05:56 +00:00
Håvard Anda Estensen
2ee14164de cli: replace reth-primitive imports with alloy-eips (#10994) 2024-09-18 15:56:29 +00:00
Matthias Seitz
21232b0918 chore: move eip4788 impl (#10977) 2024-09-18 18:06:26 +02:00
krane
74e58d8c82 chore: change BlockAndProofV1 to use alloy_eips instead (#10969)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-18 15:25:18 +00:00
Matthias Seitz
d76fd148d5 chore: release 1.0.7 (#10990) 2024-09-18 14:44:35 +00:00
Matthias Seitz
f3744b342f chore: bump alloy (#10989) 2024-09-18 14:44:24 +00:00
Matthias Seitz
be04f24a69 chore: bump revm and inspectors (#10982) 2024-09-18 15:34:19 +02:00
Matthias Seitz
94c15c0074 chore: add display to FromEngine and other messages (#10986) 2024-09-18 13:11:38 +00:00
Matthias Seitz
5cd603d346 fix: also include reverts for op (#10979) 2024-09-18 12:11:05 +00:00
Abhishek kochar
1fd4b1da9b chore(e2e-test-utils): replace reth_primitives with alloy_primitives (#10980)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-18 11:19:38 +00:00
Abhishek kochar
c09391feee chore(chain-state): replace reth_primitives with alloy_primitives (#10975)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-18 10:07:25 +00:00
Thomas Coratger
5e9f38164d evm: use Header AT in ConfigureEvmEnv (#10968) 2024-09-17 23:03:15 +00:00
Roman Krasiuk
a8078f66dd fix(trie): remove debug_assert for storage root (#10973) 2024-09-17 21:58:22 +00:00
Matthias Seitz
9760319f34 docs: add geth reference for call fee check (#10970) 2024-09-17 21:21:22 +00:00
Matthias Seitz
cd10cbf4ff feat: move next block cfg and env to configureevm (#10962) 2024-09-17 16:21:11 +00:00
Roman Krasiuk
192f59f1b5 deps: bump alloy-trie to 0.5.3 (#10960) 2024-09-17 15:30:21 +00:00
Alexey Shekhirin
f843a051a6 perf(rpc): use only Revm cache for execution witness (#10454) 2024-09-17 15:24:13 +00:00
Alexey Shekhirin
0746479e3c feat(cli): enable witness invalid block hook by default (#10839) 2024-09-17 14:44:28 +00:00
DaniPopes
ad76d89a27 chore: early return EMPTY_ROOT_HASH (#10957) 2024-09-17 13:45:47 +00:00
Matthias Seitz
b5fcc1baeb chore: move eip2935 impl (#10954) 2024-09-17 13:40:39 +00:00
Alexey Shekhirin
0cde072453 feat(exex): backfill on subscription with head (#10787) 2024-09-17 12:32:41 +00:00
Matthias Seitz
346eb308cd chore: include network primitives in workspace (#10952) 2024-09-17 12:28:23 +00:00
Thomas Coratger
92dacf4f52 execution: add transaction and header AT to ConfigureEvmEnv (#10754)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-17 12:18:03 +00:00
garwah
2a04b1c100 Move cfg_env and block_env configuration from PayloadBuilderAttributes into PayloadBuilder (#10510)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-17 11:43:31 +00:00
malik
abd4642d65 reafctor: improve tx count (#10889)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-17 10:27:34 +00:00
garwah
c795389aae fix(cli) Allow Pruning CLI Args to take precedence over TOML configuration (#10774)
Co-authored-by: garwah <garwah@garwah>
2024-09-17 10:01:32 +00:00
Thomas Coratger
1d0b18cd1a error: use derive-more Error for deriving error (#10841) 2024-09-17 10:01:29 +00:00
nk_ysg
30d8ec74ff chore(reth-primitives): use derive_more::From when possible (#10917) 2024-09-17 09:53:27 +00:00
nk_ysg
f04fc7c5b9 chore(primitives, ethereum-forks): replace std feature gate alloc imports (#10945) 2024-09-17 09:52:57 +00:00
Abhishek kochar
847ac1dfcc blockchain-tree-api:replace reth_primitives with alloy_primitives (#10946)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-17 09:51:11 +00:00
Emilia Hane
21e92b83bd fix(rpc): add fee/value and balance to insufficient funds RPC error (#10872) 2024-09-17 09:47:18 +00:00
Emilia Hane
e1b10ca699 chore(op): remove redundant op feature from reth-optimism-consensus (#10944) 2024-09-17 09:43:24 +00:00
nk_ysg
de02d626cc chore(reth-ethereum-consensus): use const GAS_LIMIT_BOUND_DIVISOR (#10948) 2024-09-17 09:42:23 +00:00
nk_ysg
7367651333 chore(reth-primitives-traits): use EOF_BYTECODE_ID etc (#10949) 2024-09-17 09:41:05 +00:00
nk_ysg
acdb2050a7 chore(reth-provider): use Vec::with_capacity (#10912) 2024-09-17 09:37:51 +00:00
nk_ysg
0fd8132e90 feat(reth-evm-ethereum): use EVMError::map_db_err (#10916)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-16 22:55:40 +00:00
nk_ysg
bf800986d3 chore: use MIN_TRANSACTION_GAS replace magic number (#10910) 2024-09-16 21:28:35 +00:00
Alexey Shekhirin
8b61b9bf9b fix(exex): do not advance backfill range twice (#10942) 2024-09-16 20:20:34 +00:00
joshieDo
b38539c18a feat: use DBProvider instead of DB on init_genesis (#10937) 2024-09-16 16:47:46 +00:00
joshieDo
e714dba4e2 fix(ci): use taiki-e/install-action instead for cargo-udeps (#10938) 2024-09-16 16:22:39 +00:00
joshieDo
66848d98ef feat: use DbProvider on UnifiedStorageWriter (#10933) 2024-09-16 13:49:24 +00:00
greged93
56fb18bf09 ci: dev udeps (#10855) 2024-09-16 12:48:13 +00:00
Abhishek kochar
5468921b90 trie: replace reth_primitives with alloy_primitives (#10931)
Signed-off-by: Abhishekkochar <abhishekkochar2@gmail.com>
2024-09-16 11:48:04 +00:00
Arsenii Kulikov
0fa8e83e16 refactor: make reth-prune independent of concrete DatabaseProvider (#10921) 2024-09-16 11:46:53 +00:00
Alexey Shekhirin
664f8b23be feat(engine): compare invalid block witness against a healthy node (#10844) 2024-09-16 11:03:49 +00:00
Roman Krasiuk
605b93a205 feat(trie): integrate TrieInput into ParallelStateRoot & AsyncStateRoot (#10930) 2024-09-16 10:05:16 +00:00
Roman Krasiuk
06dbd3a610 feat(trie): expose multiproof via StateProofProvider (#10915) 2024-09-16 09:52:15 +00:00
Roman Krasiuk
fdd64972b9 feat(trie): integrate TrieInput into StateProofProvider methods (#10929) 2024-09-16 09:18:23 +00:00
Roman Krasiuk
59a7798750 feat(trie): async root intermediate nodes (#10920) 2024-09-16 08:37:18 +00:00
Roman Krasiuk
b0eb78ced6 feat(trie): TrieInput (#10918) 2024-09-16 08:04:17 +00:00
github-actions[bot]
f37bd47e2e chore(deps): weekly cargo update (#10911)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-15 11:18:15 +00:00
Matthias Seitz
1c20e0e75d chore: add is granite active at timestamp (#10908) 2024-09-14 15:58:54 +02:00
greged93
646b72f342 chore: update genesis to chain spec conversion (#10764)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-14 09:36:30 +00:00
nk_ysg
bff991dd0a chore(reth-execution-errors): use derive_more::From when possible (#10897) 2024-09-14 08:34:10 +00:00
令狐一冲
97cc9dd8ec chore: Some minor refactoring for cargo.toml (#10906) 2024-09-14 10:20:24 +02:00
Arsenii Kulikov
8852e85d14 chore: fix ci (#10903) 2024-09-14 06:12:39 +00:00
Dan Cline
bb1894298b feat(evm-optimism): add OpBlockAccessListExecutor (#10895) 2024-09-13 21:30:03 +00:00
DaniPopes
974926f2d9 chore: remove an intermediate allocation in ExecutionOutcome (#10900) 2024-09-13 19:07:13 +00:00
DaniPopes
96854f9f0f fix: actually use RevmBytecode::new_raw_checked (#10899) 2024-09-13 19:04:36 +00:00
DaniPopes
b23bb7e8bc perf: improve genesis handling (#10878) 2024-09-13 17:48:44 +00:00
Arsenii Kulikov
75c6295d29 chore: separate trait for conversion into state provider (#10858) 2024-09-13 17:03:52 +00:00
Abhishek kochar
c6359b6242 Fix: Allow missing docs for test modules (#10893) 2024-09-13 16:38:47 +00:00
Dan Cline
3012018625 feat(evm-ethereum): add BlockAccessListExecutor (#10849) 2024-09-13 16:18:22 +00:00
DaniPopes
87e5e0929f feat: add support for wrapping the allocator with tracy (#10874) 2024-09-13 16:12:33 +00:00
Matthias Seitz
12e8af4a24 chore: bump alloy 0.3.5 (#10891) 2024-09-13 16:10:39 +00:00
Emilia Hane
784154bcdb chore(op): Move imports in reth_optimism_rpc::sequencer to module prelude (#10886) 2024-09-13 16:09:50 +00:00
Emilia Hane
9c4cf3d720 chore(op): Use tokio::sync::OnceCell to set SequencerClient (#10885) 2024-09-13 16:03:37 +00:00
Thomas Coratger
47d188cb8e cfg: replace std feature gate alloc imports with extern crate alloc (#10861) 2024-09-13 16:01:12 +00:00
greged93
6fc81f2b70 dev: add send_and_resolve (#10847) 2024-09-13 15:46:49 +00:00
joshieDo
8ddbd30df9 fix(cli): remove static file providers from cache on reth db stats (#10887) 2024-09-13 14:53:39 +00:00
Emilia Hane
dd95508d34 chore(op): Clean up module reth_optimism_rpc::eth::sequencer (#10884) 2024-09-13 13:22:37 +00:00
joshieDo
d3acd09be2 chore: remove unnecessary segment argument from StaticFileProviderRW (#10882) 2024-09-13 12:23:45 +00:00
Oliver
9f926ac4aa fix: don't validate requests in optimism (#10883) 2024-09-13 12:19:36 +00:00
joshieDo
2ae53e5c3a fix(cli): ensure reth init-state doesn't end in an invalid state root (#10880) 2024-09-13 12:08:00 +00:00
Marquis Shanahan
df701a0bf8 fix(reth): bin/reth missing help msg of segment (#10873)
Signed-off-by: 9547 <29431502+9547@users.noreply.github.com>
2024-09-13 11:37:09 +00:00
Matthias Seitz
ef1d9e7a03 fix: use configured chainspec parser for commands (#10876) 2024-09-13 08:45:24 +00:00
Oliver
817b1527e9 docs: minor evm doc changes (#10867) 2024-09-12 17:58:22 +00:00
greged93
d63498a353 dev: test vectors seed (#10859) 2024-09-12 17:07:02 +00:00
Oliver
29e11d31b5 fix: revert header error message change (#10866) 2024-09-12 16:53:12 +00:00
Oliver
74c733d22d chore: remove useless non exhaustive (#10865) 2024-09-12 14:20:51 +00:00
Federico Gimenez
028000caf3 fix: include reverts in execution outcome when building payload (#10837) 2024-09-12 13:54:37 +00:00
Alexey Shekhirin
4cbe931c0d chore(grafana): display empty string if no cargo features are available (#10862) 2024-09-12 13:26:25 +00:00
Roman Krasiuk
acdb7b7e2e perf(engine): parallel storage roots (#10666) 2024-09-12 13:12:05 +00:00
Marquis Shanahan
b85a4e8a70 chore: alias of datadir.static-files and upate book cli (#10856)
Signed-off-by: 9547 <29431502+9547@users.noreply.github.com>
2024-09-12 12:55:43 +00:00
Oliver
c1b5fbbc7f fix: don't recurse on op rpc err conversion (#10860) 2024-09-12 12:41:21 +00:00
Arsenii Kulikov
c38a425207 chore: remove prune_modes arg from BlockchainTree::new (#10857) 2024-09-12 10:48:25 +00:00
Eric Woolsey
875cee27ac Add pub visibility modifiers to some op executer types (#10852)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-12 05:43:58 +00:00
Dan Cline
3977efe93a meta: add etc/ CODEOWNERS (#10848) 2024-09-11 19:17:03 +00:00
Dan Cline
1c61839fa3 feat(grafana): add stacked block processing latency graph (#10846) 2024-09-11 18:50:49 +00:00
Roman Krasiuk
f6444b2e70 fix(tree): avoid holding two locks simultaneously (#10843) 2024-09-11 14:33:56 +00:00
joshieDo
1c53518bc4 fix: drop mmap handles before modifying during handle_consistency (#10708) 2024-09-11 14:28:09 +00:00
Matthias Seitz
6ed0ca5533 fix: always acquire numbers lock first (#10842) 2024-09-11 14:26:44 +00:00
Thomas Coratger
2b75415a00 execution: make ConfigureEvm independent of chainspec argument (#10748)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-09-11 13:50:42 +00:00
Alexey Shekhirin
7abf49995f fix(libmdbx): renew tx on timeout when dropping cursor (#10840) 2024-09-11 13:16:05 +00:00
Alexey Shekhirin
265e92685d fix(libmdbx): do not panic on timeout when closing cursor (#10838) 2024-09-11 12:35:10 +00:00
Emilia Hane
c498fa6349 Move EthBlocks::block_receipts default impl to impl for EthApi (#10785) 2024-09-11 12:30:22 +00:00
joshieDo
9aea661c94 fix: ensure that SendersRecoveryStage either recovers all senders or fails (#10810) 2024-09-11 12:20:04 +00:00
Matthias Seitz
bc14ad1f53 perf: use last key value (#10836) 2024-09-11 12:08:38 +00:00
Håvard Anda Estensen
5b3c115704 rpc: replace reth-primitive imports with alloy-eips (#10834) 2024-09-11 11:25:07 +00:00
Matthias Seitz
a5be445ef9 chore: lower persistence threshold (#10833) 2024-09-11 11:20:25 +00:00
garwah
cb7832eed5 chore: crates/consensus - Use derive_more::Error rather than impl std:error:Error (#10831)
Co-authored-by: garwah <garwah@garwah>
2024-09-11 11:11:51 +00:00
Emilia Hane
6764f7bc96 feat(net): IP resolution in docker (#10681)
Co-authored-by: Cody Wang <cody.wang@coinbase.com>
2024-09-11 09:57:58 +00:00
Oliver
3d7bcb037f chore: missing features in optimsim crates (#10830) 2024-09-11 09:54:58 +00:00
Emilia Hane
bbaccc2a3a chore(rpc): LoadReceipt::build_transaction_receipt default impl to impl for EthApi (#10786) 2024-09-11 09:06:29 +00:00
Emilia Hane
d9681ea729 chore(op): define type reth_optimism_rpc::OpReceiptBuilder (#10781) 2024-09-11 08:49:08 +00:00
MagicJoshh
3c57c3138f crates/optimism: fix optimism (#10820) 2024-09-11 10:10:16 +02:00
clabby
310bcaf35b chore: Remove rethdb op-node build tag from book (#10819) 2024-09-11 10:00:33 +02:00
garwah
643ea42acb chore: Make block download metric include inflight block range requests (#10826)
Co-authored-by: garwah <garwah@garwah>
2024-09-11 09:59:39 +02:00
Matthias Seitz
53a081c4d6 ci: pin clippy until lints fixed (#10825) 2024-09-11 09:58:31 +02:00
Matthias Seitz
b3f87ec20a fix: prevent panic during enr conversion (#10824) 2024-09-11 09:58:12 +02:00
Arsenii Kulikov
d11bbe686b refactor: reduce ProviderFactory usage (#10798) 2024-09-11 09:36:34 +02:00
greged93
f6b2021440 dev: remove unused dev-deps (#10813) 2024-09-11 00:45:20 +00:00
Håvard Anda Estensen
60dcea847c rpc: replace reth-primitive imports (#10812) 2024-09-11 00:28:09 +00:00
Matthias Seitz
5614a0260a chore: bump revm-inspectors (#10815) 2024-09-11 02:39:43 +02:00
Eric Woolsey
e130457683 Add client() getter to OpTransactionValidator (#10814) 2024-09-10 23:59:20 +00:00
Oliver
ac5ab944dd chore: remove optimism feature from reth docs (#10809) 2024-09-10 16:19:54 +00:00
Matthias Seitz
e4b5325875 chore: unify empty payload building (#10807) 2024-09-10 12:21:49 +00:00
Dan Cline
72c53b88bc fix(metrics): set sync metrics when blocks are added (#10799) 2024-09-10 11:43:03 +00:00
Matthias Seitz
ed4235609f chore: bump alloy 0.3.3 (#10806) 2024-09-10 11:27:35 +00:00
Oliver
5a5511743e chore: fix typo in chainspec (#10805) 2024-09-10 11:18:42 +00:00
Håvard Anda Estensen
0213e8841f optimism: replace reth-primitive imports (#10800) 2024-09-10 10:51:43 +00:00
Matthias Seitz
1b74f16ec3 feat: support custom chainspec parser for op (#10804) 2024-09-10 10:51:08 +00:00
Philippe Laflamme
2985720c78 feat: expose ChainSpec metrics (#10737) 2024-09-10 10:40:49 +00:00
Thomas Coratger
282a96a70d trie: add unit tests for TrieAccount (#10802) 2024-09-10 10:20:05 +00:00
Federico Gimenez
39576e30e4 fix(hive): remove expected failures after upstream hive fix (#10801) 2024-09-10 09:05:14 +00:00
Matthias Seitz
9b7e69274a chore: rm unused kzg settings fn (#10796) 2024-09-09 23:59:06 +00:00
dependabot[bot]
94e6939e81 chore(deps): bump peter-evans/create-pull-request from 6 to 7 (#10795)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-09 22:41:41 +00:00
Håvard Anda Estensen
75b8499d32 node: replace reth-primitive imports (#10791) 2024-09-09 17:49:07 +00:00
Håvard Anda Estensen
e7a4c85aa9 blockchain-tree: replace reth-primitive imports (#10771)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-09 17:30:46 +00:00
github-actions[bot]
6f7c8c8caf chore(deps): weekly cargo update (#10773)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-09 19:09:36 +02:00
nk_ysg
75586e3fcb fix(reth-primitives-traits): removes todo (#10789) 2024-09-09 16:49:48 +00:00
Matthias Seitz
afdaf156ae chore: bump revm inspectors (#10790) 2024-09-09 18:39:37 +02:00
Michael Sproul
d8b12ac499 Implement engine_getBlobsV1 (#9723)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-09 15:28:53 +00:00
nk_ysg
c258c1547e feat(db): move reth-storage-api::ClientVersion and StoredBlockWithdrawals to reth-db-models (#10763) 2024-09-09 13:53:45 +00:00
nk_ysg
b78e0f6069 feat: remove constraint of concrete type AnyTransactionReceipt for EthApiTypes::NetworkType (#10693)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-09 13:46:40 +00:00
malik
1ea8ccaa21 Remove receipts fn in BuiltPayload (#10772)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-09 13:41:50 +00:00
Thomas Coratger
4cbdc7c125 consensus: add unit tests for StorageInner (#10776) 2024-09-09 13:27:40 +00:00
Oliver
8296fcc295 chore: re-export reth-consensus (#10782) 2024-09-09 13:27:11 +00:00
Håvard Anda Estensen
cb0625c391 consensus: replace reth-primitive imports (#10768) 2024-09-09 12:54:49 +00:00
Håvard Anda Estensen
9a541c9853 clippy: add more lints (#10778) 2024-09-09 11:40:03 +00:00
Håvard Anda Estensen
de36c31795 cli: replace reth-primitive imports (#10777) 2024-09-09 11:21:41 +00:00
Ryan Schneider
7a20b413f5 feat: Include missing block id in error responses (#7416)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-07 11:02:17 +00:00
Håvard Anda Estensen
e7defb2334 feat: return executed block in eth payload builder (#10717) 2024-09-07 09:27:38 +00:00
Håvard Anda Estensen
162f6019d4 transaction-pool: replace reth-primitive imports (#10766)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-07 09:12:46 +00:00
nk_ysg
10f3320782 storage: clean up reth-primitives import (#10761) 2024-09-07 09:12:16 +00:00
nk_ysg
5194bcfbcc testing: clean up reth-primitives import (#10760) 2024-09-07 09:11:29 +00:00
nk_ysg
b554eccab9 chore(reth-primitives): clean unused file (#10765) 2024-09-07 08:59:25 +00:00
Georgios Konstantopoulos
81a7fd370f chore: add rpgf json 2024-09-06 17:43:51 -07:00
Thomas Coratger
423e0221f7 trie: clean up reth-primitives imports (#10757) 2024-09-06 20:19:50 +00:00
Hendrik Eeckhaut
d1d544e23c Create CLI documentation with a Rust script (instead of Python) + style improvement (#10680) 2024-09-06 19:35:12 +00:00
Dan Cline
27d4e8c363 feat: test channel for pausing persistence receiver (#10699) 2024-09-06 17:39:05 +00:00
Dan Cline
ed778e10b9 chore(tree): propagate on_new_persisted_block error (#10733) 2024-09-06 17:17:43 +00:00
Alexxxxxx
dbf5d48a82 fix: unwind_to should be exclusive (#10738)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-06 16:03:33 +00:00
Alexey Shekhirin
a89de219c9 feat(exex): subscribe to notifications explicitly (#10573) 2024-09-06 14:24:23 +00:00
Alexey Shekhirin
3ec5d373c1 feat(engine, tree): witness invalid block hook (#10685) 2024-09-06 11:56:03 +00:00
Pana
db7834dd51 Update layout doc (#10739) 2024-09-06 11:46:44 +00:00
garwah
b13e982cd4 chore: expose PruneConfig in CLI args (#10639)
Co-authored-by: garwah <garwah@garwah>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
2024-09-06 10:58:44 +00:00
Dan Cline
3e2c34ac6c chore(tree): propagate on_new_head error (#10734) 2024-09-06 00:31:38 +00:00
Dan Cline
cdd0f00079 chore(tree): make tree trace targets consistent (#10731) 2024-09-05 23:36:10 +00:00
Dan Cline
399c27082f chore: EvmStateProvider doc improvements (#10735) 2024-09-05 23:34:54 +00:00
Emilia Hane
0c2b496503 chore(op): type safety in computation of op tx metadata (#10619) 2024-09-05 21:21:09 +00:00
Jennifer
5af62b75d4 test(provider): Add unit tests for stateproviderfactory (#10697) 2024-09-05 20:20:36 +00:00
Dan Cline
b1ed3e65a3 feat(tree): add block validation metrics (#10728) 2024-09-05 20:08:41 +00:00
Matthias Seitz
d3281ece02 test: add hardfork parsing test (#10724) 2024-09-05 21:43:52 +02:00
Håvard Anda Estensen
2b6b715b95 Remove load_trusted_setup_from_bytes (#10719)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-05 21:43:35 +02:00
Matthias Seitz
80d511bf16 chore: bump example dep (#10726) 2024-09-05 21:43:24 +02:00
Matthias Seitz
6adb4bcb72 chore: ignore proc-macro-error 1.0.4 advisory (#10727) 2024-09-05 21:42:59 +02:00
Arsenii Kulikov
a996eea94a refactor: relax bound on NodeTypesWithDB (#10720) 2024-09-05 19:14:45 +00:00
Oliver
665bfd7e30 fix: don't filter out hardforks (#10723) 2024-09-05 19:05:19 +00:00
Thomas Coratger
7fd16914a4 ethereum-forks: add unit tests for ForkCondition (#10707) 2024-09-05 18:33:02 +00:00
Thomas Coratger
fdad74e50d rust: bump rust to 1.81 (#10721) 2024-09-05 18:12:07 +00:00
Dan Cline
60bc403f08 fix(tree): remove_blocks fixes, return hash and number in persistence task (#10678) 2024-09-05 16:35:16 +00:00
joshieDo
e8128a3c85 feat: add directory watcher to StaticFileProvider::read_only (#10701) 2024-09-05 16:32:37 +00:00
Thomas Coratger
1ec5678081 ForkCondition: some small refactors (#10712) 2024-09-05 16:17:29 +00:00
Thomas Coratger
b0fddef46a optimism: use op-alloy TxDeposit (#10667)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-05 15:50:33 +00:00
Roman Krasiuk
c267c1caf7 chore(engine): track elapsed on fork block added (#10710) 2024-09-05 15:25:38 +00:00
Alexey Shekhirin
ba3fc6a9a9 feat(engine): support --debug.etherscan on experimental engine (#10688) 2024-09-05 15:22:19 +00:00
Arsenii Kulikov
5ecc9d2348 feat: integrate NodeTypesWithDB (#10698)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-09-05 15:17:28 +00:00
Oliver
5df03fb3c3 fix: reject 7702 transactions with empty auth list (#10709) 2024-09-05 13:24:24 +00:00
Panagiotis Ganelis
8bbd403285 fix: improve nonce too low error (#10711) 2024-09-05 13:09:33 +00:00
Md Amaan
834e99cd2a chore: moved optimism_receiptfn and its tests (#10520)
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-05 13:00:09 +00:00
Dan Cline
98b214f63d feat(tree): schedule block removal on disk reorgs (#10603) 2024-09-04 22:36:14 +00:00
joshieDo
22e9c1d978 chore: allow CC0-1.0 on deny.toml (#10706) 2024-09-04 22:29:06 +00:00
Thomas Coratger
1ef4d6d61b clippy: add collection_is_never_read clippy lint (#10703) 2024-09-04 22:07:26 +00:00
Matthias Seitz
f8e5b181bb chore: relax txpool client trait bounds (#10705) 2024-09-04 21:49:06 +00:00
Thomas Coratger
f82719ff23 rpc: small refactor in TransactionSource impl (#10704) 2024-09-04 21:31:15 +00:00
Oliver
9e3edcc7e9 fix: allow tx's from EIP-7702 delegated accounts (#10702) 2024-09-04 21:11:50 +00:00
Alex Zammit
86a2ac6fa2 fix: nippy jar error access is denied. os error 5 (#9747) (#10672)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-09-04 20:03:04 +00:00
Oliver
3105320d94 chore: update grafana dashboard again (#10700) 2024-09-04 19:50:59 +00:00
Dan Cline
3289cd79bd feat(tree): make on_new_head and is_fork aware of disk (#10551) 2024-09-04 19:00:07 +00:00
Oliver
8151c9a3c7 chore: more adjustments to grafana (#10696) 2024-09-04 18:26:28 +00:00
Arsenii Kulikov
a1d9ece3be feat: NodeTypesWithDB (#10683) 2024-09-04 17:56:22 +00:00
nk_ysg
4fbfedb6e0 chore(reth-evm): no-default optional crate (#10694) 2024-09-04 17:20:10 +00:00
nk_ysg
304550cd23 chore: update wasm crate (#10695) 2024-09-04 16:40:17 +00:00
Thomas Coratger
e502132109 primitives: simplify generate_valid_header logic (#10692) 2024-09-04 15:53:28 +00:00
nk_ysg
2c28438505 chore: remove PerfectHasingFunction Filters (#10627)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-09-04 14:46:46 +00:00
Emilia Hane
9257c8a9d4 Cargo update (#10690) 2024-09-04 14:37:00 +00:00
Emilia Hane
938227a397 fix(op): parse l1 block info from l2 tx input (#10664) 2024-09-04 14:13:23 +00:00
Oliver
d659cd36d2 refactor: move exec metrics into executor (#10426) 2024-09-04 01:30:12 +00:00
Dan Cline
fd8ca17076 feat(tree): introduce executed_block_by_hash (#10553)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-03 18:11:37 +00:00
Jennifer
df93e7515b test (provider): receiptProvider impl of BlockchainProvider2<DB> (#10651) 2024-09-03 15:31:32 +00:00
Dan Cline
5744ad1fa0 feat: impl StateReader for BlockchainProvider2 (#10618) 2024-09-03 15:24:02 +00:00
Alexey Shekhirin
9d46b06420 feat(engine): invalid block hooks crate (#10629)
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
2024-09-03 15:02:18 +00:00
Thomas Coratger
6b509ddb1c blockchain-tree: add unit tests for BlockIndices (#10675) 2024-09-03 14:33:32 +00:00
Thomas Coratger
332b994c02 net: rm unused import (#10676) 2024-09-03 14:27:49 +00:00
Dan Cline
dea1e21af9 feat: add invalid block hook field to tree (#10432)
Co-authored-by: Alexey Shekhirin <a.shekhirin@gmail.com>
2024-09-03 13:59:43 +00:00
Thomas Coratger
d30e3a4888 node: revise NodeTypes trait (#10665) 2024-09-03 12:52:53 +00:00
malik
020597da32 Update generic name in payload crate (#10669) 2024-09-03 11:44:30 +00:00
Emilia Hane
5fc77551dd fix(discv5): return discv5 local node record (#10640) 2024-09-03 10:22:08 +00:00
Tien Nguyen
857f97e3a3 chore(storage): remove unnecessary check empty vec (#10671) 2024-09-03 09:03:11 +00:00
Dan Cline
80793cfe17 feat(tree): cache trie updates for nonfinalized canonical blocks (#10579) 2024-09-03 02:15:22 +00:00
Thomas Coratger
08719deb4e primitives: small refactor in gas_limit method (#10668) 2024-09-02 22:07:58 +00:00
Thomas Coratger
659375d776 eip7702: use alloy TxEip7702 (#10617) 2024-09-02 18:16:25 +00:00
joshieDo
aa42dbcf30 fix: ensure receipts are written to storage during test setups (#10660) 2024-09-02 17:22:26 +00:00
Arsenii Kulikov
cbad38a40f fix(op-reth): --chain help message (#10661) 2024-09-02 16:46:32 +00:00
joshieDo
d58cf53850 fix(provider): move consistency check methods from NippyJarWriter to NippyJarChecker (#10633) 2024-09-02 16:17:08 +00:00
Péter Garamvölgyi
2c0170a03b docs: remove outdated comment in cursor::Walker (#10658) 2024-09-02 15:32:50 +00:00
Daniel Calderón Díaz
212a6a0a31 Use ByteCode::new_raw_checked and propagate error (#10584)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-09-02 14:53:24 +00:00
Oliver
449d63d980 chore: increase max proof window (#10654) 2024-09-02 14:47:29 +00:00
Arsenii Kulikov
fcab695a93 refactor: extract op-reth binary to separate crate (#10641)
Co-authored-by: Loocapro <lucaprovini1989@gmail.com>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-09-02 14:20:15 +00:00
Roman Krasiuk
5b97ace992 fix(witness): storage proof target on blinded (#10657) 2024-09-02 14:06:38 +00:00
Roman Krasiuk
d5c6f1a54c fix(witness): allow no storage multiproof (#10656) 2024-09-02 14:04:25 +00:00
Roman Krasiuk
d5906f3f89 test(trie): improve in-memory nodes fuzz tests (#10479) 2024-09-02 10:34:51 +00:00
Matthias Seitz
333b1a7bb7 chore: add debug log when new engine message (#10653) 2024-09-02 10:00:23 +00:00
Matthias Seitz
68f852ba54 fix: dont use prune mode full (#10652) 2024-09-02 09:59:44 +00:00
Alexey Shekhirin
ef975f15eb feat(rpc): add preimages to execution witness response (#10456)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-02 09:25:38 +00:00
Dan Cline
d59854f1dc fix(tree): replace debug_assert with relaxed removal logic (#10634)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-02 08:25:52 +00:00
Arsenii Kulikov
0243e03933 chore(deps): bump op-alloy-rpc-types (#10646)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-02 08:24:39 +00:00
GROARK
c49feffed4 [#10645] docs(prune): replace prune parts by segments (#10647)
Co-authored-by: GROOOOAAAARK <t01_n10@protonmail.com>
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-09-02 08:22:12 +00:00
github-actions[bot]
61fe0ea4e9 chore(deps): weekly cargo update (#10642)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2024-09-02 08:19:33 +00:00
Roman Krasiuk
1450deb1d6 fix: clippy (#10650) 2024-09-02 07:50:24 +00:00
⟣ €₥ℵ∪ℓ ⟢
42dc5eea16 docs(NodeBuilder): fix broken link (#10644) 2024-09-01 23:55:57 +00:00
Thomas Coratger
d4cfb95e68 eip4844: use alloy TxEip4844 (#10624)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
2024-09-01 19:20:00 +00:00
Thomas Coratger
578b52afd0 eip2930: use alloy TxEip2930 (#10623) 2024-09-01 13:53:19 +00:00
Roy
7269cf2853 chore: expose TransactionFetcher param in cli (#10635) 2024-08-31 20:04:38 +00:00
Aurélien
3a49a552c7 feat: migrate to alloy TxEip1559 (#10262)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-08-31 17:36:28 +00:00
malik
17f6225fa5 Feat: Extend BuiltPayload type (#10583)
Co-authored-by: Oliver <onbjerg@users.noreply.github.com>
2024-08-31 17:27:12 +00:00
Delweng
3efe22eae7 feat(rpc): dedup rpc getTxBySenderAndNonce (#10600)
Signed-off-by: jsvisa <delweng@gmail.com>
2024-08-31 16:57:34 +00:00
nk_ysg
24f04710c0 feat: use alloy_network::Network::ReceiptResponse instead of AnyTransactionReceipt in RPC (#10621) 2024-08-30 16:58:59 +00:00
nk_ysg
b4a18ccd93 chore(op): rename file_codec_ovm_receipt.rs to receipt_file_codec.rs (#10622) 2024-08-30 16:46:33 +00:00
nk_ysg
237c22f234 feat: use alloy_network::Network::BlockResponse instead of reth_rpc_types::Block in RPC (#10613) 2024-08-30 16:06:47 +00:00
nk_ysg
e18a46d0a5 docs: rm unused file (#10626) 2024-08-30 13:00:59 +00:00
Aurélien
71e0178f71 feat: migrate to alloy TxLegacy (#9593)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
2024-08-30 11:35:15 +00:00
DvirYo-starkware
2f782a9cbb feat(storage): add opt_sync_bytes and opt_sync_period options to MDBX (#10612) 2024-08-30 10:29:00 +00:00
nk_ysg
28e46bfd48 chore: remove phf from static files (#10259)
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2024-08-30 07:02:14 +00:00
Dan Cline
c5a1c0e131 feat(tree): make remove_before aware of the finalized hash (#10574)
Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com>
2024-08-29 21:24:56 +00:00
Arsenii Kulikov
51524f2534 feat: introduce ChainSpecParser generic in cli types (#10582) 2024-08-29 20:13:16 +00:00
Emilia Hane
be57b648a7 fix(op): Clone impl for OpEthApi (#10611) 2024-08-29 18:25:08 +00:00
nk_ysg
83b116aea7 chore(reth-etl): use constant (#10614) 2024-08-29 18:17:08 +00:00
1724 changed files with 203003 additions and 135848 deletions

41
.config/zepter.yaml Normal file
View File

@@ -0,0 +1,41 @@
version:
format: 1
# Minimum zepter version that is expected to work. This is just for printing a nice error
# message when someone tries to use an older version.
binary: 0.13.2
# The examples in the following comments assume crate `A` to have a dependency on crate `B`.
workflows:
check:
- [
"lint",
# Check that `A` activates the features of `B`.
"propagate-feature",
# These are the features to check:
"--features=std,op,dev,asm-keccak,jemalloc,jemalloc-prof,tracy-allocator,serde-bincode-compat,serde,test-utils,arbitrary,bench,alloy-compat",
# 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.
"--left-side-feature-missing=ignore",
# Ignore the case that `A` it outside of the workspace. Otherwise it will report errors in external dependencies that we have no influence on.
"--left-side-outside-workspace=ignore",
# Auxiliary flags:
"--offline",
"--locked",
"--show-path",
"--quiet",
]
default:
# Running `zepter` with no subcommand will check & fix.
- [$check.0, "--fix"]
# Will be displayed when any workflow fails:
help:
text: |
Reth uses the Zepter CLI to detect abnormalities in Cargo features, e.g. missing propagation.
It looks like one more checks failed; please check the console output.
You can try to automatically address them by installing zepter (`cargo install zepter --locked`) and simply running `zepter` in the workspace root.
links:
- "https://github.com/paradigmxyz/reth/pull/11888"
- "https://github.com/ggwpez/zepter"

2
.gitattributes vendored
View File

@@ -1,4 +1,4 @@
book/cli/**/*.md linguist-vendored
book/cli/cli.md -linguist-vendored
crates/storage/libmdbx-rs/mdbx-sys/** linguist-vendored
crates/storage/libmdbx-rs/mdbx-sys/libmdbx/** linguist-vendored

25
.github/CODEOWNERS vendored
View File

@@ -2,7 +2,7 @@
bin/ @onbjerg
crates/blockchain-tree/ @rakita @rkrasiuk @mattsse @Rjected
crates/blockchain-tree-api/ @rakita @rkrasiuk @mattsse @Rjected
crates/chainspec/ @Rjected @joshieDo @mattsse @emhane
crates/chainspec/ @Rjected @joshieDo @mattsse
crates/chain-state/ @fgimenez @mattsse @rkrasiuk
crates/cli/ @onbjerg @mattsse
crates/config/ @onbjerg
@@ -11,23 +11,24 @@ crates/engine @rkrasiuk @mattsse @Rjected
crates/e2e-test-utils/ @mattsse @Rjected
crates/engine/ @rkrasiuk @mattsse @Rjected @fgimenez
crates/errors/ @mattsse
crates/era/ @mattsse
crates/ethereum/ @mattsse @Rjected
crates/ethereum-forks/ @mattsse @Rjected
crates/etl/ @joshieDo @shekhirin
crates/evm/ @rakita @mattsse @Rjected
crates/exex/ @onbjerg @shekhirin
crates/fs-util/ @onbjerg @emhane
crates/fs-util/ @onbjerg
crates/metrics/ @onbjerg
crates/net/ @emhane @mattsse @Rjected
crates/net/downloaders/ @onbjerg @rkrasiuk @emhane
crates/node/ @mattsse @Rjected @onbjerg
crates/optimism/ @mattsse @Rjected @fgimenez @emhane
crates/net/ @mattsse @Rjected
crates/net/downloaders/ @onbjerg @rkrasiuk
crates/node/ @mattsse @Rjected @onbjerg @klkvr
crates/optimism/ @mattsse @Rjected @fgimenez
crates/payload/ @mattsse @Rjected
crates/primitives/ @Rjected
crates/primitives-traits/ @Rjected @joshieDo
crates/primitives/ @Rjected @mattsse @klkvr
crates/primitives-traits/ @Rjected @joshieDo @mattsse @klkvr
crates/prune/ @shekhirin @joshieDo
crates/revm/ @mattsse @rakita
crates/rpc/ @mattsse @Rjected @emhane
crates/rpc/ @mattsse @Rjected
crates/stages/ @onbjerg @rkrasiuk @shekhirin
crates/static-file/ @joshieDo @shekhirin
crates/storage/codecs/ @joshieDo
@@ -40,8 +41,10 @@ crates/storage/nippy-jar/ @joshieDo @shekhirin
crates/storage/provider/ @rakita @joshieDo @shekhirin
crates/storage/storage-api/ @joshieDo @rkrasiuk
crates/tasks/ @mattsse
crates/tokio-util/ @fgimenez @emhane
crates/tokio-util/ @fgimenez
crates/tracing/ @onbjerg
crates/transaction-pool/ @mattsse
crates/trie/ @rkrasiuk @Rjected
crates/trie/ @rkrasiuk @Rjected @shekhirin
crates/ress @rkrasiuk
etc/ @Rjected @onbjerg @shekhirin
.github/ @onbjerg @gakonst @DaniPopes

View File

@@ -60,6 +60,18 @@ body:
- Mac (Apple Silicon)
- Windows (x86)
- Windows (ARM)
- type: dropdown
id: container_type
attributes:
label: Container Type
description: Were you running it in a container?
multiple: true
options:
- Not running in a container
- Docker
- Kubernetes
- LXC/LXD
- Other
validations:
required: true
- type: textarea

88
.github/assets/check_rv32imac.sh vendored Executable file
View File

@@ -0,0 +1,88 @@
#!/usr/bin/env bash
set +e # Disable immediate exit on error
# Array of crates to check
crates_to_check=(
reth-codecs-derive
reth-primitives
reth-primitives-traits
reth-network-peers
reth-trie-common
reth-trie-sparse
reth-chainspec
reth-consensus
reth-consensus-common
reth-prune-types
reth-static-file-types
reth-storage-errors
reth-execution-errors
reth-errors
reth-execution-types
reth-db-models
reth-evm
reth-revm
reth-storage-api
## ethereum
reth-evm-ethereum
reth-ethereum-forks
reth-ethereum-primitives
reth-ethereum-consensus
reth-stateless
## optimism
reth-optimism-chainspec
reth-optimism-forks
reth-optimism-consensus
reth-optimism-primitives
reth-optimism-evm
)
# Array to hold the results
results=()
# Flag to track if any command fails
any_failed=0
for crate in "${crates_to_check[@]}"; do
cmd="cargo +stable build -p $crate --target riscv32imac-unknown-none-elf --no-default-features"
if [ -n "$CI" ]; then
echo "::group::$cmd"
else
printf "\n%s:\n %s\n" "$crate" "$cmd"
fi
set +e # Disable immediate exit on error
# Run the command and capture the return code
$cmd
ret_code=$?
set -e # Re-enable immediate exit on error
# Store the result in the dictionary
if [ $ret_code -eq 0 ]; then
results+=("1:✅:$crate")
else
results+=("2:❌:$crate")
any_failed=1
fi
if [ -n "$CI" ]; then
echo "::endgroup::"
fi
done
# Sort the results by status and then by crate name
IFS=$'\n' sorted_results=($(sort <<<"${results[*]}"))
unset IFS
# Print summary
echo -e "\nSummary of build results:"
for result in "${sorted_results[@]}"; do
status="${result#*:}"
status="${status%%:*}"
crate="${result##*:}"
echo "$status $crate"
done
# Exit with a non-zero status if any command fails
exit $any_failed

View File

@@ -3,17 +3,14 @@ set +e # Disable immediate exit on error
# Array of crates to compile
crates=($(cargo metadata --format-version=1 --no-deps | jq -r '.packages[].name' | grep '^reth' | sort))
# Array of crates to exclude
# Used with the `contains` function.
# shellcheck disable=SC2034
exclude_crates=(
# The following are not working yet, but known to be fixable
reth-exex-types # https://github.com/paradigmxyz/reth/issues/9946
# The following require investigation if they can be fixed
reth-auto-seal-consensus
reth-basic-payload-builder
reth-beacon-consensus
reth-bench
reth-blockchain-tree
reth-chain-state
reth-cli
reth-cli-commands
reth-cli-runner
@@ -24,19 +21,13 @@ exclude_crates=(
reth-dns-discovery
reth-downloaders
reth-e2e-test-utils
reth-engine-primitives
reth-engine-service
reth-engine-tree
reth-engine-util
reth-eth-wire
reth-ethereum-cli
reth-ethereum-engine
reth-ethereum-engine-primitives
reth-ethereum-payload-builder
reth-etl
reth-evm-ethereum
reth-evm-optimism
reth-execution-errors
reth-exex
reth-exex-test-utils
reth-ipc
@@ -48,12 +39,11 @@ exclude_crates=(
reth-node-ethereum
reth-node-events
reth-node-metrics
reth-node-optimism
reth-optimism-cli
reth-optimism-node
reth-optimism-payload-builder
reth-optimism-rpc
reth-payload-builder
reth-payload-primitives
reth-optimism-storage
reth-rpc
reth-rpc-api
reth-rpc-api-testing-util
@@ -62,22 +52,27 @@ exclude_crates=(
reth-rpc-eth-api
reth-rpc-eth-types
reth-rpc-layer
reth-rpc-types
reth-stages
reth-storage-errors
reth-engine-local
reth-ress-protocol
reth-ress-provider
# The following are not supposed to be working
reth # all of the crates below
reth-db # mdbx
reth # all of the crates below
reth-invalid-block-hooks # reth-provider
reth-libmdbx # mdbx
reth-mdbx-sys # mdbx
reth-nippy-jar # sucds
reth-provider # reth-db, reth-nippy-jar
reth-prune # reth-db
reth-payload-builder # reth-metrics
reth-provider # tokio
reth-prune # tokio
reth-stages-api # reth-provider, reth-prune
reth-static-file # reth-nippy-jar
reth-static-file # tokio
reth-transaction-pool # c-kzg
reth-trie-db # reth-db
reth-trie-parallel # reth-db
reth-payload-util # reth-transaction-pool
reth-trie-parallel # tokio
reth-testing-utils
reth-optimism-txpool # reth-transaction-pool
reth-era-downloader # tokio
reth-era-utils # tokio
)
# Array to hold the results

View File

@@ -1,8 +1,62 @@
FROM ubuntu
# syntax=docker.io/docker/dockerfile:1.7-labs
COPY dist/reth /usr/local/bin
#
# We'll use cargo-chef to speed up the build
#
FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config
#
# We prepare the build plan
#
FROM chef AS planner
ARG CARGO_BIN
COPY --exclude=.git --exclude=dist . .
RUN cargo chef prepare --recipe-path recipe.json --bin ${CARGO_BIN}
#
# And build the app
#
FROM chef AS builder
WORKDIR /app
ARG CARGO_BIN
ARG BUILD_PROFILE=hivetests
ARG FEATURES=""
ARG MANIFEST_PATH=""
COPY --from=planner /app/recipe.json recipe.json
RUN cargo chef cook \
--profile $BUILD_PROFILE \
--bin $CARGO_BIN \
${FEATURES:+--features "$FEATURES"} \
${MANIFEST_PATH:+--manifest-path $MANIFEST_PATH} \
--recipe-path recipe.json
COPY --exclude=.git --exclude=dist . .
RUN cargo build \
--profile $BUILD_PROFILE \
--bin $CARGO_BIN \
${FEATURES:+--features "$FEATURES"} \
${MANIFEST_PATH:+--manifest-path $MANIFEST_PATH} \
--locked
#
# The runtime will then just use the build artifact without building anything
#
FROM ubuntu AS runtime
ARG CARGO_BIN
COPY --from=builder /app/target/hivetests/$CARGO_BIN /usr/local/bin/reth
COPY LICENSE-* ./
EXPOSE 30303 30303/udp 9001 8545 8546
ENTRYPOINT ["/usr/local/bin/reth"]
ENV RUST_LOG=debug
ENTRYPOINT ["/usr/local/bin/reth"]

View File

@@ -11,7 +11,7 @@ go build .
# Run each hive command in the background for each simulator and wait
echo "Building images"
./hive -client reth --sim "pyspec" -sim.timelimit 1s || true &
./hive -client reth --sim "ethereum/eest" --sim.buildarg fixtures=https://github.com/ethereum/execution-spec-tests/releases/download/v4.4.0/fixtures_develop.tar.gz --sim.buildarg branch=v4.4.0 -sim.timelimit 1s || true &
./hive -client reth --sim "ethereum/engine" -sim.timelimit 1s || true &
./hive -client reth --sim "devp2p" -sim.timelimit 1s || true &
./hive -client reth --sim "ethereum/rpc-compat" -sim.timelimit 1s || true &
@@ -20,17 +20,21 @@ echo "Building images"
./hive -client reth --sim "ethereum/sync" -sim.timelimit 1s || true &
wait
# Run docker save in parallel and wait
# Run docker save in parallel, wait and exit on error
echo "Saving images"
docker save hive/hiveproxy:latest -o ../hive_assets/hiveproxy.tar &
docker save hive/simulators/devp2p:latest -o ../hive_assets/devp2p.tar &
docker save hive/simulators/ethereum/engine:latest -o ../hive_assets/engine.tar &
docker save hive/simulators/ethereum/rpc-compat:latest -o ../hive_assets/rpc_compat.tar &
docker save hive/simulators/ethereum/pyspec:latest -o ../hive_assets/pyspec.tar &
docker save hive/simulators/smoke/genesis:latest -o ../hive_assets/smoke_genesis.tar &
docker save hive/simulators/smoke/network:latest -o ../hive_assets/smoke_network.tar &
docker save hive/simulators/ethereum/sync:latest -o ../hive_assets/ethereum_sync.tar &
wait
saving_pids=( )
docker save hive/hiveproxy:latest -o ../hive_assets/hiveproxy.tar & saving_pids+=( $! )
docker save hive/simulators/devp2p:latest -o ../hive_assets/devp2p.tar & saving_pids+=( $! )
docker save hive/simulators/ethereum/engine:latest -o ../hive_assets/engine.tar & saving_pids+=( $! )
docker save hive/simulators/ethereum/rpc-compat:latest -o ../hive_assets/rpc_compat.tar & saving_pids+=( $! )
docker save hive/simulators/ethereum/eest/consume-engine:latest -o ../hive_assets/eest_engine.tar & saving_pids+=( $! )
docker save hive/simulators/ethereum/eest/consume-rlp:latest -o ../hive_assets/eest_rlp.tar & saving_pids+=( $! )
docker save hive/simulators/smoke/genesis:latest -o ../hive_assets/smoke_genesis.tar & saving_pids+=( $! )
docker save hive/simulators/smoke/network:latest -o ../hive_assets/smoke_network.tar & saving_pids+=( $! )
docker save hive/simulators/ethereum/sync:latest -o ../hive_assets/ethereum_sync.tar & saving_pids+=( $! )
for pid in "${saving_pids[@]}"; do
wait "$pid" || exit
done
# Make sure we don't rebuild images on the CI jobs
git apply ../.github/assets/hive/no_sim_build.diff

View File

@@ -1,20 +1,22 @@
# https://github.com/paradigmxyz/reth/issues/7015
# https://github.com/paradigmxyz/reth/issues/6332
# tracked by https://github.com/paradigmxyz/reth/issues/13879
rpc-compat:
- debug_getRawBlock/get-invalid-number (reth)
- debug_getRawHeader/get-invalid-number (reth)
- debug_getRawReceipts/get-invalid-number (reth)
- debug_getRawReceipts/get-block-n (reth)
- debug_getRawTransaction/get-invalid-hash (reth)
- eth_call/call-callenv (reth)
- eth_feeHistory/fee-history (reth)
- eth_getStorageAt/get-storage-invalid-key-too-large (reth)
- eth_getStorageAt/get-storage-invalid-key (reth)
- eth_getTransactionReceipt/get-access-list (reth)
- eth_getTransactionReceipt/get-blob-tx (reth)
- eth_getTransactionReceipt/get-dynamic-fee (reth)
- eth_getTransactionReceipt/get-legacy-contract (reth)
- eth_getTransactionReceipt/get-legacy-input (reth)
- eth_getTransactionReceipt/get-legacy-receipt (reth)
# https://github.com/paradigmxyz/reth/issues/8732
# no fix due to https://github.com/paradigmxyz/reth/issues/8732
engine-withdrawals:
- Withdrawals Fork On Genesis (Paris) (reth)
- Withdrawals Fork on Block 1 (Paris) (reth)
@@ -27,46 +29,76 @@ engine-withdrawals:
- Empty Withdrawals (Paris) (reth)
- Corrupted Block Hash Payload (INVALID) (Paris) (reth)
- Withdrawals Fork on Block 1 - 8 Block Re-Org NewPayload (Paris) (reth)
- Withdrawals Fork on Block 1 - 8 Block Re-Org, Sync (Paris) (reth)
- Withdrawals Fork on Block 8 - 10 Block Re-Org NewPayload (Paris) (reth)
- Withdrawals Fork on Block 8 - 10 Block Re-Org Sync (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org Sync (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org Sync (Paris) (reth)
# https://github.com/paradigmxyz/reth/issues/8305
# https://github.com/paradigmxyz/reth/issues/6217
engine-api:
- Inconsistent Head in ForkchoiceState (Paris) (reth)
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False (Paris) (reth)
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris) (reth)
- Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=False, Invalid P9 (Paris) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9 (Paris) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris) (reth)
engine-api: []
# https://github.com/paradigmxyz/reth/issues/8305
# https://github.com/paradigmxyz/reth/issues/6217
# https://github.com/paradigmxyz/reth/issues/8306
# https://github.com/paradigmxyz/reth/issues/7144
# no fix due to https://github.com/paradigmxyz/reth/issues/8732
engine-cancun:
- Blob Transaction Ordering, Multiple Clients (Cancun) (reth)
- Inconsistent Head in ForkchoiceState (Cancun) (reth)
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=False, Invalid P9 (Cancun) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Cancun) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9 (Cancun) (reth)
- Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Cancun) (reth)
- Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth)
- Invalid NewPayload, ParentBeaconBlockRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, Blob Count on BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
# https://github.com/paradigmxyz/reth/issues/8579
sync:
- sync reth -> reth
sync: []
# https://github.com/ethereum/hive/issues/1277
engine-auth:
- "JWT Authentication: No time drift, correct secret (Paris) (reth)"
- "JWT Authentication: Negative time drift, within limit, correct secret (Paris) (reth)"
- "JWT Authentication: Positive time drift, within limit, correct secret (Paris) (reth)"
# 7702 test - no fix: its too expensive to check whether the storage is empty on each creation
# 6110 related tests - may start passing when fixtures improve
# 7002 related tests - post-fork test, should fix for spec compliance but not
# realistic on mainnet
# 7251 related tests - modified contract, not necessarily practical on mainnet,
# worth re-visiting when more of these related tests are passing
eest/consume-engine:
- 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
- tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x0000bbddc7ce488642fb579f8b00f3a590007251]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_offset-value_zero]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x00000961ef480eb55e80d19ad83579a64c007002]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_withdrawal_credentials_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_withdrawal_credentials_size-value_zero]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_False]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_True]-reth
# the next test expects a concrete new format in the error message, there is no spec for this message, so it is ok to ignore
- tests/cancun/eip4844_blobs/test_blob_txs.py::test_blob_type_tx_pre_fork[fork_ShanghaiToCancunAtTime15k-blockchain_test_engine_from_state_test-one_blob_tx]-reth
# 7702 test - no fix: its too expensive to check whether the storage is empty on each creation
# rest of tests - see above
eest/consume-rlp:
- 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
- tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x0000bbddc7ce488642fb579f8b00f3a590007251]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_offset-value_zero]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x00000961ef480eb55e80d19ad83579a64c007002]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_size-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_withdrawal_credentials_offset-value_zero]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_withdrawal_credentials_size-value_zero]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_False]-reth
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_True]-reth
- tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py::test_system_contract_errors[fork_Prague-blockchain_test-system_contract_reaches_gas_limit-system_contract_0x0000bbddc7ce488642fb579f8b00f3a590007251]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-zero_balance]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py::test_system_contract_errors[fork_Prague-blockchain_test-system_contract_reaches_gas_limit-system_contract_0x00000961ef480eb55e80d19ad83579a64c007002]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-nonzero_balance]-reth
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-zero_balance]-reth

View File

@@ -1,65 +0,0 @@
# https://github.com/paradigmxyz/reth/issues/7015
# https://github.com/paradigmxyz/reth/issues/6332
rpc-compat:
- debug_getRawBlock/get-invalid-number (reth)
- debug_getRawHeader/get-invalid-number (reth)
- debug_getRawReceipts/get-invalid-number (reth)
- debug_getRawTransaction/get-invalid-hash (reth)
- eth_call/call-callenv (reth)
- eth_feeHistory/fee-history (reth)
- eth_getStorageAt/get-storage-invalid-key-too-large (reth)
- eth_getStorageAt/get-storage-invalid-key (reth)
- eth_getTransactionReceipt/get-access-list (reth)
- eth_getTransactionReceipt/get-blob-tx (reth)
- eth_getTransactionReceipt/get-dynamic-fee (reth)
# https://github.com/paradigmxyz/reth/issues/8732
engine-withdrawals:
- Withdrawals Fork On Genesis (Paris) (reth)
- Withdrawals Fork on Block 1 (Paris) (reth)
- Withdrawals Fork on Block 2 (Paris) (reth)
- Withdrawals Fork on Block 3 (Paris) (reth)
- Withdraw to a single account (Paris) (reth)
- Withdraw to two accounts (Paris) (reth)
- Withdraw many accounts (Paris) (reth)
- Withdraw zero amount (Paris) (reth)
- Empty Withdrawals (Paris) (reth)
- Corrupted Block Hash Payload (INVALID) (Paris) (reth)
- Withdrawals Fork on Block 1 - 8 Block Re-Org NewPayload (Paris) (reth)
- Withdrawals Fork on Block 1 - 8 Block Re-Org, Sync (Paris) (reth)
- Withdrawals Fork on Block 8 - 10 Block Re-Org NewPayload (Paris) (reth)
- Withdrawals Fork on Block 8 - 10 Block Re-Org Sync (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 7 - 10 Block Re-Org Sync (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org (Paris) (reth)
- Withdrawals Fork on Canonical Block 8 / Side Block 9 - 10 Block Re-Org Sync (Paris) (reth)
# https://github.com/paradigmxyz/reth/issues/8305
# https://github.com/paradigmxyz/reth/issues/6217
engine-api:
- Re-org to Previously Validated Sidechain Payload (Paris) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P9 (Paris) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P9 (Paris) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P10 (Paris) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P10 (Paris) (reth)
# https://github.com/paradigmxyz/reth/issues/8305
# https://github.com/paradigmxyz/reth/issues/6217
# https://github.com/paradigmxyz/reth/issues/8306
# https://github.com/paradigmxyz/reth/issues/7144
engine-cancun:
- Blob Transaction Ordering, Multiple Clients (Cancun) (reth)
- Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True (Cancun) (reth)
- Invalid NewPayload, BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, Blob Count on BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Cancun) (reth)
- Re-org to Previously Validated Sidechain Payload (Cancun) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P9 (Cancun) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P9 (Cancun) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P10 (Cancun) (reth)
- Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P10 (Cancun) (reth)
# https://github.com/paradigmxyz/reth/issues/8579
sync:
- sync reth -> reth

View File

@@ -11,6 +11,8 @@ IMAGES=(
"/tmp/smoke_genesis.tar"
"/tmp/smoke_network.tar"
"/tmp/ethereum_sync.tar"
"/tmp/eest_engine.tar"
"/tmp/eest_rlp.tar"
"/tmp/reth_image.tar"
)
@@ -22,4 +24,4 @@ done
wait
docker image ls -a
docker image ls -a

View File

@@ -1,24 +1,23 @@
diff --git a/internal/libdocker/builder.go b/internal/libdocker/builder.go
index 4731c9d..d717f52 100644
index e4bf99b6..2023f7e2 100644
--- a/internal/libdocker/builder.go
+++ b/internal/libdocker/builder.go
@@ -7,9 +7,7 @@ import (
"fmt"
@@ -8,7 +8,6 @@ import (
"io"
"io/fs"
"log/slog"
- "os"
"path/filepath"
- "strings"
"github.com/ethereum/hive/internal/libhive"
docker "github.com/fsouza/go-dockerclient"
@@ -53,24 +51,8 @@ func (b *Builder) BuildClientImage(ctx context.Context, client libhive.ClientDes
"slices"
"strings"
@@ -49,25 +48,8 @@ func (b *Builder) BuildClientImage(ctx context.Context, client libhive.ClientDes
// BuildSimulatorImage builds a docker image of a simulator.
func (b *Builder) BuildSimulatorImage(ctx context.Context, name string) (string, error) {
func (b *Builder) BuildSimulatorImage(ctx context.Context, name string, buildArgs map[string]string) (string, error) {
- dir := b.config.Inventory.SimulatorDirectory(name)
- buildContextPath := dir
- buildDockerfile := "Dockerfile"
-
- // build context dir of simulator can be overridden with "hive_context.txt" file containing the desired build path
- if contextPathBytes, err := os.ReadFile(filepath.Join(filepath.FromSlash(dir), "hive_context.txt")); err == nil {
- buildContextPath = filepath.Join(dir, strings.TrimSpace(string(contextPathBytes)))
@@ -32,14 +31,14 @@ index 4731c9d..d717f52 100644
- }
- }
tag := fmt.Sprintf("hive/simulators/%s:latest", name)
- err := b.buildImage(ctx, buildContextPath, buildDockerfile, tag, nil)
- err := b.buildImage(ctx, buildContextPath, buildDockerfile, tag, buildArgs)
- return tag, err
+ return tag, nil
}
// BuildImage creates a container by archiving the given file system,
diff --git a/internal/libdocker/proxy.go b/internal/libdocker/proxy.go
index a53e5af..0bb2ea9 100644
index d3a14ae6..8779671e 100644
--- a/internal/libdocker/proxy.go
+++ b/internal/libdocker/proxy.go
@@ -16,7 +16,7 @@ const hiveproxyTag = "hive/hiveproxy"

View File

@@ -35,9 +35,13 @@ for test in report['testCases'].values():
# Check if there are any unexpected failures or passes and exit with error
if unexpected_failures or unexpected_passes:
if unexpected_failures:
print("Unexpected Failures:", unexpected_failures)
print("Unexpected Failures:")
for test in unexpected_failures:
print(f" {test}")
if unexpected_passes:
print("Unexpected Passes:", unexpected_passes)
print("Unexpected Passes:")
for test in unexpected_passes:
print(f" {test}")
sys.exit(1)
print("Success.")
print("Success.")

View File

@@ -7,7 +7,7 @@ sim="${1}"
limit="${2}"
run_hive() {
hive --sim "${sim}" --sim.limit "${limit}" --sim.parallelism 4 --client reth 2>&1 | tee /tmp/log || true
hive --sim "${sim}" --sim.limit "${limit}" --sim.parallelism 8 --client reth 2>&1 | tee /tmp/log || true
}
check_log() {

View File

@@ -0,0 +1,13 @@
participants:
- el_type: geth
cl_type: lighthouse
- el_type: reth
el_image: "ghcr.io/paradigmxyz/reth:kurtosis-ci"
cl_type: teku
additional_services:
- assertoor
assertoor_params:
run_block_proposal_check: true
run_transaction_test: true
run_blob_transaction_test: true
run_opcodes_transaction_test: true

View File

@@ -0,0 +1,30 @@
ethereum_package:
participants:
- el_type: reth
el_extra_params:
- "--rpc.eth-proof-window=100"
cl_type: teku
cl_image: "consensys/teku:25.4.0"
network_params:
preset: minimal
genesis_delay: 5
additional_preloaded_contracts: '
{
"0x4e59b44847b379578588920cA78FbF26c0B4956C": {
"balance": "0ETH",
"code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3",
"storage": {},
"nonce": "1"
}
}'
optimism_package:
chains:
- participants:
- el_type: op-geth
cl_type: op-node
- el_type: op-reth
cl_type: op-node
el_image: "ghcr.io/paradigmxyz/op-reth:kurtosis-ci"
network_params:
holocene_time_offset: 0
isthmus_time_offset: 0

14
.github/scripts/codspeed-build.sh vendored Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -eo pipefail
# TODO: Benchmarks run WAY too slow due to excessive amount of iterations.
cmd=(cargo codspeed build --profile profiling)
crates=(
-p reth-primitives
-p reth-trie
-p reth-trie-common
-p reth-trie-sparse
)
"${cmd[@]}" --features test-utils "${crates[@]}"

View File

@@ -1,230 +0,0 @@
name: Assertoor Tests
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
get_tests:
name: "Run assertoor tests on reth pairs"
runs-on: ubuntu-latest
outputs:
test_result: ${{ steps.test_result.outputs.test_result }}
test_status: ${{ steps.test_result.outputs.test_status }}
failed_test_status: ${{ steps.test_result.outputs.failed_test_status }}
if: github.repository == 'paradigmxyz/reth'
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Kurtosis
shell: bash
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli
kurtosis analytics disable
- name: Run Kurtosis
shell: bash
id: services
run: |
export github_sha=${{ github.sha }}
export github_repository=${{ github.repository }}
cat etc/assertoor/assertoor-template.yaml | envsubst > etc/assertoor/assertoor.yaml
kurtosis run github.com/ethpandaops/ethereum-package --enclave assertoor-${{ github.run_id }} --args-file etc/assertoor/assertoor.yaml
enclave_dump=$(kurtosis enclave inspect assertoor-${{ github.run_id }})
assertoor_url=$(echo "$enclave_dump" | grep assertoor | grep http | sed 's/.*\(http:\/\/[0-9.:]\+\).*/\1/')
echo "assertoor_url: ${assertoor_url}"
echo "assertoor_url=${assertoor_url}" >> $GITHUB_OUTPUT
- name: Await test completion
shell: bash
id: test_result
run: |
assertoor_url="${{ steps.services.outputs.assertoor_url }}"
YELLOW='\033[1;33m'
GRAY='\033[0;37m'
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
# print assertor logs
assertoor_container=$(docker container list | grep assertoor | sed 's/^\([^ ]\+\) .*$/\1/')
docker logs -f $assertoor_container &
# helper to fetch task status for specific test id
get_tasks_status() {
tasks=$(curl -s ${assertoor_url}/api/v1/test_run/$1 | jq -c ".data.tasks[] | {index, parent_index, name, title, status, result}")
declare -A task_graph_map
task_graph_map[0]=""
while read task; do
task_id=$(echo "$task" | jq -r ".index")
task_parent=$(echo "$task" | jq -r ".parent_index")
task_name=$(echo "$task" | jq -r ".name")
task_title=$(echo "$task" | jq -r ".title")
task_status=$(echo "$task" | jq -r ".status")
task_result=$(echo "$task" | jq -r ".result")
task_graph="${task_graph_map[$task_parent]}"
task_graph_map[$task_id]="$task_graph |"
if [ ! -z "$task_graph" ]; then
task_graph="${task_graph}- "
fi
if [ "$task_status" == "pending" ]; then
task_status="${GRAY}pending ${NC}"
elif [ "$task_status" == "running" ]; then
task_status="${YELLOW}running ${NC}"
elif [ "$task_status" == "complete" ]; then
task_status="${GREEN}complete${NC}"
fi
if [ "$task_result" == "none" ]; then
task_result="${GRAY}none ${NC}"
elif [ "$task_result" == "success" ]; then
task_result="${GREEN}success${NC}"
elif [ "$task_result" == "failure" ]; then
task_result="${RED}failure${NC}"
fi
echo -e " $(printf '%-4s' "$task_id")\t$task_status\t$task_result\t$(printf '%-50s' "$task_graph$task_name") \t$task_title"
done <<< $(echo "$tasks")
}
# poll & check test status
final_test_result=""
failed_test_id=""
while true
do
pending_tests=0
failed_tests=0
total_tests=0
running_test=""
status_lines=()
task_lines=""
status_lines+=("$(date +'%Y-%m-%d %H:%M:%S') Test Status:")
tests=$(curl -s ${assertoor_url}/api/v1/test_runs | jq -c ".data[] | {run_id, test_id, name, status}")
while read test; do
if [ -z "$test" ]; then
continue
fi
run_id=$(echo "$test" | jq -r ".run_id")
test_id=$(echo "$test" | jq -r ".test_id")
test_name=$(echo "$test" | jq -r ".name")
test_status=$(echo "$test" | jq -r ".status")
if [ "$test_status" == "pending" ]; then
pending_tests=$(expr $pending_tests + 1)
status_name="${GRAY}pending${NC}"
elif [ "$test_status" == "running" ]; then
pending_tests=$(expr $pending_tests + 1)
running_test="$run_id"
status_name="${YELLOW}running${NC}"
elif [ "$test_status" == "success" ]; then
status_name="${GREEN}success${NC}"
elif [ "$test_status" == "failure" ]; then
failed_tests=$(expr $failed_tests + 1)
failed_test_id="$run_id"
status_name="${RED}failure${NC}"
else
status_name="$test_status"
fi
status_lines+=(" $(printf '%-3s' "$test_id") $status_name \t$test_name")
total_tests=$(expr $total_tests + 1)
done <<< $(echo "$tests")
for status_line in "${status_lines[@]}"
do
echo -e "$status_line"
done
if ! [ -z "$running_test" ]; then
task_lines=$(get_tasks_status "$running_test")
echo "Active Test Task Status:"
echo "$task_lines"
fi
if [ $failed_tests -gt 0 ]; then
final_test_result="failure"
break
fi
if [ $total_tests -gt 0 ] && [ $pending_tests -le 0 ]; then
final_test_result="success"
break
fi
sleep 60
done
# save test results & status to github output
echo "test_result=$(echo "$final_test_result")" >> $GITHUB_OUTPUT
echo "test_status<<EOF" >> $GITHUB_OUTPUT
for status_line in "${status_lines[@]}"
do
echo -e "$status_line" >> $GITHUB_OUTPUT
done
echo "EOF" >> $GITHUB_OUTPUT
if ! [ -z "$failed_test_id" ]; then
echo "failed_test_status<<EOF" >> $GITHUB_OUTPUT
get_tasks_status "$failed_test_id" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "failed_test_status=" >> $GITHUB_OUTPUT
fi
- name: Generate dump and remove kurtosis enclave
shell: bash
run: |
mkdir -p ./temp/dump
cd ./temp/dump
cp ../../etc/assertoor/assertoor.yaml ./kurtosis-params.yaml
kurtosis enclave dump assertoor-${{ github.run_id }}
kurtosis enclave rm -f assertoor-${{ github.run_id }}
- name: Upload dump artifact
uses: actions/upload-artifact@v4
with:
name: "kurtosis-enclave-dump-${{ github.run_id }}"
path: ./temp/dump
- name: Return test result
shell: bash
run: |
test_result="${{ steps.test_result.outputs.test_result }}"
test_status=$(
cat <<"EOF"
${{ steps.test_result.outputs.test_status }}
EOF
)
failed_test_status=$(
cat <<"EOF"
${{ steps.test_result.outputs.failed_test_status }}
EOF
)
echo "Test Result: $test_result"
echo "$test_status"
if ! [ "$test_result" == "success" ]; then
echo ""
echo "Failed Test Task Status:"
echo "$failed_test_status"
echo ""
echo "See 'Await test completion' task for detailed logs about this failure!"
echo ""
exit 1 # fail action
fi

View File

@@ -2,14 +2,15 @@
on:
pull_request:
merge_group:
# TODO: Disabled temporarily for https://github.com/CodSpeedHQ/runner/issues/55
# merge_group:
push:
branches: [main]
env:
CARGO_TERM_COLOR: always
BASELINE: base
IAI_CALLGRIND_RUNNER: iai-callgrind-runner
SEED: reth
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -17,44 +18,26 @@ concurrency:
name: bench
jobs:
iai:
codspeed:
runs-on:
group: Reth
# Only run benchmarks in merge groups and on main
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Install Valgrind
run: sudo apt update && sudo apt install valgrind
with:
submodules: true
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Install cargo-binstall
uses: taiki-e/install-action@cargo-binstall
- name: Install iai-callgrind-runner
run: |
echo "::group::Install"
version=$(cargo metadata --format-version=1 |\
jq '.packages[] | select(.name == "iai-callgrind").version' |\
tr -d '"'
)
cargo binstall iai-callgrind-runner --version $version --no-confirm --no-symlinks --force
echo "::endgroup::"
echo "::group::Verification"
which iai-callgrind-runner
echo "::endgroup::"
- name: Checkout base
uses: actions/checkout@v4
- name: Install cargo-codspeed
uses: taiki-e/install-action@v2
with:
ref: ${{ github.base_ref || 'main' }}
- name: Generate test vectors
run: cargo run --bin reth --features dev -- test-vectors tables
- name: Save baseline
run: cargo bench -p reth-db --bench iai --profile profiling --features test-utils -- --save-baseline=$BASELINE
- name: Checkout PR
uses: actions/checkout@v4
tool: cargo-codspeed
- name: Build the benchmark target(s)
run: ./.github/scripts/codspeed-build.sh
- name: Run the benchmarks
uses: CodSpeedHQ/action@v3
with:
clean: false
- name: Compare PR benchmarks
run: cargo bench -p reth-db --bench iai --profile profiling --features test-utils -- --baseline=$BASELINE
run: cargo codspeed run --workspace
token: ${{ secrets.CODSPEED_TOKEN }}

View File

@@ -57,6 +57,7 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
- name: Install mdbook
run: |
@@ -81,9 +82,7 @@ jobs:
run: cargo docs --exclude "example-*"
env:
# Keep in sync with ./ci.yml:jobs.docs
RUSTDOCFLAGS:
--cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page
-Zunstable-options
RUSTDOCFLAGS: --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page -Zunstable-options
- name: Move docs to book folder
run: |

View File

@@ -0,0 +1,57 @@
name: build release binaries
on:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: build release
runs-on: ${{ matrix.configs.os }}
strategy:
matrix:
configs:
- target: x86_64-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.04
profile: maxperf
- target: x86_64-apple-darwin
os: macos-13
profile: maxperf
- target: aarch64-apple-darwin
os: macos-14
profile: maxperf
- target: x86_64-pc-windows-gnu
os: ubuntu-24.04
profile: maxperf
build:
- command: build
binary: reth
- command: op-build
binary: op-reth
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.configs.target }}
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Apple M1 setup
if: matrix.configs.target == 'aarch64-apple-darwin'
run: |
echo "SDKROOT=$(xcrun -sdk macosx --show-sdk-path)" >> $GITHUB_ENV
echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx --show-sdk-platform-version)" >> $GITHUB_ENV
- name: Build Reth
run: make PROFILE=${{ matrix.configs.profile }} ${{ matrix.build.command }}-${{ matrix.configs.target }}

47
.github/workflows/compact.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
# Ensures that `Compact` codec changes are backwards compatible.
#
# 1) checkout `main`
# 2) randomly generate and serialize to disk many different type vectors with `Compact` (eg. Header, Transaction, etc)
# 3) checkout `pr`
# 4) deserialize previously generated test vectors
on:
pull_request:
merge_group:
push:
branches: [main]
env:
CARGO_TERM_COLOR: always
name: compact-codec
jobs:
compact-codec:
runs-on:
group: Reth
strategy:
matrix:
bin:
- cargo run --bin reth --features "dev"
- cargo run --bin op-reth --features "dev" --manifest-path crates/optimism/bin/Cargo.toml
steps:
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Checkout base
uses: actions/checkout@v4
with:
ref: ${{ github.base_ref || 'main' }}
# On `main` branch, generates test vectors and serializes them to disk using `Compact`.
- name: Generate compact vectors
run: |
${{ matrix.bin }} -- test-vectors compact --write
- name: Checkout PR
uses: actions/checkout@v4
with:
clean: false
# On incoming merge try to read and decode previously generated vectors with `Compact`
- name: Read vectors
run: ${{ matrix.bin }} -- test-vectors compact --read

View File

@@ -1,27 +0,0 @@
# Runs `cargo-deny` when modifying `Cargo.lock`.
name: deny
on:
push:
branches: [main]
paths: [Cargo.lock]
pull_request:
branches: [main]
paths: [Cargo.lock]
merge_group:
env:
CARGO_TERM_COLOR: always
concurrency: deny-${{ github.head_ref || github.run_id }}
jobs:
deny:
name: deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check all

View File

@@ -9,53 +9,12 @@ on:
workflow_dispatch:
# Needed so we can run it manually
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: cargo-update
TITLE: "chore(deps): weekly `cargo update`"
BODY: |
Automation to keep dependencies in `Cargo.lock` current.
<details><summary><strong>cargo update log</strong></summary>
<p>
```log
$cargo_update_log
```
</p>
</details>
permissions:
contents: write
pull-requests: write
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: cargo update
# Remove first line that always just says "Updating crates.io index"
run: cargo update --color never 2>&1 | sed '/crates.io index/d' | tee -a cargo_update.log
- name: craft commit message and PR body
id: msg
run: |
export cargo_update_log="$(cat cargo_update.log)"
echo "commit_message<<EOF" >> $GITHUB_OUTPUT
printf "$TITLE\n\n$cargo_update_log\n" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$BODY" | envsubst >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
add-paths: ./Cargo.lock
commit-message: ${{ steps.msg.outputs.commit_message }}
title: ${{ env.TITLE }}
body: ${{ steps.msg.outputs.body }}
branch: ${{ env.BRANCH }}
uses: ithacaxyz/ci/.github/workflows/cargo-update-pr.yml@main
secrets:
token: ${{ secrets.GITHUB_TOKEN }}

54
.github/workflows/docker-git.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
# Publishes the Docker image, only to be used with `workflow_dispatch`. The
# images from this workflow will be tagged with the git sha of the branch used
# and will NOT tag it as `latest`.
name: docker-git
on:
workflow_dispatch: {}
env:
REPO_NAME: ${{ github.repository_owner }}/reth
IMAGE_NAME: ${{ github.repository_owner }}/reth
OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth
CARGO_TERM_COLOR: always
DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth
OP_DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/op-reth
DOCKER_USERNAME: ${{ github.actor }}
GIT_SHA: ${{ github.sha }}
jobs:
build:
name: build and push
runs-on: ubuntu-24.04
permissions:
packages: write
contents: read
strategy:
fail-fast: false
matrix:
build:
- name: 'Build and push the git-sha-tagged reth image'
command: 'make PROFILE=maxperf GIT_SHA=$GIT_SHA docker-build-push-git-sha'
- name: 'Build and push the git-sha-tagged op-reth image'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME GIT_SHA=$GIT_SHA PROFILE=maxperf op-docker-build-push-git-sha'
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: Log in to Docker
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin
- name: Set up Docker builder
run: |
docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64
docker buildx create --use --name cross-builder
- name: Build and push ${{ matrix.build.name }}
run: ${{ matrix.build.command }}

61
.github/workflows/docker-nightly.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
# Publishes the nightly Docker image.
name: docker-nightly
on:
workflow_dispatch:
schedule:
- cron: "0 1 * * *"
env:
REPO_NAME: ${{ github.repository_owner }}/reth
IMAGE_NAME: ${{ github.repository_owner }}/reth
OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth
CARGO_TERM_COLOR: always
DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth
OP_DOCKER_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/op-reth
DOCKER_USERNAME: ${{ github.actor }}
jobs:
build:
name: build and push
runs-on: ubuntu-24.04
permissions:
packages: write
contents: read
strategy:
fail-fast: false
matrix:
build:
- name: 'Build and push the nightly reth image'
command: 'make PROFILE=maxperf docker-build-push-nightly'
- name: 'Build and push the nightly profiling reth image'
command: 'make PROFILE=profiling docker-build-push-nightly-profiling'
- name: 'Build and push the nightly op-reth image'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-nightly'
- name: 'Build and push the nightly profiling op-reth image'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=profiling op-docker-build-push-nightly-profiling'
steps:
- uses: actions/checkout@v4
- name: Remove bloatware
uses: laverdet/remove-bloatware@v1.0.0
with:
docker: true
lang: rust
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: Log in to Docker
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin
- name: Set up Docker builder
run: |
docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64
docker buildx create --use --name cross-builder
- name: Build and push ${{ matrix.build.name }}
run: ${{ matrix.build.command }}

View File

@@ -3,7 +3,6 @@
name: docker
on:
workflow_dispatch: {}
push:
tags:
- v*
@@ -20,17 +19,33 @@ env:
jobs:
build:
name: build and push
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
permissions:
packages: write
contents: read
strategy:
fail-fast: false
matrix:
build:
- name: 'Build and push reth image'
command: 'make PROFILE=maxperf docker-build-push'
- name: 'Build and push reth image, tag as "latest"'
command: 'make PROFILE=maxperf docker-build-push-latest'
- name: 'Build and push op-reth image'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push'
- name: 'Build and push op-reth image, tag as "latest"'
command: 'make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest'
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: taiki-e/install-action@cross
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: Log in to Docker
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io --username ${DOCKER_USERNAME} --password-stdin
@@ -38,11 +53,5 @@ jobs:
run: |
docker run --privileged --rm tonistiigi/binfmt --install arm64,amd64
docker buildx create --use --name cross-builder
- name: Build and push reth image, tag as "latest"
run: make PROFILE=maxperf docker-build-push-latest
- name: Build and push reth image
run: make PROFILE=maxperf docker-build-push
- name: Build and push op-reth image, tag as "latest"
run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest
- name: Build and push op-reth image
run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push
- name: Build and push ${{ matrix.build.name }}
run: ${{ matrix.build.command }}

View File

@@ -1,53 +0,0 @@
# Runs an ethereum mainnet sync test.
name: eth-sync-test
on:
pull_request:
merge_group:
push:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
sync:
name: sync / 100k blocks
# Only run sync tests in merge groups
if: github.event_name == 'merge_group'
runs-on:
group: Reth
env:
RUST_LOG: info,sync=error
RUST_BACKTRACE: 1
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build reth
run: |
cargo install --features asm-keccak,jemalloc --path bin/reth
- name: Run sync
run: |
reth node \
--debug.tip 0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4 \
--debug.max-block 100000 \
--debug.terminate
- name: Verify the target block hash
run: |
reth db get static-file headers 100000 \
| grep 0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4
- name: Run stage unwind for 100 blocks
run: |
reth stage unwind num-blocks 100
- name: Run stage unwind to block hash
run: |
reth stage unwind to-block 0x52e0509d33a988ef807058e2980099ee3070187f7333aae12b64d4d675f34c5a

View File

@@ -5,8 +5,8 @@ name: hive
on:
workflow_dispatch:
schedule:
# every day
- cron: "0 0 * * *"
# run every 12 hours
- cron: "0 */12 * * *"
env:
CARGO_TERM_COLOR: always
@@ -17,38 +17,10 @@ concurrency:
jobs:
prepare-reth:
if: github.repository == 'paradigmxyz/reth'
timeout-minutes: 45
runs-on:
group: Reth
steps:
- uses: actions/checkout@v4
- run: mkdir artifacts
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build reth
run: |
cargo build --features asm-keccak --profile hivetests --bin reth --locked
mkdir dist && cp ./target/hivetests/reth ./dist/reth
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export reth image
uses: docker/build-push-action@v6
with:
context: .
file: .github/assets/hive/Dockerfile
tags: ghcr.io/paradigmxyz/reth:latest
outputs: type=docker,dest=./artifacts/reth_image.tar
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Upload reth image
uses: actions/upload-artifact@v4
with:
name: artifacts
path: ./artifacts
uses: ./.github/workflows/prepare-reth.yml
with:
image_tag: ghcr.io/paradigmxyz/reth:latest
binary_name: reth
prepare-hive:
if: github.repository == 'paradigmxyz/reth'
@@ -82,7 +54,6 @@ jobs:
strategy:
fail-fast: false
matrix:
engine: [regular, experimental]
# ethereum/rpc to be deprecated:
# https://github.com/ethereum/hive/pull/1117
scenario:
@@ -91,27 +62,24 @@ jobs:
- sim: ethereum/sync
- sim: devp2p
limit: discv4
# started failing after https://github.com/ethereum/go-ethereum/pull/31843, no
# action on our side, remove from here when we get unxpected passes on these tests
# - sim: devp2p
# limit: eth
# include:
# - MaliciousHandshake
# # failures tracked in https://github.com/paradigmxyz/reth/issues/14825
# - Status
# - GetBlockHeaders
# - ZeroRequestID
# - GetBlockBodies
# - Transaction
# - NewPooledTxs
- sim: devp2p
limit: eth
limit: discv5
include:
# status
- TestStatus
# get block headers
- TestGetBlockHeaders
- TestSimultaneousRequests
- TestSameRequestID
- TestZeroRequestID
# get block bodies
- TestGetBlockBodies
# malicious handshakes + status
- TestMaliciousHandshake
- TestMaliciousStatus
# test transactions
- TestLargeTxRequest
- TestTransaction
- TestInvalidTxs
- TestNewPooledTxs
- TestBlobViolations
# failures tracked at https://github.com/paradigmxyz/reth/issues/14825
- PingLargeRequestID
- sim: ethereum/engine
limit: engine-exchange-capabilities
- sim: ethereum/engine
@@ -144,44 +112,42 @@ jobs:
- eth_syncing
# debug_ rpc methods
- debug_
# Pyspec cancun jobs
# TODO: uncomment when https://github.com/ethereum/hive/issues/1147 is fixed
#- sim: pyspec
# include: [cancun/eip4844]
#- sim: pyspec
# include: [cancun/eip4788]
#- sim: pyspec
# include: [cancun/eip6780]
#- sim: pyspec
# include: [cancun/eip5656]
#- sim: pyspec
# include: [cancun/eip1153]
#- sim: pyspec
# include: [cancun/eip7516]
# Pyspec shanghai jobs
#- sim: pyspec
# include: [shanghai/eip3651]
#- sim: pyspec
# include: [shanghai/eip3855]
#- sim: pyspec
# include: [shanghai/eip3860]
#- sim: pyspec
# include: [shanghai/eip4895]
# Pyspec merge and earlier jobs
#- sim: pyspec
# include: [merge/]
#- sim: pyspec
# include: [berlin/]
#- sim: pyspec
# include: [istanbul/]
#- sim: pyspec
# include: [homestead/]
#- sim: pyspec
# include: [frontier/]
# consume-engine
- sim: ethereum/eest/consume-engine
limit: .*tests/prague.*
- sim: ethereum/eest/consume-engine
limit: .*tests/cancun.*
- sim: ethereum/eest/consume-engine
limit: .*tests/shanghai.*
- sim: ethereum/eest/consume-engine
limit: .*tests/berlin.*
- sim: ethereum/eest/consume-engine
limit: .*tests/istanbul.*
- sim: ethereum/eest/consume-engine
limit: .*tests/homestead.*
- sim: ethereum/eest/consume-engine
limit: .*tests/frontier.*
# consume-rlp
- sim: ethereum/eest/consume-rlp
limit: .*tests/prague.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/cancun.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/shanghai.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/berlin.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/istanbul.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/homestead.*
- sim: ethereum/eest/consume-rlp
limit: .*tests/frontier.*
needs:
- prepare-reth
- prepare-hive
name: run ${{ matrix.engine }} - ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }}
name: run ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }}
runs-on:
group: Reth
permissions:
@@ -218,11 +184,6 @@ jobs:
ref: master
path: hivetests
- name: Modify client for experimental engine
if: matrix.engine == 'experimental'
run: |
sed -ie 's/RUST_LOG=info $reth node $FLAGS/RUST_LOG=info $reth node --engine.experimental $FLAGS/' hivetests/clients/reth/reth.sh
- name: Run simulator
run: |
LIMIT="${{ matrix.scenario.limit }}"
@@ -241,8 +202,7 @@ jobs:
- name: Parse hive output
run: |
FAILURE_FILE="${{ matrix.engine == 'experimental' && '.github/assets/hive/expected_failures_experimental.yaml' || '.github/assets/hive/expected_failures.yaml' }}"
find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion $FAILURE_FILE
find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion .github/assets/hive/expected_failures.yaml
- name: Print simulator output
if: ${{ failure() }}
@@ -259,8 +219,9 @@ jobs:
runs-on:
group: Reth
steps:
- name: Discord Webhook Action
uses: tsickert/discord-webhook@v6.0.0
with:
webhook-url: ${{ secrets.RETH_ALERTS_WEBHOOK }}
content: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}"
- name: Slack Webhook Action
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: ${{ job.status }}
SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}

View File

@@ -7,6 +7,9 @@ on:
merge_group:
push:
branches: [main]
schedule:
# Run once a day at 3:00 UTC
- cron: '0 3 * * *'
env:
CARGO_TERM_COLOR: always
@@ -19,6 +22,7 @@ concurrency:
jobs:
test:
name: test / ${{ matrix.network }}
if: github.event_name != 'schedule'
runs-on:
group: Reth
env:
@@ -29,6 +33,7 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- name: Install Geth
run: .github/assets/install_geth.sh
@@ -47,12 +52,12 @@ jobs:
name: Run tests
run: |
cargo nextest run \
--locked -p reth-node-optimism --features "optimism"
--locked -p reth-optimism-node
integration-success:
name: integration success
runs-on: ubuntu-latest
if: always()
if: always() && github.event_name != 'schedule'
needs: [test]
timeout-minutes: 30
steps:
@@ -60,3 +65,18 @@ jobs:
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
era-files:
name: era1 file integration tests once a day
if: github.event_name == 'schedule'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: run era1 files integration tests
run: cargo nextest run --package reth-era --test it -- --ignored

98
.github/workflows/kurtosis-op.yml vendored Normal file
View File

@@ -0,0 +1,98 @@
# Runs simple OP stack setup in Kurtosis
name: kurtosis-op
on:
workflow_dispatch:
schedule:
- cron: "0 */12 * * *"
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
prepare-reth:
uses: ./.github/workflows/prepare-reth.yml
with:
image_tag: ghcr.io/paradigmxyz/op-reth:kurtosis-ci
binary_name: op-reth
cargo_features: asm-keccak
cargo_package: crates/optimism/bin/Cargo.toml
test:
timeout-minutes: 60
strategy:
fail-fast: false
name: run kurtosis
runs-on:
group: Reth
needs:
- prepare-reth
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download reth image
uses: actions/download-artifact@v4
with:
name: artifacts
path: /tmp
- name: Load Docker image
run: |
docker load -i /tmp/reth_image.tar &
wait
docker image ls -a
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Run kurtosis
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli
kurtosis engine start
kurtosis run --enclave op-devnet github.com/ethpandaops/optimism-package --args-file .github/assets/kurtosis_op_network_params.yaml
ENCLAVE_ID=$(curl http://127.0.0.1:9779/api/enclaves | jq --raw-output 'keys[0]')
GETH_PORT=$(curl "http://127.0.0.1:9779/api/enclaves/$ENCLAVE_ID/services" | jq '."op-el-2151908-1-op-geth-op-node-op-kurtosis".public_ports.rpc.number')
RETH_PORT=$(curl "http://127.0.0.1:9779/api/enclaves/$ENCLAVE_ID/services" | jq '."op-el-2151908-2-op-reth-op-node-op-kurtosis".public_ports.rpc.number')
echo "GETH_RPC=http://127.0.0.1:$GETH_PORT" >> $GITHUB_ENV
echo "RETH_RPC=http://127.0.0.1:$RETH_PORT" >> $GITHUB_ENV
- name: Assert that clients advance
run: |
for i in {1..100}; do
sleep 5
BLOCK_GETH=$(cast bn --rpc-url $GETH_RPC)
BLOCK_RETH=$(cast bn --rpc-url $RETH_RPC)
if [ $BLOCK_GETH -ge 100 ] && [ $BLOCK_RETH -ge 100 ] ; then exit 0; fi
echo "Waiting for clients to advance..., Reth: $BLOCK_RETH Geth: $BLOCK_GETH"
done
kurtosis service logs -a op-devnet op-el-2151908-2-op-reth-op-node-op-kurtosis
kurtosis service logs -a op-devnet op-cl-2151908-2-op-node-op-reth-op-kurtosis
exit 1
notify-on-error:
needs: test
if: failure()
runs-on:
group: Reth
steps:
- name: Slack Webhook Action
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: ${{ job.status }}
SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}

70
.github/workflows/kurtosis.yml vendored Normal file
View File

@@ -0,0 +1,70 @@
# Runs `assertoor` tests on a `kurtosis` testnet.
name: kurtosis
on:
workflow_dispatch:
schedule:
- cron: "0 */12 * * *"
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
prepare-reth:
uses: ./.github/workflows/prepare-reth.yml
with:
image_tag: ghcr.io/paradigmxyz/reth:kurtosis-ci
binary_name: reth
test:
timeout-minutes: 60
strategy:
fail-fast: false
name: run kurtosis
runs-on:
group: Reth
needs:
- prepare-reth
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download reth image
uses: actions/download-artifact@v4
with:
name: artifacts
path: /tmp
- name: Load Docker image
run: |
docker load -i /tmp/reth_image.tar &
wait
docker image ls -a
- name: Run kurtosis
uses: ethpandaops/kurtosis-assertoor-github-action@v1
with:
ethereum_package_args: '.github/assets/kurtosis_network_params.yaml'
notify-on-error:
needs: test
if: failure()
runs-on:
group: Reth
steps:
- name: Slack Webhook Action
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: ${{ job.status }}
SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}"
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}

View File

@@ -11,23 +11,33 @@ env:
jobs:
clippy-binaries:
name: clippy / ${{ matrix.network }}
name: clippy binaries / ${{ matrix.type }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
include:
- binary: reth
network: ethereum
- binary: op-reth
network: optimism
- type: ethereum
args: --workspace --lib --examples --tests --benches --locked
features: "ethereum asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs"
- type: book
args: --manifest-path book/sources/Cargo.toml --workspace --bins
features: ""
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@clippy
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo clippy --bin "${{ matrix.binary }}" --workspace --features "${{ matrix.network }} asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs"
- if: "${{ matrix.type == 'book' }}"
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run clippy on binaries
run: cargo clippy ${{ matrix.args }} --features "${{ matrix.features }}"
env:
RUSTFLAGS: -D warnings
@@ -37,7 +47,10 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@clippy
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
@@ -50,6 +63,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: wasm32-wasip1
@@ -57,42 +71,61 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: dcarbone/install-jq-action@v2
- uses: dcarbone/install-jq-action@v3
- name: Run Wasm checks
run: .github/assets/check_wasm.sh
run: |
sudo apt update && sudo apt install gcc-multilib
.github/assets/check_wasm.sh
riscv:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: riscv32imac-unknown-none-elf
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: dcarbone/install-jq-action@v3
- name: Run RISC-V checks
run: .github/assets/check_rv32imac.sh
crate-checks:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo hack check
- run: cargo hack check --workspace
msrv:
name: MSRV / ${{ matrix.network }}
name: MSRV
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
include:
- binary: reth
network: ethereum
- binary: op-reth
network: optimism
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.80" # MSRV
toolchain: "1.86" # MSRV
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- run: cargo build --bin "${{ matrix.binary }}" --workspace --features "${{ matrix.network }}"
- run: cargo build --bin "${{ matrix.binary }}" --workspace
env:
RUSTFLAGS: -D warnings
@@ -102,6 +135,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
@@ -118,10 +152,28 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt --all --check
- name: Run fmt
run: cargo fmt --all --check
- name: Run fmt on book sources
run: cargo fmt --manifest-path book/sources/Cargo.toml --all --check
udeps:
name: udeps
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: taiki-e/install-action@cargo-udeps
- run: cargo udeps --workspace --lib --examples --tests --benches --all-features --locked
book:
name: book
@@ -129,9 +181,8 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.80" # MSRV
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
@@ -151,6 +202,17 @@ jobs:
with:
skip: "*.json"
check-toml:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run dprint
uses: dprint/check@v2.2
with:
config-path: dprint.json
grafana:
runs-on: ubuntu-latest
timeout-minutes: 30
@@ -166,6 +228,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- name: Ensure no arbitrary or proptest dependency on default build
run: cargo tree --package reth -e=features,no-dev | grep -Eq "arbitrary|proptest" && exit 1 || exit 0
@@ -177,6 +240,7 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@clippy
- uses: Swatinem/rust-cache@v2
with:
@@ -187,6 +251,25 @@ jobs:
env:
RUSTFLAGS: -D warnings
# Check crates correctly propagate features
feature-propagation:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: fetch deps
run: |
# Eagerly pull dependencies
time cargo metadata --format-version=1 --locked > /dev/null
- name: run zepter
run: |
cargo install zepter -f --locked
zepter --version
time zepter run check
deny:
uses: ithacaxyz/ci/.github/workflows/deny.yml@main
lint-success:
name: lint success
runs-on: ubuntu-latest
@@ -198,11 +281,14 @@ jobs:
- crate-checks
- docs
- fmt
- udeps
- book
- codespell
- grafana
- no-test-deps
- features
- feature-propagation
- deny
timeout-minutes: 30
steps:
- name: Decide whether the needed jobs succeeded or failed

View File

@@ -1,56 +0,0 @@
# Runs a base mainnet sync test.
name: op-sync-test
on:
pull_request:
merge_group:
push:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
sync:
name: op sync / 10k blocks
# Only run sync tests in merge groups
if: github.event_name == 'merge_group'
runs-on:
group: Reth
env:
RUST_LOG: info,sync=error
RUST_BACKTRACE: 1
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build op-reth
run: |
cargo install --features asm-keccak,jemalloc,optimism --bin op-reth --path bin/reth
- name: Run sync
# https://basescan.org/block/10000
run: |
op-reth node \
--chain base \
--debug.tip 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7 \
--debug.max-block 10000 \
--debug.terminate
- name: Verify the target block hash
run: |
op-reth db --chain base get static-file headers 10000 \
| grep 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7
- name: Run stage unwind for 100 blocks
run: |
op-reth stage --chain base unwind num-blocks 100
- name: Run stage unwind to block hash
run: |
op-reth stage --chain base unwind to-block 0x118a6e922a8c6cab221fc5adfe5056d2b72d58c6580e9c5629de55299e2cf8de

84
.github/workflows/pr-title.yml vendored Normal file
View File

@@ -0,0 +1,84 @@
name: Pull Request
on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize
permissions:
pull-requests: read
contents: read
jobs:
conventional-title:
name: Validate PR title is Conventional Commit
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Check title
id: lint_pr_title
uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
feat
fix
chore
test
perf
refactor
docs
ci
revert
deps
continue-on-error: true
- name: Add PR Comment for Invalid Title
if: steps.lint_pr_title.outcome == 'failure'
uses: marocchino/sticky-pull-request-comment@v2
with:
header: pr-title-lint-error
message: |
Your PR title doesn't follow the Conventional Commit guidelines.
**Example of valid titles:**
- `feat: add new user login`
- `fix: correct button size`
- `docs: update README`
**Usage:**
- `feat`: Introduces a new feature
- `fix`: Patches a bug
- `chore`: General maintenance tasks or updates
- `test`: Adding new tests or modifying existing tests
- `perf`: Performance improvements
- `refactor`: Changes to improve code structure
- `docs`: Documentation updates
- `ci`: Changes to CI/CD configurations
- `revert`: Reverts a previously merged PR
- `deps`: Updates dependencies
**Breaking Changes**
Breaking changes are noted by using an exclamation mark. For example:
- `feat!: changed the API`
- `chore(node)!: Removed unused public function`
**Help**
For more information, follow the guidelines here: https://www.conventionalcommits.org/en/v1.0.0/
- name: Remove Comment for Valid Title
if: steps.lint_pr_title.outcome == 'success'
uses: marocchino/sticky-pull-request-comment@v2
with:
header: pr-title-lint-error
delete: true
- name: Fail workflow if title invalid
if: steps.lint_pr_title.outcome == 'failure'
run: exit 1

57
.github/workflows/prepare-reth.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Prepare Reth Image
on:
workflow_call:
inputs:
image_tag:
required: true
type: string
description: "Docker image tag to use"
binary_name:
required: false
type: string
default: "reth"
description: "Binary name to build (reth or op-reth)"
cargo_features:
required: false
type: string
default: "asm-keccak"
description: "Cargo features to enable"
cargo_package:
required: false
type: string
description: "Optional cargo package path"
jobs:
prepare-reth:
if: github.repository == 'paradigmxyz/reth'
timeout-minutes: 45
runs-on:
group: Reth
steps:
- uses: actions/checkout@v4
- run: mkdir artifacts
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export reth image
uses: docker/build-push-action@v6
with:
context: .
file: .github/assets/hive/Dockerfile
tags: ${{ inputs.image_tag }}
outputs: type=docker,dest=./artifacts/reth_image.tar
build-args: |
CARGO_BIN=${{ inputs.binary_name }}
MANIFEST_PATH=${{ inputs.cargo_package }}
FEATURES=${{ inputs.cargo_features }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Upload reth image
id: upload
uses: actions/upload-artifact@v4
with:
name: artifacts
path: ./artifacts

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Update Homebrew formula
uses: dawidd6/action-homebrew-bump-formula@v3
uses: dawidd6/action-homebrew-bump-formula@v4
with:
token: ${{ secrets.HOMEBREW }}
no_fork: true

View File

@@ -0,0 +1,56 @@
# This workflow is for building and pushing reproducible Docker images for releases.
name: release-reproducible
on:
push:
tags:
- v*
env:
DOCKER_REPRODUCIBLE_IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/reth-reproducible
jobs:
extract-version:
name: extract version
runs-on: ubuntu-latest
steps:
- name: Extract version
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT
id: extract_version
outputs:
VERSION: ${{ steps.extract_version.outputs.VERSION }}
build-reproducible:
name: build and push reproducible image
runs-on: ubuntu-latest
needs: extract-version
permissions:
packages: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push reproducible image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.reproducible
push: true
tags: |
${{ env.DOCKER_REPRODUCIBLE_IMAGE_NAME }}:${{ needs.extract-version.outputs.VERSION }}
${{ env.DOCKER_REPRODUCIBLE_IMAGE_NAME }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: false
env:
DOCKER_BUILD_RECORD_UPLOAD: false

View File

@@ -7,12 +7,21 @@ on:
push:
tags:
- v*
workflow_dispatch:
inputs:
dry_run:
description: "Enable dry run mode (builds artifacts but skips uploads and release creation)"
type: boolean
default: true
env:
REPO_NAME: ${{ github.repository_owner }}/reth
OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth
IMAGE_NAME: ${{ github.repository_owner }}/reth
OP_IMAGE_NAME: ${{ github.repository_owner }}/op-reth
REPRODUCIBLE_IMAGE_NAME: ${{ github.repository_owner }}/reth-reproducible
CARGO_TERM_COLOR: always
DOCKER_IMAGE_NAME_URL: ghcr.io/${{ github.repository_owner }}/reth
DOCKER_OP_IMAGE_NAME_URL: ghcr.io/${{ github.repository_owner }}/op-reth
jobs:
extract-version:
@@ -20,7 +29,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Extract version
run: echo "VERSION=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_OUTPUT
run: echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
id: extract_version
outputs:
VERSION: ${{ steps.extract_version.outputs.VERSION }}
@@ -33,10 +42,10 @@ jobs:
matrix:
configs:
- target: x86_64-unknown-linux-gnu
os: ubuntu-20.04
os: ubuntu-24.04
profile: maxperf
- target: aarch64-unknown-linux-gnu
os: ubuntu-20.04
os: ubuntu-24.04
profile: maxperf
- target: x86_64-apple-darwin
os: macos-13
@@ -45,7 +54,7 @@ jobs:
os: macos-14
profile: maxperf
- target: x86_64-pc-windows-gnu
os: ubuntu-20.04
os: ubuntu-24.04
profile: maxperf
build:
- command: build
@@ -54,10 +63,14 @@ jobs:
binary: op-reth
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.configs.target }}
- uses: taiki-e/install-action@cross
- name: Install cross main
id: cross_main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
@@ -90,12 +103,14 @@ jobs:
shell: bash
- name: Upload artifact
if: ${{ github.event.inputs.dry_run == 'false' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz
path: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz
- name: Upload signature
if: ${{ github.event.inputs.dry_run == 'false' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.build.binary }}-${{ needs.extract-version.outputs.VERSION }}-${{ matrix.configs.target }}.tar.gz.asc
@@ -105,6 +120,7 @@ jobs:
name: draft release
needs: [build, extract-version]
runs-on: ubuntu-latest
if: ${{ github.event.inputs.dry_run == 'false' }}
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
permissions:
@@ -118,12 +134,6 @@ jobs:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Generate full changelog
id: changelog
run: |
echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT
echo "$(git log --pretty=format:"- %s" $(git describe --tags --abbrev=0 ${{ env.VERSION }}^)..${{ env.VERSION }})" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create release draft
env:
GITHUB_USER: ${{ github.repository_owner }}
@@ -167,26 +177,33 @@ jobs:
*See [Update Priorities](https://paradigmxyz.github.io/reth/installation/priorities.html) for more information about this table.*
## All Changes
${{ steps.changelog.outputs.CHANGELOG }}
## Binaries
[See pre-built binaries documentation.](https://paradigmxyz.github.io/reth/installation/binaries.html)
The binaries are signed with the PGP key: `50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E`
### Reth
| System | Architecture | Binary | PGP Signature |
|:---:|:---:|:---:|:---|
| <img src="https://simpleicons.org/icons/linux.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://simpleicons.org/icons/linux.svg" style="width: 32px;"/> | aarch64 | [reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://simpleicons.org/icons/windows.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz.asc) |
| <img src="https://simpleicons.org/icons/apple.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz.asc) |
| <img src="https://simpleicons.org/icons/apple.svg" style="width: 32px;"/> | aarch64 | [reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz.asc) |
| | | | |
| **System** | **Option** | - | **Resource** |
| <img src="https://simpleicons.org/icons/docker.svg" style="width: 32px;"/> | Docker | | [${{ env.IMAGE_NAME }}](https://github.com/paradigmxyz/reth/pkgs/container/reth) |
| <img src="https://www.svgrepo.com/download/473700/linux.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/473700/linux.svg" style="width: 32px;"/> | aarch64 | [reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/513083/windows-174.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/511330/apple-173.svg" style="width: 32px;"/> | x86_64 | [reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/511330/apple-173.svg" style="width: 32px;"/> | aarch64 | [reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/473589/docker.svg" style="width: 32px;"/> | Docker | [${{ env.IMAGE_NAME }}](${{ env.DOCKER_IMAGE_NAME_URL }}) | - |
### OP-Reth
| System | Architecture | Binary | PGP Signature |
|:---:|:---:|:---:|:---|
| <img src="https://www.svgrepo.com/download/473700/linux.svg" style="width: 32px;"/> | x86_64 | [op-reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/473700/linux.svg" style="width: 32px;"/> | aarch64 | [op-reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-aarch64-unknown-linux-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/513083/windows-174.svg" style="width: 32px;"/> | x86_64 | [op-reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-pc-windows-gnu.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/511330/apple-173.svg" style="width: 32px;"/> | x86_64 | [op-reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-x86_64-apple-darwin.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/511330/apple-173.svg" style="width: 32px;"/> | aarch64 | [op-reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz) | [PGP Signature](https://github.com/${{ env.REPO_NAME }}/releases/download/${{ env.VERSION }}/op-reth-${{ env.VERSION }}-aarch64-apple-darwin.tar.gz.asc) |
| <img src="https://www.svgrepo.com/download/473589/docker.svg" style="width: 32px;"/> | Docker | [${{ env.OP_IMAGE_NAME }}](${{ env.DOCKER_OP_IMAGE_NAME_URL }}) | - |
ENDBODY
)
assets=()
@@ -195,3 +212,25 @@ jobs:
done
tag_name="${{ env.VERSION }}"
echo "$body" | gh release create --draft -t "Reth $tag_name" -F "-" "$tag_name" "${assets[@]}"
dry-run-summary:
name: dry run summary
needs: [build, extract-version]
runs-on: ubuntu-latest
if: ${{ github.event.inputs.dry_run == 'true' }}
env:
VERSION: ${{ needs.extract-version.outputs.VERSION }}
steps:
- name: Summarize dry run
run: |
echo "## 🧪 Release Dry Run Summary"
echo ""
echo "✅ Successfully completed dry run for commit ${{ github.sha }}"
echo ""
echo "### What would happen in a real release:"
echo "- Binary artifacts would be uploaded to GitHub"
echo "- Docker images would be pushed to registry"
echo "- A draft release would be created"
echo ""
echo "### Next Steps"
echo "To perform a real release, push a git tag."

View File

@@ -0,0 +1,38 @@
name: reproducible-build
on:
workflow_dispatch: {}
schedule:
- cron: "0 1 */2 * *"
jobs:
build:
name: build reproducible binaries
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: x86_64-unknown-linux-gnu
- name: Install cross main
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: Install cargo-cache
run: |
cargo install cargo-cache
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build Reth
run: |
make build-reproducible
mv target/x86_64-unknown-linux-gnu/release/reth reth-build-1
- name: Clean cache
run: make clean && cargo cache -a
- name: Build Reth again
run: |
make build-reproducible
mv target/x86_64-unknown-linux-gnu/release/reth reth-build-2
- name: Compare binaries
run: cmp reth-build-1 reth-build-2

View File

@@ -6,7 +6,7 @@ on:
pull_request:
merge_group:
push:
branches: [ main ]
branches: [main]
env:
CARGO_TERM_COLOR: always
@@ -30,6 +30,7 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:

64
.github/workflows/sync.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
# Runs sync tests.
name: sync test
on:
merge_group:
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
sync:
name: sync (${{ matrix.chain.bin }})
runs-on:
group: Reth
env:
RUST_LOG: info,sync=error
RUST_BACKTRACE: 1
timeout-minutes: 60
strategy:
matrix:
chain:
- build: install
bin: reth
chain: mainnet
tip: "0x91c90676cab257a59cd956d7cb0bceb9b1a71d79755c23c7277a0697ccfaf8c4"
block: 100000
unwind-target: "0x52e0509d33a988ef807058e2980099ee3070187f7333aae12b64d4d675f34c5a"
- build: install-op
bin: op-reth
chain: base
tip: "0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7"
block: 10000
unwind-target: "0x118a6e922a8c6cab221fc5adfe5056d2b72d58c6580e9c5629de55299e2cf8de"
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build ${{ matrix.chain.bin }}
run: make ${{ matrix.chain.build }}
- name: Run sync
run: |
${{ matrix.chain.bin }} node \
--chain ${{ matrix.chain.chain }} \
--debug.tip ${{ matrix.chain.tip }} \
--debug.max-block ${{ matrix.chain.block }} \
--debug.terminate
- name: Verify the target block hash
run: |
${{ matrix.chain.bin }} db --chain ${{ matrix.chain.chain }} get static-file headers ${{ matrix.chain.block }} \
| grep ${{ matrix.chain.tip }}
- name: Run stage unwind for 100 blocks
run: |
${{ matrix.chain.bin }} stage unwind num-blocks 100 --chain ${{ matrix.chain.chain }}
- name: Run stage unwind to block hash
run: |
${{ matrix.chain.bin }} stage unwind to-block ${{ matrix.chain.unwind-target }} --chain ${{ matrix.chain.chain }}

View File

@@ -18,28 +18,52 @@ concurrency:
jobs:
test:
name: test / ${{ matrix.network }} (${{ matrix.partition }}/2)
name: test / ${{ matrix.type }} (${{ matrix.partition }}/${{ matrix.total_partitions }})
runs-on:
group: Reth
env:
RUST_BACKTRACE: 1
strategy:
matrix:
partition: [1, 2]
network: ["ethereum", "optimism"]
include:
- type: ethereum
args: --features "asm-keccak ethereum" --locked
partition: 1
total_partitions: 2
- type: ethereum
args: --features "asm-keccak ethereum" --locked
partition: 2
total_partitions: 2
- type: optimism
args: --features "asm-keccak" --locked --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum"
partition: 1
total_partitions: 2
- type: optimism
args: --features "asm-keccak" --locked --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum"
partition: 2
total_partitions: 2
- type: book
args: --manifest-path book/sources/Cargo.toml
partition: 1
total_partitions: 1
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: taiki-e/install-action@nextest
- if: "${{ matrix.type == 'book' }}"
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
run: |
cargo nextest run \
--locked --features "asm-keccak ${{ matrix.network }}" \
--workspace --exclude ef-tests \
${{ matrix.args }} --workspace \
--exclude ef-tests --no-tests=warn \
--partition hash:${{ matrix.partition }}/2 \
-E "!kind(test)"
@@ -57,10 +81,11 @@ jobs:
uses: actions/checkout@v4
with:
repository: ethereum/tests
ref: 1c23e3c27ac53b794de0844d2d5e19cd2495b9d8
ref: 81862e4848585a438d64f911a19b3825f0f4cd95
path: testing/ef-tests/ethereum-tests
submodules: recursive
fetch-depth: 1
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@nextest
- uses: Swatinem/rust-cache@v2
@@ -69,23 +94,21 @@ jobs:
- run: cargo nextest run --release -p ef-tests --features "asm-keccak ef-tests"
doc:
name: doc tests (${{ matrix.network }})
name: doc tests
runs-on:
group: Reth
env:
RUST_BACKTRACE: 1
timeout-minutes: 30
strategy:
matrix:
network: ["ethereum", "optimism"]
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Run doctests
run: cargo test --doc --workspace --features "${{ matrix.network }}"
run: cargo test --doc --workspace --all-features
unit-success:
name: unit success

36
.github/workflows/update-superchain.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Update Superchain Config
on:
schedule:
- cron: '0 3 * * 0'
workflow_dispatch:
permissions:
contents: write
jobs:
update-superchain:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install required tools
run: |
sudo apt-get update
sudo apt-get install -y jq zstd qpdf yq
- name: Run fetch_superchain_config.sh
run: |
chmod +x crates/optimism/chainspec/res/fetch_superchain_config.sh
cd crates/optimism/chainspec/res
./fetch_superchain_config.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
commit-message: "chore: update superchain config"
title: "chore: update superchain config"
body: "This PR updates the superchain configs via scheduled workflow."
branch: "ci/update-superchain-config"
delete-branch: true

49
.github/workflows/windows.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
# Windows build
name: windows
on:
push:
branches: [main]
pull_request:
branches: [main]
merge_group:
jobs:
check-reth:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: x86_64-pc-windows-gnu
- uses: taiki-e/install-action@cross
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: mingw-w64
run: sudo apt-get install -y mingw-w64
- name: Check Reth
run: cargo check --target x86_64-pc-windows-gnu
check-op-reth:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: rui314/setup-mold@v1
- uses: dtolnay/rust-toolchain@stable
with:
target: x86_64-pc-windows-gnu
- uses: taiki-e/install-action@cross
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: mingw-w64
run: sudo apt-get install -y mingw-w64
- name: Check OP-Reth
run: cargo check -p op-reth --target x86_64-pc-windows-gnu

10
.gitignore vendored
View File

@@ -19,7 +19,7 @@ target/
testdata/micro/db
# Generated data for stage benchmarks
crates/stages/testdata
crates/stages/stages/testdata
# Prometheus data dir
data/
@@ -49,4 +49,10 @@ jwttoken/
crates/storage/libmdbx-rs/mdbx-sys/libmdbx/cmake-build-debug
# Rust bug report
rustc-ice-*
rustc-ice-*
# Book sources should be able to build with the latest version
book/sources/Cargo.lock
# Cargo chef recipe file
recipe.json

8042
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
[workspace.package]
version = "1.0.6"
version = "1.4.2"
edition = "2021"
rust-version = "1.80"
rust-version = "1.86"
license = "MIT OR Apache-2.0"
homepage = "https://paradigmxyz.github.io/reth"
repository = "https://github.com/paradigmxyz/reth"
@@ -11,8 +11,6 @@ exclude = [".github/"]
members = [
"bin/reth-bench/",
"bin/reth/",
"crates/blockchain-tree-api/",
"crates/blockchain-tree/",
"crates/chain-state/",
"crates/chainspec/",
"crates/cli/cli/",
@@ -20,34 +18,37 @@ members = [
"crates/cli/runner/",
"crates/cli/util/",
"crates/config/",
"crates/consensus/auto-seal/",
"crates/consensus/beacon/",
"crates/consensus/common/",
"crates/consensus/consensus/",
"crates/consensus/debug-client/",
"crates/e2e-test-utils/",
"crates/engine/invalid-block-hooks/",
"crates/engine/local",
"crates/engine/primitives/",
"crates/engine/service",
"crates/engine/tree/",
"crates/engine/util/",
"crates/era",
"crates/era-downloader",
"crates/era-utils",
"crates/errors/",
"crates/ethereum-forks/",
"crates/ethereum-forks/",
"crates/ethereum/hardforks/",
"crates/ethereum/cli/",
"crates/ethereum/consensus/",
"crates/ethereum/engine-primitives/",
"crates/ethereum/evm",
"crates/ethereum/node",
"crates/ethereum/payload/",
"crates/ethereum/primitives/",
"crates/ethereum/reth/",
"crates/etl/",
"crates/evm/",
"crates/evm/evm",
"crates/evm/execution-errors",
"crates/evm/execution-types",
"crates/exex/exex/",
"crates/exex/test-utils/",
"crates/exex/types/",
"crates/metrics/",
"crates/metrics/metrics-derive/",
"crates/net/banlist/",
"crates/net/discv4/",
"crates/net/discv5/",
@@ -67,22 +68,32 @@ members = [
"crates/node/core/",
"crates/node/events/",
"crates/node/metrics",
"crates/node/types",
"crates/optimism/bin",
"crates/optimism/chainspec",
"crates/optimism/cli",
"crates/optimism/consensus",
"crates/optimism/evm/",
"crates/optimism/hardforks/",
"crates/optimism/node/",
"crates/optimism/payload/",
"crates/optimism/primitives/",
"crates/optimism/reth/",
"crates/optimism/rpc/",
"crates/optimism/storage",
"crates/optimism/txpool/",
"crates/payload/basic/",
"crates/payload/builder/",
"crates/payload/builder-primitives/",
"crates/payload/primitives/",
"crates/payload/validator/",
"crates/payload/util/",
"crates/primitives-traits/",
"crates/primitives/",
"crates/prune/prune",
"crates/prune/types",
"crates/ress/protocol",
"crates/ress/provider",
"crates/revm/",
"crates/rpc/ipc/",
"crates/rpc/rpc-api/",
@@ -94,11 +105,11 @@ members = [
"crates/rpc/rpc-server-types/",
"crates/rpc/rpc-testing-util/",
"crates/rpc/rpc-types-compat/",
"crates/rpc/rpc-types/",
"crates/rpc/rpc/",
"crates/stages/api/",
"crates/stages/stages/",
"crates/stages/types/",
"crates/stateless",
"crates/static-file/static-file",
"crates/static-file/types/",
"crates/storage/codecs/",
@@ -113,6 +124,7 @@ members = [
"crates/storage/nippy-jar/",
"crates/storage/provider/",
"crates/storage/storage-api/",
"crates/storage/zstd-compressors/",
"crates/tasks/",
"crates/tokio-util/",
"crates/tracing/",
@@ -120,31 +132,40 @@ members = [
"crates/trie/common",
"crates/trie/db",
"crates/trie/parallel/",
"crates/trie/sparse",
"crates/trie/trie",
"examples/beacon-api-sidecar-fetcher/",
"examples/beacon-api-sse/",
"examples/bsc-p2p",
"examples/custom-dev-node/",
"examples/custom-node/",
"examples/custom-engine-types/",
"examples/custom-evm/",
"examples/custom-inspector/",
"examples/custom-node-components/",
"examples/custom-payload-builder/",
"examples/custom-rlpx-subprotocol",
"examples/custom-node",
"examples/db-access",
"examples/exex-hello-world",
"examples/exex-subscription",
"examples/exex-test",
"examples/manual-p2p/",
"examples/network-txpool/",
"examples/network/",
"examples/network-proxy/",
"examples/node-custom-rpc/",
"examples/node-event-hooks/",
"examples/polygon-p2p/",
"examples/rpc-db/",
"examples/stateful-precompile/",
"examples/precompile-cache/",
"examples/txpool-tracing/",
"examples/custom-beacon-withdrawals",
"testing/ef-tests/",
"testing/testing-utils",
]
default-members = ["bin/reth"]
exclude = ["book/sources", "book/cli"]
# Explicitly set the resolver to version 2, which is the default for packages with edition >= 2021
# https://doc.rust-lang.org/edition-guide/rust-2021/default-cargo-resolver.html
@@ -165,9 +186,12 @@ rustdoc.all = "warn"
# suggestions which we fixed. The others didn't have any findings, so we can
# assume they don't have that many false positives. Let's enable them to
# prevent future problems.
borrow_as_ptr = "warn"
branches_sharing_code = "warn"
clear_with_drain = "warn"
cloned_instead_of_copied = "warn"
collection_is_never_read = "warn"
dbg_macro = "warn"
derive_partial_eq_without_eq = "warn"
doc_markdown = "warn"
empty_line_after_doc_comments = "warn"
@@ -177,7 +201,9 @@ equatable_if_let = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
flat_map_option = "warn"
from_iter_instead_of_collect = "warn"
if_not_else = "warn"
if_then_some_else_none = "warn"
implicit_clone = "warn"
imprecise_flops = "warn"
iter_on_empty_collections = "warn"
@@ -190,7 +216,7 @@ manual_clamp = "warn"
manual_is_variant_and = "warn"
manual_string_new = "warn"
match_same_arms = "warn"
missing_const_for_fn = "warn"
missing-const-for-fn = "warn"
mutex_integer = "warn"
naive_bytecount = "warn"
needless_bitwise_bool = "warn"
@@ -202,10 +228,12 @@ option_as_ref_cloned = "warn"
or_fun_call = "warn"
path_buf_push_overwrite = "warn"
read_zero_byte_vec = "warn"
result_large_err = "allow"
redundant_clone = "warn"
redundant_else = "warn"
single_char_pattern = "warn"
string_lit_as_bytes = "warn"
string_lit_chars_any = "warn"
suboptimal_flops = "warn"
suspicious_operation_groupings = "warn"
trailing_empty_array = "warn"
@@ -215,12 +243,14 @@ trivial_regex = "warn"
tuple_array_conversions = "warn"
type_repetition_in_bounds = "warn"
uninhabited_references = "warn"
unnecessary_self_imports = "warn"
unnecessary_struct_initialization = "warn"
unnested_or_patterns = "warn"
unused_peekable = "warn"
unused_rounding = "warn"
use_self = "warn"
useless_let_if_seq = "warn"
while_float = "warn"
zero_sized_map_values = "warn"
# These are nursery lints which have findings. Allow them for now. Some are not
@@ -228,16 +258,23 @@ zero_sized_map_values = "warn"
# Explicitly listing should make it easier to fix in the future.
as_ptr_cast_mut = "allow"
cognitive_complexity = "allow"
collection_is_never_read = "allow"
debug_assert_with_mut_call = "allow"
fallible_impl_from = "allow"
future_not_send = "allow"
needless_collect = "allow"
non_send_fields_in_send_ty = "allow"
redundant_pub_crate = "allow"
too_long_first_doc_paragraph = "allow"
significant_drop_in_scrutinee = "allow"
significant_drop_tightening = "allow"
too_long_first_doc_paragraph = "allow"
# Speed up compilation time for dev builds by reducing emitted debug info.
# NOTE: Debuggers may provide less useful information with this setting.
# Uncomment this section if you're using a debugger.
[profile.dev]
# https://davidlattimore.github.io/posts/2024/02/04/speeding-up-the-rust-edit-build-run-cycle.html
debug = "line-tables-only"
split-debuginfo = "unpacked"
# Speed up tests.
[profile.dev.package]
@@ -255,8 +292,8 @@ lto = "thin"
[profile.release]
opt-level = 3
lto = "thin"
debug = "line-tables-only"
strip = true
debug = "none"
strip = "symbols"
panic = "unwind"
codegen-units = 16
@@ -264,10 +301,10 @@ codegen-units = 16
# e.g. `cargo build --profile profiling`
[profile.profiling]
inherits = "release"
debug = 2
strip = false
debug = "full"
strip = "none"
# Make sure debug symbols are in the bench profile
# Include debug info in benchmarks too.
[profile.bench]
inherits = "profiling"
@@ -278,62 +315,65 @@ codegen-units = 1
[workspace.dependencies]
# reth
op-reth = { path = "crates/optimism/bin" }
reth = { path = "bin/reth" }
reth-auto-seal-consensus = { path = "crates/consensus/auto-seal" }
reth-basic-payload-builder = { path = "crates/payload/basic" }
reth-beacon-consensus = { path = "crates/consensus/beacon" }
reth-bench = { path = "bin/reth-bench" }
reth-blockchain-tree = { path = "crates/blockchain-tree" }
reth-blockchain-tree-api = { path = "crates/blockchain-tree-api" }
reth-chain-state = { path = "crates/chain-state" }
reth-chainspec = { path = "crates/chainspec" }
reth-chainspec = { path = "crates/chainspec", default-features = false }
reth-cli = { path = "crates/cli/cli" }
reth-cli-commands = { path = "crates/cli/commands" }
reth-cli-runner = { path = "crates/cli/runner" }
reth-cli-util = { path = "crates/cli/util" }
reth-codecs = { path = "crates/storage/codecs" }
reth-codecs-derive = { path = "crates/storage/codecs/derive" }
reth-config = { path = "crates/config" }
reth-config = { path = "crates/config", default-features = false }
reth-consensus = { path = "crates/consensus/consensus", default-features = false }
reth-consensus-common = { path = "crates/consensus/common" }
reth-consensus-common = { path = "crates/consensus/common", default-features = false }
reth-consensus-debug-client = { path = "crates/consensus/debug-client" }
reth-db = { path = "crates/storage/db", default-features = false }
reth-db-api = { path = "crates/storage/db-api" }
reth-db-common = { path = "crates/storage/db-common" }
reth-db-models = { path = "crates/storage/db-models" }
reth-db-models = { path = "crates/storage/db-models", default-features = false }
reth-discv4 = { path = "crates/net/discv4" }
reth-discv5 = { path = "crates/net/discv5" }
reth-dns-discovery = { path = "crates/net/dns" }
reth-downloaders = { path = "crates/net/downloaders" }
reth-e2e-test-utils = { path = "crates/e2e-test-utils" }
reth-ecies = { path = "crates/net/ecies" }
reth-engine-primitives = { path = "crates/engine/primitives" }
reth-engine-local = { path = "crates/engine/local" }
reth-engine-primitives = { path = "crates/engine/primitives", default-features = false }
reth-engine-tree = { path = "crates/engine/tree" }
reth-engine-service = { path = "crates/engine/service" }
reth-engine-util = { path = "crates/engine/util" }
reth-era = { path = "crates/era" }
reth-era-downloader = { path = "crates/era-downloader" }
reth-era-utils = { path = "crates/era-utils" }
reth-errors = { path = "crates/errors" }
reth-eth-wire = { path = "crates/net/eth-wire" }
reth-eth-wire-types = { path = "crates/net/eth-wire-types" }
reth-ethereum-cli = { path = "crates/ethereum/cli" }
reth-ethereum-consensus = { path = "crates/ethereum/consensus" }
reth-ethereum-engine-primitives = { path = "crates/ethereum/engine-primitives" }
reth-ethereum-forks = { path = "crates/ethereum-forks" }
reth-ethereum-consensus = { path = "crates/ethereum/consensus", default-features = false }
reth-ethereum-engine-primitives = { path = "crates/ethereum/engine-primitives", default-features = false }
reth-ethereum-forks = { path = "crates/ethereum/hardforks", default-features = false }
reth-ethereum-payload-builder = { path = "crates/ethereum/payload" }
reth-ethereum-primitives = { path = "crates/ethereum/primitives", default-features = false }
reth-ethereum = { path = "crates/ethereum/reth" }
reth-etl = { path = "crates/etl" }
reth-evm = { path = "crates/evm" }
reth-evm-ethereum = { path = "crates/ethereum/evm" }
reth-evm-optimism = { path = "crates/optimism/evm" }
reth-execution-errors = { path = "crates/evm/execution-errors" }
reth-execution-types = { path = "crates/evm/execution-types" }
reth-evm = { path = "crates/evm/evm", default-features = false }
reth-evm-ethereum = { path = "crates/ethereum/evm", default-features = false }
reth-optimism-evm = { path = "crates/optimism/evm", default-features = false }
reth-execution-errors = { path = "crates/evm/execution-errors", default-features = false }
reth-execution-types = { path = "crates/evm/execution-types", default-features = false }
reth-exex = { path = "crates/exex/exex" }
reth-exex-test-utils = { path = "crates/exex/test-utils" }
reth-exex-types = { path = "crates/exex/types" }
reth-fs-util = { path = "crates/fs-util" }
reth-invalid-block-hooks = { path = "crates/engine/invalid-block-hooks" }
reth-ipc = { path = "crates/rpc/ipc" }
reth-libmdbx = { path = "crates/storage/libmdbx-rs" }
reth-mdbx-sys = { path = "crates/storage/libmdbx-rs/mdbx-sys" }
reth-metrics = { path = "crates/metrics" }
reth-metrics-derive = { path = "crates/metrics/metrics-derive" }
reth-net-banlist = { path = "crates/net/banlist" }
reth-net-nat = { path = "crates/net/nat" }
reth-network = { path = "crates/net/network" }
@@ -348,24 +388,29 @@ reth-node-core = { path = "crates/node/core" }
reth-node-ethereum = { path = "crates/ethereum/node" }
reth-node-events = { path = "crates/node/events" }
reth-node-metrics = { path = "crates/node/metrics" }
reth-node-optimism = { path = "crates/optimism/node" }
reth-optimism-chainspec = { path = "crates/optimism/chainspec" }
reth-optimism-node = { path = "crates/optimism/node" }
reth-node-types = { path = "crates/node/types" }
reth-op = { path = "crates/optimism/reth", default-features = false }
reth-optimism-chainspec = { path = "crates/optimism/chainspec", default-features = false }
reth-optimism-cli = { path = "crates/optimism/cli" }
reth-optimism-consensus = { path = "crates/optimism/consensus" }
reth-optimism-consensus = { path = "crates/optimism/consensus", default-features = false }
reth-optimism-forks = { path = "crates/optimism/hardforks", default-features = false }
reth-optimism-payload-builder = { path = "crates/optimism/payload" }
reth-optimism-primitives = { path = "crates/optimism/primitives" }
reth-optimism-primitives = { path = "crates/optimism/primitives", default-features = false }
reth-optimism-rpc = { path = "crates/optimism/rpc" }
reth-optimism-storage = { path = "crates/optimism/storage" }
reth-optimism-txpool = { path = "crates/optimism/txpool" }
reth-payload-builder = { path = "crates/payload/builder" }
reth-payload-builder-primitives = { path = "crates/payload/builder-primitives" }
reth-payload-primitives = { path = "crates/payload/primitives" }
reth-payload-validator = { path = "crates/payload/validator" }
reth-primitives = { path = "crates/primitives", default-features = false, features = [
"std",
] }
reth-payload-util = { path = "crates/payload/util" }
reth-primitives = { path = "crates/primitives", default-features = false }
reth-primitives-traits = { path = "crates/primitives-traits", default-features = false }
reth-provider = { path = "crates/storage/provider" }
reth-prune = { path = "crates/prune/prune" }
reth-prune-types = { path = "crates/prune/types" }
reth-revm = { path = "crates/revm" }
reth-prune-types = { path = "crates/prune/types", default-features = false }
reth-revm = { path = "crates/revm", default-features = false }
reth-rpc = { path = "crates/rpc/rpc" }
reth-rpc-api = { path = "crates/rpc/rpc-api" }
reth-rpc-api-testing-util = { path = "crates/rpc/rpc-testing-util" }
@@ -375,136 +420,160 @@ reth-rpc-eth-api = { path = "crates/rpc/rpc-eth-api" }
reth-rpc-eth-types = { path = "crates/rpc/rpc-eth-types", default-features = false }
reth-rpc-layer = { path = "crates/rpc/rpc-layer" }
reth-rpc-server-types = { path = "crates/rpc/rpc-server-types" }
reth-rpc-types = { path = "crates/rpc/rpc-types" }
reth-rpc-types-compat = { path = "crates/rpc/rpc-types-compat" }
reth-stages = { path = "crates/stages/stages" }
reth-stages-api = { path = "crates/stages/api" }
reth-stages-types = { path = "crates/stages/types" }
reth-stages-types = { path = "crates/stages/types", default-features = false }
reth-stateless = { path = "crates/stateless" }
reth-static-file = { path = "crates/static-file/static-file" }
reth-static-file-types = { path = "crates/static-file/types" }
reth-storage-api = { path = "crates/storage/storage-api" }
reth-storage-errors = { path = "crates/storage/errors" }
reth-static-file-types = { path = "crates/static-file/types", default-features = false }
reth-storage-api = { path = "crates/storage/storage-api", default-features = false }
reth-storage-errors = { path = "crates/storage/errors", default-features = false }
reth-tasks = { path = "crates/tasks" }
reth-testing-utils = { path = "testing/testing-utils" }
reth-tokio-util = { path = "crates/tokio-util" }
reth-tracing = { path = "crates/tracing" }
reth-transaction-pool = { path = "crates/transaction-pool" }
reth-trie = { path = "crates/trie/trie" }
reth-trie-common = { path = "crates/trie/common" }
reth-trie-common = { path = "crates/trie/common", default-features = false }
reth-trie-db = { path = "crates/trie/db" }
reth-trie-parallel = { path = "crates/trie/parallel" }
reth-trie-sparse = { path = "crates/trie/sparse", default-features = false }
reth-zstd-compressors = { path = "crates/storage/zstd-compressors", default-features = false }
reth-ress-protocol = { path = "crates/ress/protocol" }
reth-ress-provider = { path = "crates/ress/provider" }
# revm
revm = { version = "14.0.0", features = [
"std",
"secp256k1",
"blst",
], default-features = false }
revm-inspectors = "0.6"
revm-primitives = { version = "9.0.0", features = [
"std",
], default-features = false }
revm = { version = "23.1.0", default-features = false }
revm-bytecode = { version = "4.0.0", default-features = false }
revm-database = { version = "4.0.0", default-features = false }
revm-state = { version = "4.0.0", default-features = false }
revm-primitives = { version = "19.0.0", default-features = false }
revm-interpreter = { version = "19.0.0", default-features = false }
revm-inspector = { version = "4.0.0", default-features = false }
revm-context = { version = "4.0.0", default-features = false }
revm-context-interface = { version = "4.0.0", default-features = false }
revm-database-interface = { version = "4.0.0", default-features = false }
op-revm = { version = "4.0.2", default-features = false }
revm-inspectors = "0.22.3"
# eth
alloy-chains = "0.1.18"
alloy-dyn-abi = "0.8.0"
alloy-primitives = { version = "0.8.0", default-features = false }
alloy-rlp = "0.3.4"
alloy-sol-types = "0.8.0"
alloy-trie = { version = "0.5", default-features = false }
alloy-chains = { version = "0.2.0", default-features = false }
alloy-dyn-abi = "1.1.0"
alloy-eip2124 = { version = "0.2.0", default-features = false }
alloy-evm = { version = "0.8.1", default-features = false }
alloy-primitives = { version = "1.1.0", default-features = false, features = ["map-foldhash"] }
alloy-rlp = { version = "0.3.10", default-features = false, features = ["core-net"] }
alloy-sol-macro = "1.1.0"
alloy-sol-types = { version = "1.1.0", default-features = false }
alloy-trie = { version = "0.8.1", default-features = false }
alloy-consensus = { version = "0.3.0", default-features = false }
alloy-eips = { version = "0.3.0", default-features = false }
alloy-genesis = { version = "0.3.0", default-features = false }
alloy-json-rpc = { version = "0.3.0", default-features = false }
alloy-network = { version = "0.3.0", default-features = false }
alloy-node-bindings = { version = "0.3.0", default-features = false }
alloy-provider = { version = "0.3.0", features = [
"reqwest",
], default-features = false }
alloy-pubsub = { version = "0.3.0", default-features = false }
alloy-rpc-client = { version = "0.3.0", default-features = false }
alloy-rpc-types = { version = "0.3.0", features = [
"eth",
], default-features = false }
alloy-rpc-types-admin = { version = "0.3.0", default-features = false }
alloy-rpc-types-anvil = { version = "0.3.0", default-features = false }
alloy-rpc-types-beacon = { version = "0.3.0", default-features = false }
alloy-rpc-types-engine = { version = "0.3.0", default-features = false }
alloy-rpc-types-eth = { version = "0.3.0", default-features = false }
alloy-rpc-types-mev = { version = "0.3.0", default-features = false }
alloy-rpc-types-trace = { version = "0.3.0", default-features = false }
alloy-rpc-types-txpool = { version = "0.3.0", default-features = false }
alloy-serde = { version = "0.3.0", default-features = false }
alloy-signer = { version = "0.3.0", default-features = false }
alloy-signer-local = { version = "0.3.0", default-features = false }
alloy-transport = { version = "0.3.0" }
alloy-transport-http = { version = "0.3.0", features = [
"reqwest-rustls-tls",
], default-features = false }
alloy-transport-ipc = { version = "0.3.0", default-features = false }
alloy-transport-ws = { version = "0.3.0", default-features = false }
alloy-hardforks = "0.2.0"
alloy-consensus = { version = "1.0.5", default-features = false }
alloy-contract = { version = "1.0.5", default-features = false }
alloy-eips = { version = "1.0.5", default-features = false }
alloy-genesis = { version = "1.0.5", default-features = false }
alloy-json-rpc = { version = "1.0.5", default-features = false }
alloy-network = { version = "1.0.5", default-features = false }
alloy-network-primitives = { version = "1.0.5", default-features = false }
alloy-provider = { version = "1.0.5", features = ["reqwest"], default-features = false }
alloy-pubsub = { version = "1.0.5", default-features = false }
alloy-rpc-client = { version = "1.0.5", default-features = false }
alloy-rpc-types = { version = "1.0.5", features = ["eth"], default-features = false }
alloy-rpc-types-admin = { version = "1.0.5", default-features = false }
alloy-rpc-types-anvil = { version = "1.0.5", default-features = false }
alloy-rpc-types-beacon = { version = "1.0.5", default-features = false }
alloy-rpc-types-debug = { version = "1.0.5", default-features = false }
alloy-rpc-types-engine = { version = "1.0.5", default-features = false }
alloy-rpc-types-eth = { version = "1.0.5", default-features = false }
alloy-rpc-types-mev = { version = "1.0.5", default-features = false }
alloy-rpc-types-trace = { version = "1.0.5", default-features = false }
alloy-rpc-types-txpool = { version = "1.0.5", default-features = false }
alloy-serde = { version = "1.0.5", default-features = false }
alloy-signer = { version = "1.0.5", default-features = false }
alloy-signer-local = { version = "1.0.5", default-features = false }
alloy-transport = { version = "1.0.5" }
alloy-transport-http = { version = "1.0.5", features = ["reqwest-rustls-tls"], default-features = false }
alloy-transport-ipc = { version = "1.0.5", default-features = false }
alloy-transport-ws = { version = "1.0.5", default-features = false }
# op
op-alloy-rpc-types = "0.2"
op-alloy-rpc-types-engine = "0.2"
op-alloy-network = "0.2"
alloy-op-evm = { version = "0.8.1", default-features = false }
alloy-op-hardforks = "0.2.0"
op-alloy-rpc-types = { version = "0.16.0", default-features = false }
op-alloy-rpc-types-engine = { version = "0.16.0", default-features = false }
op-alloy-network = { version = "0.16.0", default-features = false }
op-alloy-consensus = { version = "0.16.0", default-features = false }
op-alloy-rpc-jsonrpsee = { version = "0.16.0", default-features = false }
op-alloy-flz = { version = "0.13.0", default-features = false }
# misc
aquamarine = "0.5"
aquamarine = "0.6"
auto_impl = "1"
backon = "0.4"
backon = { version = "1.2", default-features = false, features = ["std-blocking-sleep", "tokio-sleep"] }
bincode = "1.3"
bitflags = "2.4"
blake3 = "1.5.5"
boyer-moore-magiclen = "0.2.16"
bytes = "1.5"
bytes = { version = "1.5", default-features = false }
cfg-if = "1.0"
clap = "4"
const_format = { version = "0.2.32", features = ["rust_1_64"] }
dashmap = "6.0"
derive_more = { version = "1", features = ["full"] }
derive_more = { version = "2", default-features = false, features = ["full"] }
dirs-next = "2.0.0"
dyn-clone = "1.0.17"
eyre = "0.6"
fdlimit = "0.3.0"
generic-array = "0.14"
humantime = "2.1"
humantime-serde = "1.1"
itertools = "0.13"
itertools = { version = "0.14", default-features = false }
linked_hash_set = "0.1"
lz4 = "1.28.1"
modular-bitfield = "0.11.2"
nybbles = "0.2.1"
once_cell = "1.19"
notify = { version = "8.0.0", default-features = false, features = ["macos_fsevent"] }
nybbles = { version = "0.3.0", default-features = false }
once_cell = { version = "1.19", default-features = false, features = ["critical-section"] }
parking_lot = "0.12"
paste = "1.0"
rand = "0.8.5"
rand = "0.9"
rayon = "1.7"
rustc-hash = { version = "2.0", default-features = false }
schnellru = "0.2"
serde = { version = "1.0", default-features = false }
serde_json = "1.0.94"
serde_with = "3.3.0"
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
serde_with = { version = "3", default-features = false, features = ["macros"] }
sha2 = { version = "0.10", default-features = false }
shellexpand = "3.0.0"
smallvec = "1"
strum = { version = "0.26", default-features = false }
strum = { version = "0.27", default-features = false }
strum_macros = "0.27"
syn = "2.0"
thiserror = "1.0"
thiserror-no-std = { version = "2.0.2", default-features = false }
tracing = "0.1.0"
thiserror = { version = "2.0.0", default-features = false }
tar = "0.4.44"
tracing = { version = "0.1.0", default-features = false }
tracing-appender = "0.2"
url = "2.3"
url = { version = "2.3", default-features = false }
zstd = "0.13"
byteorder = "1"
mini-moka = "0.10"
tar-no-std = { version = "0.3.2", default-features = false }
miniz_oxide = { version = "0.8.4", default-features = false }
# metrics
metrics = "0.23.0"
metrics-exporter-prometheus = { version = "0.15.0", default-features = false }
metrics = "0.24.0"
metrics-derive = "0.1"
metrics-exporter-prometheus = { version = "0.16.0", default-features = false }
metrics-process = "2.1.0"
metrics-util = "0.17.0"
metrics-util = { default-features = false, version = "0.19.0" }
# proc-macros
proc-macro2 = "1.0"
quote = "1.0"
# tokio
tokio = { version = "1.39", default-features = false }
tokio = { version = "1.44.2", default-features = false }
tokio-stream = "0.1.11"
tokio-util = { version = "0.7.4", features = ["codec"] }
@@ -513,39 +582,42 @@ async-stream = "0.3"
async-trait = "0.1.68"
futures = "0.3"
futures-core = "0.3"
futures-util = "0.3"
futures-util = { version = "0.3", default-features = false }
hyper = "1.3"
hyper-util = "0.1.5"
pin-project = "1.0.12"
reqwest = { version = "0.12", default-features = false }
tower = "0.4"
tower-http = "0.5"
tracing-futures = "0.2"
tower = "0.5"
tower-http = "0.6"
# p2p
discv5 = "0.7.0"
discv5 = "0.9"
if-addrs = "0.13"
# rpc
jsonrpsee = "0.24"
jsonrpsee-core = "0.24"
jsonrpsee-http-client = "0.24"
jsonrpsee-types = "0.24"
jsonrpsee = "0.25.1"
jsonrpsee-core = "0.25.1"
jsonrpsee-server = "0.25.1"
jsonrpsee-http-client = "0.25.1"
jsonrpsee-types = "0.25.1"
# http
http = "1.0"
http-body = "1.0"
http-body-util = "0.1.2"
jsonwebtoken = "9"
proptest-arbitrary-interop = "0.1.0"
# crypto
enr = { version = "0.12.1", default-features = false }
enr = { version = "0.13", default-features = false }
k256 = { version = "0.13", default-features = false, features = ["ecdsa"] }
secp256k1 = { version = "0.29", default-features = false, features = [
"global-context",
"recovery",
] }
secp256k1 = { version = "0.30", default-features = false, features = ["global-context", "recovery"] }
# rand 8 for secp256k1
rand_08 = { package = "rand", version = "0.8" }
# for eip-4844
c-kzg = "1.0.0"
c-kzg = "2.1.1"
# config
toml = "0.8"
@@ -553,12 +625,118 @@ toml = "0.8"
# misc-testing
arbitrary = "1.3"
assert_matches = "1.5.0"
criterion = "0.5"
iai-callgrind = "0.11"
pprof = "0.13"
criterion = { package = "codspeed-criterion-compat", version = "2.7" }
proptest = "1.4"
proptest-derive = "0.5"
serial_test = "3"
similar-asserts = "1.5.0"
tempfile = "3.8"
test-fuzz = "5"
similar-asserts = { version = "1.5.0", features = ["serde"] }
tempfile = "3.20"
test-fuzz = "7"
rstest = "0.24.0"
test-case = "3"
# ssz encoding
ethereum_ssz = "0.9.0"
ethereum_ssz_derive = "0.9.0"
# allocators
tikv-jemalloc-ctl = "0.6"
tikv-jemallocator = "0.6"
tracy-client = "0.18.0"
snmalloc-rs = { version = "0.3.7", features = ["build_cc"] }
# TODO: When we build for a windows target on an ubuntu runner, crunchy tries to
# get the wrong path, update this when the workflow has been updated
#
# See: https://github.com/eira-fransham/crunchy/issues/13
crunchy = "=0.2.2"
aes = "0.8.1"
ahash = "0.8"
anyhow = "1.0"
bindgen = { version = "0.70", default-features = false }
block-padding = "0.3.2"
cc = "=1.2.15"
cipher = "0.4.3"
comfy-table = "7.0"
concat-kdf = "0.1.0"
convert_case = "0.7.0"
crossbeam-channel = "0.5.13"
crossterm = "0.28.0"
csv = "1.3.0"
ctr = "0.9.2"
data-encoding = "2"
delegate = "0.13"
digest = "0.10.5"
hash-db = "=0.15.2"
hickory-resolver = "0.25.0"
hmac = "0.12.1"
human_bytes = "0.4.1"
indexmap = "2"
interprocess = "2.2.0"
lz4_flex = { version = "0.11", default-features = false }
memmap2 = "0.9.4"
mev-share-sse = { version = "0.5.0", default-features = false }
num-traits = "0.2.15"
page_size = "0.6.0"
parity-scale-codec = "3.2.1"
plain_hasher = "0.2"
pretty_assertions = "1.4"
ratatui = { version = "0.29", default-features = false }
ringbuffer = "0.15.0"
rmp-serde = "1.3"
roaring = "0.10.2"
rolling-file = "0.2.0"
sha3 = "0.10.5"
snap = "1.1.1"
socket2 = { version = "0.5", default-features = false }
sysinfo = { version = "0.33", default-features = false }
tracing-journald = "0.3"
tracing-logfmt = "0.3.3"
tracing-subscriber = { version = "0.3", default-features = false }
triehash = "0.8"
typenum = "1.15.0"
vergen = "9.0.4"
visibility = "0.1.1"
walkdir = "2.3.3"
vergen-git2 = "1.0.5"
[patch.crates-io]
# alloy-consensus = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-contract = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-eips = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-genesis = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-json-rpc = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-network = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-network-primitives = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-provider = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-pubsub = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-client = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-admin = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-anvil = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-beacon = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-debug = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-eth = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-mev = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-trace = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-rpc-types-txpool = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-serde = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-signer = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-signer-local = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-transport = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-transport-http = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-transport-ipc = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
# alloy-transport-ws = { git = "https://github.com/alloy-rs/alloy", branch = "main" }
#
# op-alloy-consensus = { git = "https://github.com/alloy-rs/op-alloy", rev = "ad607c1" }
# op-alloy-network = { git = "https://github.com/alloy-rs/op-alloy", rev = "ad607c1" }
# op-alloy-rpc-types = { git = "https://github.com/alloy-rs/op-alloy", rev = "ad607c1" }
# op-alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/op-alloy", rev = "ad607c1" }
#
# revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "1207e33" }
#
# jsonrpsee = { git = "https://github.com/paradigmxyz/jsonrpsee", branch = "matt/make-rpc-service-pub" }
# jsonrpsee-core = { git = "https://github.com/paradigmxyz/jsonrpsee", branch = "matt/make-rpc-service-pub" }
# jsonrpsee-server = { git = "https://github.com/paradigmxyz/jsonrpsee", branch = "matt/make-rpc-service-pub" }
# jsonrpsee-http-client = { git = "https://github.com/paradigmxyz/jsonrpsee", branch = "matt/make-rpc-service-pub" }
# jsonrpsee-types = { git = "https://github.com/paradigmxyz/jsonrpsee", branch = "matt/make-rpc-service-pub" }

View File

@@ -1,10 +1,19 @@
[build]
pre-build = [
# rust-bindgen dependencies: llvm-dev libclang-dev (>= 5.0) clang (>= 5.0)
"apt-get update && apt-get install --assume-yes --no-install-recommends llvm-dev libclang-6.0-dev clang-6.0"
# rust-bindgen dependencies: llvm-dev libclang-dev (>= 10) clang (>= 10)
# See: https://github.com/cross-rs/cross/wiki/FAQ#using-clang--bindgen for
# recommended clang versions for the given cross and bindgen version.
"apt-get update && apt-get install --assume-yes --no-install-recommends llvm-dev libclang-dev clang",
]
[target.x86_64-pc-windows-gnu]
# Why do we need a custom Dockerfile on Windows:
# 1. `reth-libmdbx` stopped working with MinGW 9.3 that cross image comes with.
# 2. To be able to update the version of MinGW, we need to also update the Ubuntu that the image is based on.
#
# Also see https://github.com/cross-rs/cross/issues/1667
# Inspired by https://github.com/cross-rs/cross/blob/9e2298e17170655342d3248a9c8ac37ef92ba38f/docker/Dockerfile.x86_64-pc-windows-gnu#L51
dockerfile = "./Dockerfile.x86_64-pc-windows-gnu"
[build.env]
passthrough = [
"JEMALLOC_SYS_WITH_LG_PAGE",
]
passthrough = ["JEMALLOC_SYS_WITH_LG_PAGE"]

View File

@@ -1,3 +1,5 @@
# syntax=docker.io/docker/dockerfile:1.7-labs
FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef
WORKDIR /app
@@ -9,7 +11,7 @@ RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-
# Builds a cargo-chef plan
FROM chef AS planner
COPY . .
COPY --exclude=.git --exclude=dist . .
RUN cargo chef prepare --recipe-path recipe.json
FROM chef AS builder
@@ -31,7 +33,7 @@ ENV FEATURES=$FEATURES
RUN cargo chef cook --profile $BUILD_PROFILE --features "$FEATURES" --recipe-path recipe.json
# Build application
COPY . .
COPY --exclude=.git --exclude=dist . .
RUN cargo build --profile $BUILD_PROFILE --features "$FEATURES" --locked --bin reth
# ARG is not resolved in COPY so we have to hack around it by copying the

20
Dockerfile.reproducible Normal file
View File

@@ -0,0 +1,20 @@
# Use the Rust 1.86 image based on Debian Bookworm
FROM rust:1.86-bookworm AS builder
# Install specific version of libclang-dev
RUN apt-get update && apt-get install -y libclang-dev=1:14.0-55.7~deb12u1
# Copy the project to the container
COPY ./ /app
WORKDIR /app
# Build the project with the reproducible settings
RUN make build-reproducible
RUN mv /app/target/x86_64-unknown-linux-gnu/release/reth /reth
# Create a minimal final image with just the binary
FROM gcr.io/distroless/cc-debian12:nonroot-6755e21ccd99ddead6edc8106ba03888cbeed41a
COPY --from=builder /reth /reth
EXPOSE 30303 30303/udp 9001 8545 8546
ENTRYPOINT [ "/reth" ]

View File

@@ -0,0 +1,56 @@
FROM ubuntu:24.04 AS cross-base
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates
RUN git clone https://github.com/cross-rs/cross /cross
WORKDIR /cross/docker
RUN git checkout 9e2298e17170655342d3248a9c8ac37ef92ba38f
RUN cp common.sh lib.sh / && /common.sh
RUN cp cmake.sh / && /cmake.sh
RUN cp xargo.sh / && /xargo.sh
FROM cross-base AS build
RUN apt-get install --assume-yes --no-install-recommends libz-mingw-w64-dev g++-mingw-w64-x86-64 gfortran-mingw-w64-x86-64
RUN dpkg --add-architecture i386 && \
apt-get install --assume-yes --no-install-recommends wget gpg && \
mkdir -pm755 /etc/apt/keyrings && wget -O - https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - && \
wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources && \
apt-get update && apt-get install --assume-yes --install-recommends winehq-stable
# run-detectors are responsible for calling the correct interpreter for exe
# files. For some reason it does not work inside a docker container (it works
# fine in the host). So we replace the usual paths of run-detectors to run wine
# directly. This only affects the guest, we are not messing up with the host.
#
# See /usr/share/doc/binfmt-support/detectors
RUN mkdir -p /usr/lib/binfmt-support/ && \
rm -f /usr/lib/binfmt-support/run-detectors /usr/bin/run-detectors && \
ln -s /usr/bin/wine /usr/lib/binfmt-support/run-detectors && \
ln -s /usr/bin/wine /usr/bin/run-detectors
RUN cp windows-entry.sh /
ENTRYPOINT ["/windows-entry.sh"]
RUN cp toolchain.cmake /opt/toolchain.cmake
# for why we always link with pthread support, see:
# https://github.com/cross-rs/cross/pull/1123#issuecomment-1312287148
ENV CROSS_TOOLCHAIN_PREFIX=x86_64-w64-mingw32-
ENV CROSS_TOOLCHAIN_SUFFIX=-posix
ENV CROSS_SYSROOT=/usr/x86_64-w64-mingw32
ENV CROSS_TARGET_RUNNER="env -u CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUNNER wine"
ENV CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc"$CROSS_TOOLCHAIN_SUFFIX" \
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
AR_x86_64_pc_windows_gnu="$CROSS_TOOLCHAIN_PREFIX"ar \
CC_x86_64_pc_windows_gnu="$CROSS_TOOLCHAIN_PREFIX"gcc"$CROSS_TOOLCHAIN_SUFFIX" \
CXX_x86_64_pc_windows_gnu="$CROSS_TOOLCHAIN_PREFIX"g++"$CROSS_TOOLCHAIN_SUFFIX" \
CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_gnu=/opt/toolchain.cmake \
BINDGEN_EXTRA_CLANG_ARGS_x86_64_pc_windows_gnu="--sysroot=$CROSS_SYSROOT -idirafter/usr/include" \
CROSS_CMAKE_SYSTEM_NAME=Windows \
CROSS_CMAKE_SYSTEM_PROCESSOR=AMD64 \
CROSS_CMAKE_CRT=gnu \
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -m64"

43
DockerfileOp Normal file
View File

@@ -0,0 +1,43 @@
FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef
WORKDIR /app
LABEL org.opencontainers.image.source=https://github.com/paradigmxyz/reth
LABEL org.opencontainers.image.licenses="MIT OR Apache-2.0"
RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config
FROM chef AS planner
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
FROM chef AS builder
COPY --from=planner /app/recipe.json recipe.json
COPY . .
ARG BUILD_PROFILE=release
ENV BUILD_PROFILE=$BUILD_PROFILE
ARG RUSTFLAGS=""
ENV RUSTFLAGS="$RUSTFLAGS"
RUN cargo chef cook --profile $BUILD_PROFILE --recipe-path recipe.json --manifest-path /app/crates/optimism/bin/Cargo.toml
COPY . .
RUN cargo build --profile $BUILD_PROFILE --bin op-reth --manifest-path /app/crates/optimism/bin/Cargo.toml
RUN ls -la /app/target/$BUILD_PROFILE/op-reth
RUN cp /app/target/$BUILD_PROFILE/op-reth /app/op-reth
FROM ubuntu:22.04 AS runtime
RUN apt-get update && \
apt-get install -y ca-certificates libssl-dev pkg-config strace && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /app/op-reth /usr/local/bin/
RUN chmod +x /usr/local/bin/op-reth
COPY LICENSE-* ./
EXPOSE 30303 30303/udp 9001 8545 8546 7545 8551
ENTRYPOINT ["/usr/local/bin/op-reth"]

41
HARDFORK-CHECKLIST.md Normal file
View File

@@ -0,0 +1,41 @@
# Non-exhaustive checklist for integrating new changes for an upcoming hard fork/devnet
## Introducing new EIP types or changes to primitive types
- Make required changes to primitive data structures on [alloy](https://github.com/alloy-rs/alloy)
- All new EIP data structures/constants/helpers etc. go into the `alloy-eips` crate at first.
- New transaction types go into `alloy-consensus`
- If there are changes to existing data structures, such as `Header` or `Block`, apply them to the types in
`alloy-consensus` (e.g. new `request_hashes` field in Prague)
## Engine API
- If there are changes to the engine API (e.g. a new `engine_newPayloadVx` and `engine_getPayloadVx` pair) add the new
types to the `alloy-rpc-types-engine` crate.
- If there are new parameters to the `engine_newPayloadVx` endpoint, add them to the `ExecutionPayloadSidecar` container
type. This types contains all additional parameters that are required to convert an `ExecutionPayload` to an EL block.
## Reth changes
### Updates to the engine API
- Add new endpoints to the `EngineApi` trait and implement endpoints.
- Update the `ExecutionPayload` + `ExecutionPayloadSidecar` to `Block` conversion if there are any additional
parameters.
- Update version specific validation checks in the `EngineValidator` trait.
## Op-Reth changes
### Updates to the engine API
Opstack tries to be as close to the L1 engine API as much as possible. Isthmus (Prague equivalent) introduced the first
deviation from the L1 engine API with an additional field in the `ExecutionPayload`. For this reason the op engine API
has it's own server traits `OpEngineApi`.
Adding a new versioned endpoint requires the same changes as for L1 just for the dedicated OP types.
### Hardforks
Opstack has dedicated hardkfors (e.g. Isthmus), that can be entirely opstack specific (e.g. Holocene) or can be an L1
equivalent hardfork. Since opstack sticks to the L1 header primitive, a new L1 equivalent hardfork also requires new
equivalent consensus checks. For this reason these `OpHardfork` must be mapped to L1 `EthereumHardfork`, for example:
`OpHardfork::Isthmus` corresponds to `EthereumHardfork::Prague`. These mappings must be defined in the `ChainSpec`.

View File

@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2022-2024 Reth Contributors
Copyright 2022-2025 Reth Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2022-2024 Reth Contributors
Copyright (c) 2022-2025 Reth Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

251
Makefile
View File

@@ -1,6 +1,7 @@
# Heavily inspired by Lighthouse: https://github.com/sigp/lighthouse/blob/693886b94176faa4cb450f024696cb69cda2fe58/Makefile
.DEFAULT_GOAL := help
GIT_SHA ?= $(shell git rev-parse HEAD)
GIT_TAG ?= $(shell git describe --tags --abbrev=0)
BIN_DIR = "dist/bin"
@@ -8,14 +9,14 @@ MDBX_PATH = "crates/storage/libmdbx-rs/mdbx-sys/libmdbx"
DB_TOOLS_DIR = "db-tools"
FULL_DB_TOOLS_DIR := $(shell pwd)/$(DB_TOOLS_DIR)/
BUILD_PATH = "target"
CARGO_TARGET_DIR ?= target
# List of features to use when building. Can be overridden via the environment.
# No jemalloc on Windows
ifeq ($(OS),Windows_NT)
FEATURES ?= asm-keccak
FEATURES ?= asm-keccak min-debug-logs
else
FEATURES ?= jemalloc asm-keccak
FEATURES ?= jemalloc asm-keccak min-debug-logs
endif
# Cargo profile for builds. Default is for local builds, CI uses an override.
@@ -25,16 +26,13 @@ PROFILE ?= release
CARGO_INSTALL_EXTRA_FLAGS ?=
# The release tag of https://github.com/ethereum/tests to use for EF tests
EF_TESTS_TAG := v12.2
EF_TESTS_TAG := v17.0
EF_TESTS_URL := https://github.com/ethereum/tests/archive/refs/tags/$(EF_TESTS_TAG).tar.gz
EF_TESTS_DIR := ./testing/ef-tests/ethereum-tests
# The docker image name
DOCKER_IMAGE_NAME ?= ghcr.io/paradigmxyz/reth
# Features in reth/op-reth binary crate other than "ethereum" and "optimism"
BIN_OTHER_FEATURES := asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs
##@ Help
.PHONY: help
@@ -52,8 +50,8 @@ install: ## Build and install the reth binary under `~/.cargo/bin`.
.PHONY: install-op
install-op: ## Build and install the op-reth binary under `~/.cargo/bin`.
cargo install --path bin/reth --bin op-reth --force --locked \
--features "optimism,$(FEATURES)" \
cargo install --path crates/optimism/bin --bin op-reth --force --locked \
--features "$(FEATURES)" \
--profile "$(PROFILE)" \
$(CARGO_INSTALL_EXTRA_FLAGS)
@@ -61,20 +59,49 @@ install-op: ## Build and install the op-reth binary under `~/.cargo/bin`.
build: ## Build the reth binary into `target` directory.
cargo build --bin reth --features "$(FEATURES)" --profile "$(PROFILE)"
# Environment variables for reproducible builds
# Initialize RUSTFLAGS
RUST_BUILD_FLAGS =
# Enable static linking to ensure reproducibility across builds
RUST_BUILD_FLAGS += --C target-feature=+crt-static
# Set the linker to use static libgcc to ensure reproducibility across builds
RUST_BUILD_FLAGS += -C link-arg=-static-libgcc
# Remove build ID from the binary to ensure reproducibility across builds
RUST_BUILD_FLAGS += -C link-arg=-Wl,--build-id=none
# Remove metadata hash from symbol names to ensure reproducible builds
RUST_BUILD_FLAGS += -C metadata=''
# Set timestamp from last git commit for reproducible builds
SOURCE_DATE ?= $(shell git log -1 --pretty=%ct)
# Disable incremental compilation to avoid non-deterministic artifacts
CARGO_INCREMENTAL_VAL = 0
# Set C locale for consistent string handling and sorting
LOCALE_VAL = C
# Set UTC timezone for consistent time handling across builds
TZ_VAL = UTC
.PHONY: build-reproducible
build-reproducible: ## Build the reth binary into `target` directory with reproducible builds. Only works for x86_64-unknown-linux-gnu currently
SOURCE_DATE_EPOCH=$(SOURCE_DATE) \
RUSTFLAGS="${RUST_BUILD_FLAGS} --remap-path-prefix $$(pwd)=." \
CARGO_INCREMENTAL=${CARGO_INCREMENTAL_VAL} \
LC_ALL=${LOCALE_VAL} \
TZ=${TZ_VAL} \
cargo build --bin reth --features "$(FEATURES)" --profile "release" --locked --target x86_64-unknown-linux-gnu
.PHONY: build-debug
build-debug: ## Build the reth binary into `target/debug` directory.
cargo build --bin reth --features "$(FEATURES)"
.PHONY: build-op
build-op: ## Build the op-reth binary into `target` directory.
cargo build --bin op-reth --features "optimism,$(FEATURES)" --profile "$(PROFILE)"
cargo build --bin op-reth --features "$(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml
# Builds the reth binary natively.
build-native-%:
cargo build --bin reth --target $* --features "$(FEATURES)" --profile "$(PROFILE)"
op-build-native-%:
cargo build --bin op-reth --target $* --features "optimism,$(FEATURES)" --profile "$(PROFILE)"
cargo build --bin op-reth --target $* --features "$(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml
# The following commands use `cross` to build a cross-compile.
#
@@ -106,7 +133,7 @@ build-%:
op-build-%:
RUSTFLAGS="-C link-arg=-lgcc -Clink-arg=-static-libgcc" \
cross build --bin op-reth --target $* --features "optimism,$(FEATURES)" --profile "$(PROFILE)"
cross build --bin op-reth --target $* --features "$(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml
# Unfortunately we can't easily use cross to build for Darwin because of licensing issues.
# If we wanted to, we would need to build a custom Docker image with the SDK available.
@@ -125,7 +152,7 @@ op-build-aarch64-apple-darwin:
# Create a `.tar.gz` containing a binary for a specific target.
define tarball_release_binary
cp $(BUILD_PATH)/$(1)/$(PROFILE)/$(2) $(BIN_DIR)/$(2)
cp $(CARGO_TARGET_DIR)/$(1)/$(PROFILE)/$(2) $(BIN_DIR)/$(2)
cd $(BIN_DIR) && \
tar -czf reth-$(GIT_TAG)-$(1)$(3).tar.gz $(2) && \
rm $(2)
@@ -148,7 +175,6 @@ build-release-tarballs: ## Create a series of `.tar.gz` files in the BIN_DIR dir
##@ Test
UNIT_TEST_ARGS := --locked --workspace --features 'jemalloc-prof' -E 'kind(lib)' -E 'kind(bin)' -E 'kind(proc-macro)'
UNIT_TEST_ARGS_OP := --locked --workspace --features 'jemalloc-prof,optimism' -E 'kind(lib)' -E 'kind(bin)' -E 'kind(proc-macro)'
COV_FILE := lcov.info
.PHONY: test-unit
@@ -156,21 +182,12 @@ test-unit: ## Run unit tests.
cargo install cargo-nextest --locked
cargo nextest run $(UNIT_TEST_ARGS)
.PHONY: test-unit-op
test-unit-op: ## Run unit tests (with optimism feature flag enabled).
cargo install cargo-nextest --locked
cargo nextest run $(UNIT_TEST_ARGS_OP)
.PHONY: cov-unit
cov-unit: ## Run unit tests with coverage.
rm -f $(COV_FILE)
cargo llvm-cov nextest --lcov --output-path $(COV_FILE) $(UNIT_TEST_ARGS)
.PHONY: cov-unit-op
cov-unit-op: ## Run unit tests with coverage (with optimism feature flag enabled).
rm -f $(COV_FILE)
cargo llvm-cov nextest --lcov --output-path $(COV_FILE) $(UNIT_TEST_ARGS_OP)
.PHONY: cov-report-html
cov-report-html: cov-unit ## Generate a HTML coverage report and open it in the browser.
cargo llvm-cov report --html
@@ -199,6 +216,14 @@ ef-tests: $(EF_TESTS_DIR) ## Runs Ethereum Foundation tests.
docker-build-push: ## Build and push a cross-arch Docker image tagged with the latest git tag.
$(call docker_build_push,$(GIT_TAG),$(GIT_TAG))
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
# `docker buildx create --use --driver docker-container --name cross-builder`
.PHONY: docker-build-push-git-sha
docker-build-push-git-sha: ## Build and push a cross-arch Docker image tagged with the latest git sha.
$(call docker_build_push,$(GIT_SHA),$(GIT_SHA))
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
@@ -213,17 +238,17 @@ docker-build-push-latest: ## Build and push a cross-arch Docker image tagged wit
# `docker buildx create --use --name cross-builder`
.PHONY: docker-build-push-nightly
docker-build-push-nightly: ## Build and push cross-arch Docker image tagged with the latest git tag with a `-nightly` suffix, and `latest-nightly`.
$(call docker_build_push,$(GIT_TAG)-nightly,latest-nightly)
$(call docker_build_push,nightly,nightly)
# Create a cross-arch Docker image with the given tags and push it
define docker_build_push
$(MAKE) build-x86_64-unknown-linux-gnu
mkdir -p $(BIN_DIR)/amd64
cp $(BUILD_PATH)/x86_64-unknown-linux-gnu/$(PROFILE)/reth $(BIN_DIR)/amd64/reth
cp $(CARGO_TARGET_DIR)/x86_64-unknown-linux-gnu/$(PROFILE)/reth $(BIN_DIR)/amd64/reth
$(MAKE) build-aarch64-unknown-linux-gnu
mkdir -p $(BIN_DIR)/arm64
cp $(BUILD_PATH)/aarch64-unknown-linux-gnu/$(PROFILE)/reth $(BIN_DIR)/arm64/reth
cp $(CARGO_TARGET_DIR)/aarch64-unknown-linux-gnu/$(PROFILE)/reth $(BIN_DIR)/arm64/reth
docker buildx build --file ./Dockerfile.cross . \
--platform linux/amd64,linux/arm64 \
@@ -243,6 +268,14 @@ endef
op-docker-build-push: ## Build and push a cross-arch Docker image tagged with the latest git tag.
$(call op_docker_build_push,$(GIT_TAG),$(GIT_TAG))
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
# `docker buildx create --use --driver docker-container --name cross-builder`
.PHONY: op-docker-build-push-git-sha
op-docker-build-push-git-sha: ## Build and push a cross-arch Docker image tagged with the latest git sha.
$(call op_docker_build_push,$(GIT_SHA),$(GIT_SHA))
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
@@ -257,17 +290,34 @@ op-docker-build-push-latest: ## Build and push a cross-arch Docker image tagged
# `docker buildx create --use --name cross-builder`
.PHONY: op-docker-build-push-nightly
op-docker-build-push-nightly: ## Build and push cross-arch Docker image tagged with the latest git tag with a `-nightly` suffix, and `latest-nightly`.
$(call op_docker_build_push,$(GIT_TAG)-nightly,latest-nightly)
$(call op_docker_build_push,nightly,nightly)
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
# `docker buildx create --use --name cross-builder`
.PHONY: docker-build-push-nightly-profiling
docker-build-push-nightly-profiling: ## Build and push cross-arch Docker image with profiling profile tagged with nightly-profiling.
$(call docker_build_push,nightly-profiling,nightly-profiling)
# Note: This requires a buildx builder with emulation support. For example:
#
# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64`
# `docker buildx create --use --name cross-builder`
.PHONY: op-docker-build-push-nightly-profiling
op-docker-build-push-nightly-profiling: ## Build and push cross-arch Docker image tagged with the latest git tag with a `-nightly` suffix, and `latest-nightly`.
$(call op_docker_build_push,nightly-profiling,nightly-profiling)
# Create a cross-arch Docker image with the given tags and push it
define op_docker_build_push
$(MAKE) op-build-x86_64-unknown-linux-gnu
mkdir -p $(BIN_DIR)/amd64
cp $(BUILD_PATH)/x86_64-unknown-linux-gnu/$(PROFILE)/op-reth $(BIN_DIR)/amd64/op-reth
cp $(CARGO_TARGET_DIR)/x86_64-unknown-linux-gnu/$(PROFILE)/op-reth $(BIN_DIR)/amd64/op-reth
$(MAKE) op-build-aarch64-unknown-linux-gnu
mkdir -p $(BIN_DIR)/arm64
cp $(BUILD_PATH)/aarch64-unknown-linux-gnu/$(PROFILE)/op-reth $(BIN_DIR)/arm64/op-reth
cp $(CARGO_TARGET_DIR)/aarch64-unknown-linux-gnu/$(PROFILE)/op-reth $(BIN_DIR)/arm64/op-reth
docker buildx build --file ./DockerfileOp.cross . \
--platform linux/amd64,linux/arm64 \
@@ -306,7 +356,15 @@ db-tools: ## Compile MDBX debugging tools.
.PHONY: update-book-cli
update-book-cli: build-debug ## Update book cli documentation.
@echo "Updating book cli doc..."
@./book/cli/update.sh $(BUILD_PATH)/debug/reth
@./book/cli/update.sh $(CARGO_TARGET_DIR)/debug/reth
.PHONY: profiling
profiling: ## Builds `reth` with optimisations, but also symbols.
RUSTFLAGS="-C target-cpu=native" cargo build --profile profiling --features jemalloc,asm-keccak
.PHONY: profiling-op
profiling-op: ## Builds `op-reth` with optimisations, but also symbols.
RUSTFLAGS="-C target-cpu=native" cargo build --profile profiling --features jemalloc,asm-keccak --bin op-reth --manifest-path crates/optimism/bin/Cargo.toml
.PHONY: maxperf
maxperf: ## Builds `reth` with the most aggressive optimisations.
@@ -314,7 +372,7 @@ maxperf: ## Builds `reth` with the most aggressive optimisations.
.PHONY: maxperf-op
maxperf-op: ## Builds `op-reth` with the most aggressive optimisations.
RUSTFLAGS="-C target-cpu=native" cargo build --profile maxperf --features jemalloc,asm-keccak,optimism --bin op-reth
RUSTFLAGS="-C target-cpu=native" cargo build --profile maxperf --features jemalloc,asm-keccak --bin op-reth --manifest-path crates/optimism/bin/Cargo.toml
.PHONY: maxperf-no-asm
maxperf-no-asm: ## Builds `reth` with the most aggressive optimisations, minus the "asm-keccak" feature.
@@ -324,29 +382,7 @@ maxperf-no-asm: ## Builds `reth` with the most aggressive optimisations, minus t
fmt:
cargo +nightly fmt
lint-reth:
cargo +nightly clippy \
--workspace \
--bin "reth" \
--lib \
--examples \
--tests \
--benches \
--features "ethereum $(BIN_OTHER_FEATURES)" \
-- -D warnings
lint-op-reth:
cargo +nightly clippy \
--workspace \
--bin "op-reth" \
--lib \
--examples \
--tests \
--benches \
--features "optimism $(BIN_OTHER_FEATURES)" \
-- -D warnings
lint-other-targets:
clippy:
cargo +nightly clippy \
--workspace \
--lib \
@@ -356,8 +392,19 @@ lint-other-targets:
--all-features \
-- -D warnings
clippy-op-dev:
cargo +nightly clippy \
--bin op-reth \
--workspace \
--lib \
--examples \
--tests \
--benches \
--locked \
--all-features
lint-codespell: ensure-codespell
codespell --skip "*.json"
codespell --skip "*.json" --skip "./testing/ef-tests/ethereum-tests"
ensure-codespell:
@if ! command -v codespell &> /dev/null; then \
@@ -365,42 +412,32 @@ ensure-codespell:
exit 1; \
fi
# Lint and format all TOML files in the project using dprint.
# This target ensures that TOML files follow consistent formatting rules,
# such as using spaces instead of tabs, and enforces other style guidelines
# defined in the dprint configuration file (e.g., dprint.json).
#
# Usage:
# make lint-toml
#
# Dependencies:
# - ensure-dprint: Ensures that dprint is installed and available in the system.
lint-toml: ensure-dprint
dprint fmt
ensure-dprint:
@if ! command -v dprint &> /dev/null; then \
echo "dprint not found. Please install it by running the command `cargo install --locked dprint` or refer to the following link for more information: https://github.com/dprint/dprint" \
exit 1; \
fi
lint:
make fmt && \
make lint-reth && \
make lint-op-reth && \
make lint-other-targets && \
make lint-codespell
make clippy && \
make lint-codespell && \
make lint-toml
fix-lint-reth:
cargo +nightly clippy \
--workspace \
--bin "reth" \
--lib \
--examples \
--tests \
--benches \
--features "ethereum $(BIN_OTHER_FEATURES)" \
--fix \
--allow-staged \
--allow-dirty \
-- -D warnings
fix-lint-op-reth:
cargo +nightly clippy \
--workspace \
--bin "op-reth" \
--lib \
--examples \
--tests \
--benches \
--features "optimism $(BIN_OTHER_FEATURES)" \
--fix \
--allow-staged \
--allow-dirty \
-- -D warnings
fix-lint-other-targets:
clippy-fix:
cargo +nightly clippy \
--workspace \
--lib \
@@ -414,9 +451,7 @@ fix-lint-other-targets:
-- -D warnings
fix-lint:
make fix-lint-reth && \
make fix-lint-op-reth && \
make fix-lint-other-targets && \
make clippy-fix && \
make fmt
.PHONY: rustdocs
@@ -429,47 +464,26 @@ rustdocs: ## Runs `cargo docs` to generate the Rust documents in the `target/doc
cargo +nightly docs \
--document-private-items
test-reth:
cargo test \
--workspace \
--bin "reth" \
--lib \
--examples \
--tests \
--benches \
--features "ethereum $(BIN_OTHER_FEATURES)"
test-op-reth:
cargo-test:
cargo test \
--workspace \
--bin "op-reth" \
--lib --examples \
--tests \
--benches \
--features "optimism $(BIN_OTHER_FEATURES)"
test-other-targets:
cargo test \
--workspace \
--lib \
--examples \
--tests \
--benches \
--all-features
test-doc:
cargo test --doc --workspace --features "ethereum"
cargo test --doc --workspace --features "optimism"
cargo test --doc --workspace --all-features
test:
make test-reth && \
make test-op-reth && \
make test-doc && \
make test-other-targets
make cargo-test && \
make test-doc
pr:
make lint && \
make update-book-cli && \
cargo docs --document-private-items && \
make test
check-features:
@@ -477,5 +491,4 @@ check-features:
--package reth-codecs \
--package reth-primitives-traits \
--package reth-primitives \
--package reth-rpc-types \
--feature-powerset
--feature-powerset

View File

@@ -1,7 +1,8 @@
# reth
[![bench status](https://github.com/paradigmxyz/reth/actions/workflows/bench.yml/badge.svg)](https://github.com/paradigmxyz/reth/actions/workflows/bench.yml)
[![CI status](https://github.com/paradigmxyz/reth/workflows/unit/badge.svg)][gh-ci]
[![cargo-deny status](https://github.com/paradigmxyz/reth/workflows/deny/badge.svg)][gh-deny]
[![cargo-lint status](https://github.com/paradigmxyz/reth/actions/workflows/lint.yml/badge.svg)][gh-lint]
[![Telegram Chat][tg-badge]][tg-url]
**Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol**
@@ -14,7 +15,7 @@
| [Crate Docs](https://reth.rs/docs)
[gh-ci]: https://github.com/paradigmxyz/reth/actions/workflows/unit.yml
[gh-deny]: https://github.com/paradigmxyz/reth/actions/workflows/deny.yml
[gh-lint]: https://github.com/paradigmxyz/reth/actions/workflows/lint.yml
[tg-badge]: https://img.shields.io/endpoint?color=neon&logo=telegram&label=chat&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fparadigm%5Freth
## What is Reth?
@@ -87,7 +88,7 @@ When updating this, also update:
- .github/workflows/lint.yml
-->
The Minimum Supported Rust Version (MSRV) of this project is [1.80.0](https://blog.rust-lang.org/2024/07/25/Rust-1.80.0.html).
The Minimum Supported Rust Version (MSRV) of this project is [1.86.0](https://blog.rust-lang.org/2025/04/03/Rust-1.86.0/).
See the book for detailed instructions on how to [build from source](https://paradigmxyz.github.io/reth/installation/source.html).
@@ -103,21 +104,14 @@ cd reth
Next, run the tests:
```sh
# Without Geth
cargo test --workspace
cargo nextest run --workspace
# With Geth
cargo test --workspace --features geth-tests
# With Ethereum Foundation tests
#
# Note: Requires cloning https://github.com/ethereum/tests
#
# cd testing/ef-tests && git clone https://github.com/ethereum/tests ethereum-tests
cargo test -p ef-tests --features ef-tests
# Run the Ethereum Foundation tests
make ef-tests
```
We recommend using [`cargo nextest`](https://nexte.st/) to speed up testing. With nextest installed, simply substitute `cargo test` with `cargo nextest run`.
We highly recommend using [`cargo nextest`](https://nexte.st/) to speed up testing.
Using `cargo test` to run tests may work fine, but this is not tested and does not support more advanced features like retries for spurious failures.
> **Note**
>

View File

@@ -1,5 +1,5 @@
# Security Policy
## Reporting a Vulnerability
## Report a Vulnerability
Contact georgios at paradigm.xyz.
Contact [security@ithaca.xyz](mailto:security@ithaca.xyz).

View File

@@ -14,33 +14,30 @@ workspace = true
[dependencies]
# reth
reth-provider = { workspace = true }
reth-cli-runner.workspace = true
reth-db = { workspace = true, features = ["mdbx"] }
reth-node-core.workspace = true
reth-cli-util.workspace = true
reth-fs-util.workspace = true
reth-node-api.workspace = true
reth-rpc-types.workspace = true
reth-rpc-types-compat.workspace = true
reth-primitives = { workspace = true, features = ["alloy-compat"] }
reth-node-core.workspace = true
reth-primitives-traits.workspace = true
reth-tracing.workspace = true
# alloy
alloy-provider = { workspace = true, features = ["engine-api", "reqwest-rustls-tls"], default-features = false }
alloy-rpc-types-engine.workspace = true
alloy-transport.workspace = true
alloy-transport-http.workspace = true
alloy-transport-ws.workspace = true
alloy-transport-ipc.workspace = true
alloy-pubsub.workspace = true
alloy-json-rpc.workspace = true
alloy-rpc-client.workspace = true
alloy-consensus.workspace = true
alloy-eips.workspace = true
alloy-json-rpc.workspace = true
alloy-primitives.workspace = true
alloy-provider = { workspace = true, features = ["engine-api", "reqwest-rustls-tls"], default-features = false }
alloy-pubsub.workspace = true
alloy-rpc-client.workspace = true
alloy-rpc-types-engine.workspace = true
alloy-transport-http.workspace = true
alloy-transport-ipc.workspace = true
alloy-transport-ws.workspace = true
alloy-transport.workspace = true
op-alloy-consensus = { workspace = true, features = ["alloy-compat"] }
# reqwest
reqwest = { workspace = true, default-features = false, features = [
"rustls-tls-native-roots",
] }
reqwest = { workspace = true, default-features = false, features = ["rustls-tls-native-roots"] }
# tower
tower.workspace = true
@@ -48,32 +45,23 @@ tower.workspace = true
# tracing
tracing.workspace = true
# io
# serde
serde.workspace = true
serde_json.workspace = true
# async
tokio = { workspace = true, features = [
"sync",
"macros",
"time",
"rt-multi-thread",
] }
tokio-util.workspace = true
futures.workspace = true
async-trait.workspace = true
futures.workspace = true
tokio = { workspace = true, features = ["sync", "macros", "time", "rt-multi-thread"] }
# misc
clap = { workspace = true, features = ["derive", "env"] }
eyre.workspace = true
thiserror.workspace = true
clap = { workspace = true, features = ["derive", "env"] }
humantime.workspace = true
# for writing data
csv = "1.3.0"
[target.'cfg(unix)'.dependencies]
tikv-jemallocator = { version = "0.5.0", optional = true }
libc = "0.2"
csv.workspace = true
[dev-dependencies]
reth-tracing.workspace = true
@@ -81,10 +69,17 @@ reth-tracing.workspace = true
[features]
default = ["jemalloc"]
asm-keccak = ["reth-primitives/asm-keccak"]
asm-keccak = [
"reth-node-core/asm-keccak",
"alloy-primitives/asm-keccak",
]
jemalloc = ["dep:tikv-jemallocator"]
jemalloc-prof = ["jemalloc", "tikv-jemallocator?/profiling"]
jemalloc = [
"reth-cli-util/jemalloc",
"reth-node-core/jemalloc",
]
jemalloc-prof = ["reth-cli-util/jemalloc-prof"]
tracy-allocator = ["reth-cli-util/tracy-allocator"]
min-error-logs = ["tracing/release_max_level_error"]
min-warn-logs = ["tracing/release_max_level_warn"]
@@ -92,12 +87,6 @@ min-info-logs = ["tracing/release_max_level_info"]
min-debug-logs = ["tracing/release_max_level_debug"]
min-trace-logs = ["tracing/release_max_level_trace"]
optimism = [
"reth-primitives/optimism",
"reth-provider/optimism",
"reth-node-core/optimism",
]
# no-op feature flag for switching between the `optimism` and default functionality in CI matrices
ethereum = []

View File

@@ -31,29 +31,100 @@ Otherwise, running `make maxperf` at the root of the repo should be sufficient f
`reth-bench` contains different commands to benchmark different patterns of engine API calls.
The `reth-bench new-payload-fcu` command is the most representative of ethereum mainnet live sync, alternating between sending `engine_newPayload` calls and `engine_forkchoiceUpdated` calls.
Below is an overview of how to execute a benchmark:
Below is an overview of how to run a benchmark:
1. **Setup**: Make sure `reth` is running in the background with the proper configuration. This setup involves ensuring the node is at the correct state, setting up profiling tools, and possibly more depending on the purpose of the benchmark's.
### Setup
2. **Run the Benchmark**:
```bash
reth-bench new-payload-fcu --rpc-url http://<rpc-url>:8545 --from <start_block> --to <end_block> --jwtsecret <jwt_file_path>
```
Make sure `reth` is running in the background with the proper configuration. This setup involves ensuring the node is at the correct state, setting up profiling tools, and possibly more depending on the purpose of the benchmark.
Replace `<rpc-url>`, `<start_block>`, `<end_block>`, and `<jwt_file_path>` with the appropriate values for your testing environment.
Note that this assumes that the benchmark node's engine API is running on `http://127.0.0.1:8545`, which is set as a default value in `reth-bench`. To configure this value, use the `--engine-rpc-url` flag.
Any consensus layer client configured to connect to `reth` should be shut down, as all the engine API interactions during benchmarking will be driven by `reth-bench`.
3. **Observe Outputs**: Upon running the command, `reth-bench` will output benchmark results, showing processing speeds and gas usage, which are crucial for analyzing the node's performance.
Depending on the block range you want to use in the benchmark you may need to unwind your node.
The head of the node should be behind the lowest block in the range.
Example output:
```
2024-05-30T00:45:20.806691Z INFO Running benchmark using data from RPC URL: http://<rpc-url>:8545
// ... logs per block
2024-05-30T00:45:34.203172Z INFO Total Ggas/s: 0.15 total_duration=5.085704882s total_gas_used=741620668.0
```
Starting with a synced ethereum mainnet node, to run a benchmark starting at block 21,000,000, the node would need to be unwound first:
```bash
reth stage unwind to-block 21000000
```
4. **Stop and Review**: Once the benchmark completes, terminate the `reth` process and review the logs and performance metrics collected, if any.
5. **Repeat**.
The following `reth-bench` command would then start the benchmark at block 21,000,000:
```bash
reth-bench new-payload-fcu --rpc-url <rpc-url> --from 21000000 --to <end_block> --jwtsecret <jwt_file_path>
```
Finally, make sure that reth is built using a build profile suitable for what you are trying to measure.
For example, if the purpose of the benchmark is to load test and measure `reth`'s maximum speed, it would be compiled with the `maxperf` profile:
```bash
make maxperf
```
If the purpose of the benchmark is for analyzing flamegraphs for a specific routine using `perf` or `samply`, it should be compiled with the `profiling` profile:
```bash
make profiling
```
If the purpose of the benchmark is to obtain `jemalloc` memory profiles that can then be analyzed by `jeprof`, it should be compiled with the `profiling` profile and the `jemalloc-prof` feature:
```bash
RUSTFLAGS="-C target-cpu=native" cargo build --profile profiling --features "jemalloc-prof,asm-keccak"
```
> [!NOTE]
> Jemalloc memory profiling currently only works on linux.
Finally, if the purpose of the benchmark is to profile the node when `snmalloc` is configured as the default allocator, it would be built with the following
command:
```bash
RUSTFLAGS="-C target-cpu=native" cargo build --profile profiling --no-default-features --features "snmalloc-native,asm-keccak"
```
### Run the Benchmark:
First, start the reth node. Here is an example that runs `reth` compiled with the `profiling` profile, runs `samply`, and configures `reth` to run with metrics enabled:
```bash
samply record -p 3001 target/profiling/reth node --metrics localhost:9001 --authrpc.jwtsecret <jwt_file_path>
```
```bash
reth-bench new-payload-fcu --rpc-url <rpc-url> --from <start_block> --to <end_block> --jwtsecret <jwt_file_path>
```
Replace `<start_block>`, `<end_block>`, and `<jwt_file_path>` with the appropriate values for your testing environment. `<rpc-url>` should be the URL of an RPC endpoint that can provide the blocks that will be used during the execution.
This should NOT be the node that is being used for the benchmark. The node behind `--rpc-url` will be used as a data source for fetching real blocks, so they can be replayed in
the benchmark. The node being benchmarked will not have these blocks.
Note that this assumes that the benchmark node's engine API is running on `http://127.0.0.1:8551`, which is set as a default value in `reth-bench`. To configure this value, use the `--engine-rpc-url` flag.
### Observe Outputs
After running the command, `reth-bench` will output benchmark results, showing processing speeds and gas usage, which are useful metrics for analyzing the node's performance.
Note that the `GGas/s` metric does _not_ include just execution, it currently measures the total `newPayload` latency, over the total gas used in the block.
Example output:
```
2024-05-30T00:45:20.806691Z INFO Running benchmark using data from RPC URL: http://<rpc-url>:8545
// ... logs per block
2024-05-30T00:45:34.203172Z INFO Total Ggas/s: 0.15 total_duration=5.085704882s total_gas_used=741620668.0
```
### Stop and Review
Once the benchmark completes, terminate the `reth` process and review the logs and performance metrics collected, if any.
If using `samply`, the `reth` node should be stopped (using Ctrl+C or `kill`). The `samply` tool will output the following on the command line:
```bash
All tasks terminated.
Local server listening at http://127.0.0.1:3001
Press Ctrl+C to stop.
```
As long as the `reth` node was compiled using the `profiling` profile, or with any other profile that includes debug symbols, the URL can be used to analyze flamegraphs, stack
charts, and other formats useful for analyzing the sampled stack data. There should also be an "Upload local profile" button on the `samply` web interface that can be used to
upload the profile and receive a permalink that can be shared.
This can be extremely useful for providing data and context to team members to justify an optimization, or to share with others to help diagnose a performance issue.
If `prometheus` is set up and scraping a `reth` node that has `--metrics` enabled, other metrics can be analyzed, like execution latency, state root latency, memory and CPU
usage over time, and many other metrics that are useful for diagnosing performance issues.
### Repeat
To reproduce the benchmark, first re-set the node to the block that the benchmark started at, using `reth stage unwind` as mentioned above, and repeat all of the above steps.
## Additional Considerations
@@ -62,4 +133,3 @@ Below is an overview of how to execute a benchmark:
- **Profiling tools**: If you are collecting CPU profiles, tools like [`samply`](https://github.com/mstange/samply) and [`perf`](https://perf.wiki.kernel.org/index.php/Main_Page) can be useful for analyzing node performance.
- **Benchmark Data**: `reth-bench` additionally contains a `--benchmark.output` flag, which will output gas used benchmarks across the benchmark range in CSV format. This may be useful for further data analysis.
- **Platform Information**: To ensure accurate and reproducible benchmarking, document the platform details, including hardware specifications, OS version, and any other relevant information before publishing any benchmarks.

View File

@@ -7,7 +7,7 @@ use alloy_json_rpc::{RequestPacket, ResponsePacket};
use alloy_pubsub::{PubSubConnect, PubSubFrontend};
use alloy_rpc_types_engine::{Claims, JwtSecret};
use alloy_transport::{
utils::guess_local_url, Authorization, Pbf, TransportConnect, TransportError,
utils::guess_local_url, Authorization, BoxTransport, TransportConnect, TransportError,
TransportErrorKind, TransportFut,
};
use alloy_transport_http::{reqwest::Url, Http, ReqwestTransport};
@@ -56,7 +56,7 @@ impl InnerTransport {
reqwest::Client::builder().tls_built_in_root_certs(url.scheme() == "https");
let mut headers = reqwest::header::HeaderMap::new();
// Add the JWT it to the headers if we can decode it.
// Add the JWT to the headers if we can decode it.
let (auth, claims) =
build_auth(jwt).map_err(|e| AuthenticatedTransportError::InvalidJwt(e.to_string()))?;
@@ -80,11 +80,12 @@ impl InnerTransport {
url: Url,
jwt: JwtSecret,
) -> Result<(Self, Claims), AuthenticatedTransportError> {
// Add the JWT it to the headers if we can decode it.
// Add the JWT to the headers if we can decode it.
let (auth, claims) =
build_auth(jwt).map_err(|e| AuthenticatedTransportError::InvalidJwt(e.to_string()))?;
let inner = WsConnect { url: url.to_string(), auth: Some(auth) }
let inner = WsConnect::new(url.clone())
.with_auth(auth)
.into_service()
.await
.map(Self::Ws)
@@ -113,9 +114,9 @@ pub struct AuthenticatedTransport {
/// Also contains the current claims being used. This is used to determine whether or not we
/// should create another client.
inner_and_claims: Arc<RwLock<(InnerTransport, Claims)>>,
/// The current jwt being used. This is so we can recreate claims.
/// The current jwt is being used. This is so we can recreate claims.
jwt: JwtSecret,
/// The current URL being used. This is so we can recreate the client if needed.
/// The current URL is being used. This is so we can recreate the client if needed.
url: Url,
}
@@ -174,19 +175,9 @@ impl AuthenticatedTransport {
}
match inner_and_claims.0 {
InnerTransport::Http(ref http) => {
let mut http = http;
http.call(req)
}
InnerTransport::Ws(ref ws) => {
let mut ws = ws;
ws.call(req)
}
InnerTransport::Ipc(ref ipc) => {
let mut ipc = ipc;
// we don't need to recreate the client for IPC
ipc.call(req)
}
InnerTransport::Http(ref mut http) => http.call(req),
InnerTransport::Ws(ref mut ws) => ws.call(req),
InnerTransport::Ipc(ref mut ipc) => ipc.call(req),
}
.await
})
@@ -208,7 +199,7 @@ fn build_auth(secret: JwtSecret) -> eyre::Result<(Authorization, Claims)> {
pub struct AuthenticatedTransportConnect {
/// The URL to connect to.
url: Url,
/// The JWT secret used to authenticate the transport.
/// The JWT secret is used to authenticate the transport.
jwt: JwtSecret,
}
@@ -220,21 +211,21 @@ impl AuthenticatedTransportConnect {
}
impl TransportConnect for AuthenticatedTransportConnect {
type Transport = AuthenticatedTransport;
fn is_local(&self) -> bool {
guess_local_url(&self.url)
}
fn get_transport<'a: 'b, 'b>(&'a self) -> Pbf<'b, Self::Transport, TransportError> {
AuthenticatedTransport::connect(self.url.clone(), self.jwt)
.map(|res| match res {
Ok(transport) => Ok(transport),
Err(err) => {
Err(TransportError::Transport(TransportErrorKind::Custom(Box::new(err))))
}
})
.boxed()
async fn get_transport(&self) -> Result<BoxTransport, TransportError> {
Ok(BoxTransport::new(
AuthenticatedTransport::connect(self.url.clone(), self.jwt)
.map(|res| match res {
Ok(transport) => Ok(transport),
Err(err) => {
Err(TransportError::Transport(TransportErrorKind::Custom(Box::new(err))))
}
})
.await?,
))
}
}

View File

@@ -3,12 +3,10 @@
use crate::{authenticated_transport::AuthenticatedTransportConnect, bench_mode::BenchMode};
use alloy_eips::BlockNumberOrTag;
use alloy_provider::{network::AnyNetwork, Provider, ProviderBuilder, RootProvider};
use alloy_provider::{network::AnyNetwork, Provider, RootProvider};
use alloy_rpc_client::ClientBuilder;
use alloy_rpc_types_engine::JwtSecret;
use alloy_transport::BoxTransport;
use alloy_transport_http::Http;
use reqwest::{Client, Url};
use reqwest::Url;
use reth_node_core::args::BenchmarkArgs;
use tracing::info;
@@ -18,10 +16,10 @@ use tracing::info;
/// queries, a [`BenchMode`] to determine whether the benchmark should run for a closed or open
/// range of blocks, and the next block to fetch.
pub(crate) struct BenchContext {
/// The auth provider used for engine API queries.
pub(crate) auth_provider: RootProvider<BoxTransport, AnyNetwork>,
/// The block provider used for block queries.
pub(crate) block_provider: RootProvider<Http<Client>, AnyNetwork>,
/// The auth provider is used for engine API queries.
pub(crate) auth_provider: RootProvider<AnyNetwork>,
/// The block provider is used for block queries.
pub(crate) block_provider: RootProvider<AnyNetwork>,
/// The benchmark mode, which defines whether the benchmark should run for a closed or open
/// range of blocks.
pub(crate) benchmark_mode: BenchMode,
@@ -43,17 +41,18 @@ impl BenchContext {
}
// set up alloy client for blocks
let block_provider =
ProviderBuilder::new().network::<AnyNetwork>().on_http(rpc_url.parse()?);
let client = ClientBuilder::default().http(rpc_url.parse()?);
let block_provider = RootProvider::<AnyNetwork>::new(client);
// If neither `--from` nor `--to` are provided, we will run the benchmark continuously,
// starting at the latest block.
let mut benchmark_mode = BenchMode::new(bench_args.from, bench_args.to)?;
// construct the authenticated provider
let auth_jwt = bench_args.auth_jwtsecret.clone().ok_or_else(|| {
eyre::eyre!("--auth-jwtsecret must be provided for authenticated RPC")
})?;
let auth_jwt = bench_args
.auth_jwtsecret
.clone()
.ok_or_else(|| eyre::eyre!("--jwtsecret must be provided for authenticated RPC"))?;
// fetch jwt from file
//
@@ -67,20 +66,21 @@ impl BenchContext {
// construct the authed transport
info!("Connecting to Engine RPC at {} for replay", auth_url);
let auth_transport = AuthenticatedTransportConnect::new(auth_url, jwt);
let client = ClientBuilder::default().connect_boxed(auth_transport).await?;
let auth_provider = RootProvider::<_, AnyNetwork>::new(client);
let client = ClientBuilder::default().connect_with(auth_transport).await?;
let auth_provider = RootProvider::<AnyNetwork>::new(client);
let first_block = match benchmark_mode {
BenchMode::Continuous => {
// fetch Latest block
block_provider.get_block_by_number(BlockNumberOrTag::Latest, true).await?.unwrap()
block_provider.get_block_by_number(BlockNumberOrTag::Latest).full().await?.unwrap()
}
BenchMode::Range(ref mut range) => {
match range.next() {
Some(block_number) => {
// fetch first block in range
block_provider
.get_block_by_number(block_number.into(), true)
.get_block_by_number(block_number.into())
.full()
.await?
.unwrap()
}

View File

@@ -9,6 +9,7 @@ mod context;
mod new_payload_fcu;
mod new_payload_only;
mod output;
mod send_payload;
/// `reth bench` command
#[derive(Debug, Parser)]
@@ -28,6 +29,18 @@ pub enum Subcommands {
/// Benchmark which only calls subsequent `newPayload` calls.
NewPayloadOnly(new_payload_only::Command),
/// Command for generating and sending an `engine_newPayload` request constructed from an RPC
/// block.
///
/// This command takes a JSON block input (either from a file or stdin) and generates
/// an execution payload that can be used with the `engine_newPayloadV*` API.
///
/// One powerful use case is pairing this command with the `cast block` command, for example:
///
/// `cast block latest--full --json | reth-bench send-payload --rpc-url localhost:5000
/// --jwt-secret $(cat ~/.local/share/reth/mainnet/jwt.hex)`
SendPayload(send_payload::Command),
}
impl BenchmarkCommand {
@@ -39,6 +52,7 @@ impl BenchmarkCommand {
match self.command {
Subcommands::NewPayloadFcu(command) => command.execute(ctx).await,
Subcommands::NewPayloadOnly(command) => command.execute(ctx).await,
Subcommands::SendPayload(command) => command.execute(ctx).await,
}
}

View File

@@ -12,14 +12,13 @@ use crate::{
valid_payload::{call_forkchoice_updated, call_new_payload},
};
use alloy_provider::Provider;
use alloy_rpc_types_engine::ForkchoiceState;
use alloy_rpc_types_engine::{ExecutionPayload, ForkchoiceState};
use clap::Parser;
use csv::Writer;
use humantime::parse_duration;
use reth_cli_runner::CliContext;
use reth_node_core::args::BenchmarkArgs;
use reth_primitives::{Block, B256};
use reth_rpc_types_compat::engine::payload::block_to_payload;
use std::time::Instant;
use std::time::{Duration, Instant};
use tracing::{debug, info};
/// `reth benchmark new-payload-fcu` command
@@ -29,6 +28,10 @@ pub struct Command {
#[arg(long, value_name = "RPC_URL", verbatim_doc_comment)]
rpc_url: String,
/// How long to wait after a forkchoice update before sending the next payload.
#[arg(long, value_name = "WAIT_TIME", value_parser = parse_duration, verbatim_doc_comment)]
wait_time: Option<Duration>,
#[command(flatten)]
benchmark: BenchmarkArgs,
}
@@ -36,23 +39,37 @@ pub struct Command {
impl Command {
/// Execute `benchmark new-payload-fcu` command
pub async fn execute(self, _ctx: CliContext) -> eyre::Result<()> {
let cloned_args = self.benchmark.clone();
let BenchContext { benchmark_mode, block_provider, auth_provider, mut next_block } =
BenchContext::new(&cloned_args, self.rpc_url).await?;
BenchContext::new(&self.benchmark, self.rpc_url).await?;
let (sender, mut receiver) = tokio::sync::mpsc::channel(1000);
tokio::task::spawn(async move {
while benchmark_mode.contains(next_block) {
let block_res = block_provider.get_block_by_number(next_block.into(), true).await;
let block_res = block_provider.get_block_by_number(next_block.into()).full().await;
let block = block_res.unwrap().unwrap();
let block_hash = block.header.hash;
let block = Block::try_from(block.inner).unwrap().seal(block_hash);
let head_block_hash = block.hash();
let safe_block_hash = block_provider
.get_block_by_number(block.number.saturating_sub(32).into(), false);
let finalized_block_hash = block_provider
.get_block_by_number(block.number.saturating_sub(64).into(), false);
let block = block
.into_inner()
.map_header(|header| header.map(|h| h.into_header_with_defaults()))
.try_map_transactions(|tx| {
// try to convert unknowns into op type so that we can also support optimism
tx.try_into_either::<op_alloy_consensus::OpTxEnvelope>()
})
.unwrap()
.into_consensus();
let blob_versioned_hashes =
block.body.blob_versioned_hashes_iter().copied().collect::<Vec<_>>();
// Convert to execution payload
let (payload, sidecar) = ExecutionPayload::from_block_slow(&block);
let header = block.header;
let head_block_hash = payload.block_hash();
let safe_block_hash =
block_provider.get_block_by_number(header.number.saturating_sub(32).into());
let finalized_block_hash =
block_provider.get_block_by_number(header.number.saturating_sub(64).into());
let (safe, finalized) = tokio::join!(safe_block_hash, finalized_block_hash,);
@@ -62,7 +79,15 @@ impl Command {
next_block += 1;
sender
.send((block, head_block_hash, safe_block_hash, finalized_block_hash))
.send((
header,
blob_versioned_hashes,
payload,
sidecar,
head_block_hash,
safe_block_hash,
finalized_block_hash,
))
.await
.unwrap();
}
@@ -71,18 +96,19 @@ impl Command {
// put results in a summary vec so they can be printed at the end
let mut results = Vec::new();
let total_benchmark_duration = Instant::now();
let mut total_wait_time = Duration::ZERO;
while let Some((block, head, safe, finalized)) = receiver.recv().await {
while let Some((header, versioned_hashes, payload, sidecar, head, safe, finalized)) = {
let wait_start = Instant::now();
let result = receiver.recv().await;
total_wait_time += wait_start.elapsed();
result
} {
// just put gas used here
let gas_used = block.header.gas_used;
let block_number = block.header.number;
let gas_used = header.gas_used;
let block_number = header.number;
let versioned_hashes: Vec<B256> =
block.blob_versioned_hashes().into_iter().copied().collect();
let parent_beacon_block_root = block.parent_beacon_block_root;
let payload = block_to_payload(block);
debug!(?block_number, "Sending payload",);
debug!(target: "reth-bench", ?block_number, "Sending payload",);
// construct fcu to call
let forkchoice_state = ForkchoiceState {
@@ -95,7 +121,8 @@ impl Command {
let message_version = call_new_payload(
&auth_provider,
payload,
parent_beacon_block_root,
sidecar,
header.parent_beacon_block_root,
versioned_hashes,
)
.await?;
@@ -111,12 +138,18 @@ impl Command {
let combined_result =
CombinedResult { block_number, new_payload_result, fcu_latency, total_latency };
// current duration since the start of the benchmark
let current_duration = total_benchmark_duration.elapsed();
// current duration since the start of the benchmark minus the time
// waiting for blocks
let current_duration = total_benchmark_duration.elapsed() - total_wait_time;
// convert gas used to gigagas, then compute gigagas per second
info!(%combined_result);
// wait if we need to
if let Some(wait_time) = self.wait_time {
tokio::time::sleep(wait_time).await;
}
// record the current result
let gas_row = TotalGasRow { block_number, gas_used, time: current_duration };
results.push((gas_row, combined_result));

View File

@@ -11,13 +11,12 @@ use crate::{
valid_payload::call_new_payload,
};
use alloy_provider::Provider;
use alloy_rpc_types_engine::ExecutionPayload;
use clap::Parser;
use csv::Writer;
use reth_cli_runner::CliContext;
use reth_node_core::args::BenchmarkArgs;
use reth_primitives::{Block, B256};
use reth_rpc_types_compat::engine::payload::block_to_payload;
use std::time::Instant;
use std::time::{Duration, Instant};
use tracing::{debug, info};
/// `reth benchmark new-payload-only` command
@@ -34,54 +33,70 @@ pub struct Command {
impl Command {
/// Execute `benchmark new-payload-only` command
pub async fn execute(self, _ctx: CliContext) -> eyre::Result<()> {
let cloned_args = self.benchmark.clone();
// TODO: this could be just a function I guess, but destructuring makes the code slightly
// more readable than a 4 element tuple.
let BenchContext { benchmark_mode, block_provider, auth_provider, mut next_block } =
BenchContext::new(&cloned_args, self.rpc_url).await?;
BenchContext::new(&self.benchmark, self.rpc_url).await?;
let (sender, mut receiver) = tokio::sync::mpsc::channel(1000);
tokio::task::spawn(async move {
while benchmark_mode.contains(next_block) {
let block_res = block_provider.get_block_by_number(next_block.into(), true).await;
let block_res = block_provider.get_block_by_number(next_block.into()).full().await;
let block = block_res.unwrap().unwrap();
let block_hash = block.header.hash;
let block = Block::try_from(block.inner).unwrap().seal(block_hash);
let block = block
.into_inner()
.map_header(|header| header.map(|h| h.into_header_with_defaults()))
.try_map_transactions(|tx| {
tx.try_into_either::<op_alloy_consensus::OpTxEnvelope>()
})
.unwrap()
.into_consensus();
let blob_versioned_hashes =
block.body.blob_versioned_hashes_iter().copied().collect::<Vec<_>>();
let (payload, sidecar) = ExecutionPayload::from_block_slow(&block);
next_block += 1;
sender.send(block).await.unwrap();
sender.send((block.header, blob_versioned_hashes, payload, sidecar)).await.unwrap();
}
});
// put results in a summary vec so they can be printed at the end
let mut results = Vec::new();
let total_benchmark_duration = Instant::now();
let mut total_wait_time = Duration::ZERO;
while let Some(block) = receiver.recv().await {
while let Some((header, versioned_hashes, payload, sidecar)) = {
let wait_start = Instant::now();
let result = receiver.recv().await;
total_wait_time += wait_start.elapsed();
result
} {
// just put gas used here
let gas_used = block.header.gas_used;
let versioned_hashes: Vec<B256> =
block.blob_versioned_hashes().into_iter().copied().collect();
let parent_beacon_block_root = block.parent_beacon_block_root;
let payload = block_to_payload(block);
let gas_used = header.gas_used;
let block_number = payload.block_number();
debug!(
number=?payload.block_number(),
target: "reth-bench",
number=?header.number,
"Sending payload to engine",
);
let start = Instant::now();
call_new_payload(&auth_provider, payload, parent_beacon_block_root, versioned_hashes)
.await?;
call_new_payload(
&auth_provider,
payload,
sidecar,
header.parent_beacon_block_root,
versioned_hashes,
)
.await?;
let new_payload_result = NewPayloadResult { gas_used, latency: start.elapsed() };
info!(%new_payload_result);
// current duration since the start of the benchmark
let current_duration = total_benchmark_duration.elapsed();
// current duration since the start of the benchmark minus the time
// waiting for blocks
let current_duration = total_benchmark_duration.elapsed() - total_wait_time;
// record the current result
let row = TotalGasRow { block_number, gas_used, time: current_duration };

View File

@@ -1,7 +1,7 @@
//! Contains various benchmark output formats, either for logging or for
//! serialization to / from files.
use reth_primitives::constants::gas_units::GIGAGAS;
use reth_primitives_traits::constants::GIGAGAS;
use serde::{ser::SerializeStruct, Serialize};
use std::time::Duration;
@@ -123,7 +123,6 @@ impl Serialize for CombinedResult {
#[derive(Debug)]
pub(crate) struct TotalGasRow {
/// The block number of the block being processed.
#[allow(dead_code)]
pub(crate) block_number: u64,
/// The total gas used in the block.
pub(crate) gas_used: u64,

View File

@@ -0,0 +1,174 @@
use alloy_provider::network::AnyRpcBlock;
use alloy_rpc_types_engine::ExecutionPayload;
use clap::Parser;
use eyre::{OptionExt, Result};
use op_alloy_consensus::OpTxEnvelope;
use reth_cli_runner::CliContext;
use std::io::{BufReader, Read, Write};
/// Command for generating and sending an `engine_newPayload` request constructed from an RPC
/// block.
#[derive(Debug, Parser)]
pub struct Command {
/// Path to the json file to parse. If not specified, stdin will be used.
#[arg(short, long)]
path: Option<String>,
/// The engine RPC url to use.
#[arg(
short,
long,
// Required if `mode` is `execute` or `cast`.
required_if_eq_any([("mode", "execute"), ("mode", "cast")]),
// If `mode` is not specified, then `execute` is used, so we need to require it.
required_unless_present("mode")
)]
rpc_url: Option<String>,
/// The JWT secret to use. Can be either a path to a file containing the secret or the secret
/// itself.
#[arg(short, long)]
jwt_secret: Option<String>,
#[arg(long, default_value_t = 3)]
new_payload_version: u8,
/// The mode to use.
#[arg(long, value_enum, default_value = "execute")]
mode: Mode,
}
#[derive(Debug, Clone, clap::ValueEnum)]
enum Mode {
/// Execute the `cast` command. This works with blocks of any size, because it pipes the
/// payload into the `cast` command.
Execute,
/// Print the `cast` command. Caution: this may not work with large blocks because of the
/// command length limit.
Cast,
/// Print the JSON payload. Can be piped into `cast` command if the block is small enough.
Json,
}
impl Command {
/// Read input from either a file or stdin
fn read_input(&self) -> Result<String> {
Ok(match &self.path {
Some(path) => reth_fs_util::read_to_string(path)?,
None => String::from_utf8(
BufReader::new(std::io::stdin()).bytes().collect::<Result<Vec<_>, _>>()?,
)?,
})
}
/// Load JWT secret from either a file or use the provided string directly
fn load_jwt_secret(&self) -> Result<Option<String>> {
match &self.jwt_secret {
Some(secret) => {
// Try to read as file first
match std::fs::read_to_string(secret) {
Ok(contents) => Ok(Some(contents.trim().to_string())),
// If file read fails, use the string directly
Err(_) => Ok(Some(secret.clone())),
}
}
None => Ok(None),
}
}
/// Execute the generate payload command
pub async fn execute(self, _ctx: CliContext) -> Result<()> {
// Load block
let block_json = self.read_input()?;
// Load JWT secret
let jwt_secret = self.load_jwt_secret()?;
// Parse the block
let block = serde_json::from_str::<AnyRpcBlock>(&block_json)?
.into_inner()
.map_header(|header| header.map(|h| h.into_header_with_defaults()))
.try_map_transactions(|tx| {
// try to convert unknowns into op type so that we can also support optimism
tx.try_into_either::<OpTxEnvelope>()
})?
.into_consensus();
// Extract parent beacon block root
let parent_beacon_block_root = block.header.parent_beacon_block_root;
// Extract blob versioned hashes
let blob_versioned_hashes =
block.body.blob_versioned_hashes_iter().copied().collect::<Vec<_>>();
// Convert to execution payload
let execution_payload = ExecutionPayload::from_block_slow(&block).0;
let use_v4 = block.header.requests_hash.is_some();
// Create JSON request data
let json_request = if use_v4 {
serde_json::to_string(&(
execution_payload,
blob_versioned_hashes,
parent_beacon_block_root,
block.header.requests_hash.unwrap_or_default(),
))?
} else {
serde_json::to_string(&(
execution_payload,
blob_versioned_hashes,
parent_beacon_block_root,
))?
};
// Print output or execute command
match self.mode {
Mode::Execute => {
// Create cast command
let mut command = std::process::Command::new("cast");
let method = if use_v4 { "engine_newPayloadV4" } else { "engine_newPayloadV3" };
command.arg("rpc").arg(method).arg("--raw");
if let Some(rpc_url) = self.rpc_url {
command.arg("--rpc-url").arg(rpc_url);
}
if let Some(secret) = &jwt_secret {
command.arg("--jwt-secret").arg(secret);
}
// Start cast process
let mut process = command.stdin(std::process::Stdio::piped()).spawn()?;
// Write to cast's stdin
process
.stdin
.take()
.ok_or_eyre("stdin not available")?
.write_all(json_request.as_bytes())?;
// Wait for cast to finish
process.wait()?;
}
Mode::Cast => {
let mut cmd = format!(
"cast rpc engine_newPayloadV{} --raw '{}'",
self.new_payload_version, json_request
);
if let Some(rpc_url) = self.rpc_url {
cmd += &format!(" --rpc-url {rpc_url}");
}
if let Some(secret) = &jwt_secret {
cmd += &format!(" --jwt-secret {secret}");
}
println!("{cmd}");
}
Mode::Json => {
println!("{json_request}");
}
}
Ok(())
}
}

View File

@@ -3,10 +3,16 @@
//! This is a tool that converts existing blocks into a stream of blocks for benchmarking purposes.
//! These blocks are then fed into reth as a stream of execution payloads.
// We use jemalloc for performance reasons.
#[cfg(all(feature = "jemalloc", unix))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png",
html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
)]
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
#[global_allocator]
static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator();
pub mod authenticated_transport;
pub mod bench;
@@ -24,7 +30,7 @@ fn main() {
}
// Run until either exit or sigint or sigterm
let runner = CliRunner::default();
let runner = CliRunner::try_default_runtime().unwrap();
runner
.run_command_until_exit(|ctx| {
let command = BenchmarkCommand::parse();

View File

@@ -2,19 +2,20 @@
//! response. This is useful for benchmarking, as it allows us to wait for a payload to be valid
//! before sending additional calls.
use alloy_provider::{ext::EngineApi, Network};
use alloy_eips::eip7685::RequestsOrHash;
use alloy_primitives::B256;
use alloy_provider::{ext::EngineApi, Network, Provider};
use alloy_rpc_types_engine::{
ExecutionPayloadInputV2, ForkchoiceState, ForkchoiceUpdated, PayloadAttributes, PayloadStatus,
ExecutionPayload, ExecutionPayloadInputV2, ExecutionPayloadSidecar, ExecutionPayloadV1,
ExecutionPayloadV3, ForkchoiceState, ForkchoiceUpdated, PayloadAttributes, PayloadStatus,
};
use alloy_transport::{Transport, TransportResult};
use alloy_transport::TransportResult;
use reth_node_api::EngineApiMessageVersion;
use reth_primitives::B256;
use reth_rpc_types::{ExecutionPayload, ExecutionPayloadV1, ExecutionPayloadV3};
use tracing::error;
/// An extension trait for providers that implement the engine API, to wait for a VALID response.
#[async_trait::async_trait]
pub trait EngineApiValidWaitExt<N, T>: Send + Sync {
pub trait EngineApiValidWaitExt<N>: Send + Sync {
/// Calls `engine_newPayloadV1` with the given [ExecutionPayloadV1], and waits until the
/// response is VALID.
async fn new_payload_v1_wait(
@@ -38,6 +39,16 @@ pub trait EngineApiValidWaitExt<N, T>: Send + Sync {
parent_beacon_block_root: B256,
) -> TransportResult<PayloadStatus>;
/// Calls `engine_newPayloadV4` with the given [ExecutionPayloadV3], parent beacon block root,
/// versioned hashes, and requests hash, and waits until the response is VALID.
async fn new_payload_v4_wait(
&self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<B256>,
parent_beacon_block_root: B256,
requests_hash: B256,
) -> TransportResult<PayloadStatus>;
/// Calls `engine_forkChoiceUpdatedV1` with the given [ForkchoiceState] and optional
/// [PayloadAttributes], and waits until the response is VALID.
async fn fork_choice_updated_v1_wait(
@@ -64,11 +75,10 @@ pub trait EngineApiValidWaitExt<N, T>: Send + Sync {
}
#[async_trait::async_trait]
impl<T, N, P> EngineApiValidWaitExt<N, T> for P
impl<N, P> EngineApiValidWaitExt<N> for P
where
N: Network,
T: Transport + Clone,
P: EngineApi<N, T>,
P: Provider<N> + EngineApi<N>,
{
async fn new_payload_v1_wait(
&self,
@@ -120,6 +130,11 @@ where
);
panic!("Invalid newPayloadV3: {status:?}");
}
if status.is_syncing() {
return Err(alloy_json_rpc::RpcError::UnsupportedFeature(
"invalid range: no canonical state found for parent of requested block",
))
}
status = self
.new_payload_v3(payload.clone(), versioned_hashes.clone(), parent_beacon_block_root)
.await?;
@@ -127,6 +142,60 @@ where
Ok(status)
}
async fn new_payload_v4_wait(
&self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<B256>,
parent_beacon_block_root: B256,
requests_hash: B256,
) -> TransportResult<PayloadStatus> {
// We cannot use `self.new_payload_v4` because it does not support sending
// `RequestsOrHash::Hash`
let mut status: PayloadStatus = self
.client()
.request(
"engine_newPayloadV4",
(
payload.clone(),
versioned_hashes.clone(),
parent_beacon_block_root,
RequestsOrHash::Hash(requests_hash),
),
)
.await?;
while !status.is_valid() {
if status.is_invalid() {
error!(
?status,
?payload,
?versioned_hashes,
?parent_beacon_block_root,
"Invalid newPayloadV4",
);
panic!("Invalid newPayloadV4: {status:?}");
}
if status.is_syncing() {
return Err(alloy_json_rpc::RpcError::UnsupportedFeature(
"invalid range: no canonical state found for parent of requested block",
))
}
status = self
.client()
.request(
"engine_newPayloadV4",
(
payload.clone(),
versioned_hashes.clone(),
parent_beacon_block_root,
RequestsOrHash::Hash(requests_hash),
),
)
.await?;
}
Ok(status)
}
async fn fork_choice_updated_v1_wait(
&self,
fork_choice_state: ForkchoiceState,
@@ -145,6 +214,11 @@ where
);
panic!("Invalid forkchoiceUpdatedV1: {status:?}");
}
if status.is_syncing() {
return Err(alloy_json_rpc::RpcError::UnsupportedFeature(
"invalid range: no canonical state found for parent of requested block",
))
}
status =
self.fork_choice_updated_v1(fork_choice_state, payload_attributes.clone()).await?;
}
@@ -170,6 +244,11 @@ where
);
panic!("Invalid forkchoiceUpdatedV2: {status:?}");
}
if status.is_syncing() {
return Err(alloy_json_rpc::RpcError::UnsupportedFeature(
"invalid range: no canonical state found for parent of requested block",
))
}
status =
self.fork_choice_updated_v2(fork_choice_state, payload_attributes.clone()).await?;
}
@@ -208,30 +287,35 @@ where
///
/// # Panics
/// If the given payload is a V3 payload, but a parent beacon block root is provided as `None`.
pub(crate) async fn call_new_payload<N, T, P: EngineApiValidWaitExt<N, T>>(
pub(crate) async fn call_new_payload<N, P: EngineApiValidWaitExt<N>>(
provider: P,
payload: ExecutionPayload,
sidecar: ExecutionPayloadSidecar,
parent_beacon_block_root: Option<B256>,
versioned_hashes: Vec<B256>,
) -> TransportResult<EngineApiMessageVersion> {
match payload {
ExecutionPayload::V4(_payload) => {
todo!("V4 payloads not supported yet");
// auth_provider
// .new_payload_v4_wait(payload, versioned_hashes, parent_beacon_block_root, ...)
// .await?;
//
// Ok(EngineApiMessageVersion::V4)
}
ExecutionPayload::V3(payload) => {
// We expect the caller
let parent_beacon_block_root = parent_beacon_block_root
.expect("parent_beacon_block_root is required for V3 payloads");
provider
.new_payload_v3_wait(payload, versioned_hashes, parent_beacon_block_root)
.await?;
.expect("parent_beacon_block_root is required for V3 payloads and higher");
Ok(EngineApiMessageVersion::V3)
if let Some(requests_hash) = sidecar.requests_hash() {
provider
.new_payload_v4_wait(
payload,
versioned_hashes,
parent_beacon_block_root,
requests_hash,
)
.await?;
Ok(EngineApiMessageVersion::V4)
} else {
provider
.new_payload_v3_wait(payload, versioned_hashes, parent_beacon_block_root)
.await?;
Ok(EngineApiMessageVersion::V3)
}
}
ExecutionPayload::V2(payload) => {
let input = ExecutionPayloadInputV2 {
@@ -254,15 +338,14 @@ pub(crate) async fn call_new_payload<N, T, P: EngineApiValidWaitExt<N, T>>(
/// Calls the correct `engine_forkchoiceUpdated` method depending on the given
/// `EngineApiMessageVersion`, using the provided forkchoice state and payload attributes for the
/// actual engine api message call.
pub(crate) async fn call_forkchoice_updated<N, T, P: EngineApiValidWaitExt<N, T>>(
pub(crate) async fn call_forkchoice_updated<N, P: EngineApiValidWaitExt<N>>(
provider: P,
message_version: EngineApiMessageVersion,
forkchoice_state: ForkchoiceState,
payload_attributes: Option<PayloadAttributes>,
) -> TransportResult<ForkchoiceUpdated> {
match message_version {
EngineApiMessageVersion::V4 => todo!("V4 payloads not supported yet"),
EngineApiMessageVersion::V3 => {
EngineApiMessageVersion::V3 | EngineApiMessageVersion::V4 | EngineApiMessageVersion::V5 => {
provider.fork_choice_updated_v3_wait(forkchoice_state, payload_attributes).await
}
EngineApiMessageVersion::V2 => {

View File

@@ -14,145 +14,119 @@ workspace = true
[dependencies]
# reth
reth-ethereum-cli.workspace = true
reth-chainspec.workspace = true
reth-config.workspace = true
reth-primitives.workspace = true
reth-fs-util.workspace = true
reth-db = { workspace = true, features = ["mdbx"] }
reth-db-api.workspace = true
reth-exex.workspace = true
reth-provider.workspace = true
reth-evm.workspace = true
reth-revm.workspace = true
reth-stages.workspace = true
reth-execution-types.workspace = true
reth-errors.workspace = true
reth-transaction-pool.workspace = true
reth-beacon-consensus.workspace = true
reth-cli-runner.workspace = true
reth-cli-commands.workspace = true
reth-cli-util.workspace = true
reth-consensus-common.workspace = true
reth-blockchain-tree.workspace = true
reth-rpc-builder.workspace = true
reth-rpc.workspace = true
reth-rpc-types.workspace = true
reth-rpc-types-compat.workspace = true
reth-rpc-api = { workspace = true, features = ["client"] }
reth-rpc-eth-types.workspace = true
reth-rpc-server-types.workspace = true
reth-network = { workspace = true, features = ["serde"] }
reth-network-p2p.workspace = true
reth-network-api.workspace = true
reth-downloaders.workspace = true
reth-tracing.workspace = true
reth-tasks.workspace = true
reth-payload-builder.workspace = true
reth-payload-primitives.workspace = true
reth-payload-validator.workspace = true
reth-basic-payload-builder.workspace = true
reth-static-file.workspace = true
reth-static-file-types = { workspace = true, features = ["clap"] }
reth-trie = { workspace = true, features = ["metrics"] }
reth-trie-db = { workspace = true, features = ["metrics"] }
reth-node-api.workspace = true
reth-node-optimism = { workspace = true, optional = true, features = [
"optimism",
] }
reth-node-core.workspace = true
reth-ethereum-payload-builder.workspace = true
reth-db-common.workspace = true
reth-node-ethereum.workspace = true
reth-ethereum-primitives.workspace = true
reth-node-ethereum = { workspace = true, features = ["js-tracer"] }
reth-node-builder.workspace = true
reth-node-events.workspace = true
reth-node-metrics.workspace = true
reth-consensus.workspace = true
reth-optimism-primitives.workspace = true
reth-engine-util.workspace = true
reth-prune.workspace = true
reth-stages-api.workspace = true
reth-optimism-cli = { workspace = true, optional = true }
reth-optimism-rpc.workspace = true
reth-tokio-util.workspace = true
reth-ress-protocol.workspace = true
reth-ress-provider.workspace = true
# crypto
alloy-rlp.workspace = true
# alloy
alloy-rpc-types = { workspace = true, features = ["engine"] }
# tracing
tracing.workspace = true
# io
fdlimit.workspace = true
serde.workspace = true
serde_json.workspace = true
toml = { workspace = true, features = ["display"] }
# metrics
metrics-process.workspace = true
# async
tokio = { workspace = true, features = [
"sync",
"macros",
"time",
"rt-multi-thread",
] }
futures.workspace = true
tokio = { workspace = true, features = ["sync", "macros", "time", "rt-multi-thread"] }
# misc
aquamarine.workspace = true
eyre.workspace = true
clap = { workspace = true, features = ["derive", "env"] }
tempfile.workspace = true
backon.workspace = true
similar-asserts.workspace = true
itertools.workspace = true
# p2p
discv5.workspace = true
[target.'cfg(unix)'.dependencies]
tikv-jemallocator = { version = "0.5.0", optional = true }
libc = "0.2"
eyre.workspace = true
[dev-dependencies]
reth-discv4.workspace = true
backon.workspace = true
similar-asserts.workspace = true
tempfile.workspace = true
[features]
default = ["jemalloc"]
default = ["jemalloc", "reth-revm/portable"]
dev = ["reth-cli-commands/dev"]
dev = ["reth-ethereum-cli/dev"]
asm-keccak = ["reth-node-core/asm-keccak", "reth-primitives/asm-keccak"]
jemalloc = ["dep:tikv-jemallocator", "reth-node-core/jemalloc", "reth-node-metrics/jemalloc"]
jemalloc-prof = ["jemalloc", "tikv-jemallocator?/profiling"]
min-error-logs = ["tracing/release_max_level_error"]
min-warn-logs = ["tracing/release_max_level_warn"]
min-info-logs = ["tracing/release_max_level_info"]
min-debug-logs = ["tracing/release_max_level_debug"]
min-trace-logs = ["tracing/release_max_level_trace"]
optimism = [
"dep:reth-node-optimism",
"dep:reth-optimism-cli",
"reth-beacon-consensus/optimism",
"reth-blockchain-tree/optimism",
"reth-node-core/optimism",
"reth-optimism-cli?/optimism",
"reth-primitives/optimism",
"reth-provider/optimism",
"reth-rpc/optimism",
asm-keccak = [
"reth-node-core/asm-keccak",
"reth-primitives/asm-keccak",
"reth-ethereum-cli/asm-keccak",
]
# no-op feature flag for switching between the `optimism` and default functionality in CI matrices
ethereum = []
jemalloc = [
"reth-cli-util/jemalloc",
"reth-node-core/jemalloc",
"reth-node-metrics/jemalloc",
"reth-ethereum-cli/jemalloc",
]
jemalloc-prof = [
"reth-cli-util/jemalloc",
"reth-cli-util/jemalloc-prof",
"reth-ethereum-cli/jemalloc-prof",
]
tracy-allocator = [
"reth-cli-util/tracy-allocator",
"reth-ethereum-cli/tracy-allocator",
]
# Because jemalloc is default and preferred over snmalloc when both features are
# enabled, `--no-default-features` should be used when enabling snmalloc or
# snmalloc-native.
snmalloc = [
"reth-cli-util/snmalloc",
"reth-ethereum-cli/snmalloc",
]
snmalloc-native = [
"reth-cli-util/snmalloc-native",
"reth-ethereum-cli/snmalloc-native",
]
min-error-logs = [
"tracing/release_max_level_error",
"reth-ethereum-cli/min-error-logs",
]
min-warn-logs = [
"tracing/release_max_level_warn",
"reth-ethereum-cli/min-warn-logs",
]
min-info-logs = [
"tracing/release_max_level_info",
"reth-ethereum-cli/min-info-logs",
]
min-debug-logs = [
"tracing/release_max_level_debug",
"reth-ethereum-cli/min-debug-logs",
]
min-trace-logs = [
"tracing/release_max_level_trace",
"reth-ethereum-cli/min-trace-logs",
]
[[bin]]
name = "reth"
path = "src/main.rs"
[[bin]]
name = "op-reth"
path = "src/optimism.rs"
required-features = ["optimism"]

View File

@@ -1,310 +1,15 @@
//! CLI definition and entrypoint to executable
use crate::{
args::{
utils::{chain_help, chain_value_parser, SUPPORTED_CHAINS},
LogArgs,
},
commands::debug_cmd,
macros::block_executor,
version::{LONG_VERSION, SHORT_VERSION},
};
use clap::{value_parser, Parser, Subcommand};
use reth_chainspec::ChainSpec;
use reth_cli_commands::{
config_cmd, db, dump_genesis, import, init_cmd, init_state,
node::{self, NoArgs},
p2p, prune, recover, stage,
};
use reth_cli_runner::CliRunner;
use reth_db::DatabaseEnv;
use reth_node_builder::{NodeBuilder, WithLaunchContext};
use reth_tracing::FileWorkerGuard;
use std::{ffi::OsString, fmt, future::Future, sync::Arc};
use tracing::info;
/// Re-export of the `reth_node_core` types specifically in the `cli` module.
/// Re-export of the [`reth_node_core`] types specifically in the `cli` module.
///
/// This is re-exported because the types in `reth_node_core::cli` originally existed in
/// `reth::cli` but were moved to the `reth_node_core` crate. This re-export avoids a breaking
/// change.
/// `reth::cli` but were moved to the [`reth_node_core`] crate. This re-export avoids a
/// breaking change.
pub use crate::core::cli::*;
/// The main reth cli interface.
/// Re-export of the [`reth_ethereum_cli`] types specifically in the `interface` module.
///
/// This is the entrypoint to the executable.
#[derive(Debug, Parser)]
#[command(author, version = SHORT_VERSION, long_version = LONG_VERSION, about = "Reth", long_about = None)]
pub struct Cli<Ext: clap::Args + fmt::Debug = NoArgs> {
/// The command to run
#[command(subcommand)]
command: Commands<Ext>,
/// The chain this node is running.
///
/// Possible values are either a built-in chain or the path to a chain specification file.
#[arg(
long,
value_name = "CHAIN_OR_PATH",
long_help = chain_help(),
default_value = SUPPORTED_CHAINS[0],
value_parser = chain_value_parser,
global = true,
)]
chain: Arc<ChainSpec>,
/// Add a new instance of a node.
///
/// Configures the ports of the node to avoid conflicts with the defaults.
/// This is useful for running multiple nodes on the same machine.
///
/// Max number of instances is 200. It is chosen in a way so that it's not possible to have
/// port numbers that conflict with each other.
///
/// Changes to the following port numbers:
/// - `DISCOVERY_PORT`: default + `instance` - 1
/// - `AUTH_PORT`: default + `instance` * 100 - 100
/// - `HTTP_RPC_PORT`: default - `instance` + 1
/// - `WS_RPC_PORT`: default + `instance` * 2 - 2
#[arg(long, value_name = "INSTANCE", global = true, default_value_t = 1, value_parser = value_parser!(u16).range(..=200))]
instance: u16,
#[command(flatten)]
logs: LogArgs,
}
impl Cli {
/// Parsers only the default CLI arguments
pub fn parse_args() -> Self {
Self::parse()
}
/// Parsers only the default CLI arguments from the given iterator
pub fn try_parse_args_from<I, T>(itr: I) -> Result<Self, clap::error::Error>
where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
{
Self::try_parse_from(itr)
}
}
impl<Ext: clap::Args + fmt::Debug> Cli<Ext> {
/// Execute the configured cli command.
///
/// This accepts a closure that is used to launch the node via the
/// [`NodeCommand`](node::NodeCommand).
///
///
/// # Example
///
/// ```no_run
/// use reth::cli::Cli;
/// use reth_node_ethereum::EthereumNode;
///
/// Cli::parse_args()
/// .run(|builder, _| async move {
/// let handle = builder.launch_node(EthereumNode::default()).await?;
///
/// handle.wait_for_node_exit().await
/// })
/// .unwrap();
/// ```
///
/// # Example
///
/// Parse additional CLI arguments for the node command and use it to configure the node.
///
/// ```no_run
/// use clap::Parser;
/// use reth::cli::Cli;
///
/// #[derive(Debug, Parser)]
/// pub struct MyArgs {
/// pub enable: bool,
/// }
///
/// Cli::parse()
/// .run(|builder, my_args: MyArgs| async move {
/// // launch the node
///
/// Ok(())
/// })
/// .unwrap();
/// ````
pub fn run<L, Fut>(mut self, launcher: L) -> eyre::Result<()>
where
L: FnOnce(WithLaunchContext<NodeBuilder<Arc<DatabaseEnv>>>, Ext) -> Fut,
Fut: Future<Output = eyre::Result<()>>,
{
// add network name to logs dir
self.logs.log_file_directory =
self.logs.log_file_directory.join(self.chain.chain.to_string());
let _guard = self.init_tracing()?;
info!(target: "reth::cli", "Initialized tracing, debug log directory: {}", self.logs.log_file_directory);
let runner = CliRunner::default();
match self.command {
Commands::Node(command) => {
runner.run_command_until_exit(|ctx| command.execute(ctx, launcher))
}
Commands::Init(command) => runner.run_blocking_until_ctrl_c(command.execute()),
Commands::InitState(command) => runner.run_blocking_until_ctrl_c(command.execute()),
Commands::Import(command) => runner.run_blocking_until_ctrl_c(
command.execute(|chain_spec| block_executor!(chain_spec)),
),
#[cfg(feature = "optimism")]
Commands::ImportOp(command) => runner.run_blocking_until_ctrl_c(command.execute()),
#[cfg(feature = "optimism")]
Commands::ImportReceiptsOp(command) => {
runner.run_blocking_until_ctrl_c(command.execute())
}
Commands::DumpGenesis(command) => runner.run_blocking_until_ctrl_c(command.execute()),
Commands::Db(command) => runner.run_blocking_until_ctrl_c(command.execute()),
Commands::Stage(command) => runner.run_command_until_exit(|ctx| {
command.execute(ctx, |chain_spec| block_executor!(chain_spec))
}),
Commands::P2P(command) => runner.run_until_ctrl_c(command.execute()),
#[cfg(feature = "dev")]
Commands::TestVectors(command) => runner.run_until_ctrl_c(command.execute()),
Commands::Config(command) => runner.run_until_ctrl_c(command.execute()),
Commands::Debug(command) => runner.run_command_until_exit(|ctx| command.execute(ctx)),
Commands::Recover(command) => runner.run_command_until_exit(|ctx| command.execute(ctx)),
Commands::Prune(command) => runner.run_until_ctrl_c(command.execute()),
}
}
/// Initializes tracing with the configured options.
///
/// If file logging is enabled, this function returns a guard that must be kept alive to ensure
/// that all logs are flushed to disk.
pub fn init_tracing(&self) -> eyre::Result<Option<FileWorkerGuard>> {
let guard = self.logs.init_tracing()?;
Ok(guard)
}
}
/// Commands to be executed
#[derive(Debug, Subcommand)]
pub enum Commands<Ext: clap::Args + fmt::Debug = NoArgs> {
/// Start the node
#[command(name = "node")]
Node(node::NodeCommand<Ext>),
/// Initialize the database from a genesis file.
#[command(name = "init")]
Init(init_cmd::InitCommand),
/// Initialize the database from a state dump file.
#[command(name = "init-state")]
InitState(init_state::InitStateCommand),
/// This syncs RLP encoded blocks from a file.
#[command(name = "import")]
Import(import::ImportCommand),
/// This syncs RLP encoded OP blocks below Bedrock from a file, without executing.
#[cfg(feature = "optimism")]
#[command(name = "import-op")]
ImportOp(reth_optimism_cli::ImportOpCommand),
/// This imports RLP encoded receipts from a file.
#[cfg(feature = "optimism")]
#[command(name = "import-receipts-op")]
ImportReceiptsOp(reth_optimism_cli::ImportReceiptsOpCommand),
/// Dumps genesis block JSON configuration to stdout.
DumpGenesis(dump_genesis::DumpGenesisCommand),
/// Database debugging utilities
#[command(name = "db")]
Db(db::Command),
/// Manipulate individual stages.
#[command(name = "stage")]
Stage(stage::Command),
/// P2P Debugging utilities
#[command(name = "p2p")]
P2P(p2p::Command),
/// Generate Test Vectors
#[cfg(feature = "dev")]
#[command(name = "test-vectors")]
TestVectors(reth_cli_commands::test_vectors::Command),
/// Write config to stdout
#[command(name = "config")]
Config(config_cmd::Command),
/// Various debug routines
#[command(name = "debug")]
Debug(debug_cmd::Command),
/// Scripts for node recovery
#[command(name = "recover")]
Recover(recover::Command),
/// Prune according to the configuration without any limits
#[command(name = "prune")]
Prune(prune::PruneCommand),
}
#[cfg(test)]
mod tests {
use super::*;
use crate::args::ColorMode;
use clap::CommandFactory;
#[test]
fn parse_color_mode() {
let reth = Cli::try_parse_args_from(["reth", "node", "--color", "always"]).unwrap();
assert_eq!(reth.logs.color, ColorMode::Always);
}
/// Tests that the help message is parsed correctly. This ensures that clap args are configured
/// correctly and no conflicts are introduced via attributes that would result in a panic at
/// runtime
#[test]
fn test_parse_help_all_subcommands() {
let reth = Cli::<NoArgs>::command();
for sub_command in reth.get_subcommands() {
let err = Cli::try_parse_args_from(["reth", sub_command.get_name(), "--help"])
.err()
.unwrap_or_else(|| {
panic!("Failed to parse help message {}", sub_command.get_name())
});
// --help is treated as error, but
// > Not a true "error" as it means --help or similar was used. The help message will be sent to stdout.
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayHelp);
}
}
/// Tests that the log directory is parsed correctly. It's always tied to the specific chain's
/// name
#[test]
fn parse_logs_path() {
let mut reth = Cli::try_parse_args_from(["reth", "node"]).unwrap();
reth.logs.log_file_directory =
reth.logs.log_file_directory.join(reth.chain.chain.to_string());
let log_dir = reth.logs.log_file_directory;
let end = format!("reth/logs/{}", SUPPORTED_CHAINS[0]);
assert!(log_dir.as_ref().ends_with(end), "{log_dir:?}");
let mut iter = SUPPORTED_CHAINS.iter();
iter.next();
for chain in iter {
let mut reth = Cli::try_parse_args_from(["reth", "node", "--chain", chain]).unwrap();
reth.logs.log_file_directory =
reth.logs.log_file_directory.join(reth.chain.chain.to_string());
let log_dir = reth.logs.log_file_directory;
let end = format!("reth/logs/{chain}");
assert!(log_dir.as_ref().ends_with(end), "{log_dir:?}");
}
}
#[test]
fn parse_env_filter_directives() {
let temp_dir = tempfile::tempdir().unwrap();
std::env::set_var("RUST_LOG", "info,evm=debug");
let reth = Cli::try_parse_args_from([
"reth",
"init",
"--datadir",
temp_dir.path().to_str().unwrap(),
"--log.file.filter",
"debug,net=trace",
])
.unwrap();
assert!(reth.run(|_, _| async move { Ok(()) }).is_ok());
}
}
/// This is re-exported because the types in [`reth_ethereum_cli::interface`] originally
/// existed in `reth::cli` but were moved to the [`reth_ethereum_cli`] crate. This re-export
/// avoids a breaking change.
pub use reth_ethereum_cli::interface::*;

View File

@@ -1,45 +0,0 @@
//! `reth debug` command. Collection of various debugging routines.
use clap::{Parser, Subcommand};
use reth_cli_runner::CliContext;
mod build_block;
mod execution;
mod in_memory_merkle;
mod merkle;
mod replay_engine;
/// `reth debug` command
#[derive(Debug, Parser)]
pub struct Command {
#[command(subcommand)]
command: Subcommands,
}
/// `reth debug` subcommands
#[derive(Subcommand, Debug)]
pub enum Subcommands {
/// Debug the roundtrip execution of blocks as well as the generated data.
Execution(execution::Command),
/// Debug the clean & incremental state root calculations.
Merkle(merkle::Command),
/// Debug in-memory state root calculation.
InMemoryMerkle(in_memory_merkle::Command),
/// Debug block building.
BuildBlock(build_block::Command),
/// Debug engine API by replaying stored messages.
ReplayEngine(replay_engine::Command),
}
impl Command {
/// Execute `debug` command
pub async fn execute(self, ctx: CliContext) -> eyre::Result<()> {
match self.command {
Subcommands::Execution(command) => command.execute(ctx).await,
Subcommands::Merkle(command) => command.execute(ctx).await,
Subcommands::InMemoryMerkle(command) => command.execute(ctx).await,
Subcommands::BuildBlock(command) => command.execute(ctx).await,
Subcommands::ReplayEngine(command) => command.execute(ctx).await,
}
}
}

View File

@@ -1,205 +0,0 @@
use std::{path::PathBuf, sync::Arc, time::Duration};
use clap::Parser;
use eyre::Context;
use reth_basic_payload_builder::{BasicPayloadJobGenerator, BasicPayloadJobGeneratorConfig};
use reth_beacon_consensus::{hooks::EngineHooks, BeaconConsensusEngine, EthBeaconConsensus};
use reth_blockchain_tree::{
BlockchainTree, BlockchainTreeConfig, ShareableBlockchainTree, TreeExternals,
};
use reth_cli_commands::common::{AccessRights, Environment, EnvironmentArgs};
use reth_cli_runner::CliContext;
use reth_cli_util::get_secret_key;
use reth_config::Config;
use reth_consensus::Consensus;
use reth_db::DatabaseEnv;
use reth_engine_util::engine_store::{EngineMessageStore, StoredEngineApiMessage};
use reth_fs_util as fs;
use reth_network::{BlockDownloaderProvider, NetworkHandle};
use reth_network_api::NetworkInfo;
use reth_payload_builder::{PayloadBuilderHandle, PayloadBuilderService};
use reth_provider::{
providers::BlockchainProvider, CanonStateSubscriptions, ChainSpecProvider, ProviderFactory,
};
use reth_prune::PruneModes;
use reth_stages::Pipeline;
use reth_static_file::StaticFileProducer;
use reth_tasks::TaskExecutor;
use reth_transaction_pool::noop::NoopTransactionPool;
use tokio::sync::oneshot;
use tracing::*;
use crate::{args::NetworkArgs, macros::block_executor};
/// `reth debug replay-engine` command
/// This script will read stored engine API messages and replay them by the timestamp.
/// It does not require
#[derive(Debug, Parser)]
pub struct Command {
#[command(flatten)]
env: EnvironmentArgs,
#[command(flatten)]
network: NetworkArgs,
/// The path to read engine API messages from.
#[arg(long = "engine-api-store", value_name = "PATH")]
engine_api_store: PathBuf,
/// The number of milliseconds between Engine API messages.
#[arg(long = "interval", default_value_t = 1_000)]
interval: u64,
}
impl Command {
async fn build_network(
&self,
config: &Config,
task_executor: TaskExecutor,
provider_factory: ProviderFactory<Arc<DatabaseEnv>>,
network_secret_path: PathBuf,
default_peers_path: PathBuf,
) -> eyre::Result<NetworkHandle> {
let secret_key = get_secret_key(&network_secret_path)?;
let network = self
.network
.network_config(config, provider_factory.chain_spec(), secret_key, default_peers_path)
.with_task_executor(Box::new(task_executor))
.build(provider_factory)
.start_network()
.await?;
info!(target: "reth::cli", peer_id = %network.peer_id(), local_addr = %network.local_addr(), "Connected to P2P network");
debug!(target: "reth::cli", peer_id = ?network.peer_id(), "Full peer ID");
Ok(network)
}
/// Execute `debug replay-engine` command
pub async fn execute(self, ctx: CliContext) -> eyre::Result<()> {
let Environment { provider_factory, config, data_dir } = self.env.init(AccessRights::RW)?;
let consensus: Arc<dyn Consensus> =
Arc::new(EthBeaconConsensus::new(provider_factory.chain_spec()));
let executor = block_executor!(provider_factory.chain_spec());
// Configure blockchain tree
let tree_externals =
TreeExternals::new(provider_factory.clone(), Arc::clone(&consensus), executor);
let tree = BlockchainTree::new(
tree_externals,
BlockchainTreeConfig::default(),
PruneModes::none(),
)?;
let blockchain_tree = Arc::new(ShareableBlockchainTree::new(tree));
// Set up the blockchain provider
let blockchain_db = BlockchainProvider::new(provider_factory.clone(), blockchain_tree)?;
// Set up network
let network_secret_path =
self.network.p2p_secret_key.clone().unwrap_or_else(|| data_dir.p2p_secret());
let network = self
.build_network(
&config,
ctx.task_executor.clone(),
provider_factory.clone(),
network_secret_path,
data_dir.known_peers(),
)
.await?;
// Set up payload builder
#[cfg(not(feature = "optimism"))]
let payload_builder = reth_ethereum_payload_builder::EthereumPayloadBuilder::default();
// Optimism's payload builder is implemented on the OptimismPayloadBuilder type.
#[cfg(feature = "optimism")]
let payload_builder = reth_node_optimism::OptimismPayloadBuilder::new(
reth_node_optimism::OptimismEvmConfig::default(),
);
let payload_generator = BasicPayloadJobGenerator::with_builder(
blockchain_db.clone(),
NoopTransactionPool::default(),
ctx.task_executor.clone(),
BasicPayloadJobGeneratorConfig::default(),
provider_factory.chain_spec(),
payload_builder,
);
#[cfg(feature = "optimism")]
let (payload_service, payload_builder): (
_,
PayloadBuilderHandle<reth_node_optimism::OptimismEngineTypes>,
) = PayloadBuilderService::new(payload_generator, blockchain_db.canonical_state_stream());
#[cfg(not(feature = "optimism"))]
let (payload_service, payload_builder): (
_,
PayloadBuilderHandle<reth_node_ethereum::EthEngineTypes>,
) = PayloadBuilderService::new(payload_generator, blockchain_db.canonical_state_stream());
ctx.task_executor.spawn_critical("payload builder service", payload_service);
// Configure the consensus engine
let network_client = network.fetch_client().await?;
let (beacon_consensus_engine, beacon_engine_handle) = BeaconConsensusEngine::new(
network_client,
Pipeline::builder().build(
provider_factory.clone(),
StaticFileProducer::new(provider_factory.clone(), PruneModes::none()),
),
blockchain_db.clone(),
Box::new(ctx.task_executor.clone()),
Box::new(network),
None,
payload_builder,
None,
u64::MAX,
EngineHooks::new(),
)?;
info!(target: "reth::cli", "Consensus engine initialized");
// Run consensus engine to completion
let (tx, rx) = oneshot::channel();
info!(target: "reth::cli", "Starting consensus engine");
ctx.task_executor.spawn_critical_blocking("consensus engine", async move {
let res = beacon_consensus_engine.await;
let _ = tx.send(res);
});
let engine_api_store = EngineMessageStore::new(self.engine_api_store.clone());
for filepath in engine_api_store.engine_messages_iter()? {
let contents =
fs::read(&filepath).wrap_err(format!("failed to read: {}", filepath.display()))?;
let message = serde_json::from_slice(&contents)
.wrap_err(format!("failed to parse: {}", filepath.display()))?;
debug!(target: "reth::cli", filepath = %filepath.display(), ?message, "Forwarding Engine API message");
match message {
StoredEngineApiMessage::ForkchoiceUpdated { state, payload_attrs } => {
let response =
beacon_engine_handle.fork_choice_updated(state, payload_attrs).await?;
debug!(target: "reth::cli", ?response, "Received for forkchoice updated");
}
StoredEngineApiMessage::NewPayload { payload, cancun_fields } => {
let response = beacon_engine_handle.new_payload(payload, cancun_fields).await?;
debug!(target: "reth::cli", ?response, "Received for new payload");
}
};
// Pause before next message
tokio::time::sleep(Duration::from_millis(self.interval)).await;
}
info!(target: "reth::cli", "Finished replaying engine API messages");
match rx.await? {
Ok(()) => info!("Beacon consensus engine exited successfully"),
Err(error) => {
error!(target: "reth::cli", %error, "Beacon consensus engine exited with an error")
}
};
Ok(())
}
}

View File

@@ -1,3 +0,0 @@
//! This contains all of the `reth` commands
pub mod debug_cmd;

View File

@@ -15,23 +15,19 @@
//! - `min-error-logs`: Disables all logs below `error` level.
//! - `min-warn-logs`: Disables all logs below `warn` level.
//! - `min-info-logs`: Disables all logs below `info` level. This can speed up the node, since fewer
//! calls to the logging component is made.
//! calls to the logging component are made.
//! - `min-debug-logs`: Disables all logs below `debug` level.
//! - `min-trace-logs`: Disables all logs below `trace` level.
//! - `optimism`: Enables [OP-Stack](https://stack.optimism.io/) support for the node. Note that
//! this breaks compatibility with the Ethereum mainnet as a new deposit transaction type is
//! introduced as well as gas cost changes.
#![doc(
html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png",
html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
)]
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
pub mod cli;
pub mod commands;
mod macros;
/// Re-exported utils.
pub mod utils {
@@ -44,9 +40,9 @@ pub mod utils {
/// Re-exported payload related types
pub mod payload {
pub use reth_ethereum_payload_builder::EthereumExecutionPayloadValidator;
pub use reth_payload_builder::*;
pub use reth_payload_primitives::*;
pub use reth_payload_validator::ExecutionPayloadValidator;
}
/// Re-exported from `reth_node_api`.
@@ -93,6 +89,7 @@ pub mod dirs {
/// Re-exported from `reth_chainspec`
pub mod chainspec {
pub use reth_chainspec::*;
pub use reth_ethereum_cli::chainspec::*;
}
/// Re-exported from `reth_provider`.
@@ -105,13 +102,14 @@ pub mod primitives {
pub use reth_primitives::*;
}
/// Re-exported from `reth_beacon_consensus`.
/// Re-exported from `reth_ethereum_consensus`.
pub mod beacon_consensus {
pub use reth_beacon_consensus::*;
pub use reth_node_ethereum::consensus::*;
}
/// Re-exported from `reth_blockchain_tree`.
pub mod blockchain_tree {
pub use reth_blockchain_tree::*;
/// Re-exported from `reth_consensus`.
pub mod consensus {
pub use reth_consensus::*;
}
/// Re-exported from `reth_consensus_common`.
@@ -144,15 +142,14 @@ pub mod transaction_pool {
/// Re-export of `reth_rpc_*` crates.
pub mod rpc {
/// Re-exported from `reth_rpc_builder`.
pub mod builder {
pub use reth_rpc_builder::*;
}
/// Re-exported from `reth_rpc_types`.
/// Re-exported from `alloy_rpc_types`.
pub mod types {
pub use reth_rpc_types::*;
pub use alloy_rpc_types::*;
}
/// Re-exported from `reth_rpc_server_types`.
@@ -184,12 +181,16 @@ pub mod rpc {
}
}
/// Ress subprotocol installation.
pub mod ress;
// re-export for convenience
#[doc(inline)]
pub use reth_cli_runner::{tokio_runtime, CliContext, CliRunner};
#[cfg(all(feature = "jemalloc", unix))]
use tikv_jemallocator as _;
// for rendering diagrams
use aquamarine as _;
// used in main
use clap as _;
use reth_cli_util as _;

View File

@@ -1,20 +0,0 @@
//! Helper macros
/// Creates the block executor type based on the configured feature.
///
/// Note(mattsse): This is incredibly horrible and will be replaced
#[cfg(not(feature = "optimism"))]
macro_rules! block_executor {
($chain_spec:expr) => {
reth_node_ethereum::EthExecutorProvider::ethereum($chain_spec)
};
}
#[cfg(feature = "optimism")]
macro_rules! block_executor {
($chain_spec:expr) => {
reth_node_optimism::OpExecutorProvider::optimism($chain_spec)
};
}
pub(crate) use block_executor;

View File

@@ -1,85 +1,45 @@
#![allow(missing_docs)]
// We use jemalloc for performance reasons.
#[cfg(all(feature = "jemalloc", unix))]
#[global_allocator]
static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator();
#[cfg(all(feature = "optimism", not(test)))]
compile_error!("Cannot build the `reth` binary with the `optimism` feature flag enabled. Did you mean to build `op-reth`?");
use clap::Parser;
use reth::{args::RessArgs, cli::Cli, ress::install_ress_subprotocol};
use reth_ethereum_cli::chainspec::EthereumChainSpecParser;
use reth_node_builder::NodeHandle;
use reth_node_ethereum::EthereumNode;
use tracing::info;
/// clap [Args] for Engine related arguments.
use clap::Args;
/// Parameters for configuring the engine
#[derive(Debug, Clone, Args, PartialEq, Eq, Default)]
#[command(next_help_heading = "Engine")]
pub struct EngineArgs {
/// Enable the engine2 experimental features on reth binary
#[arg(long = "engine.experimental", default_value = "false")]
pub experimental: bool,
}
#[cfg(not(feature = "optimism"))]
fn main() {
use clap::Parser;
use reth::cli::Cli;
use reth_node_builder::EngineNodeLauncher;
use reth_node_ethereum::{node::EthereumAddOns, EthereumNode};
use reth_provider::providers::BlockchainProvider2;
reth_cli_util::sigsegv_handler::install();
// Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided.
if std::env::var_os("RUST_BACKTRACE").is_none() {
std::env::set_var("RUST_BACKTRACE", "1");
unsafe { std::env::set_var("RUST_BACKTRACE", "1") };
}
if let Err(err) = Cli::<EngineArgs>::parse().run(|builder, engine_args| async move {
let enable_engine2 = engine_args.experimental;
match enable_engine2 {
true => {
let handle = builder
.with_types_and_provider::<EthereumNode, BlockchainProvider2<_>>()
.with_components(EthereumNode::components())
.with_add_ons::<EthereumAddOns>()
.launch_with_fn(|builder| {
let launcher = EngineNodeLauncher::new(
builder.task_executor().clone(),
builder.config().datadir(),
);
builder.launch_with(launcher)
})
.await?;
handle.node_exit_future.await
if let Err(err) =
Cli::<EthereumChainSpecParser, RessArgs>::parse().run(async move |builder, ress_args| {
info!(target: "reth::cli", "Launching node");
let NodeHandle { node, node_exit_future } =
builder.node(EthereumNode::default()).launch_with_debug_capabilities().await?;
// Install ress subprotocol.
if ress_args.enabled {
install_ress_subprotocol(
ress_args,
node.provider,
node.evm_config,
node.network,
node.task_executor,
node.add_ons_handle.engine_events.new_listener(),
)?;
}
false => {
let handle = builder.launch_node(EthereumNode::default()).await?;
handle.node_exit_future.await
}
}
}) {
node_exit_future.await
})
{
eprintln!("Error: {err:?}");
std::process::exit(1);
}
}
#[cfg(test)]
mod tests {
use super::*;
use clap::Parser;
/// A helper type to parse Args more easily
#[derive(Parser)]
struct CommandParser<T: Args> {
#[command(flatten)]
args: T,
}
#[test]
fn test_parse_engine_args() {
let default_args = EngineArgs::default();
let args = CommandParser::<EngineArgs>::parse_from(["reth"]).args;
assert_eq!(args, default_args);
}
}

View File

@@ -1,80 +0,0 @@
#![allow(missing_docs, rustdoc::missing_crate_level_docs)]
use clap::Parser;
use reth::cli::Cli;
use reth_node_builder::EngineNodeLauncher;
use reth_node_optimism::{args::RollupArgs, node::OptimismAddOns, OptimismNode};
use reth_optimism_rpc::eth::rpc::SequencerClient;
use reth_provider::providers::BlockchainProvider2;
// We use jemalloc for performance reasons
#[cfg(all(feature = "jemalloc", unix))]
#[global_allocator]
static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
#[cfg(not(feature = "optimism"))]
compile_error!("Cannot build the `op-reth` binary with the `optimism` feature flag disabled. Did you mean to build `reth`?");
#[cfg(feature = "optimism")]
fn main() {
reth_cli_util::sigsegv_handler::install();
// Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided.
if std::env::var_os("RUST_BACKTRACE").is_none() {
std::env::set_var("RUST_BACKTRACE", "1");
}
if let Err(err) = Cli::<RollupArgs>::parse().run(|builder, rollup_args| async move {
let enable_engine2 = rollup_args.experimental;
let sequencer_http_arg = rollup_args.sequencer_http.clone();
match enable_engine2 {
true => {
let handle = builder
.with_types_and_provider::<OptimismNode, BlockchainProvider2<_>>()
.with_components(OptimismNode::components(rollup_args))
.with_add_ons::<OptimismAddOns>()
.extend_rpc_modules(move |ctx| {
// register sequencer tx forwarder
if let Some(sequencer_http) = sequencer_http_arg {
ctx.registry
.eth_api()
.set_sequencer_client(SequencerClient::new(sequencer_http));
}
Ok(())
})
.launch_with_fn(|builder| {
let launcher = EngineNodeLauncher::new(
builder.task_executor().clone(),
builder.config().datadir(),
);
builder.launch_with(launcher)
})
.await?;
handle.node_exit_future.await
}
false => {
let handle = builder
.node(OptimismNode::new(rollup_args.clone()))
.extend_rpc_modules(move |ctx| {
// register sequencer tx forwarder
if let Some(sequencer_http) = sequencer_http_arg {
ctx.registry
.eth_api()
.set_sequencer_client(SequencerClient::new(sequencer_http));
}
Ok(())
})
.launch()
.await?;
handle.node_exit_future.await
}
}
}) {
eprintln!("Error: {err:?}");
std::process::exit(1);
}
}

67
bin/reth/src/ress.rs Normal file
View File

@@ -0,0 +1,67 @@
use reth_ethereum_primitives::EthPrimitives;
use reth_evm::ConfigureEvm;
use reth_network::{protocol::IntoRlpxSubProtocol, NetworkProtocols};
use reth_network_api::FullNetwork;
use reth_node_api::BeaconConsensusEngineEvent;
use reth_node_core::args::RessArgs;
use reth_provider::providers::{BlockchainProvider, ProviderNodeTypes};
use reth_ress_protocol::{NodeType, ProtocolState, RessProtocolHandler};
use reth_ress_provider::{maintain_pending_state, PendingState, RethRessProtocolProvider};
use reth_tasks::TaskExecutor;
use reth_tokio_util::EventStream;
use tokio::sync::mpsc;
use tracing::*;
/// Install `ress` subprotocol if it's enabled.
pub fn install_ress_subprotocol<P, E, N>(
args: RessArgs,
provider: BlockchainProvider<P>,
evm_config: E,
network: N,
task_executor: TaskExecutor,
engine_events: EventStream<BeaconConsensusEngineEvent<EthPrimitives>>,
) -> eyre::Result<()>
where
P: ProviderNodeTypes<Primitives = EthPrimitives>,
E: ConfigureEvm<Primitives = EthPrimitives> + Clone + 'static,
N: FullNetwork + NetworkProtocols,
{
info!(target: "reth::cli", "Installing ress subprotocol");
let pending_state = PendingState::default();
// Spawn maintenance task for pending state.
task_executor.spawn(maintain_pending_state(
engine_events,
provider.clone(),
pending_state.clone(),
));
let (tx, mut rx) = mpsc::unbounded_channel();
let provider = RethRessProtocolProvider::new(
provider,
evm_config,
Box::new(task_executor.clone()),
args.max_witness_window,
args.witness_max_parallel,
args.witness_cache_size,
pending_state,
)?;
network.add_rlpx_sub_protocol(
RessProtocolHandler {
provider,
node_type: NodeType::Stateful,
peers_handle: network.peers_handle().clone(),
max_active_connections: args.max_active_connections,
state: ProtocolState::new(tx),
}
.into_rlpx_sub_protocol(),
);
info!(target: "reth::cli", "Ress subprotocol support enabled");
task_executor.spawn(async move {
while let Some(event) = rx.recv().await {
trace!(target: "reth::ress", ?event, "Received ress event");
}
});
Ok(())
}

View File

@@ -2,37 +2,38 @@
- [Introduction](./intro.md)
- [Installation](./installation/installation.md)
- [Pre-Built Binaries](./installation/binaries.md)
- [Docker](./installation/docker.md)
- [Build from Source](./installation/source.md)
- [Build for ARM devices](./installation/build-for-arm-devices.md)
- [Update Priorities](./installation/priorities.md)
- [Pre-Built Binaries](./installation/binaries.md)
- [Docker](./installation/docker.md)
- [Build from Source](./installation/source.md)
- [Build for ARM devices](./installation/build-for-arm-devices.md)
- [Update Priorities](./installation/priorities.md)
- [Run a Node](./run/run-a-node.md)
- [Mainnet or official testnets](./run/mainnet.md)
- [OP Stack](./run/optimism.md)
- [Run an OP Mainnet Node](./run/sync-op-mainnet.md)
- [Private testnet](./run/private-testnet.md)
- [Metrics](./run/observability.md)
- [Configuring Reth](./run/config.md)
- [Transaction types](./run/transactions.md)
- [Pruning & Full Node](./run/pruning.md)
- [Ports](./run/ports.md)
- [Troubleshooting](./run/troubleshooting.md)
- [Mainnet or official testnets](./run/mainnet.md)
- [OP Stack](./run/optimism.md)
- [Run an OP Mainnet Node](./run/sync-op-mainnet.md)
- [Private testnet](./run/private-testnet.md)
- [Metrics](./run/observability.md)
- [Configuring Reth](./run/config.md)
- [Transaction types](./run/transactions.md)
- [Pruning & Full Node](./run/pruning.md)
- [Ports](./run/ports.md)
- [Troubleshooting](./run/troubleshooting.md)
- [Interacting with Reth over JSON-RPC](./jsonrpc/intro.md)
- [eth](./jsonrpc/eth.md)
- [web3](./jsonrpc/web3.md)
- [net](./jsonrpc/net.md)
- [txpool](./jsonrpc/txpool.md)
- [debug](./jsonrpc/debug.md)
- [trace](./jsonrpc/trace.md)
- [admin](./jsonrpc/admin.md)
- [rpc](./jsonrpc/rpc.md)
- [eth](./jsonrpc/eth.md)
- [web3](./jsonrpc/web3.md)
- [net](./jsonrpc/net.md)
- [txpool](./jsonrpc/txpool.md)
- [debug](./jsonrpc/debug.md)
- [trace](./jsonrpc/trace.md)
- [admin](./jsonrpc/admin.md)
- [rpc](./jsonrpc/rpc.md)
- [CLI Reference](./cli/cli.md) <!-- CLI_REFERENCE START -->
- [`reth`](./cli/reth.md)
- [`reth node`](./cli/reth/node.md)
- [`reth init`](./cli/reth/init.md)
- [`reth init-state`](./cli/reth/init-state.md)
- [`reth import`](./cli/reth/import.md)
- [`reth import-era`](./cli/reth/import-era.md)
- [`reth dump-genesis`](./cli/reth/dump-genesis.md)
- [`reth db`](./cli/reth/db.md)
- [`reth db stats`](./cli/reth/db/stats.md)
@@ -48,6 +49,7 @@
- [`reth db clear static-file`](./cli/reth/db/clear/static-file.md)
- [`reth db version`](./cli/reth/db/version.md)
- [`reth db path`](./cli/reth/db/path.md)
- [`reth download`](./cli/reth/download.md)
- [`reth stage`](./cli/reth/stage.md)
- [`reth stage run`](./cli/reth/stage/run.md)
- [`reth stage drop`](./cli/reth/stage/drop.md)
@@ -70,14 +72,13 @@
- [`reth debug merkle`](./cli/reth/debug/merkle.md)
- [`reth debug in-memory-merkle`](./cli/reth/debug/in-memory-merkle.md)
- [`reth debug build-block`](./cli/reth/debug/build-block.md)
- [`reth debug replay-engine`](./cli/reth/debug/replay-engine.md)
- [`reth recover`](./cli/reth/recover.md)
- [`reth recover storage-tries`](./cli/reth/recover/storage-tries.md)
- [`reth prune`](./cli/reth/prune.md)
- [Developers](./developers/developers.md) <!-- CLI_REFERENCE END -->
- [Execution Extensions](./developers/exex/exex.md)
- [How do ExExes work?](./developers/exex/how-it-works.md)
- [Hello World](./developers/exex/hello-world.md)
- [Tracking State](./developers/exex/tracking-state.md)
- [Remote](./developers/exex/remote.md)
- [Contribute](./developers/contribute.md)
- [Execution Extensions](./developers/exex/exex.md)
- [How do ExExes work?](./developers/exex/how-it-works.md)
- [Hello World](./developers/exex/hello-world.md)
- [Tracking State](./developers/exex/tracking-state.md)
- [Remote](./developers/exex/remote.md)
- [Contribute](./developers/contribute.md)

4
book/cli/SUMMARY.md vendored
View File

@@ -3,6 +3,7 @@
- [`reth init`](./reth/init.md)
- [`reth init-state`](./reth/init-state.md)
- [`reth import`](./reth/import.md)
- [`reth import-era`](./reth/import-era.md)
- [`reth dump-genesis`](./reth/dump-genesis.md)
- [`reth db`](./reth/db.md)
- [`reth db stats`](./reth/db/stats.md)
@@ -18,6 +19,7 @@
- [`reth db clear static-file`](./reth/db/clear/static-file.md)
- [`reth db version`](./reth/db/version.md)
- [`reth db path`](./reth/db/path.md)
- [`reth download`](./reth/download.md)
- [`reth stage`](./reth/stage.md)
- [`reth stage run`](./reth/stage/run.md)
- [`reth stage drop`](./reth/stage/drop.md)
@@ -40,8 +42,6 @@
- [`reth debug merkle`](./reth/debug/merkle.md)
- [`reth debug in-memory-merkle`](./reth/debug/in-memory-merkle.md)
- [`reth debug build-block`](./reth/debug/build-block.md)
- [`reth debug replay-engine`](./reth/debug/replay-engine.md)
- [`reth recover`](./reth/recover.md)
- [`reth recover storage-tries`](./reth/recover/storage-tries.md)
- [`reth prune`](./reth/prune.md)

View File

@@ -1,294 +0,0 @@
#!/usr/bin/env python3
import argparse
import os
import re
import subprocess
import sys
from os import makedirs, path
HELP_KEY = "help"
SECTION_START = "<!-- CLI_REFERENCE START -->"
SECTION_END = "<!-- CLI_REFERENCE END -->"
SECTION_RE = rf"\s*{SECTION_START}.*?{SECTION_END}"
README = """\
# CLI Reference
<!-- Generated by scripts/gen_output/help.py -->
Automatically-generated CLI reference from `--help` output.
{{#include ./SUMMARY.md}}
"""
def write_file(file_path, content):
content = "\n".join([line.rstrip() for line in content.split("\n")])
with open(file_path, "w") as f:
f.write(content)
def main():
args = parse_args(sys.argv[1:])
for cmd in args.commands:
if cmd.find(" ") >= 0:
raise Exception(f"subcommands are not allowed: {cmd}")
makedirs(args.out_dir, exist_ok=True)
output = {}
# Iterate over all commands and their subcommands.
cmd_iter = [[cmd] for cmd in args.commands]
for cmd in cmd_iter:
subcmds, stdout = get_entry(cmd)
if args.verbose and len(subcmds) > 0:
eprint(f"Found subcommands for \"{' '.join(cmd)}\": {subcmds}")
# Add entry to output map, e.g. `output["cmd"]["subcmd"]["help"] = "..."`.
e = output
for arg in cmd:
tmp = e.get(arg)
if not tmp:
e[arg] = {}
tmp = e[arg]
e = tmp
e[HELP_KEY] = stdout
# Append subcommands.
for subcmd in subcmds:
cmd_iter.append(cmd + [subcmd])
# Generate markdown files.
summary = ""
root_summary = ""
for cmd, obj in output.items():
cmd_markdown(args.out_dir, cmd, obj)
root_path = path.relpath(args.out_dir, args.root_dir)
summary += cmd_summary("", cmd, obj, 0)
summary += "\n"
root_summary += cmd_summary(root_path, cmd, obj, args.root_indentation)
root_summary += "\n"
write_file(path.join(args.out_dir, "SUMMARY.md"), summary)
# Generate README.md.
if args.readme:
write_file(path.join(args.out_dir, "README.md"), README)
if args.root_summary:
update_root_summary(args.root_dir, root_summary)
def parse_args(args: list[str]):
"""Parses command line arguments."""
parser = argparse.ArgumentParser(
description="Generate markdown files from help output of commands"
)
parser.add_argument("--root-dir", default=".", help="Root directory")
parser.add_argument(
"--root-indentation",
default=0,
type=int,
help="Indentation for the root SUMMARY.md file",
)
parser.add_argument("--out-dir", help="Output directory")
parser.add_argument(
"--readme",
action="store_true",
help="Whether to add a README.md file",
)
parser.add_argument(
"--root-summary",
action="store_true",
help="Whether to update the root SUMMARY.md file",
)
parser.add_argument(
"commands",
nargs="+",
help="Command to generate markdown for. Can be a subcommand.",
)
parser.add_argument(
"--verbose", "-v", action="store_true", help="Print verbose output"
)
return parser.parse_known_args(args)[0]
def get_entry(cmd: list[str]):
"""Returns the subcommands and help output for a command."""
env = os.environ.copy()
env["NO_COLOR"] = "1"
env["COLUMNS"] = "100"
env["LINES"] = "10000"
output = subprocess.run(cmd + ["--help"], capture_output=True, env=env)
if output.returncode != 0:
stderr = output.stderr.decode("utf-8")
raise Exception(f"Command \"{' '.join(cmd)}\" failed:\n{stderr}")
stdout = output.stdout.decode("utf-8")
subcmds = parse_sub_commands(stdout)
return subcmds, stdout
def parse_sub_commands(s: str):
"""Returns a list of subcommands from the help output of a command."""
idx = s.find("Commands:")
if idx < 0:
return []
s = s[idx:]
idx = s.find("Options:")
if idx < 0:
return []
s = s[:idx]
idx = s.find("Arguments:")
if idx >= 0:
s = s[:idx]
subcmds = s.splitlines()[1:]
subcmds = filter(
lambda x: x.strip() != "" and x.startswith(" ") and x[2] != " ", subcmds
)
subcmds = map(lambda x: x.strip().split(" ")[0], subcmds)
subcmds = filter(lambda x: x != "help", subcmds)
return list(subcmds)
def cmd_markdown(out_dir: str, cmd: str, obj: object):
"""Writes the markdown for a command and its subcommands to out_dir."""
def rec(cmd: list[str], obj: object):
out = ""
out += f"# {' '.join(cmd)}\n\n"
out += help_markdown(cmd, obj[HELP_KEY])
out_path = out_dir
for arg in cmd:
out_path = path.join(out_path, arg)
makedirs(path.dirname(out_path), exist_ok=True)
write_file(f"{out_path}.md", out)
for k, v in obj.items():
if k == HELP_KEY:
continue
rec(cmd + [k], v)
rec([command_name(cmd)], obj)
def help_markdown(cmd: list[str], s: str):
"""Returns the markdown for a command's help output."""
cmd[0] = command_name(cmd[0])
description, s = parse_description(s)
return f"""\
{description}
```bash
$ {' '.join(cmd)} --help
{preprocess_help(s.strip())}
```"""
def parse_description(s: str):
"""Splits the help output into a description and the rest."""
idx = s.find("Usage:")
if idx < 0:
return "", s
return s[:idx].strip().splitlines()[0].strip(), s[idx:]
def cmd_summary(md_root: str, cmd: str, obj: object, indent: int):
"""Returns the summary for a command and its subcommands."""
def rec(cmd: list[str], obj: object, indent: int):
nonlocal out
cmd_s = " ".join(cmd)
cmd_path = cmd_s.replace(" ", "/")
if md_root != "":
cmd_path = f"{md_root}/{cmd_path}"
out += f"{' ' * indent}- [`{cmd_s}`](./{cmd_path}.md)\n"
for k, v in obj.items():
if k == HELP_KEY:
continue
rec(cmd + [k], v, indent + 2)
out = ""
rec([command_name(cmd)], obj, indent)
return out
def update_root_summary(root_dir: str, root_summary: str):
"""Replaces the CLI_REFERENCE section in the root SUMMARY.md file."""
summary_file = path.join(root_dir, "SUMMARY.md")
with open(summary_file, "r") as f:
real_root_summary = f.read()
if not re.search(SECTION_RE, real_root_summary, flags=re.DOTALL):
raise Exception(
f"Could not find CLI_REFERENCE section in {summary_file}. "
"Please add the following section to the file:\n"
f"{SECTION_START}\n{SECTION_END}"
)
last_line = re.findall(f".*{SECTION_END}", real_root_summary)[0]
root_summary_s = root_summary.rstrip().replace("\n\n", "\n")
replace_with = f" {SECTION_START}\n{root_summary_s}\n{last_line}"
real_root_summary = re.sub(
SECTION_RE, replace_with, real_root_summary, flags=re.DOTALL
)
root_summary_file = path.join(root_dir, "SUMMARY.md")
with open(root_summary_file, "w") as f:
f.write(real_root_summary)
def eprint(*args, **kwargs):
"""Prints to stderr."""
print(*args, file=sys.stderr, **kwargs)
def command_name(cmd: str):
"""Returns the name of a command."""
return cmd.split("/")[-1]
def preprocess_help(s: str):
"""Preprocesses the help output of a command."""
# Remove the user-specific paths.
s = re.sub(
r"default: /.*/reth",
"default: <CACHE_DIR>",
s,
)
# Remove the commit SHA and target architecture triple or fourth
# rustup available targets:
# aarch64-apple-darwin
# x86_64-unknown-linux-gnu
# x86_64-pc-windows-gnu
s = re.sub(
r"default: reth/.*-[0-9A-Fa-f]{6,10}/([_\w]+)-(\w+)-(\w+)(-\w+)?",
"default: reth/<VERSION>-<SHA>/<ARCH>",
s,
)
# Remove the OS
s = re.sub(
r"default: reth/.*/\w+",
"default: reth/<VERSION>/<OS>",
s,
)
# Remove rpc.max-tracing-requests default value
s = re.sub(
r"(rpc.max-tracing-requests <COUNT>\n.*\n.*\n.*)\[default: \d+\]",
r"\1[default: <NUM CPU CORES-2>]",
s,
flags=re.MULTILINE,
)
return s
if __name__ == "__main__":
main()

374
book/cli/help.rs Executable file
View File

@@ -0,0 +1,374 @@
#!/usr/bin/env -S cargo +nightly -Zscript
---
[package]
edition = "2021"
[dependencies]
clap = { version = "4", features = ["derive"] }
pathdiff = "0.2"
regex = "1"
---
use clap::Parser;
use regex::Regex;
use std::borrow::Cow;
use std::fs::{self, File};
use std::io::{self, Write};
use std::iter::once;
use std::path::{Path, PathBuf};
use std::process::{Command, Stdio};
use std::str;
use std::sync::LazyLock;
use std::{fmt, process};
const SECTION_START: &str = "<!-- CLI_REFERENCE START -->";
const SECTION_END: &str = "<!-- CLI_REFERENCE END -->";
const README: &str = r#"# CLI Reference
<!-- Generated by scripts/gen_output/help.rs -->
Automatically-generated CLI reference from `--help` output.
{{#include ./SUMMARY.md}}
"#;
const TRIM_LINE_END_MARKDOWN: bool = true;
/// Lazy static regex to avoid recompiling the same regex pattern multiple times.
macro_rules! regex {
($re:expr) => {{
static RE: LazyLock<Regex> =
LazyLock::new(|| Regex::new($re).expect("Failed to compile regex pattern"));
&*RE
}};
}
/// Generate markdown files from help output of commands
#[derive(Parser, Debug)]
#[command(about, long_about = None)]
struct Args {
/// Root directory
#[arg(long, default_value_t = String::from("."))]
root_dir: String,
/// Indentation for the root SUMMARY.md file
#[arg(long, default_value_t = 2)]
root_indentation: usize,
/// Output directory
#[arg(long)]
out_dir: PathBuf,
/// Whether to add a README.md file
#[arg(long)]
readme: bool,
/// Whether to update the root SUMMARY.md file
#[arg(long)]
root_summary: bool,
/// Print verbose output
#[arg(short, long)]
verbose: bool,
/// Commands to generate markdown for.
#[arg(required = true, num_args = 1..)]
commands: Vec<PathBuf>,
}
fn write_file(file_path: &Path, content: &str) -> io::Result<()> {
let content = if TRIM_LINE_END_MARKDOWN {
content
.lines()
.map(|line| line.trim_end())
.collect::<Vec<_>>()
.join("\n")
} else {
content.to_string()
};
fs::write(file_path, content)
}
fn main() -> io::Result<()> {
let args = Args::parse();
debug_assert!(args.commands.len() >= 1);
let out_dir = args.out_dir;
fs::create_dir_all(&out_dir)?;
let mut todo_iter: Vec<Cmd> = args
.commands
.iter()
.rev() // reverse to keep the order (pop)
.map(Cmd::new)
.collect();
let mut output = Vec::new();
// Iterate over all commands and their subcommands.
while let Some(cmd) = todo_iter.pop() {
let (new_subcmds, stdout) = get_entry(&cmd)?;
if args.verbose && !new_subcmds.is_empty() {
println!(
"Found subcommands for \"{}\": {:?}",
cmd.command_name(),
new_subcmds
);
}
// Add new subcommands to todo_iter (so that they are processed in the correct order).
for subcmd in new_subcmds.into_iter().rev() {
let new_subcmds: Vec<_> = cmd
.subcommands
.iter()
.cloned()
.chain(once(subcmd))
.collect();
todo_iter.push(Cmd {
cmd: cmd.cmd,
subcommands: new_subcmds,
});
}
output.push((cmd, stdout));
}
// Generate markdown files.
for (cmd, stdout) in &output {
cmd_markdown(&out_dir, cmd, stdout)?;
}
// Generate SUMMARY.md.
let summary: String = output
.iter()
.map(|(cmd, _)| cmd_summary(None, cmd, 0))
.chain(once("\n".to_string()))
.collect();
write_file(&out_dir.clone().join("SUMMARY.md"), &summary)?;
// Generate README.md.
if args.readme {
let path = &out_dir.join("README.md");
if args.verbose {
println!("Writing README.md to \"{}\"", path.to_string_lossy());
}
write_file(path, README)?;
}
// Generate root SUMMARY.md.
if args.root_summary {
let root_summary: String = output
.iter()
.map(|(cmd, _)| {
let root_path = pathdiff::diff_paths(&out_dir, &args.root_dir);
cmd_summary(root_path, cmd, args.root_indentation)
})
.collect();
let path = Path::new(args.root_dir.as_str());
if args.verbose {
println!("Updating root summary in \"{}\"", path.to_string_lossy());
}
update_root_summary(path, &root_summary)?;
}
Ok(())
}
/// Returns the subcommands and help output for a command.
fn get_entry(cmd: &Cmd) -> io::Result<(Vec<String>, String)> {
let output = Command::new(cmd.cmd)
.args(&cmd.subcommands)
.arg("--help")
.env("NO_COLOR", "1")
.env("COLUMNS", "100")
.env("LINES", "10000")
.stdout(Stdio::piped())
.output()?;
if !output.status.success() {
let stderr = str::from_utf8(&output.stderr).unwrap_or("Failed to parse stderr as UTF-8");
return Err(io::Error::new(
io::ErrorKind::Other,
format!("Command \"{}\" failed:\n{}", cmd, stderr),
));
}
let stdout = str::from_utf8(&output.stdout)
.map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e))?
.to_string();
// Parse subcommands from the help output
let subcmds = parse_sub_commands(&stdout);
Ok((subcmds, stdout))
}
/// Returns a list of subcommands from the help output of a command.
fn parse_sub_commands(s: &str) -> Vec<String> {
// This regex matches lines starting with two spaces, followed by the subcommand name.
let re = regex!(r"^ (\S+)");
s.split("Commands:")
.nth(1) // Get the part after "Commands:"
.map(|commands_section| {
commands_section
.lines()
.take_while(|line| !line.starts_with("Options:") && !line.starts_with("Arguments:"))
.filter_map(|line| {
re.captures(line)
.and_then(|cap| cap.get(1).map(|m| m.as_str().to_string()))
})
.filter(|cmd| cmd != "help")
.map(String::from)
.collect()
})
.unwrap_or_default() // Return an empty Vec if "Commands:" was not found
}
/// Writes the markdown for a command to out_dir.
fn cmd_markdown(out_dir: &Path, cmd: &Cmd, stdout: &str) -> io::Result<()> {
let out = format!("# {}\n\n{}", cmd, help_markdown(cmd, stdout));
let out_path = out_dir.join(cmd.to_string().replace(" ", "/"));
fs::create_dir_all(out_path.parent().unwrap())?;
write_file(&out_path.with_extension("md"), &out)?;
Ok(())
}
/// Returns the markdown for a command's help output.
fn help_markdown(cmd: &Cmd, stdout: &str) -> String {
let (description, s) = parse_description(stdout);
format!(
"{}\n\n```bash\n$ {} --help\n```\n```txt\n{}\n```",
description,
cmd,
preprocess_help(s.trim())
)
}
/// Splits the help output into a description and the rest.
fn parse_description(s: &str) -> (&str, &str) {
match s.find("Usage:") {
Some(idx) => {
let description = s[..idx].trim().lines().next().unwrap_or("");
(description, &s[idx..])
}
None => ("", s),
}
}
/// Returns the summary for a command and its subcommands.
fn cmd_summary(md_root: Option<PathBuf>, cmd: &Cmd, indent: usize) -> String {
let cmd_s = cmd.to_string();
let cmd_path = cmd_s.replace(" ", "/");
let full_cmd_path = match md_root {
None => cmd_path,
Some(md_root) => format!("{}/{}", md_root.to_string_lossy(), cmd_path),
};
let indent_string = " ".repeat(indent + (cmd.subcommands.len() * 2));
format!("{}- [`{}`](./{}.md)\n", indent_string, cmd_s, full_cmd_path)
}
/// Replaces the CLI_REFERENCE section in the root SUMMARY.md file.
fn update_root_summary(root_dir: &Path, root_summary: &str) -> io::Result<()> {
let summary_file = root_dir.join("SUMMARY.md");
let original_summary_content = fs::read_to_string(&summary_file)?;
let section_re = regex!(&format!(r"(?s)\s*{SECTION_START}.*?{SECTION_END}"));
if !section_re.is_match(&original_summary_content) {
eprintln!(
"Could not find CLI_REFERENCE section in {}. Please add the following section to the file:\n{}\n... CLI Reference goes here ...\n\n{}",
summary_file.display(),
SECTION_START,
SECTION_END
);
process::exit(1);
}
let section_end_re = regex!(&format!(r".*{SECTION_END}"));
let last_line = section_end_re
.find(&original_summary_content)
.map(|m| m.as_str().to_string())
.expect("Could not extract last line of CLI_REFERENCE section");
let root_summary_s = root_summary.trim_end().replace("\n\n", "\n");
let replace_with = format!(" {}\n{}\n{}", SECTION_START, root_summary_s, last_line);
let new_root_summary = section_re
.replace(&original_summary_content, replace_with.as_str())
.to_string();
let mut root_summary_file = File::create(&summary_file)?;
root_summary_file.write_all(new_root_summary.as_bytes())
}
/// Preprocesses the help output of a command.
fn preprocess_help(s: &str) -> Cow<'_, str> {
static REPLACEMENTS: LazyLock<Vec<(Regex, &str)>> = LazyLock::new(|| {
let patterns: &[(&str, &str)] = &[
// Remove the user-specific paths.
(r"default: /.*/reth", "default: <CACHE_DIR>"),
// Remove the commit SHA and target architecture triple or fourth
// rustup available targets:
// aarch64-apple-darwin
// x86_64-unknown-linux-gnu
// x86_64-pc-windows-gnu
(
r"default: reth/.*-[0-9A-Fa-f]{6,10}/([_\w]+)-(\w+)-(\w+)(-\w+)?",
"default: reth/<VERSION>-<SHA>/<ARCH>",
),
// Remove the OS
(r"default: reth/.*/\w+", "default: reth/<VERSION>/<OS>"),
// Remove rpc.max-tracing-requests default value
(
r"(rpc.max-tracing-requests <COUNT>\n.*\n.*\n.*\n.*\n.*)\[default: \d+\]",
r"$1[default: <NUM CPU CORES-2>]",
),
];
patterns
.iter()
.map(|&(re, replace_with)| (Regex::new(re).expect(re), replace_with))
.collect()
});
let mut s = Cow::Borrowed(s);
for (re, replacement) in REPLACEMENTS.iter() {
if let Cow::Owned(result) = re.replace_all(&s, *replacement) {
s = Cow::Owned(result);
}
}
s
}
#[derive(Hash, Debug, PartialEq, Eq)]
struct Cmd<'a> {
/// path to binary (e.g. ./target/debug/reth)
cmd: &'a Path,
/// subcommands (e.g. [db, stats])
subcommands: Vec<String>,
}
impl<'a> Cmd<'a> {
fn command_name(&self) -> &str {
self.cmd
.file_name()
.and_then(|os_str| os_str.to_str())
.expect("Expect valid command")
}
fn new(cmd: &'a PathBuf) -> Self {
Self {
cmd,
subcommands: Vec::new(),
}
}
}
impl<'a> fmt::Display for Cmd<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.command_name())?;
if !self.subcommands.is_empty() {
write!(f, " {}", self.subcommands.join(" "))?;
}
Ok(())
}
}

24
book/cli/reth.md vendored
View File

@@ -4,6 +4,8 @@ Reth
```bash
$ reth --help
```
```txt
Usage: reth [OPTIONS] <COMMAND>
Commands:
@@ -11,8 +13,10 @@ Commands:
init Initialize the database from a genesis file
init-state Initialize the database from a state dump file
import This syncs RLP encoded blocks from a file
import-era This syncs ERA encoded blocks from a directory
dump-genesis Dumps genesis block JSON configuration to stdout
db Database debugging utilities
download Download public node snapshots
stage Manipulate individual stages
p2p P2P Debugging utilities
config Write config to stdout
@@ -22,26 +26,6 @@ Commands:
help Print this message or the help of the given subcommand(s)
Options:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, dev
[default: mainnet]
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')

View File

@@ -4,6 +4,8 @@ Write config to stdout
```bash
$ reth config --help
```
```txt
Usage: reth config [OPTIONS]
Options:
@@ -13,26 +15,6 @@ Options:
--default
Show the default config
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, dev
[default: mainnet]
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')

26
book/cli/reth/db.md vendored
View File

@@ -4,6 +4,8 @@ Database debugging utilities
```bash
$ reth db --help
```
```txt
Usage: reth db [OPTIONS] <COMMAND>
Commands:
@@ -19,17 +21,6 @@ Commands:
help Print this message or the help of the given subcommand(s)
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
@@ -45,7 +36,7 @@ Datadir:
[default: default]
--datadir.static_files <PATH>
--datadir.static-files <PATH>
The absolute path to store static files in.
--config <FILE>
@@ -56,7 +47,7 @@ Datadir:
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, dev
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
@@ -79,6 +70,15 @@ Database:
[possible values: true, false]
--db.max-size <MAX_SIZE>
Maximum database size (e.g., 4TB, 8MB)
--db.growth-step <GROWTH_STEP>
Database growth step (e.g., 4GB, 4KB)
--db.read-transaction-timeout <READ_TRANSACTION_TIMEOUT>
Read transaction timeout in seconds, 0 means no timeout
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Calculates the content checksum of a table
```bash
$ reth db checksum --help
```
```txt
Usage: reth db checksum [OPTIONS] <TABLE>
Arguments:
@@ -20,20 +22,19 @@ Options:
--limit <LIMIT>
The maximum number of records that are queried and used to compute the checksum
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Deletes all table entries
```bash
$ reth db clear --help
```
```txt
Usage: reth db clear [OPTIONS] <COMMAND>
Commands:
@@ -12,20 +14,19 @@ Commands:
help Print this message or the help of the given subcommand(s)
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Deletes all database table entries
```bash
$ reth db clear mdbx --help
```
```txt
Usage: reth db clear mdbx [OPTIONS] <TABLE>
Arguments:
@@ -11,20 +13,19 @@ Arguments:
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Deletes all static file segment entries
```bash
$ reth db clear static-file --help
```
```txt
Usage: reth db clear static-file [OPTIONS] <SEGMENT>
Arguments:
@@ -12,22 +14,22 @@ Arguments:
- headers: Static File segment responsible for the `CanonicalHeaders`, `Headers`, `HeaderTerminalDifficulties` tables
- transactions: Static File segment responsible for the `Transactions` table
- receipts: Static File segment responsible for the `Receipts` table
- block-meta: Static File segment responsible for the `BlockBodyIndices`, `BlockOmmers`, `BlockWithdrawals` tables
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,23 +4,14 @@ Create a diff between two database tables or two entire databases
```bash
$ reth db diff --help
```
```txt
Usage: reth db diff [OPTIONS] --secondary-datadir <SECONDARY_DATADIR> --output <OUTPUT>
Options:
--secondary-datadir <SECONDARY_DATADIR>
The path to the data dir for all reth files and subdirectories.
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
@@ -43,12 +34,31 @@ Database:
[possible values: true, false]
--db.max-size <MAX_SIZE>
Maximum database size (e.g., 4TB, 8MB)
--db.growth-step <GROWTH_STEP>
Database growth step (e.g., 4GB, 4KB)
--db.read-transaction-timeout <READ_TRANSACTION_TIMEOUT>
Read transaction timeout in seconds, 0 means no timeout
--table <TABLE>
The table name to diff. If not specified, all tables are diffed.
--output <OUTPUT>
The output directory for the diff report.
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,26 +4,27 @@ Deletes all database entries
```bash
$ reth db drop --help
```
```txt
Usage: reth db drop [OPTIONS]
Options:
-f, --force
Bypasses the interactive confirmation and drops the database directly
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Gets the content of a table for the given key
```bash
$ reth db get --help
```
```txt
Usage: reth db get [OPTIONS] <COMMAND>
Commands:
@@ -12,20 +14,19 @@ Commands:
help Print this message or the help of the given subcommand(s)
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Gets the content of a database table for the given key
```bash
$ reth db get mdbx --help
```
```txt
Usage: reth db get mdbx [OPTIONS] <TABLE> <KEY> [SUBKEY]
Arguments:
@@ -20,20 +22,19 @@ Options:
--raw
Output bytes instead of human-readable decoded value
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Gets the content of a static file segment for the given key
```bash
$ reth db get static-file --help
```
```txt
Usage: reth db get static-file [OPTIONS] <SEGMENT> <KEY>
Arguments:
@@ -12,6 +14,7 @@ Arguments:
- headers: Static File segment responsible for the `CanonicalHeaders`, `Headers`, `HeaderTerminalDifficulties` tables
- transactions: Static File segment responsible for the `Transactions` table
- receipts: Static File segment responsible for the `Receipts` table
- block-meta: Static File segment responsible for the `BlockBodyIndices`, `BlockOmmers`, `BlockWithdrawals` tables
<KEY>
The key to get content for
@@ -20,20 +23,19 @@ Options:
--raw
Output bytes instead of human-readable decoded value
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,6 +4,8 @@ Lists the contents of a table
```bash
$ reth db list --help
```
```txt
Usage: reth db list [OPTIONS] <TABLE>
Arguments:
@@ -53,20 +55,19 @@ Options:
--raw
Output bytes instead of human-readable decoded value
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -4,23 +4,24 @@ Returns the full database path
```bash
$ reth db path --help
```
```txt
Usage: reth db path [OPTIONS]
Options:
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

View File

@@ -1,174 +0,0 @@
# reth db static-file
StaticFiles tables from database
```bash
$ reth db static-file --help
Usage: reth db static-file [OPTIONS] [SEGMENTS]...
Arguments:
[SEGMENTS]...
StaticFile segments to generate
Possible values:
- headers: StaticFile segment responsible for the `CanonicalHeaders`, `Headers`, `HeaderTerminalDifficulties` tables
- transactions: StaticFile segment responsible for the `Transactions` table
- receipts: StaticFile segment responsible for the `Receipts` table
Options:
--datadir <DATA_DIR>
The path to the data dir for all reth files and subdirectories.
Defaults to the OS-specific data directory:
- Linux: `$XDG_DATA_HOME/reth/` or `$HOME/.local/share/reth/`
- Windows: `{FOLDERID_RoamingAppData}/reth/`
- macOS: `$HOME/Library/Application Support/reth/`
[default: default]
-f, --from <FROM>
Starting block for the static_file
[default: 0]
-b, --block-interval <BLOCK_INTERVAL>
Number of blocks in the static_file
[default: 500000]
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, goerli, holesky, dev
[default: mainnet]
-p, --parallel <PARALLEL>
Sets the number of static files built in parallel. Note: Each parallel build is memory-intensive
[default: 1]
--only-stats
Flag to skip static_file creation and print static_file files stats
--bench
Flag to enable database-to-static_file benchmarking
--only-bench
Flag to skip static_file creation and only run benchmarks on existing static files
-c, --compression <COMPRESSION>
Compression algorithms to use
[default: uncompressed]
Possible values:
- lz4: LZ4 compression algorithm
- zstd: Zstandard (Zstd) compression algorithm
- zstd-with-dictionary: Zstandard (Zstd) compression algorithm with a dictionary
- uncompressed: No compression, uncompressed static_file
--with-filters
Flag to enable inclusion list filters and PHFs
--phf <PHF>
Specifies the perfect hashing function to use
Possible values:
- fmph: Fingerprint-Based Minimal Perfect Hash Function
- go-fmph: Fingerprint-Based Minimal Perfect Hash Function with Group Optimization
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout
[default: terminal]
Possible values:
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
- terminal: Represents terminal-friendly formatting for logs
--log.stdout.filter <FILTER>
The filter to use for logs written to stdout
[default: ]
--log.file.format <FORMAT>
The format to use for logs written to the log file
[default: terminal]
Possible values:
- json: Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
- log-fmt: Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
- terminal: Represents terminal-friendly formatting for logs
--log.file.filter <FILTER>
The filter to use for logs written to the log file
[default: debug]
--log.file.directory <PATH>
The path to put log files in
[default: <CACHE_DIR>/logs]
--log.file.max-size <SIZE>
The maximum size (in MB) of one log file
[default: 200]
--log.file.max-files <COUNT>
The maximum amount of log files that will be stored. If set to 0, background file logging is disabled
[default: 5]
--log.journald
Write logs to journald
--log.journald.filter <FILTER>
The filter to use for logs written to journald
[default: error]
--color <COLOR>
Sets whether or not the formatter emits ANSI terminal escape codes for colors and other text formatting
[default: always]
Possible values:
- always: Colors on
- auto: Colors on
- never: Colors off
Display:
-v, --verbosity...
Set the minimum log level.
-v Errors
-vv Warnings
-vvv Info
-vvvv Debug
-vvvvv Traces (warning: very verbose!)
-q, --quiet
Silence all log output
```

View File

@@ -4,6 +4,8 @@ Lists all the tables, their entry count and their size
```bash
$ reth db stats --help
```
```txt
Usage: reth db stats [OPTIONS]
Options:
@@ -20,20 +22,19 @@ Options:
For individual table checksums, use the `reth db checksum` command.
--instance <INSTANCE>
Add a new instance of a node.
Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine.
Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other.
Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2
[default: 1]
-h, --help
Print help (see a summary with '-h')
Datadir:
--chain <CHAIN_OR_PATH>
The chain this node is running.
Possible values are either a built-in chain or the path to a chain specification file.
Built-in chains:
mainnet, sepolia, holesky, hoodi, dev
[default: mainnet]
Logging:
--log.stdout.format <FORMAT>
The format to use for logs written to stdout

Some files were not shown because too many files have changed in this diff Show More