Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
cd530bb
initial BatchBuilder
Mar 11, 2026
e7f59d4
restructing the batch module, make batch logic cleaner
Mar 11, 2026
dfb72e3
gas counter for batch commitment production
Mar 12, 2026
a186477
implement a raw BatchSizeCounter based on abi encoding
Mar 13, 2026
2e338bb
implement BatchFiller
Mar 16, 2026
ba829d8
complete main functionality
Mar 16, 2026
0c7bfee
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
Mar 16, 2026
6fcf1ed
batch manager refactoring
Mar 17, 2026
737d03d
announce_hash is required part of BatchCommitmentValidationRequest | …
Mar 17, 2026
bfe9af9
fix bug in filler with inclusion both - chain commitment and code com…
Mar 17, 2026
041cf69
small useful changes
Mar 17, 2026
5291726
small refactoring
Mar 17, 2026
864a0de
return announce_hash a optional field in BatchCommittmentValidationRe…
Mar 17, 2026
705d1ab
fix
Mar 17, 2026
962dc7e
remove timelines from BatchCommitmentManager
Mar 18, 2026
551dc2b
set batch size limit from cli arguments
Mar 18, 2026
fda3626
test for non optimal batch
Mar 18, 2026
72b6460
feat: implement partial code commitments inclusion
Mar 18, 2026
064470f
fix: bug with empty chain commitments in batch filler
Mar 18, 2026
a4af8e1
fix: self review small findings
Mar 18, 2026
3308b70
refactoring
Mar 18, 2026
81f5fed
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
Mar 18, 2026
5a7e51a
fix: clippy in consensus tests
Mar 18, 2026
55f9277
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
ecol-master Mar 19, 2026
9e74017
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
ecol-master Mar 19, 2026
6656cc2
small refactoring
Mar 19, 2026
dbc87f4
Merge remote-tracking branch 'origin' into 5205-ethexe-set-limits-for…
Mar 19, 2026
f22b961
Merge branch '5205-ethexe-set-limits-for-batch-commitment-production'…
Mar 19, 2026
39438fd
fix: BatchCommitmentManager validation process
Mar 20, 2026
88db7ea
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
ecol-master Mar 20, 2026
50ea608
chore: remove update_limits function
Mar 23, 2026
6f17d5f
Merge branch '5205-ethexe-set-limits-for-batch-commitment-production'…
Mar 23, 2026
37bb8d0
fix: clippy
Mar 23, 2026
f7038a1
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
Mar 23, 2026
45c22e2
fix: add doc for cli argument
Mar 23, 2026
75fcbd6
fix: prioritize transitions over code commitments
Mar 23, 2026
cf5e842
chore: remove useless TODO
Mar 23, 2026
04a6e0f
Merge branch 'master' into 5205-ethexe-set-limits-for-batch-commitmen…
ecol-master Mar 23, 2026
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
4 changes: 4 additions & 0 deletions .ethexe.example.local.toml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ validator-session = "0x02ba5734d8f7091719471e7f7ed6b9df170dc70cc661ca05e688601ad
# (optional, max block gas limit: 9_000_000_000_000, default: 4_000_000_000_000).
# block-gas-limit = 4_000_000_000_000

# Batch size limit for the node.
# (optional, max batch size limit 122_880, default 102_400)
# batch-size-limit = 102_400

# Number of blocks that must pass before applying canonical (Ethereum) events.
# NOTE: Customize this parameter only for development purposes. In production, your node
# may fail to reach consensus with other nodes if this value is changed.
Expand Down
4 changes: 4 additions & 0 deletions .ethexe.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@
# (optional, max block gas limit: 9_000_000_000_000, default: 4_000_000_000_000).
# block-gas-limit = 4_000_000_000_000

# Batch size limit for the node.
# (optional, max batch size limit 122_880, default 102_400)
# batch-size-limit = 102_400

# Number of blocks that must pass before applying canonical (Ethereum) events.
# NOTE: Customize this parameter only for development purposes. In production, your node
# may fail to reach consensus with other nodes if this value is changed.
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

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

