Source
TranscriptExternal Interface Discussion (Bitcoin Core Dev Tech, May 2026)
Added to the wiki June 17, 2026 at 06:14 PM UTC · full text archived June 17, 2026 at 06:14 PM UTC
A wide-ranging discussion of Bitcoin Core's external interfaces and their future direction: JSON-RPC (the canonical, documented interface, but with JSON overhead), REST (an unauthenticated subset that can return raw blocks and transactions), ZMQ (read-only block/transaction notifications, lightly maintained, used by Lightning implementations and mempool.space), the new high-performance IPC (Cap'n Proto over Unix sockets), and the shell -blocknotify/-walletnotify hooks.
Open questions included whether to keep ZMQ given its maintenance burden (potentially replaceable by an IPC chain-notification interface plus a shim that translates IPC notifications to ZMQ), whether to unify REST and JSON-RPC by marking methods as authentication-optional, and how to handle new endpoint requests such as Lightning developers wanting unauthenticated txospenderindex access over REST. A recurring theme was reducing duplication by moving business logic out of interface implementations and reusing the C++ src/interfaces/ classes, while exposing only stable IPC methods externally and acknowledging IPC's tradeoffs (Cap'n Proto dependency, long-lived connections, weaker tooling than curl/jq).