joinmarket-clientserver

Bitcoin CoinJoin implementation with incentive structure to convince people to take part

View the Project on GitHub JoinMarket-Org/joinmarket-clientserver

How to use Tor with Joinmarket

(You’ve installed using the install.sh or similar as per instructions in the README before reading this).

This document gives short notes on any necessary configuration steps for using Joinmarket as a Maker or a Taker, in coinjoins. The requirements for Takers are lesser.

Contents

  1. Checking Tor is installed

  2. Using Tor as a Taker

  3. Using Tor as a Maker

    a. Configuring Tor to setup an onion service

Checking Tor is installed

(Insert sanity check advice for system tor.)

If you don’t currently have a Tor daemon running on your machine you can use the flag --with-local-tor appended to your invocation of ./install.sh as per the installation instructions in the README.

Using Tor as a Taker

Insert basic instructions on checking Tor is functional and SOCKS port.

Using Tor as a Maker

To use the new onion messaging system (see here) as a maker it’s necessary for your bot to be reachable directly p2p by takers, so you need to run an onion service. This often requires a little extra configuration of your Tor setup, which we now explain:

Configuring Tor to setup an onion service

(These steps were prepared using Ubuntu; you may have to adjust for your distro).

First, ensure you have Tor installed:

sudo apt install tor

Don’t start the tor daemon yet though, since we need to do some setup. Edit Tor’s config file with sudo:

sudo vim /etc/tor/torrc

and uncomment these three lines to enable onion service startup:

ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1

However if you proceed at this point to try to start your yieldgenerator with python yg-privacyenhanced.py wallet.jmdat or similar, you will almost certainly get an error like this:

Permission denied: '/var/run/tor/control.authcookie'

… because reading this file requires being a member of the group debian-tor. So add your user to this group:

sudo usermod -a -G debian-tor yourusername

… and then you must restart the computer/server (or maybe just logout, login) for that change to take effect (check it with groups yourusername).

Finally, after system restart, ensure Tor is started (it may be automatically, but anyway):

sudo service tor start

Once this is done, you should be able to start the yieldgenerator successfully.