From bbbef6a1e4c5a77dd2b8ecfe6322368eec10925c Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 6 Feb 2025 15:18:30 +0000 Subject: [PATCH 01/13] add new protocol version 1.6 - This is mostly split off from the protocol 1.5/2.0 specs and ideas in https://github.com/spesmilo/electrumx/pull/90 - notably it does not include the history pagination, and the recursive scripthash status, which are deferred for now --- docs/protocol-basics.rst | 38 ++++--- docs/protocol-changes.rst | 39 ++++++- docs/protocol-methods.rst | 229 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 277 insertions(+), 29 deletions(-) diff --git a/docs/protocol-basics.rst b/docs/protocol-basics.rst index ffdfee7..623ba6c 100644 --- a/docs/protocol-basics.rst +++ b/docs/protocol-basics.rst @@ -68,14 +68,12 @@ revision number. A party to a connection will speak all protocol versions in a range, say from `protocol_min` to `protocol_max`, which may be the same. -When a connection is made, both client and server must initially -assume the protocol to use is their own `protocol_min`. -The client should send a :func:`server.version` RPC call as early as -possible in order to negotiate the precise protocol version; see its -description for more detail. All responses received in the stream -from and including the server's response to this call will use its -negotiated protocol version. +The client must send a :func:`server.version` RPC call as the first +message on the wire, in order to negotiate the precise protocol +version; see its description for more detail. +All responses received in the stream from and including the server's +response to this call will use its negotiated protocol version. .. _script hashes: @@ -144,23 +142,31 @@ Status To calculate the `status` of a :ref:`script hash