If you want to run your own directory node, here's the basic setup:
Docker Compose SetupDocker Compose Setup
services:
joinmarket-directory:
image: ghcr.io/joinmarket-webui/jam-standalone:v0.4.0-clientserver-v0.9.11
container_name: joinmarket-directory
volumes:
- /data/joinmarket-directory/:/joinmarket/
entrypoint: ""
command: >
bash -c "
service tor start &&
python3 /joinmarket/start-dn.py --datadir=/joinmarket/ '${MOTD}'
"
environment:
- JOINMARKET_DATADIR=/joinmarket
deploy:
resources:
limits:
cpus: 2
memory: 1G
restart: always
labels:
- "traefik.enable=false"
healthcheck:
test: ["CMD", "sh", "-c", "timeout 10 curl --socks5-hostname 127.0.0.1:9050 --connect-timeout 10 http://${HIDDEN_SERVICE_HOSTNAME}:5222 2>&1 | grep -q 'Empty reply from server'"]
interval: 30s
timeout: 15s
retries: 3
start_period: 60sEnvironment Variables (.env)Environment Variables (.env)
MOTD=Your custom message here
# cat /joinmarket/tor_hidden_service/hostname after the first run
HIDDEN_SERVICE_HOSTNAME=your_onion_address.onionConfiguration (joinmarket.cfg)Configuration (joinmarket.cfg)
Key settings for directory nodes:
[DAEMON]
no_daemon = 1
daemon_port = 27183
daemon_host = localhost
use_ssl = false
[BLOCKCHAIN]
blockchain_source = no-blockchain
network = mainnet
[MESSAGING:onion]
type = onion
socks5_host = tor
socks5_port = 9050
tor_control_host = tor
tor_control_port = 9051
onion_serving_host = 0.0.0.0
onion_serving_port = 5222
# CRITICAL: This enables directory node functionality
hidden_service_dir = /joinmarket/tor_hidden_service
directory_nodes = your_onion_address.onion:5222
[LOGGING]
console_log_level = INFO
color = trueRequired ScriptRequired Script
Download the directory node script:
wget https://raw.githubusercontent.com/JoinMarket-Org/custom-scripts/master/start-dn.pyPlace it in your JoinMarket directory before starting the container.
Finding existing directory nodesFinding existing directory nodes
- GitHub issue: https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1445
- Telegram: https://t.me/joinmarketorg
Every additional directory node helps make JoinMarket more robust for everyone.
Thought I'd do my part and run a directory as well.
nakamotourflxwjnjpnrk7yc2nhkf6r62ed4gdfxmmn5f4saw5q5qoyd.onion:5222
Thanks, it works.
Announced:
Also added it as a source for https://joinmarket.sgn.space/
Nakamoto is now updated to your latest directory server v2.
That's great! Thanks.
Please report any issues if you find them. Should work pretty well already though.
What would be the advantage of doing this?
For you none at first. But having more reliable directory nodes makes JoinMarket work better (faster, less failures) and hopefully that helps increase its usage, which is in everyone's banefit.
Current nodes are pretty unstable and there are only 2-3 that work.
Thanks for including the .cfg file.
Note: no system-wide (torrc) changes to Tor are needed, beyond those described in tor.md
jmarketxf5wc4aldf3slm5u6726zsky52bqnfv6qyxe5hnafgly6yuyd.onion:5222Thanks, it works.
Announced:
Also added it as a source for https://joinmarket.sgn.space/
shssats5ucnwdpbticbb4dymjzf2o27tdecpes35ededagjpdmpxm6yd.onion
Thanks, it works.
Announced:
Also added it as a source for https://joinmarket.sgn.space/
Thanks! Please advertise this one: satoshi2vcg5e2ept7tjkzlkpomkobqmgtsjzegg6wipnoajadissead.onion:5222
That's the spirit! Thanks.
It works:
torify nc -zv satoshi2vcg5e2ept7tjkzlkpomkobqmgtsjzegg6wipnoajadissead.onion 5222 Connection to satoshi2vcg5e2ept7tjkzlkpomkobqmgtsjzegg6wipnoajadissead.onion (127.42.42.0) 5222 port [tcp/xmpp-client] succeeded!Announced:
Also added it as a source for https://joinmarket.sgn.space/
Running a directory node does not require much resources. I would advertise it anonymously though to not be linked to it.
Directory nodes don't hold funds or user data, so it's not a big deal. But regulators can be very dumb, privacy is always a good idea.