You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-13Lines changed: 25 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,14 +18,17 @@
18
18
19
19
> ⚠️ This is early alpha software that is likely to be buggy. Use with care, preferably on testnet/regtest.
20
20
21
+
Support development: [bc1qmuagsjvq0lh3admnafk0qnlql0vvxv08au9l2d](https://blockstream.info/address/bc1qmuagsjvq0lh3admnafk0qnlql0vvxv08au9l2d) or [tippin.me](https://tippin.me/@shesek)
<sub>*Support development: bc1qmuagsjvq0lh3admnafk0qnlql0vvxv08au9l2d or [tippin.me](https://tippin.me/@shesek)*</sub>
43
-
44
45
## Intro
45
46
46
47
`bwt` is a lightweight and performant HD wallet indexer backed by a bitcoin full node, using a model similar to that of Electrum Personal Server.
@@ -57,7 +58,7 @@ The index is currently managed in-memory and does not get persisted (this is exp
57
58
*TL;DR: EPS + Rust + Modern HTTP API + Push updates*
58
59
59
60
60
-
## Server setup
61
+
## Setting up bwt
61
62
62
63
Get yourself a synced Bitcoin Core node (v0.19 is recommended, v0.17 is sufficient. `txindex` is not required) and install bwt using one of the methods below.
63
64
@@ -88,6 +89,8 @@ $ tar zxvf bwt-0.1.3-x86_64-linux.tar.gz
88
89
$ ./bwt-0.1.3-x86_64-linux/bwt --xpub <xpub> ...
89
90
```
90
91
92
+
The signature verification should show `Good signature from "Nadav Ivgi <nadav@shesek.info>" ... Primary key fingerprint: FCF1 9B67 ...` and `bwt-VERSION-x86_64-linux.tar.gz: OK`.
93
+
91
94
#### From source
92
95
93
96
[Install Rust](https://rustup.rs/) and:
@@ -129,6 +132,10 @@ your `--bitcoind-url` (defaults to `http://127.0.0.1:<default-rpc-port>`),
129
132
130
133
You can set multiple `--xpub`s to track. This also supports ypubs and zpubs.
131
134
135
+
Rescanning can be controlled with `--xpub <xpub>:<rescan>`. You can specify `<rescan>` with the xpub birthday formatted
136
+
as `yyyy-mm-dd` to scan from that date onwards only, or use `none` to disable rescanning entirely (for newly created wallets).
137
+
*Setting this can significantly speed up scanning and is highly recommended.*
138
+
132
139
By default, the Electrum server will be bound on port `50001`/`60001`/`60401` (according to the network)
133
140
and the HTTP server will be bound on port `3060`. This can be controlled with `--electrum-rpc-addr`
134
141
and `--http-server-addr`.
@@ -170,7 +177,7 @@ This removes several large dependencies and disables the `track-spends` database
170
177
171
178
You can use bwt with pruning, but:
172
179
173
-
1. You will have to provide a rescan date that is within the range of non-pruned blocks, or use `none` to disable rescanning entirely (see [here](#rescan-policy--wallet-birthday)).
180
+
1. You will have to provide a [rescan date](#rescan-policy--wallet-birthday) that is within the range of non-pruned blocks, or use `none` to disable rescanning entirely.
174
181
175
182
2. Electrum needs to be run with `--skipmerklecheck` to tolerate missing SPV proofs for transactions in pruned blocks.
176
183
@@ -218,12 +225,6 @@ The gap limit sets the maximum number of consecutive unused addresses to be impo
218
225
You can import larger batches with a higher gap during the initial sync using `--initial-import-size <N>` (defaults to 100).
219
226
Higher value means less rescans. Should be increased for large wallets.
220
227
221
-
##### Rescan policy / wallet birthday
222
-
223
-
You may specify a rescan policy with the key's birthday to indicate how far back it should scan,
224
-
using `--xpub <xpub>:<rescan>`, where `<rescan>` is one of `all` (rescan from the beginning, the default),
225
-
`none` (don't rescan at all), the key birthday formatted as `yyyy-mm-dd`, or the birthday as a unix timestamp.
226
-
227
228
##### Bitcoin Core multi-wallet
228
229
229
230
If you're using [multi-wallet](https://bitcoin.org/en/release/v0.15.0.1#multi-wallet-support),
@@ -254,13 +255,24 @@ You will need to [run from tar.gz](https://github.com/spesmilo/electrum/#running
254
255
255
256
The plugin automatically configures Electrum with `--oneserver` (to avoid connecting to public servers) and `--skipmerklecheck` (necessary for [pruning](#pruning)).
256
257
257
-
To avoid connecting to public servers while setting up the plugin, you can start Electrum with `--offline`, enable and configure the plugin, then restart Electrum without `--offline`.
258
-
Another option is to disconnect the internet entirely while setting things up.
258
+
To avoid connecting to public servers while setting up the plugin, make sure the "auto connect" feature is disabled or run Electrum with `--offline` until everything is ready.
259
259
260
260
To build the plugin from source, first build the binary as [described here](#from-source), copy it into the `contrib/electrum-plugin` directory, then place that directory under `electrum/plugins`, *but renamed to `bwt`* (Electrum won't recognize it otherwise).
261
261
262
262

263
263
264
+
## Manual Electrum setup (without the plugin)
265
+
266
+
[Setup the bwt server](#setting-up-bwt), then start Electrum with:
0 commit comments