Skip to content
This repository was archived by the owner on Jan 16, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
148 changes: 105 additions & 43 deletions Cargo.lock

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -106,27 +106,27 @@ op-alloy-consensus = { version = "0.9.6", default-features = false }
op-alloy-rpc-types-engine = { version = "0.9.6", default-features = false }

# General
lru = "0.12.5"
lru = "0.13.0"
spin = "0.9.8"
rand = "0.8.5"
clap = "4.5.24"
tokio = "1.42.0"
rand = "0.9.0"
clap = "4.5.27"
tokio = "1.43.0"
async-channel = "2.3.1"
cfg-if = "1.0.0"
reqwest = "0.12.12"
async-trait = "0.1.85"
linked_list_allocator = "0.10.5"
rstest = "0.24.0"
tempfile = "3.15.0"
tempfile = "3.16.0"

# General
sha2 = { version = "0.10.8", default-features = false }
c-kzg = { version = "2.0.0", default-features = false }
anyhow = { version = "1.0.95", default-features = false }
thiserror = { version = "2.0.9", default-features = false }
thiserror = { version = "2.0.11", default-features = false }

# Tracing
tracing-loki = "0.2.5"
tracing-loki = "0.2.6"
tracing-subscriber = "0.3.19"
tracing = { version = "0.1.41", default-features = false }

Expand All @@ -138,11 +138,11 @@ criterion = "0.5.1"
# Serialization
rkyv = "0.8.9"
serde = { version = "1.0.217", default-features = false }
serde_json = { version = "1.0.135", default-features = false }
serde_json = { version = "1.0.138", default-features = false }

# Ethereum
unsigned-varint = "0.8.0"
revm = { version = "19.3.0", default-features = false }
revm = { version = "19.4.0", default-features = false }

# K/V database
rocksdb = { version = "0.22.0", default-features = false }
2 changes: 1 addition & 1 deletion crates/derive/src/test_utils/frame_queue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ impl TestFrameQueueProvider {
}

