Bisq contributors run a federation of Bitcoin Core nodes to (1) avoid relying on bloom filters to protect user privacy when connecting to arbitrary public nodes and (2) ensure Bisq connects to nodes with consistent Bitcoin Core implementations.
Introduction
In the past, Bisq connected to arbitrary Bitcoin Core nodes, but the prospect of the SegWit2x hard fork in Fall 2017 made it clear this was not ideal—in the case of a hard fork, it would be impossible for Bisq to tell which fork a connected node was running. The SegWit2x hard fork never happened, but if it did, there was a chance transactions would execute on an undesirable fork, and even worse, a chance that transactions would execute on different forks.
Critically, bloom filters introduce serious privacy flaws when connecting to arbitrary bitcoin nodes, as chain analysis companies spy on SPV wallets. Connecting only to nodes run by trusted Bisq contributors avoids such monitoring.
Hence the decision to run a federation of Bitcoin nodes: more robust user privacy and a consistent Bitcoin Core implementation Bisq can rely on.
Note: Bisq users can still choose to connect to arbitrary public nodes, as before, or even connect to specific nodes they prefer.
Infrastructure
GitHub
Issues are managed in the bisq-network/bisq-btcnode repository.
Roles
Maintainer
The contributor(s) responsible for full node Infrastructure and Process.[1]
Duties
-
Monitor communications on the
#bisq-btcnode
Slack channel.[4] -
Keep this documentation up to date (in particular, the Process detailed below).[5]
-
Write a monthly report on the Bitcoin Node Maintainer Role Issue.[6]
Rights
-
Write access to the bisq-network/bisq-btcnode repository.
Operator
Duties
-
Operate bitcoin nodes as detailed below in Process.
-
Monitor communications on the
#bisq-btcnode
Slack channel.[10] -
Write a monthly report on the Bitcoin Node Operator Role Issue.[11]
Process
Step 0. Evaluate
Determine if this is really a role you can fill. It’s expected that your node will maintain (1) good uptime and (2) an up-to-date config and bitcoind version (as required by the Bitcoin Node Maintainer). There are no strict requirements for either, but it’s expected that you will make your best effort to stay current.
Step 1. Get in Touch
Contact the Bitcoin Core Maintainer to convey your intention of setting up a Bitcoin Core node for Bisq.
Step 2. Set it Up
Set up a Bitcoin Core node, making sure to use the configuration specified here. Also make sure your node runs in a secure environment (i.e. basic server admin: locked-down user access, security patches applied promptly, etc) and that it allows onion connections so Bisq can connect to it.
Step 3. Include Node in Bisq Source
Once your node is ready, send a PR to include it as a Bitcoin Core node for Bisq (they’re currently specified here).