Skip to content

ingress-rpc

ingress-rpc fronts the node, accepting JSON-RPC requests and routing each one to the right backend. Every request is mirrored to Kafka for audit and replay.

The ingress RPC proxy handles three categories of traffic:

  1. Transaction submissioneth_sendRawTransaction calls forwarded to the transaction pool
  2. Bundle submissioneth_sendBundle and related methods forwarded to the builder
  3. Mempool/simulation/raw TX forwarding — Read and simulation requests forwarded to the appropriate backend

All requests are logged to Kafka for audit and replay purposes. The proxy uses jsonrpsee for its JSON-RPC server implementation.

Client → ingress-rpc → Kafka (audit log)
→ Backend (node/builder/mempool)
→ Client (response)
  • ingress-rpc-lib — Core proxy logic
  • clap — CLI argument parsing
  • tokio — Async runtime
  • rdkafka — Kafka client for audit logging
  • jsonrpsee — JSON-RPC server
  • dotenvy — Environment variable loading
Terminal window
cargo build --bin ingress-rpc --release
Terminal window
./target/release/ingress-rpc [OPTIONS]