Skip to content

Conversation

@einat-starkware
Copy link
Contributor

No description provided.

@reviewable-StarkWare
Copy link

This change is Reviewable

Copy link
Contributor Author

einat-starkware commented Jan 12, 2026

Copy link
Collaborator

@meship-starkware meship-starkware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@meship-starkware reviewed 1 file and all commit messages, and made 3 comments.
Reviewable status: all files reviewed, 3 unresolved discussions (waiting on @einat-starkware and @noaov1).


crates/apollo_gateway/src/gateway.rs line 137 at r1 (raw file):

        let proof_data = if let RpcTransaction::Invoke(RpcInvokeTransaction::V3(ref tx)) = tx {
            if !tx.proof_facts.is_empty() {
                Some((tx.proof_facts.clone(), tx.proof.clone()))

The proof clone can be pretty heavy, no? Can you check the option of wrapping the Proof with Arc?
I think this is good enough for the first version

Code quote:

tx.proof.clone()

crates/apollo_gateway/src/gateway.rs line 143 at r1 (raw file):

        } else {
            None
        };

Consider, I think it's better than the nested if-else, but it might be slightly less readable.

Suggestion:

let proof_data = match tx {
    RpcTransaction::Invoke(RpcInvokeTransaction::V3(tx))
        if !tx.proof_facts.is_empty() =>
    {
        Some((tx.proof_facts.clone(), tx.proof.clone()))
    }
    _ => None,
};

crates/apollo_gateway/src/gateway.rs line 174 at r1 (raw file):

            tokio::spawn(async move {
                if let Err(e) = proof_archive_writer.set_proof(proof_facts, proof).await {
                    warn!("Failed to archive proof to GCS: {}", e);

How would this show in the logs? I think this should be an error log. Also, do you know if this component is part of the core sequencer pod or will it have its own pod?

Code quote:

 warn!("Failed to archive proof to GCS: {}", e);

Copy link
Collaborator

@noaov1 noaov1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@noaov1 reviewed 1 file and all commit messages, and made 1 comment.
Reviewable status: all files reviewed, 3 unresolved discussions (waiting on @einat-starkware and @meship-starkware).


crates/apollo_gateway/src/gateway.rs line 174 at r1 (raw file):

Previously, meship-starkware (Meshi Peled) wrote…

How would this show in the logs? I think this should be an error log. Also, do you know if this component is part of the core sequencer pod or will it have its own pod?

I agree

@einat-starkware einat-starkware changed the base branch from einat/proof_archive/client to graphite-base/11638 January 13, 2026 12:55
@einat-starkware einat-starkware force-pushed the einat/proof_archive/set_proof branch from 65c175d to 6f80c88 Compare January 13, 2026 14:14
@einat-starkware einat-starkware changed the base branch from graphite-base/11638 to einat/proof_archive/client January 13, 2026 14:14
@einat-starkware einat-starkware changed the base branch from einat/proof_archive/client to graphite-base/11638 January 13, 2026 14:15
Copy link
Contributor Author

@einat-starkware einat-starkware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@einat-starkware made 3 comments.
Reviewable status: 0 of 1 files reviewed, 3 unresolved discussions (waiting on @meship-starkware and @noaov1).


crates/apollo_gateway/src/gateway.rs line 137 at r1 (raw file):

Previously, meship-starkware (Meshi Peled) wrote…

The proof clone can be pretty heavy, no? Can you check the option of wrapping the Proof with Arc?
I think this is good enough for the first version

Proof is already wrapped in Arc :)


crates/apollo_gateway/src/gateway.rs line 143 at r1 (raw file):

Previously, meship-starkware (Meshi Peled) wrote…

Consider, I think it's better than the nested if-else, but it might be slightly less readable.

I agree, switched to use match :)


crates/apollo_gateway/src/gateway.rs line 174 at r1 (raw file):

Previously, noaov1 (Noa Oved) wrote…

I agree

The proof archive is just in the Gateway pod (as it is only part of the gateway), the proof manager is in the core sequencer pod.

Copy link
Collaborator

@noaov1 noaov1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

@noaov1 reviewed 1 file and all commit messages, made 1 comment, and resolved 1 discussion.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @meship-starkware).

@einat-starkware einat-starkware force-pushed the einat/proof_archive/set_proof branch from 6f80c88 to a5e3eb3 Compare January 14, 2026 07:01
@einat-starkware einat-starkware changed the base branch from graphite-base/11638 to einat/proof_archive/client January 14, 2026 07:01
@einat-starkware einat-starkware changed the base branch from einat/proof_archive/client to graphite-base/11638 January 14, 2026 07:56
@einat-starkware einat-starkware force-pushed the einat/proof_archive/set_proof branch from a5e3eb3 to fff30ff Compare January 14, 2026 07:56
@einat-starkware einat-starkware changed the base branch from graphite-base/11638 to main January 14, 2026 07:56
Copy link
Contributor Author

@einat-starkware einat-starkware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@einat-starkware resolved 2 discussions.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @meship-starkware).

@einat-starkware einat-starkware added this pull request to the merge queue Jan 14, 2026
Merged via the queue into main with commit 4abd5b2 Jan 14, 2026
23 of 36 checks passed
@ArniStarkware
Copy link
Contributor

crates/apollo_gateway/src/gateway.rs line 173 at r2 (raw file):

        if let Some((proof_facts, proof)) = proof_data {
            let proof_archive_writer = self.proof_archive_writer.clone();
            tokio::spawn(async move {

why tokio::spawn? Can't we simply call the proof_archive_writer?

Code quote:

 tokio::spawn(async move {

Copy link
Contributor Author

@einat-starkware einat-starkware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@einat-starkware made 1 comment.
Reviewable status: all files reviewed, 1 unresolved discussion.


crates/apollo_gateway/src/gateway.rs line 173 at r2 (raw file):

Previously, ArniStarkware (Arnon Hod) wrote…

why tokio::spawn? Can't we simply call the proof_archive_writer?

Writing to GCS can be slow and we don't want to hold up the gateway so we want to do it asynchronously - the rest of the system doesn't depend on when we finish writing to GCS, it just needs to happen eventually

@github-actions github-actions bot locked and limited conversation to collaborators Jan 16, 2026
@einat-starkware einat-starkware deleted the einat/proof_archive/set_proof branch January 18, 2026 08:06
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants