RPC transport × authentication matrix

Operator reference for which JSON-RPC surface supports which auth model. P2P transport comparison (TCP vs QUIC) lives under Transport abstraction: different scope.

Matrix

SurfaceFeature / bindBearer ([rpc_auth])HTTP BasicTLS client certsNotes
JSON-RPC (TCP HTTP)Default blvm RPCYes: Authorization: BearerYes: Authorization: Basic (ckpool; password auto-admin)When configuredPrefer loopback for Basic (cleartext on wire).
JSON-RPC (QUIC HTTP/3)quinn listener; ALPN h3Yes: same RpcAuthManager as TCPYes: HTTP/3 request headersServer TLS on UDP listenerShares live Arc<RpcServer> with TCP HTTP. UDP TLS cert lifecycle may differ from TCP unless you terminate at a proxy.
REST (/api/v1/)rest-api feature; [rest_api].enabledYes: when REST server built with_authSame auth stack; admin RBAC via rest/rbac.rsOff by defaultSeparate bind (default 8080 / 18080 / 28443). See RPC API: REST.

Practical guidance

  • Strict RPC auth (rpc_auth.required = true): Bearer and HTTP Basic enforcement apply on both TCP HTTP JSON-RPC and HTTP/3 JSON-RPC over QUIC: configure [rpc_auth] once; semantics match (**same RpcAuthManager, shared dispatch_json_rpc_post_body path). Mining pools (ckpool) typically use Basic on loopback.
  • QUIC JSON-RPC: Requires an HTTP/3-capable client (QUIC + ALPN h3). Deployment posture still governs exposure class (UDP firewall rules differ from TCP).
  • Non-loopback RPC: Same posture doc + First node production notes.

Historical note (G2.3, QUIC × strict auth)

Earlier builds exposed JSON-RPC on QUIC without HTTP headers and therefore skipped the QUIC RPC listener when rpc_auth.required was true. Current quinn RPC uses HTTP/3, so Authorization and rate limits match TCP HTTP. Proxy / mutual-TLS termination remains deployment-specific.

Source anchors

  • QUIC RPC + Arc<RpcServer>: blvm-node/src/rpc/mod.rs, blvm-node/src/rpc/quinn_server.rs.
  • Shared POST dispatch: blvm-node/src/rpc/server.rs (dispatch_json_rpc_post_body).
  • RpcAuthConfig::default(): required: false: local-dev friendly; tighten for LAN/WAN.