Skip to content

v0.2.0

Compare
Choose a tag to compare
@shesek shesek released this 24 Nov 16:21
· 146 commits to master since this release
v0.2.0
497407a

Changelog

  • Descriptor based tracking! ✨🎉 (#1)

    You can now specify output script descriptors to track via --descriptor <descriptor>. Descriptors are also used internally to represent user-provided --xpubs.

    The HTTP API was updated to be fully descriptor-based. Wallets and wallet origins are now identified by the descriptor checksum, addresses have descriptors associated with them, and a new bip32_origins field is available based on the descriptor origin information.

  • Support for Electrum multi-signature wallets (#60)

    For a manual server setup, this requires using the sortedmulti() descriptor. For example, for a 2-of-3 wallet: sortedmulti(2,xpub1...,xpub2...,xpub3...).

    With the Electrum plugin, this should Just Work™.

  • Alpha release of libbwt (#64), a C FFI interface for managing the bwt servers, and of nodejs-bwt-daemon (#65), a nodejs package that wraps it.

  • Support non-wallet transactions in blockchain.transaction.get / GET /tx/:txid/hex (requires txindex and no pruning)

  • Emit wallet rescan and blockchain sync progress updates (via mpsc, ffi and the console)

  • Support binding on ephemeral port (e.g. --http-addr 127.0.0.1:0) (#63)

  • Reduce the number of dependencies (#61)

  • Shutdown cleanly, via SIGINT/SIGTERM for CLI or a custom signal for library users (#62, #66)

  • HTTP: Alias GET /txs/since/0 as GET /txs

  • Fix blockchain.scripthash.listunspent / Query::list_unspent to return an empty set instead of erroring when there's no history.

  • Electrum: Fix mempool.get_fee_histogram (5af7bfc)

  • Upgrade to rust-bitcoin v0.25, rust-miniscript v4.0.0 and rust-bitcoincore-rpc v0.12

Breaking CLI changes:

  • The -d CLI option was changed to mean --descriptor instead of --bitcoind-dir (which is now available as -r).

  • Renamed --http-server-addr to --http-addr and --electrum-rpc-addr to --electrum-addr

  • The CLI now accepts a single --rescan-since timestamp instead of a separate one for each descriptor/xpub.

  • The separator for environment variables with multiple values is now ; instead of ,.
    For example: DESCRIPTORS="wpkh(xpub../0/*);wpkh(xpub../1/*)"


Downloads

Full Server 1 Electrum Server 2 Electrum Plugin 3
Linux 📥 Download 📥 Download 📥 Download
macOS 📥 Download 📥 Download 📥 Download
Windows 📥 Download 📥 Download 📥 Download
ARMv7 📥 Download 📥 Download 📥 Download
ARMv8 📥 Download 📥 Download 📥 Download
1 Includes Electrum RPC, HTTP API and WebHooks support (learn more)
2 Includes Electrum RPC support only (learn more)
3 Plugin with an embedded RPC server - hot wallets are unsupported (learn more)

Installation

Installation instructions are available on the README.

Verifying signatures

The releases are signed by Nadav Ivgi (@shesek). The public key can be verified on keybase, github, twitter and HN. The signature can be verified as follows (replace x86_64-linux with your download):

# Download package
$ wget https://github.com/shesek/bwt/releases/download/v0.2.0/bwt-0.2.0-x86_64-linux.tar.gz
# Fetch signing key
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
# Verify signature
$ wget -qO - https://github.com/shesek/bwt/releases/download/v0.2.0/SHA256SUMS.asc \
  | gpg --decrypt - | grep ' bwt-0.2.0-x86_64-linux.tar.gz$' | sha256sum -c -

You should see Good signature from "Nadav Ivgi <nadav@shesek.info>" ... Primary key fingerprint: FCF1 9B67 ... and bwt-0.2.0-x86_64-linux.tar.gz: OK.

Reproducible builds

The builds are fully reproducible.

You can verify the checksums against the v0.2.0 builds on Travis CI: https://travis-ci.org/github/shesek/bwt/builds/745668826

See more details here.