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

Feature: gRPC server and client #4

Merged
merged 1 commit into from
Nov 20, 2023
Merged

Feature: gRPC server and client #4

merged 1 commit into from
Nov 20, 2023

Conversation

odesenfans
Copy link
Contributor

Implemented a gRPC server to call the Stone prover from a remote client.
This server provides a single endpoint at the moment, Prove, which
returns the proof. The protocol uses server-side streaming to
communicate the proof to the client once it is computed.

This server is still limited, the following points need to be discussed:

  • Efficiency: the protocol passes JSON data (public input, prover config
    and parameters) as raw strings. These strings are then deserialized on
    server-side to validate them, but end up being serialized again for
    use by the prover process. This is clearly inefficient.

  • Even if the client process cancels the request, the prover will keep
    on running until the proof is generated.

@odesenfans
Copy link
Contributor Author

Depends on #3.

@odesenfans odesenfans force-pushed the od/grpc-server branch 2 times, most recently from cae7bc5 to 969bb29 Compare November 15, 2023 14:00
Implemented a gRPC server to call the Stone prover from a remote client.
This server provides a single endpoint at the moment, `Prove`, which
returns the proof. The protocol uses server-side streaming to
communicate the proof to the client once it is computed.

This server is still limited, the following points need to be discussed:

* Efficiency: the protocol passes JSON data (public input, prover config
  and parameters) as raw strings. These strings are then deserialized on
  server-side to validate them, but end up being serialized again for
  use by the prover process. This is clearly inefficient.

* Even if the client process cancels the request, the prover will keep
  on running until the proof is generated.
@odesenfans odesenfans marked this pull request as ready for review November 20, 2023 09:45
@odesenfans odesenfans merged commit 54aca74 into main Nov 20, 2023
1 check passed
@odesenfans odesenfans deleted the od/grpc-server branch November 20, 2023 10:05
@odesenfans odesenfans mentioned this pull request Nov 28, 2023
16 tasks
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.

Feature: Stone Prover RPC Substrate client Feature: Stone Prover RPC server
1 participant