Releases: bwt-dev/bwt
v0.2.4
Changelog
-
Allow specifying an explicit script type for xpubs using
-x <xpub>:wpkh
,-x <xpub>:shwpkh
or-x <xpub>:pkh
. -
Fix
blockchain.block.headers
sending wrong number of headers (#87, thanks @stevenroose!) -
Check testmempoolaccept prior to custom broadcast (#80)
-
Dependency updates and various small enhancements
Also see the v0.2.4 releases for bwt-electrum-plugin, libbwt, libbwt-nodejs and libbwt-jni.
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 the PGP WoT, github, twitter, keybase, hacker news and this video presentation.
# Download (change x86_64-linux to your platform)
$ wget https://github.com/bwt-dev/bwt/releases/download/v0.2.4/bwt-0.2.4-x86_64-linux.tar.gz
# Fetch public key
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
# Verify signature
$ wget -qO - https://github.com/bwt-dev/bwt/releases/download/v0.2.4/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.2.4-x86_64-linux.tar.gz$' | sha256sum -c -
$ tar zxvf bwt-0.2.4-x86_64-linux.tar.gz
$ ./bwt-0.1.5-x86_64-linux/bwt --xpub <xpub> ...
The signature verification should show Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.2.4-x86_64-linux.tar.gz: OK
.
Reproducible builds
The builds are fully reproducible.
You can verify the checksums against the v0.2.4 builds on Travis CI: https://travis-ci.org/github/bwt-dev/bwt/builds/764306060
See more details here.
v0.2.3
Changelog
-
New
--prune-until <target>
option to automatically prune the chain up to the given target (height, unix timestamp or YYYY-MM-DD formatted date)Require configuring bitcoind with
prune=1
to allow manual pruning via the RPC. -
New
--no-wait-sync
option to allow importing addresses without waiting for bitcoind to finish syncing firstUseful for tracking wallets during the IBD of a pruned node, so transactions could be indexed before the blocks get pruned.
-
Fix compatibility with the upcoming v0.22 Bitcoin Core release (sparrowwallet/sparrow#67 (comment))
-
HTTP: Set the
WWW-Authenticate
header to make logging-in possible via web browsers -
Implement an fd-based daemon readiness notification mechanism, enabled with
FD_NOTIFY=<fd>
-
Fix whitepaper extractor
-
UX touchups for progress indicator, welcome banner and logs
-
Allow setting
UNIX_LISTENER_MODE
to control permissions for the unix socket notification listener -
Allow setting
NO_REQUIRE_ADDRESSES
as an env variable
Breaking CLI changes:
- The Electrum SOCKS5-based authentication needs to be explicitly enabled with
--electrum-socks-auth
,
in addition to enabling the--auth-*
options. By default, authentication will only be enabled for
the HTTP API server.
Also see the v0.2.3 releases for bwt-electrum-plugin, libbwt, libbwt-nodejs and libbwt-jni.
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 the PGP WoT, github, twitter, keybase, hacker news and this video presentation.
# Download (change x86_64-linux to your platform)
$ wget https://github.com/bwt-dev/bwt/releases/download/v0.2.3/bwt-0.2.3-x86_64-linux.tar.gz
# Fetch public key
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
# Verify signature
$ wget -qO - https://github.com/bwt-dev/bwt/releases/download/v0.2.3/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.2.3-x86_64-linux.tar.gz$' | sha256sum -c -
$ tar zxvf bwt-0.2.3-x86_64-linux.tar.gz
$ ./bwt-0.1.5-x86_64-linux/bwt --xpub <xpub> ...
The signature verification should show Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.2.3-x86_64-linux.tar.gz: OK
.
Reproducible builds
The builds are fully reproducible.
You can verify the checksums against the v0.2.3 builds on Travis CI: https://travis-ci.org/github/bwt-dev/bwt/builds/763199070
See more details here.
v0.2.2
Changelog
-
Authentication support for the Electrum and HTTP API servers (#70)
-
Compatibility with Bitcoin Core v0.21 (#78)
-
Support for Signet
-
New
GET /bitcoin.pdf
HTTP API endpoint for extracting the Bitcoin whitepaper from the block chain
(https://twitter.com/shesek/status/1352368296553836544) -
New
--create-wallet-if-missing
option to ease the creation of a designated bitcoind wallet (#76) -
Docker: Multi-arch images for amd64, arm32v7 and arm64v8 (#79)
-
Indexer: Fix detection of conflicted mempool transactions
-
Support setting boolean options using environment variables
(FORCE_RESCAN
,CREATE_WALLET_IF_MISSING
,ELECTRUM_SKIP_MERKLE
,NO_STARTUP_BANNER
andVERBOSE
) -
Accept wildcard envirnoment variables for options that accept multiple values
(XPUB_*
,DESC_*
/DESCRIPTOR_*
andADDRESS_*
) -
Upgrade to rust-bitcoin v0.26.0, rust-miniscript v5.0.1 and bitcoincore-rpc v0.13.0
Also see the v0.2.2 releases for bwt-electrum-plugin, libbwt, libbwt-nodejs and libbwt-jni.
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 the PGP WoT, github, twitter, keybase, hacker news and this video presentation.
# Download (change x86_64-linux to your platform)
$ wget https://github.com/bwt-dev/bwt/releases/download/v0.2.2/bwt-0.2.2-x86_64-linux.tar.gz
# Fetch public key
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
# Verify signature
$ wget -qO - https://github.com/bwt-dev/bwt/releases/download/v0.2.2/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.2.2-x86_64-linux.tar.gz$' | sha256sum -c -
$ tar zxvf bwt-0.2.2-x86_64-linux.tar.gz
$ ./bwt-0.1.5-x86_64-linux/bwt --xpub <xpub> ...
The signature verification should show Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.2.2-x86_64-linux.tar.gz: OK
.
Reproducible builds
The builds are fully reproducible.
You can verify the checksums against the v0.2.2 builds on Travis CI: https://travis-ci.org/github/bwt-dev/bwt/builds/756663238
See more details here.
v0.2.1
Changelog
-
Migrated to the @bwt-dev github org and split up into:
bwt, bwt-electrum-plugin, libbwt, libbwt-jni and libbwt-nodejs.
-
Java Native Bindings for
libbwt
(libbwt-jni, #73) -
Support for tracking standalone addresses (#14)
Using
--address <address>
or--address-file <path>
. -
New config options:
force_rescan
(9e7ccbe),setup_logger
(35fc49f) andrequire_addresses
(162790d) -
Gracefully wait for bitcoind to warm-up (dec6d46)
-
Support for
android_logger
(74b2b2f) -
Scrub bitcoin authentication from logs (c31def7)
-
Improved syncing/scanning progress updates (faba3f, 6e282fd, fdd46f3, 5ba2a0b)
-
Indexer: Fix excessive importing/rescanning (a20ae79)
-
Indexer: Fix cache invalidation for spends lookups (360eaee)
-
Indexer: Fix handling of missing mempool entries (e9b7511)
-
Electrum: Fix TCP listener not shutting down on shutdown signal (5bd639a)
-
Docker/CI: Update to Rust v1.49 (5bd639a)
Breaking CLI changes:
- The
--bare-xpub
option was removed. Use a descriptor instead.
Also see the v0.2.1 releases for bwt-electrum-plugin, libbwt, libbwt-nodejs and libbwt-jni.
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 the PGP WoT,
github, twitter, keybase, hacker news and this video presentation.
# Download (change x86_64-linux to your platform)
$ wget https://github.com/bwt-dev/bwt/releases/download/v0.2.1/bwt-0.2.1-x86_64-linux.tar.gz
# Fetch public key
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
# Verify signature
$ wget -qO - https://github.com/bwt-dev/bwt/releases/download/v0.2.1/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.2.1-x86_64-linux.tar.gz$' | sha256sum -c -
$ tar zxvf bwt-0.2.1-x86_64-linux.tar.gz
$ ./bwt-0.1.5-x86_64-linux/bwt --xpub <xpub> ...
The signature verification should show Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.2.1-x86_64-linux.tar.gz: OK
.
Reproducible builds
The builds are fully reproducible.
You can verify the checksums against the v0.2.1 builds on Travis CI: https://travis-ci.org/github/bwt-dev/bwt/builds/754451937
See more details here.
v0.2.0
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--xpub
s.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 ofnodejs-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
asGET /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 <[email protected]>" ... 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.
v0.2.0-rc.1
docs: Document the C FFI interface (#64)
v0.1.5
Changelog
-
Reproducible builds using Docker (#51)
-
Pre-built binary releases for macOS (#24) and ARMv7/v8 (#19)
-
Electrum plugin: Compatibility with Electrum v4 — except for lightning which is tricky with personal servers (#53)
-
Electrum: New welcome banner (#44)
-
Scriptable transaction broadcast command via
--tx-broadcast-cmd <cmd>
(#7)The command will be used in place of broadcasting transactions using the full node, which may provide better privacy in some circumstances. The string
{tx_hex}
will be replaced with the hex-encoded transaction.For example, to broadcast transactions over Tor using the blockstream.info onion service, you can use:
--tx-broadcast-cmd '[ $(curl -s -x socks5h://localhost:9050 http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/api/tx -d {tx_hex} -o /dev/stderr -w "%{http_code}" -H "User-Agent: curl/7.$(shuf -n1 -e 47 58 64 68).0") -eq 200 ]'
(Replace port
9050
with9150
if you're using the Tor browser bundle.)h/t @chris-belcher's EPS for inspiring this feature! 🎩
-
Load bitcoind wallet automatically (#54)
-
Electrum plugin: Fix hot wallet test (#47)
-
Electrum: Fix docker image libssl dependency with the
http
feature (#48) -
HTTP API: Fix
GET /block/tip
(#46) -
HTTP API: Add
GET /banner.txt
(#44) -
Tests: Upgrade to Electrum v4
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.1.5/bwt-0.1.5-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.1.5/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.1.5-x86_64-linux.tar.gz$' | sha256sum -c -
You should see Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.1.5-x86_64-linux.tar.gz: OK
.
Reproducible builds
The builds are fully reproducible.
You can verify the checksums against the v0.1.5 builds on Travis CI: https://travis-ci.org/github/shesek/bwt/builds/732966695
See more details here.
v0.1.4
Changelog
-
Implement improved mempool tracking, including support for an "effective feerate" metric that takes unconfirmed ancestors into account, calculated as
MIN(own_fee/own_vsize, (own_fee+ancestor_fee)/(own_vsize+ancestor_vsize))
.HTTP API: the wallet transaction format now includes new
own_feerate
,effective_feerate
,bip125_replaceable
andunconfirmed_parents
fields available for unconfirmed transactions.Electrum server: provide fee information for unconfirmed transactions using the effective feerate metric. This is unlike other Electrum server implementations, that report the direct own fee without regard to ancestors. (#10)
-
Electrum server: Implement
--electrum-skip-merkle
to save some resources by not generating SPV proofs entirely, even when it's possible. (#34) -
Electrum plugin: Automatically enable
--skipmerklecheck
and--electrum-skip-merkle
, for better out-of-the-box pruning support and to save some resources. (#34) -
Indexer: Use
listsinceblock
instead oflisttransactions
. This makes syncing more bandwidth-efficient and simplifies the implementation. (#33) -
Electrum server: Optimize dispatching notifications to subscribers.
-
Electrum server: Use height of -1 to indicate that a transaction has unconfirmed parents as its inputs. (#40)
-
Electrum plugin: Disable support for hot wallets.
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.1.4/bwt-0.1.4-x86_64-linux.tar.gz
# Verify signatures
$ gpg --keyserver keyserver.ubuntu.com --recv-keys FCF19B67866562F08A43AAD681F6104CD0F150FC
$ wget -qO - https://github.com/shesek/bwt/releases/download/v0.1.4/SHA256SUMS.asc \
| gpg --decrypt - | grep ' bwt-0.1.4-x86_64-linux.tar.gz$' | sha256sum -c -
You should see Good signature from "Nadav Ivgi <[email protected]>" ... Primary key fingerprint: FCF1 9B67 ...
and bwt-0.1.4-x86_64-linux.tar.gz: OK
.
Electrum plugin
The Electrum plugin is available for download for Linux and Windows, as the electrum_plugin
package.
⚠️ NOTE: The plugin supports watch-only wallets only and cannot be used with hot wallets. This is done as a security measure, which is expected to eventually be relaxed. You can use the plugin with hardware wallets or with an offline Electrum setup. For hot wallets, you will need to setup a standalone server instead of using the plugin, ideally away from your keys.
v0.1.3
v0.1.2
-
Electrum plugin: restore the previous
oneserver
setting when the plugin is disabled,
to prevent users from inadvertently connecting to public Electrum servers with this setting still on. -
Electrum plugin: allow specifying additional custom CLI arguments using the GUI
-
Electrum plugin: check for permissions before attempting the bind the real-time sync unix socket.
-
Make builds over 40% smaller by stripping symbols, which rust apparently doesn't do for release builds.
Thanks @elichai for brining this to my attention.