Skip to content
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

perf(engine): create standalone state root task #12053

Open
1 of 4 tasks
Tracked by #11161
rkrasiuk opened this issue Oct 24, 2024 · 0 comments
Open
1 of 4 tasks
Tracked by #11161

perf(engine): create standalone state root task #12053

rkrasiuk opened this issue Oct 24, 2024 · 0 comments
Assignees
Labels
A-consensus Related to the consensus engine A-trie Related to Merkle Patricia Trie implementation C-perf A change motivated by improving speed, memory usage or disk footprint

Comments

@rkrasiuk
Copy link
Member

rkrasiuk commented Oct 24, 2024

Description

Create a standalone state root task that is spawned before block execution starts.

trace!(target: "engine::tree", block=?block.num_hash(), "Executing block");
let executor = self.executor_provider.executor(StateProviderDatabase::new(&state_provider));

A task should initialize a blinded sparse and subscribe to transaction state stream. As it receives transaction execution results, it should fetch the proofs for relevant accounts from the database and reveal them to the tree.

Then it should update relevant leaves according to the result of the transaction.

A lot of things can be reused from #11154.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-consensus Related to the consensus engine A-trie Related to Merkle Patricia Trie implementation C-perf A change motivated by improving speed, memory usage or disk footprint
Projects
Status: In Progress
Development

No branches or pull requests

4 participants
@fgimenez @Rjected @rkrasiuk and others