Browse Source

Minor updates to docs on installation and usage;

add segwit donation address to Qt About page.
master
AdamISZ 7 years ago
parent
commit
26e6e15acc
No known key found for this signature in database
GPG Key ID: 141001A1AF77F20B
  1. 11
      README.md
  2. 8
      docs/INSTALL.md
  3. 5
      docs/JOINMARKET-QT-GUIDE.md
  4. 14
      docs/TESTING.md
  5. 23
      docs/USAGE.md
  6. 7
      scripts/joinmarket-qt.py

11
README.md

@ -18,7 +18,10 @@ Joinmarket is coinjoin software, and includes a wallet, which requires Bitcoin C
### Quickstart
Once you've downloaded this repo, either as a zip file, and extracted it, or via `git clone`:
Once you've downloaded this repo, either as a tar/zip file, and extracted it, or via `git clone`:
Make sure to validate the signature on the tar/zip file provided on the [https://github.com/Joinmarket-Org/joinmarket-clientserver/releases](release page),
or check the signature in git if you install that way using `git log --show-signature`.
./install.sh
(follow instructions on screen; provide sudo password when prompted)
@ -27,9 +30,7 @@ Once you've downloaded this repo, either as a zip file, and extracted it, or via
(You can add `-p python2` if you want to use Python2. You can also add `--develop` as an extra flag to `install.sh` to make the Joinmarket code editable in-place.)
For the Qt GUI, pass the `--with-qt` flag to `install.sh` as well :
./install.sh --with-qt
You can optionally install a Qt GUI application, you will be prompted to choose this during installation.
Do note, Python 2 is incompatible with the Qt GUI.
@ -58,7 +59,7 @@ It's possible but unlikely that the Python2 version will be fixed, but in any ca
If binaries are built, they will be gpg signed and announced on the Releases page.
If you haven't used the `--with-qt` flag during installation with `install.sh`, then to run the script `joinmarket-qt.py` from the command line you will need to install two more packages. Use these 2 commands while the `jmvenv` virtual environment is activated:
If you haven't chosen the Qt option during installation with `install.sh`, then to run the script `joinmarket-qt.py` from the command line you will need to install two more packages. Use these 2 commands while the `jmvenv` virtual environment is activated:
```
pip install PySide2

8
docs/INSTALL.md

@ -8,12 +8,8 @@ See [here](SEGWIT-UPGRADE.md).
#### Notes on upgrading versions generally:
If you just want the executable/GUI/binary version of the code, always use
the latest version of those files (example: joinmarket-qt.exe for Windows) found
on the [releases](https://github.com/AdamISZ/joinmarket-clientserver/releases) page.
(Note, sometimes this won't be the latest release, so you may have to scroll down
a little; not all releases, for now, will include binary builds).
If you just want the latest version in a new directory, go to the [releases](https://github.com/AdamISZ/joinmarket-clientserver/releases) page.
Binary executables are not currently being built; that may change in the future.
Otherwise: if you are upgrading from an older version, just update using git: `git pull origin master`,
or `git fetch; git checkout tags/<tagname>` for a specific tagged release, then rerun the installation

5
docs/JOINMARKET-QT-GUIDE.md

@ -25,7 +25,8 @@ The github commits to the main repo, above, are signed.
### Walkthrough
Double click the binary to run it.
Double click the binary to run it, or go to the `/scripts` subdirectory and run `python joinmarket-qt.py`
(make sure you're in the venv, go back to the README quick install instructions if you don't know what that means).
You will get the following error screen initially:
@ -40,7 +41,7 @@ has been created in the directory you're running in. If you're running Bitcoin C
rpc_host = localhost #default usually correct
rpc_port = 8332 # default for mainnet
If you're not using Core, you can set the value of `blockchain_source` in that section to `electrum-server`.
If you're not using Core, you can set the value of `blockchain_source` in that section to `electrum-server` **but only do this for testing; it's not supported!**.
Once the rpc connection is correct (or using Electrum), you will be presented with this start screen:

14
docs/TESTING.md

@ -13,9 +13,10 @@ Install the test requirements (still in your virtualenv as mentioned above):
Running the test suite should be done something like (advisable to wipe ~/.bitcoin/regtest first):
pytest --btcconf=/path/to/bitcoin.conf --btcroot=/path/to/bitcoin/bin/ --btcpwd=whatever --nirc=2 -k "not configure" --ignore test/test_full_coinjoin.py -p no:warnings
pytest --btcconf=/path/to/bitcoin.conf --btcroot=/path/to/bitcoin/bin/ --btcpwd=whatever --nirc=2 --ignore test/test_full_coinjoin.py -p no:warnings
(you'll first want to copy the regtest_joinmarket.cfg file from the test/ directory to the root directory, this file will need minor edits for your btc configuration).
(you'll first want to copy the regtest_joinmarket.cfg file from the test/ directory to the root directory,
this file will need minor edits for your btc configuration).
### Running tests of sendpayment and tumbler (including with malicious makers)
@ -64,4 +65,11 @@ the add-utxo tool so external commitments usage can be tested.
### Testing Joinmarket-Qt with regtest
You can follow the process above using `test/ygrunner.py` to set up the environment, and then just run `python joinmarket-qt.py` from within the `scripts` directory.
Note that you can load a random/empty wallet with a 32 char hex string, or more usefully, use the provided wallet with coins in it, as described above. The 'generate' and 'recover' functions will not work on regtest for now, however; they can currently only be tested on mainnet.
Note that you can load a random/empty wallet with a 32 char hex string, or more usefully,
use the provided wallet with coins in it, as described above.
The 'generate' and 'recover' functions will not work like this on regtest, but you can generate a file-based wallet on regtest from the command line,
and then load it with a one line hack to the joinmarket-qt.py file (I'll let you work that out, if you got this far :) ).
You can also do full tumbler tests, on regtest, using the GUI, using this setup. Spin up ygrunner.py as described above, then start the tumbler wizard
in the 'CoinJoin' tab, and the multi- subtab, and choose Generate Tumbler Schedule. There are 3 default destination addresses provided although
you may want to change them, depending on the test.

23
docs/USAGE.md

@ -50,7 +50,14 @@ in the previously linked page. Don't neglect the point mentioned that, if you ar
If you are upgrading from non-Segwit JM, you'll want to read this [upgrade guide](SEGWIT-UPGRADE.md).
### Third step: Try out a coinjoin
### Third step (optional): Try out a coinjoin
**Doing single coinjoins doesn't really achieve a significant privacy boost;
so you can skip this step if that's your only interest, and go to step 4b instead
to learn about the tumbler script, which we strongly recommend to achieve this goal**.
A single coinjoin *can* make destination (payment) outputs unclear, and can degrade automated blockchain surveillance significantly.
We recommend using these opportunistically when making payments but on no account rely on any specific privacy gain from doing so.
To try doing one coinjoin, use the `sendpayment.py` script. See [here](https://github.com/JoinMarket-Org/joinmarket/wiki/Sending-payments-with-CoinJoin#send-payment)
@ -62,11 +69,17 @@ To try doing one coinjoin, use the `sendpayment.py` script. See [here](https://g
Read the introductory guide [here](https://github.com/JoinMarket-Org/joinmarket/wiki/Running-a-Yield-Generator).
You can use the `yield-generator-basic.py` script in the `scripts/` directory.
The new script (much simplified) has the same fields at the top you can edit; note
the new offertypes are 'swreloffer', 'swabsoffer' - they function the same, but use segwit.
You can use (recommended) the `yg-privacyenhanced.py` script in the `scripts/` directory.
You can also instead use the `yield-generator-basic.py` which is almost the same but the former has
some slight behaviour tweaks to make the privacy properties of the bot better and is more clearly documented.
If you're new to this, note the slightly strange/surprising fact that the settings are editable in the source file;
at the top of those two script files (`yield-generator-basic.py` and `yg-privacyenhanced.py`), there is a user-editable section;
the comments tell you what to change and what it means.
For veteran users, note the new offertypes are 'swreloffer', 'swabsoffer' - they function the same, but use segwit.
### 4b step: if you want to run the tumbler script.
### 4b step: Running the tumbler script to boost privacy of owned coins.
Read the instructions [here](tumblerguide.md)

7
scripts/joinmarket-qt.py

@ -58,6 +58,7 @@ qt5reactor.install()
#General Joinmarket donation address; TODO
donation_address = "1AZgQZWYRteh6UyF87hwuvyWj73NvWKpL"
donation_address_sw = "bc1q5x02zqj5nshw0yhx2s4tj75z6vkvuvww26jak5"
#Underlying joinmarket code version (as per setup.py etc.)
JM_CORE_VERSION = '0.5.3'
@ -1173,14 +1174,18 @@ class JMMainWindow(QMainWindow):
str(jm_single().JM_VERSION)
), "Help us support Bitcoin fungibility -", "donate here: "]))
label2 = QLabel(donation_address)
for l in [label1, label2]:
label3 = QLabel(donation_address_sw)
for l in [label1, label2, label3]:
l.setTextFormat(QtCore.Qt.RichText)
l.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
l.setOpenExternalLinks(True)
label2.setText("<a href='bitcoin:" + donation_address + "'>" +
donation_address + "</a>")
label3.setText("<a href='bitcoin:" + donation_address_sw + "'>" +
donation_address_sw + "</a>")
lyt.addWidget(label1)
lyt.addWidget(label2)
lyt.addWidget(label3)
btnbox = QDialogButtonBox(msgbox)
btnbox.setStandardButtons(QDialogButtonBox.Ok)
btnbox.accepted.connect(msgbox.accept)

Loading…
Cancel
Save