Skip to content
Open
Show file tree
Hide file tree
Changes from 121 commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
734cbd8
Add tests skeleton for parallel-executor
AurelienFT Apr 22, 2025
21ce7b9
Push cargo lock
AurelienFT Apr 22, 2025
838cf61
Merge branch 'master' into tests_parallel_executor
AurelienFT Apr 23, 2025
a3829b4
Add tests content and more usable mocks
AurelienFT Apr 23, 2025
fffb0af
Remove unused test
AurelienFT Apr 23, 2025
d0c3878
sort toml
AurelienFT Apr 23, 2025
00cef7f
sort toml and fix test 1
AurelienFT Apr 23, 2025
c0fc176
fix toml
AurelienFT Apr 23, 2025
c993836
Update clippy
AurelienFT Apr 24, 2025
3f57a6c
Review comments
AurelienFT Apr 24, 2025
5cda5e2
fmt
AurelienFT Apr 24, 2025
ca219ca
Merge branch 'master' into tests_parallel_executor
AurelienFT Apr 24, 2025
44d2ec3
fmt
AurelienFT Apr 24, 2025
77a31d9
Start skeleton for the scheduler
AurelienFT Apr 24, 2025
72867e9
Make some info global to the scheduler
AurelienFT Apr 25, 2025
59847ac
Address review comments for readability
AurelienFT Apr 25, 2025
ad84b1c
Fix circular dependency
AurelienFT Apr 25, 2025
3621cf5
push lock
AurelienFT Apr 25, 2025
2cbc774
fmt
AurelienFT Apr 25, 2025
74a9b4f
Clippy
AurelienFT Apr 25, 2025
0b21ed9
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Apr 25, 2025
312cf7f
Define all structure and initialisation of the scheduler
AurelienFT Apr 25, 2025
de6495b
Add all the logic and/or todo for the executor
AurelienFT Apr 28, 2025
085984d
Fix wrong type
AurelienFT Apr 28, 2025
177410f
Add skipped tx case
AurelienFT Apr 28, 2025
e95fb8e
All todos/implementation are here (except blobs)
AurelienFT May 1, 2025
165a8c6
Refactor code to have one big loop
AurelienFT May 2, 2025
566d7d0
Fix some todos and add all the logic
AurelienFT May 2, 2025
54f2216
Update scheduler with the fallback in case of skipped tx.
AurelienFT May 5, 2025
2901fdc
Add contract only changes to the saved changes
AurelienFT May 5, 2025
2f4f9ed
Cleanup some part of the code and split some functions
AurelienFT May 6, 2025
8a273b7
Split code in functions and remove comments/variable name etc
AurelienFT May 6, 2025
22a76be
Remove useful comment
AurelienFT May 6, 2025
9743a8a
Update scheduler to work only with checked tx and internal re-usage a…
AurelienFT May 7, 2025
2928c99
Add a more complex way to handle contracts changes
AurelienFT May 7, 2025
6605012
Reorder enum
AurelienFT May 7, 2025
dc257e9
remove unwanted clone
AurelienFT May 7, 2025
dc74a17
avoid cloning filter
AurelienFT May 7, 2025
f4854a7
format
AurelienFT May 7, 2025
7f9a784
fix(parallel-executor): clean up for longer lived vecs (#2995)
rymnc May 8, 2025
3227a03
Merge branch 'master' into tests_parallel_executor
AurelienFT May 9, 2025
1da5d3a
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
rymnc May 9, 2025
b194afd
chore(parallel-executor): compressed coin validation (#3001)
rymnc May 9, 2025
c4c3e8c
Merge branch 'master' into tests_parallel_executor
AurelienFT May 14, 2025
c9acbdc
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT May 14, 2025
3bba122
Merge branch 'master' into tests_parallel_executor
AurelienFT May 21, 2025
cd4b73c
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT May 21, 2025
d171d54
(parallel-executor): Add executor to the scheduler (#3003)
AurelienFT May 21, 2025
ff1deb8
Clippy & Fmt
AurelienFT May 21, 2025
f5f9f2a
Update the tests to be more close to the implementation
AurelienFT May 21, 2025
ab194ca
Add special transaction source for checked tx
AurelienFT May 21, 2025
20a0718
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT May 21, 2025
122e672
Fix clippy and changelog
AurelienFT May 21, 2025
5553b2a
Split code to be more readable
AurelienFT May 21, 2025
5aba00b
Re-ignore tests and readd tokio feature
AurelienFT May 21, 2025
6b5efe8
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT May 21, 2025
fe581ae
remove ignores on this pr
AurelienFT May 21, 2025
c6ed6b3
Merge branch 'master' into tests_parallel_executor
rymnc May 27, 2025
6275377
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
rymnc May 27, 2025
59130da
fix: cargo sort
rymnc May 27, 2025
4beba08
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
rymnc May 27, 2025
a27cd58
chore(parallel-executor): refactor the executor.rs mod (#3029)
rymnc May 27, 2025
3962105
Fix fallback and add a test
AurelienFT May 28, 2025
f0ea386
add comments
AurelienFT May 28, 2025
bd8798f
Change mock of txpool to be more clear
AurelienFT Jun 12, 2025
6fe2118
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 12, 2025
89f1d1a
Merge branch 'master' into tests_parallel_executor
AurelienFT Jun 12, 2025
8485938
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 12, 2025
a8e4542
Update crates/services/parallel-executor/src/executor.rs
AurelienFT Jun 12, 2025
714e6ca
Update crates/services/parallel-executor/src/scheduler.rs
AurelienFT Jun 12, 2025
c9e49b0
Remove unwraps
AurelienFT Jun 12, 2025
3a3d776
rename test
AurelienFT Jun 12, 2025
d39693c
update wording
AurelienFT Jun 12, 2025
b499477
update mock
AurelienFT Jun 12, 2025
9a66d77
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 12, 2025
eb8b362
Add helper for storing contract changes
AurelienFT Jun 12, 2025
d0e4a48
Add update constraints
AurelienFT Jun 12, 2025
0841b91
Address some logic and changes and fix output
AurelienFT Jun 16, 2025
2504937
Modify lifetime of scheduler and usage in executor
AurelienFT Jun 16, 2025
d16b68c
Clippy and use memory in scheduler
AurelienFT Jun 16, 2025
8364e0a
update gas consumption on batch
AurelienFT Jun 16, 2025
633c770
Update return type of transaction source
AurelienFT Jun 16, 2025
693b910
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 16, 2025
d225af4
Fix transaction return usage
AurelienFT Jun 16, 2025
e9e5e67
Change storage management to remove abstraction and use tables directly
AurelienFT Jun 16, 2025
bdf0ba0
Update merging of changes in blobs and normal tx execution
AurelienFT Jun 16, 2025
0da44f3
Update tests to not have the threads. Update the limits of the schedu…
AurelienFT Jun 17, 2025
7e98f58
Update tests to not use threads for mock txpool
AurelienFT Jun 17, 2025
9a26db5
Update memory instance to reuse them
AurelienFT Jun 17, 2025
aa6b052
Updates errors to use from implementation
AurelienFT Jun 17, 2025
50bf7a2
Add test to show that utxo are resolved
AurelienFT Jun 17, 2025
8818cf2
use u16::MAX for number of transactions in a block
AurelienFT Jun 17, 2025
ea3a339
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 17, 2025
5ea9dfa
update block constraints
AurelienFT Jun 18, 2025
004768a
Change input stored to use a trait
AurelienFT Jun 18, 2025
5540ff5
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 18, 2025
b2ef2be
update test
AurelienFT Jun 18, 2025
55e97f6
update test to use signed
AurelienFT Jun 18, 2025
76aa387
update secret key import
AurelienFT Jun 18, 2025
08a45bd
Update executor to have more fine tune on `forbid_fake_coins` boolean
AurelienFT Jun 18, 2025
de9e418
Use a global for blob gas and remove unused gas after execution from …
AurelienFT Jun 18, 2025
098a84f
Merge branch 'master' into tests_parallel_executor
xgreenx Jun 18, 2025
af478a8
Update boolean executor checks naming and scope
AurelienFT Jun 19, 2025
b8830dd
Update secret key in tests to be random
AurelienFT Jun 19, 2025
3c4ba56
Add debug assert that changes are all merged for blob transactions
AurelienFT Jun 19, 2025
25712fd
Update tests
AurelienFT Jun 19, 2025
5395fcf
Update duration execution to be an external parameter
AurelienFT Jun 19, 2025
01b65c4
Merge branch 'tests_parallel_executor' into create_exec_sequencer_ske…
AurelienFT Jun 19, 2025
11345ee
Merge branch 'master' into create_exec_sequencer_skeleton
AurelienFT Jun 19, 2025
e47e488
Create executor outside of scheduler
AurelienFT Jun 19, 2025
2d01d53
Update event inbox root to use real data.
AurelienFT Jun 19, 2025
66d4557
Use global memory pool
AurelienFT Jun 19, 2025
17f613f
Merge branch 'master' into create_exec_sequencer_skeleton
AurelienFT Jun 19, 2025
0dbc3d8
Fix tests
AurelienFT Jun 19, 2025
6956bab
Change `execute_l2_transactions` signature to be more explicit on the…
AurelienFT Jun 19, 2025
4b7c0f0
remove old todo
AurelienFT Jun 19, 2025
3ccfaf6
Update crates/services/parallel-executor/src/scheduler.rs
AurelienFT Jun 26, 2025
ea12c42
Update crates/services/parallel-executor/src/scheduler.rs
AurelienFT Jun 26, 2025
e370ced
Fix some configurations on scheduler
AurelienFT Jun 27, 2025
89c6618
Add clippy enforce and fix all errors
AurelienFT Jun 27, 2025
62d84f2
Merge branch 'master' into create_exec_sequencer_skeleton
AurelienFT Jun 27, 2025
fd6752a
Add check double spend and fix broken deser in old exec WASM
AurelienFT Jun 30, 2025
b230b2c
Change the reusable memory object
AurelienFT Jun 30, 2025
a6a5a45
Use a worker pool with drop implementation
AurelienFT Jun 30, 2025
1c48589
fix clippy
AurelienFT Jun 30, 2025
4c5bab6
Fix clippy
AurelienFT Jun 30, 2025
d422436
check double spend message (with nonces)
AurelienFT Jun 30, 2025
d3bbc93
Merge branch 'master' into create_exec_sequencer_skeleton
MitchTurner Jul 16, 2025
f0d140f
bump wasmtime version to deal with rust-sec issue
MitchTurner Jul 18, 2025
67a7f85
Bump thiserror to meet reqs
MitchTurner Jul 18, 2025
52da5c2
Update CHANGELOG
MitchTurner Jul 18, 2025
7e6a23f
Remove commented code
MitchTurner Jul 23, 2025
0b62bbd
Use v44 in forward comp test (#3060)
MitchTurner Jul 24, 2025
edd7452
Try fixing yamux check error
MitchTurner Jul 24, 2025
19b8e7b
Try fixing yamux check error
MitchTurner Jul 24, 2025
d562ba7
Remove unused and commented deps
MitchTurner Jul 24, 2025
2d84b8f
Merge branch 'bug/upgrade-wasmtime-version' into create_exec_sequence…
MitchTurner Jul 24, 2025
6f8beb2
Merge branch 'master' into create_exec_sequencer_skeleton
MitchTurner Jul 25, 2025
37039c4
Chore/parallel executor benches (#3045)
MitchTurner Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changes/added/2976.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Skeleton of parallel-executor and production of block
3 changes: 3 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

60 changes: 40 additions & 20 deletions crates/fuel-core/src/executor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,10 @@ mod tests {
/// The executor already has these parameters, and this field allows us
/// to override the existing value.
pub consensus_parameters: ConsensusParameters,
/// Default mode for `forbid_fake_coins` in the executor.
pub forbid_fake_coins_default: bool,
/// Default mode for `forbid_unauthorized_inputs` in the executor.
pub forbid_unauthorized_inputs_default: bool,
/// Default mode for `forbid_fake_utxo` in the executor.
pub forbid_fake_utxo_default: bool,
}

#[derive(Clone, Debug)]
Expand Down Expand Up @@ -217,7 +219,8 @@ mod tests {
config: Config,
) -> Executor<Database, DisabledRelayer> {
let executor_config = fuel_core_upgradable_executor::config::Config {
forbid_fake_coins_default: config.forbid_fake_coins_default,
forbid_unauthorized_inputs_default: config.forbid_unauthorized_inputs_default,
forbid_fake_utxo_default: config.forbid_fake_utxo_default,
native_executor_version: None,
allow_historical_execution: true,
};
Expand Down Expand Up @@ -825,7 +828,8 @@ mod tests {
let mut validator = create_executor(
Default::default(),
Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
},
);
Expand Down Expand Up @@ -1158,7 +1162,8 @@ mod tests {

// setup executors with utxo-validation enabled
let config = Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
};
let producer = create_executor(Database::default(), config.clone());
Expand Down Expand Up @@ -1286,7 +1291,8 @@ mod tests {
let mut executor = create_executor(
Database::default(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -1354,7 +1360,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -1423,7 +1430,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -1472,7 +1480,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -1669,7 +1678,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
},
);
Expand Down Expand Up @@ -1724,7 +1734,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
},
);
Expand Down Expand Up @@ -1826,7 +1837,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
},
);
Expand Down Expand Up @@ -1932,7 +1944,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
consensus_parameters: consensus_parameters.clone(),
},
);
Expand Down Expand Up @@ -2092,7 +2105,8 @@ mod tests {
let mut executor = create_executor(
db.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -2381,7 +2395,8 @@ mod tests {
create_executor(
database,
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
)
Expand Down Expand Up @@ -2808,7 +2823,8 @@ mod tests {
let mut executor = create_executor(
database.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand Down Expand Up @@ -2872,7 +2888,8 @@ mod tests {
let mut executor = create_executor(
database.clone(),
Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
..Default::default()
},
);
Expand All @@ -2894,7 +2911,8 @@ mod tests {

let consensus_parameters = ConsensusParameters::default();
let config = Config {
forbid_fake_coins_default: true,
forbid_unauthorized_inputs_default: true,
forbid_fake_utxo_default: true,
consensus_parameters: consensus_parameters.clone(),
};

Expand Down Expand Up @@ -3088,7 +3106,8 @@ mod tests {
.finalize();

let config = Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
};
let (sender, mut receiver) = tokio::sync::mpsc::channel(2);
Expand Down Expand Up @@ -3152,7 +3171,8 @@ mod tests {
.finalize();

let config = Config {
forbid_fake_coins_default: false,
forbid_unauthorized_inputs_default: false,
forbid_fake_utxo_default: false,
..Default::default()
};
let (sender, mut receiver) = tokio::sync::mpsc::channel(2);
Expand Down
1 change: 1 addition & 0 deletions crates/fuel-core/src/service/adapters/producer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ impl fuel_core_producer::ports::DryRunner for ExecutorAdapter {
self.executor.dry_run(
block,
forbid_fake_coins,
forbid_fake_coins,
at_height,
record_storage_read_replay,
)
Expand Down
3 changes: 2 additions & 1 deletion crates/fuel-core/src/service/sub_services.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,8 @@ pub fn init_sub_services(
);

let upgradable_executor_config = fuel_core_upgradable_executor::config::Config {
forbid_fake_coins_default: config.utxo_validation,
forbid_unauthorized_inputs_default: config.utxo_validation,
forbid_fake_utxo_default: config.utxo_validation,
native_executor_version: config.native_executor_version,
allow_historical_execution: config.historical_execution,
};
Expand Down
Loading
Loading