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.

Slack

Discussion of Bitcoin Core node status and updates takes place in the #bisq-btcnode Slack channel.

Roles

Maintainer

The contributor(s) responsible for full node Infrastructure and Process.[1]

Role Issue

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

Operator

The contributor(s) responsible for keeping full nodes running as outlined in Process.[7]

Role Issue

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]

Rights

  • N/A

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).


1. See roles.html#maintainer
2. See roles.html#issue
3. See roles.html#team
4. See roles.html#communication
5. See roles.html#documentation
6. See roles.html#reporting
7. See roles.html#maintainer
8. See roles.html#issue
9. See roles.html#team
10. See roles.html#communication
11. See roles.html#reporting