pull down to refresh

If you want to run your own directory node, here's the basic setup:

Docker 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: 60s

Environment Variables (.env)

MOTD=Your custom message here
# cat /joinmarket/tor_hidden_service/hostname after the first run
HIDDEN_SERVICE_HOSTNAME=your_onion_address.onion

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 = true

Required Script

Download the directory node script:
wget https://raw.githubusercontent.com/JoinMarket-Org/custom-scripts/master/start-dn.py
Place it in your JoinMarket directory before starting the container.

Finding existing directory nodes

Every additional directory node helps make JoinMarket more robust for everyone.
0 sats \ 1 reply \ @OT 17h
What would be the advantage of doing this?
reply
18 sats \ 0 replies \ @klk OP 17h
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.
reply
0 sats \ 1 reply \ @anon 13h
shssats5ucnwdpbticbb4dymjzf2o27tdecpes35ededagjpdmpxm6yd.onion
reply
0 sats \ 0 replies \ @klk OP 12h
shssats5ucnwdpbticbb4dymjzf2o27tdecpes35ededagjpdmpxm6yd.onion
Thanks, it works.
Announced:
Also added it as a source for https://joinmarket.sgn.space/
reply
0 sats \ 1 reply \ @anon 14h
Thanks! Please advertise this one: satoshi2vcg5e2ept7tjkzlkpomkobqmgtsjzegg6wipnoajadissead.onion:5222
reply
0 sats \ 0 replies \ @klk OP 14h
satoshi2vcg5e2ept7tjkzlkpomkobqmgtsjzegg6wipnoajadissead.onion
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/
reply
0 sats \ 0 replies \ @klk OP 16h
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.
reply