If you have arrived here from runing JoininBox locally on the RaspiBlitz can skip these steps (CTRL+C to exit the connection settings). The connection to the local bitcoin node is set up automatically.
JoinMarket (running in JoininBox) needs to connect to Bitcoin Core via RPC.
A pruned node with the bitcoind wallet enabled will do and txindex is not required.
Since the RaspiBlitz v1.6 run this script:
$ config.scripts/network.wallet.sh on
To set up manually:
-
Edit the bitcoin.conf:
$ sudo nano /mnt/hdd/bitcoin/bitcoin.conf
-
Change the disablewallet option to 0:
disablewallet=0
-
Restart bitcoind:
$ sudo systemctl restart bitcoind
In the terminal of the node - allow remote RPC connections to Bitcoin Core
This can be skipped if you connect through Tor
-
Edit the bitcoin.conf
$ sudo nano /mnt/hdd/bitcoin/bitcoin.conf
Add the values:
rpcallowip=JOININBOX_IP
orRANGE
- either specify the LAN IP of the computer (here JoininBox)
- or use a range like:
192.168.1.0/24
- edit to your local subnet - the first 3 numbes of the LAN IP address, the example used here is: 192.168.1.x
rpcbind=LAN_IP_OF_THE_NODE
- use the local IP of the bitcoin node in the example:
192.168.1.4
- use the local IP of the bitcoin node in the example:
- can keep the other
rpcallowip
andrpcbind
entires especially for the localhost:127.0.0.1
Example:
rpcallowip=192.168.1.0/24 rpcbind=192.168.1.4
-
Restart Bitcoin Core
$ sudo systemctl restart bitcoind
-
Open the firewall to allow the RPC connection from LAN
edit to your local subnet - in the example here 192.168.1.X):
$ sudo ufw allow from 192.168.1.0/24 to any port 8332
-
Take note of the
LAN_ADDRESS
of the remote node and fill it in to therpc_host
injoinmarket.cfg
On the node - activate Tor and create a Hidden Service
Make sure that Tor is installed or active in the SERVICES menu
Create a Hidden Service to forward the bitcoin RPC port:
-
On the RaspiBlitz since v1.4 there is a script to create a hidden service:
./config.scripts/internet.hiddenservice.sh bitcoinrpc 8332 8332
-
Take note of the
Tor_Hidden_Service.onion
and fill in to therpc_host
in thejoinmarket.cfg
Alternatively proceed manually:
-
Open the Tor configuration file
$ sudo nano /etc/tor/torrc
-
Insert the lines
# Hidden Service v3 for bitcoinrpc HiddenServiceDir /mnt/hdd/tor/bitcoinrpc HiddenServiceVersion 3 HiddenServicePort 8332 127.0.0.1:8332
-
Restart Tor
$ sudo systemctl restart tor
-
Take note of the
Tor_Hidden_Service.onion
$ sudo cat /mnt/hdd/tor/bitcoinrpc/hostname
Fill in the Tor_Hidden_Service.onion
to the rpc_host
in the joinmarket.cfg
- Username:
raspibolt
- Password:
passwordB
orsudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-
- Host:
LAN_IP_OF_THE_NODE
orsudo cat /mnt/hdd/tor/bitcoinrpc/hostname
- Port:
8332
-
Run in the RoninDojo ssh terminal:
$ sed -i 's/ -disablewallet=.*$/ -disablewallet=0/' ~/dojo/docker/my-dojo/bitcoin/restart.sh
-
Alternatively edit manually
$ nano ~/dojo/docker/my-dojo/bitcoin/restart.sh
modify:-disablewallet=1
to:
-disablewallet=0
-
Edit the bitcoind container settings
$ nano ~/dojo/docker/my-dojo/conf/docker-bitcoind.conf
-
Set the following:
# should be already on BITCOIND_RPC_EXTERNAL=on # the RoninDojo_IP is the LAN IP address of your RoninDojo BITCOIND_RPC_EXTERNAL_IP=RoninDojo_IP
-
Open the firewall to allow the RPC connection from LAN
(edit to your local subnet - in the example here 192.168.1.X):
$ sudo ufw allow from 192.168.1.0/24 to any port 28256
-
Note that Dojo uses the port 28256 instead of the default 8332.
-
Create a Hidden Service to forward the bitcoin RPC port
-
Edit the torrc
$ sudo nano /etc/tor/torrc
-
Add:
HiddenServiceDir /var/lib/tor/bitcoinrpc/ HiddenServiceVersion 3 HiddenServicePort 8332 127.0.0.1:28256
-
Restart Tor
$ sudo systemctl restart tor
-
Show the .onion service address
$ sudo cat /var/lib/tor/bitcoinrpc/hostname
$ cd ~/dojo/docker/my-dojo && ./dojo.sh upgrade --nolog
Fill the connection settings from the 5 Credentials
-> 6 Bitcoind
menu of RoninDojo:
- RPC username:
RoninDojo
- RPC password:
RPC Password
- Host:
RoninDojo_IP
orsudo cat /var/lib/tor/bitcoinrpc/hostname
- Port:
28256
for LAN or8332
for the .onion service
-
Connect JoinMarket running on a Linux desktop to a remote node
-
Note about the Tor connection (applied automatically in the JoininBox): Remember to use
torsocks
with the python scripts when connecting remotely through Tor
Example:
torsocks wallet-tool.py wallet.jmdat
also need to allow Tor to connect to localhost