/// Sets the origin for the [MockFrameQueueProvider].
pub fn set_origin(&mut self, origin: BlockInfo) {
pub const fn set_origin(&mut self, origin: BlockInfo) {
self.origin = Some(origin);
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/interop/src/super_root.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ mod test {
#[test]
fn test_arbitrary_super_root_roundtrip() {
let mut bytes = [0u8; 1024];
rand::thread_rng().fill(bytes.as_mut_slice());
rand::rng().fill(bytes.as_mut_slice());
let super_root = SuperRoot::arbitrary(&mut arbitrary::Unstructured::new(&bytes)).unwrap();

let mut rlp_buf = Vec::with_capacity(super_root.encoded_length());
Expand Down
58 changes: 33 additions & 25 deletions crates/mpt/benches/trie_node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use alloy_trie::Nibbles;
use criterion::{criterion_group, criterion_main, Criterion};
use kona_mpt::{NoopTrieHinter, NoopTrieProvider, TrieNode};
use pprof::criterion::{Output, PProfProfiler};
use rand::{rngs::StdRng, seq::SliceRandom, Rng, SeedableRng};
use rand::{rngs::StdRng, seq::IteratorRandom, Rng, SeedableRng};

fn trie(c: &mut Criterion) {
let mut g = c.benchmark_group("execution");
Expand All @@ -15,8 +15,9 @@ fn trie(c: &mut Criterion) {
let mut rng = StdRng::seed_from_u64(42);

g.bench_function("Insertion - 4096 nodes", |b| {
let keys =
(0..2usize.pow(12)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(12))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();

b.iter(|| {
let mut trie = TrieNode::Empty;
Expand All @@ -27,8 +28,9 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Insertion - 65,536 nodes", |b| {
let keys =
(0..2usize.pow(16)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(16))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();

b.iter(|| {
let mut trie = TrieNode::Empty;
Expand All @@ -39,12 +41,13 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Delete 16 nodes - 4096 nodes", |b| {
let keys =
(0..2usize.pow(12)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(12))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;

let rng = &mut rand::thread_rng();
let keys_to_delete = keys.choose_multiple(rng, 16).cloned().collect::<Vec<_>>();
let rng = &mut rand::rng();
let keys_to_delete = keys.clone().into_iter().choose_multiple(rng, 16);

for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
Expand All @@ -59,15 +62,16 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Delete 16 nodes - 65,536 nodes", |b| {
let keys =
(0..2usize.pow(16)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(16))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;
for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
}

let rng = &mut rand::thread_rng();
let keys_to_delete = keys.choose_multiple(rng, 16).cloned().collect::<Vec<_>>();
let rng = &mut rand::rng();
let keys_to_delete = keys.into_iter().choose_multiple(rng, 16);

b.iter(|| {
let trie = &mut trie.clone();
Expand All @@ -78,15 +82,16 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Open 1024 nodes - 4096 nodes", |b| {
let keys =
(0..2usize.pow(12)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(12))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;
for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
}

let rng = &mut rand::thread_rng();
let keys_to_retrieve = keys.choose_multiple(rng, 1024).cloned().collect::<Vec<_>>();
let rng = &mut rand::rng();
let keys_to_retrieve = keys.into_iter().choose_multiple(rng, 1024);

b.iter(|| {
for key in &keys_to_retrieve {
Expand All @@ -96,15 +101,16 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Open 1024 nodes - 65,536 nodes", |b| {
let keys =
(0..2usize.pow(16)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(16))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;
for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
}

let rng = &mut rand::thread_rng();
let keys_to_retrieve = keys.choose_multiple(rng, 1024).cloned().collect::<Vec<_>>();
let rng = &mut rand::rng();
let keys_to_retrieve = keys.into_iter().choose_multiple(rng, 1024);

b.iter(|| {
for key in &keys_to_retrieve {
Expand All @@ -114,8 +120,9 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Compute root, fully open trie - 4096 nodes", |b| {
let keys =
(0..2usize.pow(12)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(12))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;
for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
Expand All @@ -128,8 +135,9 @@ fn trie(c: &mut Criterion) {
});

g.bench_function("Compute root, fully open trie - 65,536 nodes", |b| {
let keys =
(0..2usize.pow(16)).map(|_| Nibbles::unpack(rng.gen::<[u8; 32]>())).collect::<Vec<_>>();
let keys = (0..2usize.pow(16))
.map(|_| Nibbles::unpack(rng.random::<[u8; 32]>()))
.collect::<Vec<_>>();
let mut trie = TrieNode::Empty;
for key in &keys {
trie.insert(key, key.to_vec().into(), &NoopTrieProvider).unwrap();
Expand Down
2 changes: 1 addition & 1 deletion crates/mpt/src/list_walker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@

/// Takes the inner list of the [OrderedListWalker], returning it and setting the inner list to
/// [None].
pub fn take_inner(&mut self) -> Option<VecDeque<(Bytes, Bytes)>> {
pub const fn take_inner(&mut self) -> Option<VecDeque<(Bytes, Bytes)>> {

Check warning on line 80 in crates/mpt/src/list_walker.rs

View check run for this annotation

Codecov / codecov/patch

crates/mpt/src/list_walker.rs#L80

Added line #L80 was not covered by tests
self.inner.take()
}

Expand Down
6 changes: 3 additions & 3 deletions crates/mpt/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -674,7 +674,7 @@ mod test {
use alloy_primitives::{b256, bytes, hex, keccak256};
use alloy_rlp::{Decodable, Encodable, EMPTY_STRING_CODE};
use alloy_trie::{HashBuilder, Nibbles};
use rand::prelude::SliceRandom;
use rand::prelude::IteratorRandom;

#[test]
fn test_empty_blinded() {
Expand Down Expand Up @@ -869,9 +869,9 @@ mod test {
let mut hb = HashBuilder::default();
let mut node = TrieNode::Empty;

let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let deleted_keys =
keys.choose_multiple(&mut rng, 5.min(keys.len())).copied().collect::<Vec<_>>();
keys.clone().into_iter().choose_multiple(&mut rng, 5.min(keys.len()));

// Insert the keys into the `HashBuilder` and `TrieNode`.
for key in keys {
Expand Down
4 changes: 2 additions & 2 deletions crates/proof-sdk/proof-interop/src/pre_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ mod test {
#[test]
fn test_arbitrary_pre_state_roundtrip() {
let mut bytes = [0u8; 1024];
rand::thread_rng().fill(bytes.as_mut_slice());
rand::rng().fill(bytes.as_mut_slice());
let pre_state =
super::PreState::arbitrary(&mut arbitrary::Unstructured::new(&bytes)).unwrap();

Expand All @@ -264,7 +264,7 @@ mod test {
#[test]
fn test_arbitrary_transition_state_roundtrip() {
let mut bytes = [0u8; 1024];
rand::thread_rng().fill(bytes.as_mut_slice());
rand::rng().fill(bytes.as_mut_slice());
let transition_state =
TransitionState::arbitrary(&mut arbitrary::Unstructured::new(&bytes)).unwrap();

Expand Down
2 changes: 1 addition & 1 deletion crates/proof-sdk/std-fpvm/src/channel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@

impl<'a> ReadFuture<'a> {
/// Create a new [ReadFuture] from a channel and a buffer.
fn new(channel: FileChannel, buf: &'a mut [u8]) -> Self {
const fn new(channel: FileChannel, buf: &'a mut [u8]) -> Self {

Check warning on line 72 in crates/proof-sdk/std-fpvm/src/channel.rs

View check run for this annotation

Codecov / codecov/patch

crates/proof-sdk/std-fpvm/src/channel.rs#L72

Added line #L72 was not covered by tests
Self { channel, buf: RefCell::new(buf), read: 0 }
}
}
Expand Down