11 changes: 10 additions & 1 deletion ethexe/cli/src/params/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use clap::Parser;
use directories::ProjectDirs;
use ethexe_common::{
DEFAULT_BLOCK_GAS_LIMIT,
consensus::DEFAULT_CHAIN_DEEPNESS_THRESHOLD,
consensus::{DEFAULT_BATCH_SIZE_LIMIT, DEFAULT_CHAIN_DEEPNESS_THRESHOLD, MAX_BATCH_SIZE_LIMIT},
gear::{CANONICAL_QUARANTINE, MAX_BLOCK_GAS_LIMIT},
};
use ethexe_processor::DEFAULT_CHUNK_SIZE;
Expand Down Expand Up @@ -91,6 +91,10 @@ pub struct NodeParams {
#[serde(rename = "block-gas-limit")]
pub block_gas_limit: Option<u64>,

#[arg(long)]
Comment thread
ecol-master marked this conversation as resolved.
#[serde(rename = "batch-size-limit")]
pub batch_size_limit: Option<u64>,

#[arg(long)]
#[serde(rename = "canonical-quarantine")]
pub canonical_quarantine: Option<u8>,
Expand Down Expand Up @@ -137,6 +141,10 @@ impl NodeParams {
.block_gas_limit
.unwrap_or(DEFAULT_BLOCK_GAS_LIMIT)
.min(MAX_BLOCK_GAS_LIMIT),
batch_size_limit: self
.batch_size_limit
.unwrap_or(DEFAULT_BATCH_SIZE_LIMIT)
.min(MAX_BATCH_SIZE_LIMIT),
canonical_quarantine: self.canonical_quarantine.unwrap_or(CANONICAL_QUARANTINE),
Comment thread
ecol-master marked this conversation as resolved.
dev: self.dev,
pre_funded_accounts: self
Expand Down Expand Up @@ -216,6 +224,7 @@ impl MergeParams for NodeParams {
.or(with.chunk_processing_threads),

block_gas_limit: self.block_gas_limit.or(with.block_gas_limit),
batch_size_limit: self.batch_size_limit.or(with.batch_size_limit),
canonical_quarantine: self.canonical_quarantine.or(with.canonical_quarantine),

fast_sync: self.fast_sync || with.fast_sync,
Expand Down
12 changes: 9 additions & 3 deletions ethexe/common/src/consensus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ use k256::sha2::Digest as _;
use parity_scale_codec::{Decode, Encode};
use sha3::Keccak256;

/// The maximum batch size limit - 120 KB.
pub const MAX_BATCH_SIZE_LIMIT: u64 = 120 * 1024;

/// The default batch size - 100 KB.
pub const DEFAULT_BATCH_SIZE_LIMIT: u64 = 100 * 1024;

/// Default threshold for producer to submit commitment despite of no transitions
pub const DEFAULT_CHAIN_DEEPNESS_THRESHOLD: u32 = 500;

pub type VerifiedAnnounce = VerifiedData<Announce>;
pub type VerifiedValidationRequest = VerifiedData<BatchCommitmentValidationRequest>;
pub type VerifiedValidationReply = VerifiedData<BatchCommitmentValidationReply>;
Expand Down Expand Up @@ -104,6 +113,3 @@ impl ToDigest for BatchCommitmentValidationReply {
hasher.update(signature.into_pre_eip155_bytes())
}
}

/// Default threshold for producer to submit commitment despite of no transitions
pub const DEFAULT_CHAIN_DEEPNESS_THRESHOLD: u32 = 500;
1 change: 1 addition & 0 deletions ethexe/consensus/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ roast-secp256k1-evm.workspace = true
hashbrown.workspace = true
lru.workspace = true
gear-workspace-hack.workspace = true
alloy.workspace = true

[dev-dependencies]
ethexe-common = { workspace = true, features = ["mock"] }
Expand Down
Loading
Loading