From c5168058d66bf06533316975e5f6ac76584a04fe Mon Sep 17 00:00:00 2001 From: oyyblin <4529189+oyyblin@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:31:47 -0800 Subject: [PATCH] fix(prover): grpc server support gzip --- prover-service/Cargo.lock | 20 ++++++++++++++++++++ prover-service/Cargo.toml | 2 +- prover-service/src/bin/server.rs | 8 +++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/prover-service/Cargo.lock b/prover-service/Cargo.lock index dc01a9f..b6ea0aa 100644 --- a/prover-service/Cargo.lock +++ b/prover-service/Cargo.lock @@ -1123,6 +1123,15 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -1917,6 +1926,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flate2" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -5942,6 +5961,7 @@ dependencies = [ "axum 0.6.20", "base64 0.21.7", "bytes", + "flate2", "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", diff --git a/prover-service/Cargo.toml b/prover-service/Cargo.toml index 34b571f..03c07a6 100644 --- a/prover-service/Cargo.toml +++ b/prover-service/Cargo.toml @@ -11,7 +11,7 @@ path = "src/bin/server.rs" [dependencies] sp1-sdk = "3.0.0" alloy-sol-types = "0.8.12" -tonic = "0.10" +tonic = { version = "0.10", features = ["gzip"] } tonic-health = "0.10" prost = "0.12" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } diff --git a/prover-service/src/bin/server.rs b/prover-service/src/bin/server.rs index 3f3c1b1..1e5ea88 100644 --- a/prover-service/src/bin/server.rs +++ b/prover-service/src/bin/server.rs @@ -2,6 +2,7 @@ use clap::Parser; use prover_service::proto::prover::prover_service_server::ProverServiceServer; use prover_service::service::ProverServiceImpl; use std::net::SocketAddr; +use tonic::codec::CompressionEncoding; use tonic::transport::Server; use tonic_health::server::health_reporter; use warp::Filter; @@ -76,11 +77,16 @@ async fn main() -> Result<(), Box> { .await; }); + // Start prover service + let prover_service = ProverServiceServer::new(service) + .accept_compressed(CompressionEncoding::Gzip) + .send_compressed(CompressionEncoding::Gzip); + // Serve requests log::info!("Health Server and GRPC Prover Server listening on {}", addr); Server::builder() .add_service(health_service) - .add_service(ProverServiceServer::new(service)) + .add_service(prover_service) .serve(addr) .await?; Ok(())