Test higher batch sizes in full sync(2k, 4k, 8k).

Open Beginner friendly
#6,483 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
72/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Quiet
Tech stack
rust

Research direction

Start by searching for EXECUTE_BATCH_SIZE and tracing the full-sync path around get_state_transitions() and apply_account_updates_batch(). Run full sync with 2048, 4096, and 8192 block batches, compare runtime and memory, and record which sizes are viable.

Written by the indexing model from the issue text.

Description

performance syncing

Current: EXECUTE_BATCH_SIZE = 1024. This means merkle + store runs every 1024 blocks.

With merkle at 22ms and store at 40ms for the non-spike case, the overhead per block is negligible. But the batch boundaries force a full get_state_transitions() + apply_account_updates_batch() cycle. Larger batches amortize this further.

Trade-off: Larger batches use more memory (VM accumulates all state diffs). At 1024 blocks, memory is manageable. 4096 or 8192 might be worth testing.

Effort: Trivial (change one constant or env var).

Dominant language
Rust
Stars
897
Forks
229
Avg merge
1d 5h
Merged PRs (30d)
44

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from lambdaclass/ethrex

All issues in lambdaclass/ethrex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.