Skip to content

Commit 8fcd273

Browse files
committed
prune storage fetch in execution
1 parent f640ef9 commit 8fcd273

File tree

5 files changed

+12
-44
lines changed

5 files changed

+12
-44
lines changed

crates/l2geth/src/rpc_client.rs

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use alloy::{
2-
providers::{Provider, ProviderBuilder, RootProvider},
2+
providers::{Provider, ProviderBuilder},
33
rpc::client::ClientBuilder,
44
transports::layers::RetryBackoffLayer,
55
};
@@ -81,7 +81,7 @@ impl RpcClientCore {
8181
})
8282
}
8383

84-
pub fn get_client(&self) -> RpcClient<impl Provider<Network>> {
84+
pub fn get_client(&self) -> RpcClient<'_, impl Provider<Network>> {
8585
RpcClient {
8686
provider: ProviderBuilder::<_, _, Network>::default().connect_client(self.client.clone()),
8787
handle: self.rt.handle(),
@@ -100,7 +100,7 @@ impl<T: Provider<Network>> ChunkInterpreter for RpcClient<'_, T> {
100100
block_hash: sbv_primitives::B256,
101101
prev_witness: Option<&sbv_core::BlockWitness>,
102102
) -> Result<sbv_core::BlockWitness> {
103-
use sbv_utils::{rpc::ProviderExt, witness::WitnessBuilder};
103+
use sbv_utils::rpc::ProviderExt;
104104

105105
let (chain_id, block_num, prev_state_root) = if let Some(w) = prev_witness {
106106
(
@@ -119,7 +119,7 @@ impl<T: Provider<Network>> ChunkInterpreter for RpcClient<'_, T> {
119119
let parent_block = provider
120120
.get_block_by_hash(block.header.parent_hash)
121121
.await?
122-
.expect(&format!("parent block for block {} should exist", block.header.number));
122+
.unwrap_or_else(||panic!("parent block for block {} should exist", block.header.number));
123123

124124
(chain_id, block.header.number, parent_block.header.state_root)
125125
};
@@ -183,10 +183,10 @@ mod tests {
183183
let client_core = RpcClientCore::create(&config).expect("Failed to create RPC client");
184184
let client = client_core.get_client();
185185

186-
// latest - 1 block in 2025.6.15
186+
// latest - 1 block in 2025.9.11
187187
let block_hash = B256::from(
188188
hex::const_decode_to_array(
189-
b"0x9535a6970bc4db9031749331a214e35ed8c8a3f585f6f456d590a0bc780a1368",
189+
b"0x093fb6bf2e556a659b35428ac447cd9f0635382fc40ffad417b5910824f9e932",
190190
)
191191
.unwrap(),
192192
);
@@ -196,10 +196,10 @@ mod tests {
196196
.try_fetch_block_witness(block_hash, None)
197197
.expect("should success");
198198

199-
// latest block in 2025.6.15
199+
// block selected in 2025.9.11
200200
let block_hash = B256::from(
201201
hex::const_decode_to_array(
202-
b"0xd47088cdb6afc68aa082e633bb7da9340d29c73841668afacfb9c1e66e557af0",
202+
b"0x77cc84dd7a4dedf6fe5fb9b443aeb5a4fb0623ad088a365d3232b7b23fc848e5",
203203
)
204204
.unwrap(),
205205
);
@@ -210,25 +210,4 @@ mod tests {
210210
println!("{}", serde_json::to_string_pretty(&wit2).unwrap());
211211
}
212212

213-
#[test]
214-
#[ignore = "Requires L2GETH_ENDPOINT environment variable"]
215-
fn test_try_fetch_storage_node() {
216-
let config = create_config_from_env();
217-
let client_core = RpcClientCore::create(&config).expect("Failed to create RPC client");
218-
let client = client_core.get_client();
219-
220-
// the root node (state root) of the block in unittest above
221-
let node_hash = B256::from(
222-
hex::const_decode_to_array(
223-
b"0xb9e67403a2eb35afbb0475fe942918cf9a330a1d7532704c24554506be62b27c",
224-
)
225-
.unwrap(),
226-
);
227-
228-
// This is expected to fail since we're using a dummy hash, but it tests the code path
229-
let node = client
230-
.try_fetch_storage_node(node_hash)
231-
.expect("should success");
232-
println!("{}", serde_json::to_string_pretty(&node).unwrap());
233-
}
234213
}

crates/libzkp/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ pub fn gen_universal_task(
3535
task_json: &str,
3636
fork_name_str: &str,
3737
expected_vk: &[u8],
38-
interpreter: Option<impl ChunkInterpreter>,
3938
) -> eyre::Result<(B256, String, String)> {
4039
use proofs::*;
4140
use tasks::*;
@@ -60,7 +59,7 @@ pub fn gen_universal_task(
6059
eyre::bail!("fork name in chunk task not match the calling arg, expected {fork_name_str}, get {}", task.fork_name);
6160
}
6261
let (pi_hash, metadata, u_task) = utils::panic_catch(move || {
63-
gen_universal_chunk_task(task, fork_name_str.into(), interpreter)
62+
gen_universal_chunk_task(task, fork_name_str.into())
6463
})
6564
.map_err(|e| eyre::eyre!("caught panic in chunk task{e}"))??;
6665
(pi_hash, AnyMetaData::Chunk(metadata), u_task)

crates/libzkp/src/proofs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use scroll_zkvm_types::{
99
chunk::ChunkInfo,
1010
proof::{EvmProof, OpenVmEvmProof, ProofEnum, StarkProof},
1111
public_inputs::{ForkName, MultiVersionPublicInputs},
12-
types_agg::{AggregationInput, ProgramCommitment},
12+
types_agg::AggregationInput,
1313
utils::{vec_as_base64, serialize_vk}
1414
};
1515
use serde::{de::DeserializeOwned, Deserialize, Serialize};

crates/libzkp/src/tasks.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,9 @@ where
4242

4343
/// Generate required staff for chunk proving
4444
pub fn gen_universal_chunk_task(
45-
mut task: ChunkProvingTask,
45+
task: ChunkProvingTask,
4646
fork_name: ForkName,
47-
interpreter: Option<impl ChunkInterpreter>,
4847
) -> eyre::Result<(B256, ChunkProofMetadata, ProvingTask)> {
49-
if let Some(interpreter) = interpreter {
50-
task.prepare_task_via_interpret(interpreter)?;
51-
}
5248
let chunk_total_gas = task.stats().total_gas_used;
5349
let chunk_info = task.precheck_and_build_metadata()?;
5450
let proving_task = task.try_into()?;

crates/libzkp_c/src/lib.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -153,17 +153,12 @@ pub unsafe extern "C" fn gen_universal_task(
153153
expected_vk: *const u8,
154154
expected_vk_len: usize,
155155
) -> HandlingResult {
156-
let mut interpreter = None;
157156
let task_json = if task_type == TaskType::Chunk as i32 {
158157
let pre_task_str = c_char_to_str(task);
159158
let cli = l2geth::get_client();
160159
match libzkp::checkout_chunk_task(pre_task_str, cli) {
161-
Ok(str) => {
162-
interpreter.replace(cli);
163-
str
164-
}
160+
Ok(str) => str,
165161
Err(e) => {
166-
println!("gen_universal_task failed at pre interpret step, error: {e}");
167162
tracing::error!("gen_universal_task failed at pre interpret step, error: {e}");
168163
return failed_handling_result();
169164
}
@@ -183,7 +178,6 @@ pub unsafe extern "C" fn gen_universal_task(
183178
&task_json,
184179
c_char_to_str(fork_name),
185180
expected_vk,
186-
interpreter,
187181
);
188182

189183
if let Ok((pi_hash, meta_json, task_json)) = ret {

0 commit comments

Comments
 (0)