Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add remote batch prover #1131

Open
wants to merge 1 commit into
base: next
Choose a base branch
from

Conversation

SantiagoPittella
Copy link
Collaborator

@SantiagoPittella SantiagoPittella commented Feb 7, 2025

Part of #1034

It adds a worker and a client for the RemoteBatchProver, and serialization to related structs. This PR doesn't adds logic to route requests in the proxy to a certain worker type. We might want to have different proxies for each prover type.

Splits logic for servers and clients into new files instead of using mod.rs.

I'm currently looking how to create a ProposedBatch to be used in a test.

@SantiagoPittella SantiagoPittella force-pushed the santiagopittella-add-remote-batch-prover branch 2 times, most recently from 65418ad to 1cd8641 Compare February 7, 2025 18:52
@SantiagoPittella SantiagoPittella force-pushed the santiagopittella-add-remote-batch-prover branch from 1cd8641 to f834a3c Compare February 7, 2025 19:03
@bobbinth
Copy link
Contributor

bobbinth commented Feb 7, 2025

Thank you! Not a review yet - but one question: could you split out adding of serialization/deserialization logic into a separate PR? (we'll be able to merge it faster and it will also reduce the footprint of this PR).

@bobbinth
Copy link
Contributor

bobbinth commented Feb 7, 2025

We might want to have different proxies for each prover type.

I haven't really thought this through, but another option could to have workers that can handle different types of proving requests. Basically, have a worker that can accept requests in this format:

service Api {
    rpc Prove(ProveRequest) returns (ProveResponse) {}
}

enum ProofType {
  TRANSACTION = 0;
  BATCH = 1;
  BLOCK = 2;
}

message ProveRequest {
    ProofType proof_type = 1;
    bytes payload = 2;
}

message ProveResponse {
    bytes payload = 1;
}

If this works, then the proxy can be "request-agnostic" - i.e., it would route requests to the next available worker and that worker will be able to handle any type of request.

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.

2 participants