diff --git a/.gitignore b/.gitignore
index fb04d373..5d3170ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,5 @@ Cargo.lock
.vscode
co-noir/co-acvm/src/bin/
+co-circom/co-plonk/src/bin/
groth16_tester.rs
diff --git a/co-circom/co-plonk/Cargo.toml b/co-circom/co-plonk/Cargo.toml
index ae0eb1c2..7fc06e26 100644
--- a/co-circom/co-plonk/Cargo.toml
+++ b/co-circom/co-plonk/Cargo.toml
@@ -25,10 +25,15 @@ mpc-core = { workspace = true }
mpc-net = { workspace = true }
num-traits = { workspace = true }
rand = { workspace = true }
+rayon = { workspace = true }
sha3 = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
+# DELETE ME
+tracing-subscriber.workspace = true
+serde_json = { workspace = true }
+ark-bn254 = { workspace = true }
[dev-dependencies]
ark-bls12-381 = { workspace = true }
diff --git a/co-circom/co-plonk/src/lib.rs b/co-circom/co-plonk/src/lib.rs
index 8e2db90d..93680af2 100644
--- a/co-circom/co-plonk/src/lib.rs
+++ b/co-circom/co-plonk/src/lib.rs
@@ -79,7 +79,18 @@ where
zkey: &ZKey
,
witness: SharedWitness,
) -> PlonkProofResult> {
- tracing::debug!("starting PLONK prove..");
+ tracing::debug!("starting PLONK prove!");
+ tracing::debug!(
+ "we have {} constraints and {} addition constraints",
+ zkey.n_constraints,
+ zkey.n_additions
+ );
+ tracing::debug!("the domain size is {}", zkey.domain_size);
+ tracing::debug!(
+ "we have {} n_vars and {} public inputs",
+ zkey.n_vars,
+ zkey.n_public
+ );
let state = Round1::init_round(self.driver, self.runtime, zkey, witness)?;
tracing::debug!("init round done..");
let state = state.round1()?;
diff --git a/co-circom/co-plonk/src/mpc.rs b/co-circom/co-plonk/src/mpc.rs
index 0eaddd97..69e6d07a 100644
--- a/co-circom/co-plonk/src/mpc.rs
+++ b/co-circom/co-plonk/src/mpc.rs
@@ -25,6 +25,9 @@ pub trait CircomPlonkProver {
fn rand(&mut self) -> Self::ArithmeticShare;
fn get_party_id(&self) -> Self::PartyID;
+
+ fn fork(&mut self) -> Self;
+
/// Subtract the share b from the share a: \[c\] = \[a\] - \[b\]
fn add(a: Self::ArithmeticShare, b: Self::ArithmeticShare) -> Self::ArithmeticShare;
@@ -53,6 +56,13 @@ pub trait CircomPlonkProver {
b: &[Self::ArithmeticShare],
) -> impl Future