(+ `libsodium-dev` if you can find it, else build after)
(+ `libsodium-dev` if you can find it, else build after)
@ -46,8 +46,7 @@ Then install this repo:
Then:
Then:
sudo pip install virtualenv
python3 -m venv jmvenv
virtualenv --python=python3 jmvenv
source jmvenv/bin/activate
source jmvenv/bin/activate
**At this point you should see `(jmvenv)` at the beginning of your command prompt.**
**At this point you should see `(jmvenv)` at the beginning of your command prompt.**
@ -72,7 +71,7 @@ Then build and install a local copy of libsecp256k1 for python-bitcointx:
#### Installing packages to run everything in-one:
#### Installing packages to run everything in-one:
> *NOTE*: It is very important to have activated virtualenv before running this step. Otherwise, `pip install` will fail, you may be tempted to re-run it with `sudo pip install` which will cause problems in the future.
> *NOTE*: It is very important to have activated the virtualenvironment before running this step. Otherwise, `pip install` will fail, you may be tempted to re-run it with `sudo pip install` which will cause problems in the future.
pip install -r requirements/base.txt
pip install -r requirements/base.txt
@ -112,10 +111,9 @@ If you have installed this "full" version of the client, you can use it with the
At this point you should see `(jmvenv)` at the beginning of your command prompt.
At this point you should see `(jmvenv)` at the beginning of your command prompt.
@ -235,7 +233,7 @@ If you installed using WSL, the following configuration is necessary:
> note: you need to have installed JoinMarket with Qt support (see [this](../README.md#joinmarket-qt) section in the readme file)
> note: you need to have installed JoinMarket with Qt support (see [this](../README.md#joinmarket-qt) section in the readme file)
1. In Ubuntu, install additional dependencies `sudo apt install libgl1-mesa-glx`.
1. In Ubuntu, install additional dependencies `sudo apt install libgl1-mesa-glx`.
2. Download and install [MobaXterm](https://mobaxterm.mobatek.net). This program needs to be running before you can start JoinMarket-Qt. It requires no additional configuration.
2. Download and install [MobaXterm](https://mobaxterm.mobatek.net). This program needs to be running before you can start JoinMarket-Qt. It requires no additional configuration.
3. Open WSL-Ubuntu session in MobaXTerm. Go to JoinMarket directory and run `source jmvenv/bin/activate` to activate Python virtualenv.
3. Open WSL-Ubuntu session in MobaXTerm. Go to JoinMarket directory and run `source jmvenv/bin/activate` to activate the Python virtualenvironment.
4. You can now start JoinMarket-Qt as described [here](JOINMARKET-QT-GUIDE.md).
4. You can now start JoinMarket-Qt as described [here](JOINMARKET-QT-GUIDE.md).
If you find that the program crashes with `qt.qpa.plugin: Could not load the Qt platform plugin`, you can add Qt5 dependencies with `sudo apt install qtbase5-dev` and try again.
If you find that the program crashes with `qt.qpa.plugin: Could not load the Qt platform plugin`, you can add Qt5 dependencies with `sudo apt install qtbase5-dev` and try again.
@ -286,7 +284,7 @@ do not run the `python setupall.py` commands above. Instead run:
python setupall.py --develop
python setupall.py --develop
The normal installation (`--daemon` or `--client-bitcoin`) would install the JoinMarket
The normal installation (`--daemon` or `--client-bitcoin`) would install the JoinMarket
packages to the virtualenv's `site-packages` directory. This would mean any changes you make to
packages to the virtualenvironment's `site-packages` directory. This would mean any changes you make to
the local code would not have effect until the packages are reinstalled.
the local code would not have effect until the packages are reinstalled.
Using `--develop` causes a `.egg-link` file to be added to `site-packages` for each package.
Using `--develop` causes a `.egg-link` file to be added to `site-packages` for each package.
Work in your `jmvenv` virtualenv as for all Joinmarket work. Make sure to have [bitcoind](https://bitcoin.org/en/full-node) 0.18 or newer installed. Also need miniircd installed to the root (i.e. in your `joinmarket-clientserver` directory):
Work in your `jmvenv` virtualenvironment as for all Joinmarket work. Make sure to have [bitcoind](https://bitcoin.org/en/full-node) 0.18 or newer installed. Also need miniircd installed to the root (i.e. in your `joinmarket-clientserver` directory):
@ -156,7 +156,7 @@ but in any case, very high uptime. For reliability it also makes sense to config
The currently suggested way to run a directory node is to use the [`start-dn.py` script](https://github.com/JoinMarket-Org/custom-scripts/blob/master/start-dn.py); you can place it in your `joinmarket-clientserver/scripts` directory and run it with a message argument to be sent as part of the connection handshake, for example: 'Greetings from Directory Node' and one option flag: `--datadir=/your/chosen/datadir` (as you'll see below).
The currently suggested way to run a directory node is to use the [`start-dn.py` script](https://github.com/JoinMarket-Org/custom-scripts/blob/master/start-dn.py); you can place it in your `joinmarket-clientserver/scripts` directory and run it with a message argument to be sent as part of the connection handshake, for example: 'Greetings from Directory Node' and one option flag: `--datadir=/your/chosen/datadir` (as you'll see below).
This slightly unobvious approach is based on the following ideas: we run a Joinmarket script, with a Joinmarket python virtualenv, so that we are able to parse messages; this means that the directory node *can* be a bot, e.g. a maker bot, but need not be - and here it is basically a "crippled" maker bot that cannot do anything. This 'crippling' is actually very useful because (a) we use the `no-blockchain` argument (it is forced in-code; you don't need to set it) so we don't need a running Bitcoin node (of whatever flavour), and (b) we don't need a wallet either.
This slightly unobvious approach is based on the following ideas: we run a Joinmarket script, with a Joinmarket python virtualenvironment, so that we are able to parse messages; this means that the directory node *can* be a bot, e.g. a maker bot, but need not be - and here it is basically a "crippled" maker bot that cannot do anything. This 'crippling' is actually very useful because (a) we use the `no-blockchain` argument (it is forced in-code; you don't need to set it) so we don't need a running Bitcoin node (of whatever flavour), and (b) we don't need a wallet either.