-
Notifications
You must be signed in to change notification settings - Fork 2
feat: support directly forward transactions to sequencer #189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added comment inline.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add an e2e test for this using the test framework. See example provided:
rollup-node/crates/node/tests/e2e.rs
Lines 94 to 95 in 1ffce34
#[tokio::test] | |
async fn can_sequence_and_gossip_blocks() { |
Sure, let me do that. |
Thanks, I think you'll need to set |
During testing, the arg no_local_transactions_propagation does't work well, I think it is a bug on Reth, see the fix commit here. Essentially Reth does't pass no_local_transactions_propagation to TransactionValidationTaskExecutor but just put a default value. Which makes even with arg no_local_transactions_propagation set to true, the node will still propagate transaction. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Left a few minor comments inline. Lets work on getting feat-forward-tx-to-sequencer
merged into scroll
branch on reth
and then we can look to get this merged.
docker-compose/grafana_data/ | ||
docker-compose/l2reth/ | ||
docker-compose/prometheus_data/ | ||
docker-compose/l1devnet/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The docker-compose
volume pattern has changed to use a volumes
folder to group the different volume mounts. See below:
- ./volumes/l1devnet:/l1devnet |
I think we can use ignore everything in
docker-compose/volumes/
@@ -316,6 +316,20 @@ pub struct NetworkArgs { | |||
/// A bool that represents if the scroll wire protocol should be enabled. | |||
#[arg(long = "network.scroll-wire", default_value_t = true)] | |||
pub enable_scroll_wire: bool, | |||
/// A bool that represents if the transaction receiving should be disabled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
line comment no longer relevant.
// Create the chain spec for scroll mainnet with Euclid v2 activated and a test genesis. | ||
let chain_spec = (*SCROLL_DEV).clone(); | ||
let (mut sequencer_node, _tasks, _) = | ||
setup_engine(sequencer_node_config, 1, chain_spec.clone(), false, false).await.unwrap(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also disable transaction gossip on the sequencer by setting no_local_transactions_propagation
to true? I don't think it will have any functional implications on the test but I was wondering why you didn't set it to true?
Counterpart of l2geth scroll-tech/go-ethereum#1208.
Related Reth PR: scroll-tech/reth#265
Added a new flags on NetworkArgs.
network.sequencer-url
: This will be passed toScrollEthApiBuilder
, If not None, Reth will forward transactions to sequencer's RPC directly.