4.5 KiB
(You have either followed the Quick Install on the readme (./install.sh), or have
followed a manual installation as per here).
(If you want to run Joinmarket-Qt, start with the walkthrough instead of this.)
Zeroth step: configuring for Bitcoin Core.
Bitcoin Core is required to use Joinmarket; note that the node can be pruned.
Configuring Joinmarket for Core is now reduced, since there is no longer any walletnotify used.
First thing to do: in scripts/, run:
python wallet-tool.py generate
This should quit with an error, because the rpc is not configured. Open the newly created file joinmarket.cfg,
and edit:
[BLOCKCHAIN]
rpc_user = yourusername-as-in-bitcoin.conf
rpc_password = yourpassword-as-in-bitcoin.conf
rpc_host = localhost #default usually correct
rpc_port = 8332 # default for mainnet
Note, you can also use a cookie file by setting, in this section, a variable rpc_cookie_file to the location of the file,
as an alternative to using user/password.
If you use Bitcoin Core's multiwallet feature, you can edit the value of rpc_wallet_file to your chosen wallet file.
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.
First step: make a Joinmarket wallet
Use this guide, BUT: a couple of differences:
- The
wallet-tool.pyscript is in thescripts/directory, so start there. - The output when you "display balance" will look a bit different: the addresses start with '3'.
- 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 (BIP49) should be compatible with TREZOR, Ledger, Electrum, Samourai and some others, including the 12 word seed).
Second step: Funding the wallet.
Read this section in the previously linked page. Don't neglect the point mentioned that, if you are planning to do your own coinjoins (act as "Taker", you must fund multiple different addresses to avoid inconvenience in future. For Makers, that's not necessary.
If you are upgrading from non-Segwit JM, you'll want to read this upgrade guide.
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
(Note that the patientsendpayment option, also described on that page, is not yet implemented in this version, but probably will be soon).
(Note also that you can use 'schedule' files in this new version, but that's more advanced so ignore it for now.)
4a step: if you want to be a "Maker" or "yield generator".
Read the introductory guide here.
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: Running the tumbler script to boost privacy of owned coins.
Read the instructions here