Skip to content

Commit 0dff6f8

Browse files
authored
feat: break payload building (#173)
* test: wip for break-payload-building * feat: reth changes * fix: breaker e2e test * feat: bump reth * feat: remove BridgeBlockImport
1 parent 3dcb015 commit 0dff6f8

File tree

14 files changed

+520
-388
lines changed

14 files changed

+520
-388
lines changed

Cargo.lock

Lines changed: 298 additions & 277 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/derivation-pipeline/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ pub async fn derive<L1P: L1Provider + Sync + Send, L2P: BlockDataProvider + Sync
209209
// query the appropriate amount of l1 messages.
210210
let mut txs = Vec::with_capacity(block.context.num_transactions as usize);
211211
for _ in 0..block.context.num_l1_messages {
212+
// TODO: fetch L1 messages range.
212213
let l1_message = l1_provider
213214
.next_l1_message()
214215
.await

crates/engine/src/driver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ where
207207
}
208208
}
209209
EngineDriverFutureResult::PayloadBuildingJob(result) => {
210-
tracing::info!(target: "scroll::engine", ?result, "handling payload building result");
210+
tracing::info!(target: "scroll::engine", result = ?result.as_ref().map(|b| b.header.as_ref()), "handling payload building result");
211211

212212
match result {
213213
Ok(block) => {

crates/manager/src/consensus.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,10 @@ impl Consensus for SystemContractConsensus {
7676
#[cfg(test)]
7777
mod tests {
7878
use super::*;
79-
use alloy_consensus::TxEip1559;
79+
use alloy_consensus::{Signed, TxEip1559};
8080
use alloy_primitives::{address, b256, bloom, bytes, TxKind, B64, U256};
8181
use reth_primitives_traits::Header;
82-
use reth_scroll_primitives::{ScrollBlockBody, ScrollTransactionSigned};
83-
use scroll_alloy_consensus::ScrollTypedTransaction;
82+
use reth_scroll_primitives::ScrollBlockBody;
8483
use std::{str::FromStr, sync::OnceLock};
8584

8685
#[test]
@@ -119,11 +118,8 @@ mod tests {
119118
requests_hash: None,
120119
},
121120
body: ScrollBlockBody {
122-
transactions: vec![ScrollTransactionSigned {
123-
hash: tx_hash,
124-
signature:
125-
Signature::new(U256::from_str("12217337930795921874768983252881296563512928283585900928219483692173266513447").unwrap(), U256::from_str("37490897792770890087946325233571758133021734266092518377537449521790010698782").unwrap(), true) ,
126-
transaction: ScrollTypedTransaction::Eip1559(TxEip1559{
121+
transactions: vec![
122+
Signed::new_unhashed(TxEip1559 {
127123
chain_id: 534352,
128124
nonce: 145014,
129125
gas_limit: 600000,
@@ -133,13 +129,11 @@ mod tests {
133129
value: U256::ZERO,
134130
access_list: Default::default(),
135131
input: bytes!("a00597a00000000000000000000000000000000000000000000000000000000001826cbe0000000000000000000000000000000000005eb6831c1aa0faf2055c7d53270e00000000000000000000000006efdbff2a14a7c8e15944d1f4a48f9f95f663a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000813df550a32d4a9d42010d057386429ad2328ed9000000000000000000000000000000000000000000000000000000006807befd"),
136-
}) ,
137-
}],
132+
}, Signature::new(U256::from_str("12217337930795921874768983252881296563512928283585900928219483692173266513447").unwrap(), U256::from_str("37490897792770890087946325233571758133021734266092518377537449521790010698782").unwrap(), true)).into()],
138133
ommers: vec![],
139134
withdrawals: None,
140135
},
141136
};
142-
143137
consensus.validate_new_block(&block, &signature).unwrap()
144138
}
145139
}

crates/network/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,5 @@ serde = [
4444
"reth-scroll-primitives/serde",
4545
"scroll-wire/serde",
4646
"reth-primitives-traits/serde",
47+
"reth-storage-api/serde",
4748
]

crates/node/src/add_ons/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ where
8585
) -> eyre::Result<Self::Handle> {
8686
let Self { rpc_add_ons, rollup_manager_addon: rollup_node_manager_addon } = self;
8787
let rpc_handle: RpcHandle<N, ScrollEthApi<N>> =
88-
rpc_add_ons.launch_add_ons_with(ctx.clone(), |_, _, _| Ok(())).await?;
88+
rpc_add_ons.launch_add_ons_with(ctx.clone(), |_| Ok(())).await?;
8989
let (rollup_manager_handle, l1_watcher_tx) =
9090
rollup_node_manager_addon.launch(ctx.clone(), rpc_handle.clone()).await?;
9191
Ok(ScrollAddOnsHandle {

crates/node/src/bridge.rs

Lines changed: 0 additions & 87 deletions
This file was deleted.

crates/node/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
33
pub mod add_ons;
44
mod args;
5-
mod bridge;
65
mod constants;
76
mod node;
87
#[cfg(feature = "test-utils")]

crates/node/src/node.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
//! Node specific implementations for Scroll rollup node.
22
33
use crate::args::ScrollRollupNodeConfig;
4+
use std::time::Duration;
45

56
use super::add_ons::ScrollRollupNodeAddOns;
67
use reth_node_api::NodeTypes;
@@ -10,7 +11,7 @@ use reth_node_builder::{
1011
};
1112
use reth_scroll_node::{
1213
ScrollConsensusBuilder, ScrollExecutorBuilder, ScrollNetworkBuilder, ScrollNode,
13-
ScrollPayloadBuilder, ScrollPoolBuilder,
14+
ScrollPayloadBuilderBuilder, ScrollPoolBuilder,
1415
};
1516

1617
/// The Scroll node implementation.
@@ -37,7 +38,7 @@ where
3738
type ComponentsBuilder = ComponentsBuilder<
3839
N,
3940
ScrollPoolBuilder,
40-
BasicPayloadServiceBuilder<ScrollPayloadBuilder>,
41+
BasicPayloadServiceBuilder<ScrollPayloadBuilderBuilder>,
4142
ScrollNetworkBuilder,
4243
ScrollExecutorBuilder,
4344
ScrollConsensusBuilder,
@@ -48,7 +49,14 @@ where
4849
>;
4950

5051
fn components_builder(&self) -> Self::ComponentsBuilder {
51-
ScrollNode::components()
52+
ScrollNode::components().payload(BasicPayloadServiceBuilder::new(
53+
ScrollPayloadBuilderBuilder {
54+
payload_building_time_limit: Duration::from_millis(
55+
self.config.sequencer_args.payload_building_duration,
56+
),
57+
best_transactions: (),
58+
},
59+
))
5260
}
5361

5462
fn add_ons(&self) -> Self::AddOns {

crates/node/src/test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ pub fn default_test_scroll_rollup_node_config() -> ScrollRollupNodeConfig {
137137
database_args: DatabaseArgs { path: Some(PathBuf::from("sqlite::memory:")) },
138138
l1_provider_args: L1ProviderArgs::default(),
139139
engine_driver_args: EngineDriverArgs { en_sync_trigger: 100 },
140-
sequencer_args: SequencerArgs::default(),
140+
sequencer_args: SequencerArgs { payload_building_duration: 1000, ..Default::default() },
141141
beacon_provider_args: BeaconProviderArgs::default(),
142142
signer_args: Default::default(),
143143
}

0 commit comments

Comments
 (0)