From 6c3d59d4eaa916d8b7e1cffc5c1501766789bf69 Mon Sep 17 00:00:00 2001 From: AdamISZ Date: Fri, 22 Sep 2017 21:20:03 +0200 Subject: [PATCH] Minor updates to docs including electrum and apt-get list --- README.md | 4 +++- docs/INSTALL.md | 5 ++--- docs/JOINMARKET-QT-GUIDE.md | 6 ++++-- docs/USAGE.md | 20 ++++++++++++-------- scripts/README.md | 2 +- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 0c52079..adab57a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,9 @@ is upgraded for segwit and to be used only for that; to use non-segwit use [0.2. ### Quickstart -**You need Bitcoin Core to use; get it running first.** +**For good quality privacy, performance and reliability, Bitcoin Core is required for Makers (yield generators), and recommended for takers (doing coinjoins). Use version 0.15+ ideally; 0.13.1+ required.** + +For doing coinjoins (Taker side), you can also run without Bitcoin Core, connecting to Electrum servers. Once you've downloaded this repo, either as a zip file, and extracted it, or via `git clone`: diff --git a/docs/INSTALL.md b/docs/INSTALL.md index c69986c..7b05fc6 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -24,8 +24,7 @@ is actually newer in version number, than what was there already. To install everything (client and server), install these packages: - sudo apt-get install python-dev python-pip git build-essential - automake pkg-config libtool libffi-dev libssl-dev + sudo apt-get install python-dev python-pip git build-essential automake pkg-config libtool libffi-dev libssl-dev (+ `libsodium-dev` if you can find it, else build after) @@ -85,7 +84,7 @@ In the former case you will need still to install the local packages: and then edit your `joinmarket.cfg` section `DAEMON`, setting `no_daemon = 0`. -The latter case applies to the Electrum plugin, see [here](https://github.com/AdamISZ/electrum-joinmarket-plugin). +The latter case applies to the Electrum plugin (not currently operational), see [here](https://github.com/AdamISZ/electrum-joinmarket-plugin). There, you need to install the client code (without Joinmarket's bitcoin): diff --git a/docs/JOINMARKET-QT-GUIDE.md b/docs/JOINMARKET-QT-GUIDE.md index 920f2db..655986c 100644 --- a/docs/JOINMARKET-QT-GUIDE.md +++ b/docs/JOINMARKET-QT-GUIDE.md @@ -38,7 +38,7 @@ You will get the following error screen initially: ![](images/JMQrpcfailed.png) ... because your rpc connection to Bitcoin Core is not set up. A `joinmarket.cfg` file -has been created in the directory you're running in. Open it and edit: +has been created in the directory you're running in. If you're running Bitcoin Core, open it and edit: [BLOCKCHAIN] rpc_user = yourusername-as-in-bitcoin.conf @@ -46,7 +46,9 @@ has been created in the directory you're running in. Open it and edit: rpc_host = localhost #default usually correct rpc_port = 8332 # default for mainnet -Once the rpc connection is correct, you will be presented with this start screen: +If you're not using Core, you can set the value of `blockchain_source` in that section to `electrum-server`. + +Once the rpc connection is correct (or using Electrum), you will be presented with this start screen: ![](images/JMQInitregtest.png) diff --git a/docs/USAGE.md b/docs/USAGE.md index 109335d..5ce28ab 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -3,16 +3,18 @@ followed a manual installation as per [here](INSTALL.md)). (If you want to run Joinmarket-Qt, start with the [walkthrough](JOINMARKET-QT-GUIDE.md) instead of this.) -### Zeroth step: configuring for Bitcoin Core +### Zeroth step: configuring for Bitcoin Core (or using Electrum servers). -Until such time as we have a better solution for a light client, Joinmarket only -realistically supports use with Bitcoin Core to connect to the Bitcoin network. -The node *can* be pruned. +It's highly recommended to run Joinmarket using a Bitcoin Core instance to connect to the Bitcoin network, +and in the case of running a yield generator it's basically required. It gives better privacy, performance +and reliability. -**Use with another interface to the blockchain should be considered highly experimental -(and in most cases it doesn't really work, as well as being terrible for privacy). It is not supported at this time.** +The Bitcoin Core node *can* be pruned. -Configuring Joinmarket for Core is now drastically reduced, since there is no longer any `walletnotify` used. +To run one or more simple coinjoins without requiring Bitcoin Core, you can set the value of `blockchain_source` in the `[BLOCKCHAIN]` section of `joinmarket.cfg` (see below) to `electrum-server`. +This will choose servers randomly and should sync the wallet quite quickly (a few seconds), but is not *perfectly* reliable (connections will fail occasionally; just try again). + +Configuring Joinmarket for Core is now reduced, since there is no longer any `walletnotify` used. First thing to do: in `scripts/`, run: @@ -27,6 +29,8 @@ and edit: rpc_host = localhost #default usually correct rpc_port = 8332 # default for mainnet +(or, if not using Core, just make the edit mentioned above for `electrum-server`). + Then retry the same `generate` command; it should now not error (see below). If you still get rpc connection errors, make sure you can connect to your Core node using the command line first. @@ -40,7 +44,7 @@ BUT: a couple of differences: * The layout is also slightly different, but it's the same information. * The BIP32 paths look like m/49'/0'/0'/0/000 instead of m/0/0/0/000; that's just a new segwit standard. -(The new standard *should* be compatible with TREZOR, including the 12 word seed; other wallets, mostly not, although standards haven't settled down yet). +(The new standard *should* be compatible with TREZOR and possibly Ledger, including the 12 word seed; other wallets, mostly not, although standards haven't settled down yet). ### Second step: Funding the wallet. diff --git a/scripts/README.md b/scripts/README.md index c1e16cc..f9977ab 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -56,7 +56,7 @@ This is the same as in normal Joinmarket. ### joinmarketd.py -This file's role is explained in the main README in the top level directory. It only +This file is to be considered experimental for now. It only takes two arguments, the port it serves on (default 27183), and whether to use TLS for client-server communication (default 0=no tls, 1=tls):