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.
Package
Section titled “Package”- Crate name:
ingress-rpc - Source:
bin/ingress-rpc - Library:
crates/infra/ingress-rpc(ingress-rpc-lib)
Architecture
Section titled “Architecture”The ingress RPC proxy handles three categories of traffic:
- Transaction submission —
eth_sendRawTransactioncalls forwarded to the transaction pool - Bundle submission —
eth_sendBundleand related methods forwarded to the builder - 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.
Request Flow
Section titled “Request Flow”Client → ingress-rpc → Kafka (audit log) → Backend (node/builder/mempool) → Client (response)Key Dependencies
Section titled “Key Dependencies”ingress-rpc-lib— Core proxy logicclap— CLI argument parsingtokio— Async runtimerdkafka— Kafka client for audit loggingjsonrpsee— JSON-RPC serverdotenvy— Environment variable loading
cargo build --bin ingress-rpc --release./target/release/ingress-rpc [OPTIONS]