Proxy server opens a new outbound TCP/HTTP connection per request (no reuse)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- networking, performance
Línea de trabajo
Comienza en src/lib.rs, en ProxyServer::handle_http_request, e inspecciona el flujo actual de TcpStream::connect y http1::Builder::handshake. Establece el comportamiento actual con los logs disponibles o una prueba de carga y, después, verifica que varias solicitudes reutilicen las conexiones salientes sin regresiones en los headers, los metadatos de attestation ni el manejo de errores.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This is a performance issue and a proposal to enhance performance / throughput.
Problem
ProxyServer::handle_http_request opens a fresh TcpStream::connect and performs a new Hyper HTTP/1.1 client handshake for every incoming request. This disables keep‑alive reuse and adds per‑request connection overhead (DNS resolution, TCP handshake, HTTP handshake).
- File:
src/lib.rs - Function:
ProxyServer::handle_http_request
Impact
- Throughput is limited by connection setup rather than request handling.
- Higher latency under load.
- Increased CPU usage and ephemeral port churn.
Proposed fix
Introduce outbound connection reuse:
- Maintain a persistent HTTP client connection to the target service.
- Prefer HTTP/2 upstream when available to multiplex requests.
- Avoid
TcpStream::connectper request.
Acceptance criteria
- Outbound connections are reused across multiple requests (observable via logs).
- Nice to have: throughput improves in a load test vs. current baseline.
- No regression in proxy correctness (headers, attestation metadata, error handling).
Notes
The current code creates the outbound connection here:
src/lib.rs→ProxyServer::handle_http_request(TcpStream::connect,http1::Builder::handshake).
- Lenguaje dominante
- Rust
- Estrellas
- 6
- Forks
- 2
- Merge medio
- 1 d 54 min
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de flashbots/attested-tls-proxy
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
flashbots/attested-tls-proxy#128 ·
Los mantenedores suelen responder en 1 día
-
Support websocket proxyingPosiblemente ocupada @ameba23 la tomó hace 255 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
flashbots/attested-tls-proxy#86 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
flashbots/attested-tls-proxy#43 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
flashbots/attested-tls-proxy#23 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de flashbots/attested-tls-proxy
Issues similares
-
area:desktop priority:p2 type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
fritzprix/libr-agent#2165 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
area:ecosystem bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Chelis-Lang/chelis#3942 ·
Los mantenedores suelen responder en 1 día