Bitcoin SV Infrastructure team provides beta release of 3 products to realise Satoshi’s peer to peer vision for Bitcoin
by Steve Shadders
September 30, 2020 (4min read)

On September 30, the Bitcoin SV Infrastructure team are simultaneously releasing 3 beta products that, along with several other services, provide all the tools required to implement the client side peer to peer and Simplified Payment Verification (SPV) workflows.    

These are:

  1. Bitcoin SV Node software – upgrade to v1.0.6 (Beta Release)
  2. mAPI v1.2.0 (Beta) Release
  3. SPV Channels CE v1.0.0 (Beta) Release

This combination of products is designed to help finally realise the “peer to peer” part of Satoshi Nakamoto’s vision for Bitcoin and the network’s scaling. 

To learn more about the practical impact of these 3 products, please read this blog post from Steve Shadders, Technical Director of the Bitcoin SV Infrastructure team:  https://bitcoinsv.io/2020/09/30/realising-finally-satoshis-peer-to-peer-vision-for-bitcoin/

1. Bitcoin SV Node software – Upgrade to v1.0.6 (Beta) Release

Version 1.0.6 is a beta release for an upgrade from version 1.0.5; it provides a demonstration of upcoming features made available now for early testing.  It primarily focusses on event notification capabilities, making the process of monitoring transaction confirmation progress more efficient and improving merchant assurance of transactions.

Content details listed below:  

  • New gettxouts RPC to retrieve UTXOs.
  • sendrawtransactions returns double spend transaction IDs.
  • Refactor code so HTTP client requests can be made from bitcoind.
  • New RPC to list ZMQ notifications and endpoints.
  • ZMQ notifications for transaction mempool removal.
  • Insecure function (sprintf) no longer used.
  • Make ZMQ interface thread safe.
  • getmerkleproof and verifymerkleproof RPC to provide/verify Merkle proofs for transaction inclusion in blocks.
  • Invalid transactions stored in repository.
  • Ensure the fallback path for packages (bitcoinsv.io) in the Gitian build contains all required packages.
  • Fix to Gitian build.
  • Fix: Accessing memory after std::move.

Binaries and source code can be downloaded here:
URL: https://download.bitcoinsv.io/bitcoinsv/

2. mAPI v1.2.0 (Beta) Release

This release of mAPI (formerly called Merchant API) introduces a number of changes to further enhance miner services to network users. In particular, we confirm mAPI’s capabilities to improve SIT (Safe Instant Transactions) by identifying double spend scenarios and introducing callback notification features.

On transaction submission, the merchant or intermediary can optionally request merkle proofs to be delivered through a designated callback channel. mAPI 1.2.0 implements the first use case for the newly released CE (Community Edition) of SPV Channels, offering end-to-end encryption of messages to connected or partially connected clients.

In addition, the v1.2.0 upgrade includes improvements on administering fee quotes and quote authorisation through a revamped token issuer. The new feature of an API gateway, with Admin Interface, provides the additional usability, security and robustness required to administer a fully functional mAPI service.

Content details listed below:

  • Add new parameters on submit transaction for:
  • Notifications of double spends
  • Requesting merkle proof callback
  • Callback URL
  • Message encryption parameter
  • Application of SPV Channels for secure message exchange on callbacks
  • API gateway implementation for processing of submit transaction, query transaction status and fee quotes
  • API gateway Admin Interface
  • Revamped token issuer functionality
  • Revamped Create Fee Quote functionality

To download mAPI version 1.2.0 (Beta), click here

3. SPV Channels CE v1.0.0 (Beta) Release

The SPV Channels specification defines lightweight HTTP APIs and describes appropriate client-side cryptography that together enable applications to asynchronously exchange messages confidentially, with mutual authentication and message integrity guarantees. SPV Channels are designed to enable parties to exchange messages even when no direct connection between them is available, such as when parties are behind NAT, or when one party is offline.

Channels are configured to receive messages. Individual channels have owners, and owners may configure channel read/write permissions for unauthenticated connections and distinct read/write permissions for those to whom they issue revocable API keys.

The security model is established by prescribing an application-level end-to-end encryption protocol, which protects transported messages.

SPV Channels CE is a self-hosted implementation of the service and client with the following features:

Content details listed below:  

  • Channel APIs
    • Create Channel
    • List Channels
    • Delete Channel
    • Get Channel Info
    • Get Token
    • Get Channel Tokens
    • Amend Channel
    • Generate Channel API Token
    • Revoke Channel API Token
  • Message APIs
    • Write message to channel
    • Get message in channel
    • Mark message as read or unread
    • Get all unread messages in channel
    • Delete message in channel
  • Notifications
    • Push notifications, alerting users of new message in channel
  • Encryption
    • End-to-end encryption libraries using libsodium

To download SPV Channels CE version 1.0.0 (Beta) click here

Should you have any support questions, please direct them via [email protected]

Thank you for your continued support of Bitcoin SV.

Release Notes