Skip to content

Cairo Serde#467

Open
Gali-StarkWare wants to merge 1 commit intomainfrom
gali/cairo_serde
Open

Cairo Serde#467
Gali-StarkWare wants to merge 1 commit intomainfrom
gali/cairo_serde

Conversation

@Gali-StarkWare
Copy link
Copy Markdown
Contributor

No description provided.

@reviewable-StarkWare
Copy link
Copy Markdown
Collaborator

This change is Reviewable

Copy link
Copy Markdown
Contributor Author

Gali-StarkWare commented Apr 27, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@Gali-StarkWare Gali-StarkWare marked this pull request as ready for review April 27, 2026 15:01
@Gali-StarkWare Gali-StarkWare self-assigned this Apr 27, 2026
@Gali-StarkWare Gali-StarkWare force-pushed the gali/generic_merkle_channel_prover branch from dcf2bf5 to a8f3bd2 Compare April 27, 2026 15:21
@Gali-StarkWare Gali-StarkWare changed the base branch from gali/generic_merkle_channel_prover to graphite-base/467 April 28, 2026 06:35
@graphite-app graphite-app Bot changed the base branch from graphite-base/467 to main April 28, 2026 06:36
@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

CLAUDE.md line 123 at r2 (raw file):

# Verifier stable check (must compile on stable 1.88.0)
RUSTUP_TOOLCHAIN=1.88.0 cargo check --workspace \
  --exclude circuit-prover --exclude circuit-cairo-serialize --exclude circuits-stark-verifier-examples

why?

Code quote:

--exclude circuit-cairo-serialize

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/proof.rs line 35 at r2 (raw file):

// not implement them. Roundtrip tests compare serialized bytes instead.
#[derive(Clone, Debug, CairoSerialize, CairoDeserialize)]
pub struct CairoCircuitProof<H: MerkleHasherLifted<Hash = Blake2sHash> = Blake2sM31MerkleHasher> {

remove

Code quote:

= Blake2sM31MerkleHasher

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/proof.rs line 48 at r2 (raw file):

#[derive(Clone, Debug, CairoSerialize, CairoDeserialize)]
pub struct CairoStarkProofForCircuit<
    H: MerkleHasherLifted<Hash = Blake2sHash> = Blake2sM31MerkleHasher,

Suggestion:

<Hash> 

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/proof.rs line 128 at r2 (raw file):

) -> Result<Vec<FieldElement>, &'static str> {
    let proof = CairoCircuitProof::<H>::from_prover_output(prover_output)?;
    let mut bytes = Vec::new();

Suggestion:

 let mut felts = Vec::new();

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/proof.rs line 13 at r2 (raw file):

use cairo_air::utils::sort_and_transpose_queried_values;
use circuit_prover::prover::CircuitProof as CircuitProverOutput;

maybe rename CircuitProof in a preliminary PR?

Code quote:

use circuit_prover::prover::CircuitProof as CircuitProverOutput;

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/proof.rs line 144 at r2 (raw file):

    let mut interaction = Vec::new();
    for component in &prover_output.components {
        let bounds: TreeVec<ColumnVec<u32>> = component.trace_log_degree_bounds();

Suggestion:

  let bounds: TreeVec<ColumnVec<u32>> = component.trace_log_degree_bounds();
  let Some([_, trace_log_size, interaction_log_size]) = bounds.try_into() else {
      panic!("Unexpected trace_log_degree_bounds length");
  }

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/test.rs line 28 at r2 (raw file):

/// Builds a tiny but real circuit assignment so we can run the prover and get a
/// well-formed `CircuitProof` to round-trip. Same shape as the Fibonacci context used

what does that mean?

Code quote:

to round-trip

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/test.rs line 63 at r2 (raw file):

    // re-serialized bytes — if the deserializer is the inverse of the serializer, the
    // two byte streams must match.
    let mut bytes = Vec::new();

felts

Code quote:

bytes

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/test.rs line 28 at r2 (raw file):

Previously, ilyalesokhin-starkware wrote…

what does that mean?

for serde round-trip test

@ilyalesokhin-starkware
Copy link
Copy Markdown
Contributor

crates/circuit_cairo_serialize/src/config.rs line 10 at r2 (raw file):

#[derive(Clone, Debug, PartialEq, Eq, CairoSerialize, CairoDeserialize)]
pub struct CairoCircuitVerifierConfig {

What is this struct? is it related to CircuitConfig?

Code quote:

CairoCircuitVerifierConfig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants