One of five LEZ deliverables split out from #214 ("Review API reference and
requirements for Blockchain and LEZ integration"). No draft PR yet.
Scope
The two halves of one wire contract: the JSON-RPC proxy module, and the Rust
client library that consumes it. This issue absorbs the client library, which
was tracked separately as #239 (now closed) until RFP-027 merged the two.
The proxy module carries JSON-RPC transport over both LEZ FFI surfaces,
covering both the LEZ wallet API and the LEZ node API, the latter being the one
an integrator running a LEZ node as an RPC provider uses most. This is the wire
surface a CEX backend consumes the chain over, rather than reaching the FFI
locally. A transport projection of surfaces defined elsewhere: no new protocol
design.
The client library is a Rust client for that same surface, so a consumer
reaches a remote node without writing the transport itself. Rust is required,
since the LEZ-DK consumes it; other languages follow demand.
Defining them together keeps the wire format and the client that parses it from
drifting apart.
Source material
Dependencies
Cannot be scoped until both FFI surfaces are defined.
Open questions
- Which client languages beyond Rust, and on what signal.
Related
One of five LEZ deliverables split out from #214 ("Review API reference and
requirements for Blockchain and LEZ integration"). No draft PR yet.
Scope
The two halves of one wire contract: the JSON-RPC proxy module, and the Rust
client library that consumes it. This issue absorbs the client library, which
was tracked separately as #239 (now closed) until RFP-027 merged the two.
The proxy module carries JSON-RPC transport over both LEZ FFI surfaces,
covering both the LEZ wallet API and the LEZ node API, the latter being the one
an integrator running a LEZ node as an RPC provider uses most. This is the wire
surface a CEX backend consumes the chain over, rather than reaching the FFI
locally. A transport projection of surfaces defined elsewhere: no new protocol
design.
The client library is a Rust client for that same surface, so a consumer
reaches a remote node without writing the transport itself. Rust is required,
since the LEZ-DK consumes it; other languages follow demand.
Defining them together keeps the wire format and the client that parses it from
drifting apart.
Source material
logos-api-sdk-research—research/synthesis/transport-prioritization.mdranks JSON-RPC as the Bump the production-dependencies group with 4 updates #2 transport by ecosystem adoption (16/22, WebSocket
flavor 9/22, OpenRPC-backed 5/22): dominant on node surfaces in the corpus.
Dependencies
JSON-RPC, the more critical half of the proxy.
the same transport.
Cannot be scoped until both FFI surfaces are defined.
Open questions
Related
merges proxy and client into one RFP. Note the LEZ-DK ([RFP] LEZ-DK: The LEZ Development Kit #238) remains separate:
it is a BDK-shaped development kit over the FFIs, not simply a client for this
wire protocol.
adding a proxy module and a client library on the same pattern