Skip to content

Commit 03b992f

Browse files
committed
json mode
1 parent d306b38 commit 03b992f

File tree

2 files changed

+41
-22
lines changed

2 files changed

+41
-22
lines changed

crates/prover-bin/src/dumper.rs

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,39 @@ use scroll_zkvm_types::ProvingTask;
1212
#[derive(Default)]
1313
pub struct Dumper {
1414
#[allow(dead_code)]
15-
target_path: String,
15+
pub target_path: String,
16+
pub json_mode: bool,
1617
}
1718

1819
impl Dumper {
1920
fn dump(&self, input_string: &str) -> eyre::Result<()> {
2021
let task: ProvingTaskExt = serde_json::from_str(input_string)?;
2122
let task = ProvingTask::from(task);
2223

23-
// stream-encode serialized_witness to input_task.bin using bincode 2.0
24-
let input_file = std::fs::File::create("input_task.bin")?;
25-
let mut input_writer = std::io::BufWriter::new(input_file);
26-
bincode::encode_into_std_write(
27-
&task.serialized_witness,
28-
&mut input_writer,
29-
bincode::config::standard(),
30-
)?;
31-
32-
// stream-encode aggregated_proofs to agg_proofs.bin using bincode 2.0
33-
let agg_file = std::fs::File::create("agg_proofs.bin")?;
34-
let mut agg_writer = std::io::BufWriter::new(agg_file);
35-
for proof in &task.aggregated_proofs {
36-
bincode::serde::encode_into_std_write(
37-
&proof.proofs,
38-
&mut agg_writer,
24+
if self.json_mode {
25+
let file = std::fs::File::create("input_task.json")?;
26+
serde_json::to_writer(std::io::BufWriter::new(file), &task)?;
27+
} else {
28+
// stream-encode serialized_witness to input_task.bin using bincode 2.0
29+
let input_file = std::fs::File::create("input_task.bin")?;
30+
let mut input_writer = std::io::BufWriter::new(input_file);
31+
bincode::encode_into_std_write(
32+
&task.serialized_witness,
33+
&mut input_writer,
3934
bincode::config::standard(),
4035
)?;
36+
37+
// stream-encode aggregated_proofs to agg_proofs.bin using bincode 2.0
38+
let agg_file = std::fs::File::create("agg_proofs.bin")?;
39+
let mut agg_writer = std::io::BufWriter::new(agg_file);
40+
for proof in &task.aggregated_proofs {
41+
let sz = bincode::serde::encode_into_std_write(
42+
&proof.proofs,
43+
&mut agg_writer,
44+
bincode::config::standard(),
45+
)?;
46+
println!("written {sz} bytes for proof");
47+
}
4148
}
4249

4350
Ok(())

crates/prover-bin/src/main.rs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ enum Commands {
5757
task_path: String,
5858
},
5959
Dump {
60+
#[arg(long = "json", default_value = "false")]
61+
json_mode: bool,
6062
task_type: TaskType,
6163
task_id: String,
6264
},
@@ -85,11 +87,21 @@ async fn main() -> eyre::Result<()> {
8587
let local_prover = LocalProver::new(cfg.clone());
8688

8789
match args.command {
88-
Some(Commands::Dump { task_type, task_id }) => {
89-
let prover = ProverBuilder::new(sdk_config, dumper::Dumper::default())
90-
.build()
91-
.await
92-
.map_err(|e| eyre::eyre!("build prover fail: {e}"))?;
90+
Some(Commands::Dump {
91+
json_mode,
92+
task_type,
93+
task_id,
94+
}) => {
95+
let prover = ProverBuilder::new(
96+
sdk_config,
97+
dumper::Dumper {
98+
json_mode,
99+
..Default::default()
100+
},
101+
)
102+
.build()
103+
.await
104+
.map_err(|e| eyre::eyre!("build prover fail: {e}"))?;
93105

94106
std::sync::Arc::new(prover)
95107
.one_shot(&[task_id], task_type.into())

0 commit comments

Comments
 (0)