2024-11-14 10:31:32 +01:00
|
|
|
use plonky2::plonk::circuit_data::CircuitConfig;
|
|
|
|
|
use plonky2::plonk::config::GenericConfig;
|
|
|
|
|
use plonky2::plonk::circuit_builder::CircuitBuilder;
|
|
|
|
|
use anyhow::Result;
|
|
|
|
|
use std::time::Instant;
|
|
|
|
|
use codex_plonky2_circuits::circuits::sample_cells::SampleCircuit;
|
2024-11-26 09:53:47 +01:00
|
|
|
use plonky2_poseidon2::serialization::{DefaultGateSerializer,DefaultGeneratorSerializer};
|
2025-01-10 11:30:34 +01:00
|
|
|
use proof_input::serialization::json::write_bytes_to_file;
|
2024-11-14 10:31:32 +01:00
|
|
|
use proof_input::params::Params;
|
2025-01-10 11:56:06 +01:00
|
|
|
use proof_input::params::{D, C, F,HF};
|
2024-11-14 10:31:32 +01:00
|
|
|
|
|
|
|
|
fn main() -> Result<()> {
|
|
|
|
|
// Load the parameters from environment variables
|
|
|
|
|
let params = Params::from_env()?;
|
|
|
|
|
|
|
|
|
|
// Create the circuit
|
|
|
|
|
let config = CircuitConfig::standard_recursion_config();
|
|
|
|
|
let mut builder = CircuitBuilder::<F, D>::new(config);
|
|
|
|
|
let circuit_params = params.circuit_params;
|
2025-01-10 11:56:06 +01:00
|
|
|
let circ = SampleCircuit::<F,D,HF>::new(circuit_params);
|
2024-12-13 16:38:53 +03:00
|
|
|
let mut targets = circ.sample_slot_circuit_with_public_input(&mut builder);
|
2024-11-14 10:31:32 +01:00
|
|
|
|
|
|
|
|
// Build the circuit
|
|
|
|
|
let build_time = Instant::now();
|
|
|
|
|
let data = builder.build::<C>();
|
|
|
|
|
println!("Build time: {:?}", build_time.elapsed());
|
|
|
|
|
println!("Circuit size (degree bits): {:?}", data.common.degree_bits());
|
|
|
|
|
|
2024-11-26 09:53:47 +01:00
|
|
|
let gate_serializer = DefaultGateSerializer;
|
|
|
|
|
let generator_serializer =DefaultGeneratorSerializer::<C, D>::default();
|
|
|
|
|
let data_bytes = data.to_bytes(&gate_serializer, &generator_serializer).unwrap();
|
|
|
|
|
|
|
|
|
|
let file_path = "circ_data.bin";
|
|
|
|
|
// Write data to the file
|
|
|
|
|
write_bytes_to_file(data_bytes.clone(), file_path).unwrap();
|
|
|
|
|
println!("Data written to {}", file_path);
|
|
|
|
|
|
2024-11-14 10:31:32 +01:00
|
|
|
Ok(())
|
|
|
|
|
}
|