Skip to content

Latest commit

 

History

History
265 lines (194 loc) · 7.7 KB

File metadata and controls

265 lines (194 loc) · 7.7 KB

Protocol Changes

This document lists changes made by protocol version.

Version 1.0

Deprecated methods

Version 1.1

Changes

New methods

Removed methods

Version 1.2

Changes

New methods

Deprecated methods

Version 1.3

Changes

New methods

Removed methods

Deprecated methods

Version 1.4

This version removes all support for :ref:`deserialized headers <deserialized header>`.

Changes

New methods

Removed methods

Version 1.4.1

Changes

Version 1.4.2

New methods

Version 1.4.3

New methods

Version 1.5

(this version number was skipped, no corresponding protocol is defined)

Version 1.6

Changes

  • Breaking change for the version negotiation: we now mandate that the :func:`server.version` message must be the first message sent. That is, version negotiation must happen before any other messages.
  • Also for :func:`server.version`, the server must tolerate and ignore extraneous arguments, to allow for extensions in future protocol versions.
  • The status of a scripthash has its definition tightened in a backwards-compatible way: mempool txs now have a canonical ordering defined for the calculation (previously their order was undefined).
  • :func:`blockchain.scripthash.get_mempool` previously did not define an order for mempool transactions. We now mandate a specific ordering.
  • Optional mode argument added to :func:`blockchain.estimatefee`.
  • :func:`blockchain.block.headers` now returns headers as a list, instead of a single concatenated hex string.

New methods

Removed methods

Version 1.7

Changes

  • :func:`server.ping` can now also be sent as an unrequested notification, by both the client and the server. The request/response signature also changed.

  • The blockchain.scripthash.* methods are all replaced with blockchain.scriptpubkey.* methods. Note: sha256(scriptPubKey) == scripthash. Besides taking a scriptPubKey instead of a scripthash as input param, the new methods also have some minor functional changes.

    • the notifications for :func:`blockchain.scriptpubkey.subscribe` still contain the scripthash
    • the protocol now guarantees that a notification is sent even if the status of the scriptPubKey did not change but there was a reorg affecting a relevant tx
    • many RPC results now contain the chaintip (and hence return dict instead of array)
  • The hash_function field is removed from the :func:`server.features` response.

  • Standardize "history too large" error code for blockchain.scriptpubkey.* methods.

New methods

Removed methods