Source code build & setup guide

The full path: build the node, wallets and web interface from the official source code (liboqs first!), then the detailed step-by-step setup.

ℹ️ Don't feel like compiling? The pre-built binaries for Ubuntu 24 are in the Downloads section, with their dedicated setup guide.

1.Prerequisites (Ubuntu 24 / Debian 12)

sudo apt update
sudo apt install -y build-essential cmake pkg-config git \
  libboost-all-dev libssl-dev libzmq3-dev libunbound-dev \
  libsodium-dev libreadline-dev libexpat1-dev libncurses5-dev \
  doxygen graphviz screen curl

2.Download and verify the source code

wget https://privbank.finance/fichiers/PBC_source_v8.2.18_2026-09-08.tar.gz
md5sum PBC_source_v8.2.18_2026-09-08.tar.gz

The displayed md5 must match exactly the one in the md5sums.txt file published on the site. Never build an archive whose md5 does not match.

tar xzf PBC_source_v8.2.18_2026-09-08.tar.gz
cd pbc-chain

3.Build liboqs (post-quantum cryptography) β€” MANDATORY first

PBC bundles liboqs (Dilithium + Kyber) in external/liboqs: it must be built and installed before the node.

cd external/liboqs
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF \
      -DCMAKE_INSTALL_PREFIX="$PWD/install" ..
make -j$(nproc)
make install

4.Build the node, wallets and web interface

cd ../../..        # back to the pbc-chain root
mkdir -p build/release && cd build/release
cmake -Wno-dev -DCMAKE_BUILD_TYPE=Release \
      -DBUILD_TESTS=OFF -DBUILD_DOCUMENTATION=OFF \
      -DBUILD_DEBUG_UTILITIES=OFF -DUSE_DEVICE_TREZOR=OFF \
      -DBUILD_GUI_DEPS=OFF ../..
make -j$(nproc) daemon simplewallet wallet_rpc_server pbc-webui

The binaries are in build/release/bin/:

⏱️ Allow 30 min to 1 h 30 depending on the machine. If the build fails for lack of RAM, re-run make with fewer jobs (e.g. -j2).

5.(Optional) Build the CPU miner

cd ~    # outside the pbc-chain tree
wget https://privbank.finance/fichiers/PBC_pbcminer_v2_2026-08-26.tar.gz
tar xzf PBC_pbcminer_v2_2026-08-26.tar.gz
cd pbcminer_v2
mkdir -p build && cd build
cmake -Wno-dev ..
make -j$(nproc)

The pbcminer binary is in build/.

6.Setup β€” step by step

Once built, the binaries are in build/release/bin/ (pbc-webui in build/release/src/webui/) and the web interface files in web/ at the source root. Start in order:

6.1Start your node

screen -dmS node ./build/release/bin/pbcd --log-file $PWD/pbcd.log
⚠️ Multiple machines on the same LAN? Only one machine runs the node (or the GUI wallet), with the external bind β€” see "Multiple machines (LAN)" below.

Your node connects to the network seeds automatically. Check it is up and syncing:

curl -s http://127.0.0.1:18831/get_info | grep -E '"height"|connections'

(screen -r node to see the console; Ctrl+A then D to detach.)

6.2Create your wallet

./build/release/bin/pbc-wallet-cli --generate-new-wallet ~/mywallet
  1. Choose a wallet password.
  2. WRITE DOWN the 25-word recovery phrase shown β€” it is the only backup of your funds.
  3. Note your address (starts with Pbc… or Pbd… β€” command address in the wallet).
  4. Type exit to quit (the wallet is saved as ~/mywallet and ~/mywallet.keys).

6.3Start the wallet-RPC

screen -dmS wallet-rpc ./build/release/bin/pbc-wallet-rpc \
  --daemon-address 127.0.0.1:18831 \
  --wallet-file ~/mywallet \
  --password "YOUR_WALLET_PASSWORD" \
  --rpc-bind-port 18083 \
  --disable-rpc-login \
  --log-file /tmp/pbc-wallet-rpc.log
⚠️ Replace YOUR_WALLET_PASSWORD with the password from step 6.2. With the placeholder left in, the wallet-RPC dies immediately with invalid password β€” check with tail -3 /tmp/pbc-wallet-rpc.log that it started fine.

6.4Start the wallet web interface

screen -dmS webui ./build/release/src/webui/pbc-webui \
  --rpc-port 18083 \
  --web-dir <source-root>/web \
  --wallet-log /tmp/pbc-wallet-rpc.log

(Replace <source-root> with the path of the pbc-chain folder β€” the interface files are in its web/ subfolder.)

6.5Open your private bank in the browser

http://<your-machine-IP>:8880

(From the machine itself: http://127.0.0.1:8880.) You get: dashboard, term deposits (30d–365d), claimable rewards (CLAIM), the bond market, on-chain inheritance, and the bank statement.

6.6Mine

The CPU miner is a separate project β€” binary + config in the Downloads section, source included (or built at step 5 above). Edit miner/config.json and set your address (step 6.2) in place of YOUR_PBC_ADDRESS_HERE:

"user": "PbcYourAddressHere"

Run the miner with sudo (recommended β€” much better performance: huge pages + CPU MSR tuning, which require root):

sudo screen -dmS miner ./miner/pbcminer --config miner/config.json -t $(($(nproc) - 2))

Recommendation: all threads minus 2 (keeps the machine responsive). Without sudo the miner still works, with reduced performance. It mines against your own node (solo mining, RandomX V2 rx/pbc, CPU only).

⏳ Normal: your mining rewards arrive in 4 locked tranches unlocking at ~24h / ~30d / ~60d / ~90d (protocol-enforced vesting). Your unlocked balance grows progressively.

πŸ’‘ Tip: once your first rewards unlock, place them in a term deposit from the web interface to earn yield β€” that is the core of PBC.

7.Multiple machines on the same LAN

⚠️ Golden rule: one node β€” or one GUI wallet β€” per LAN. If you run several, the next ones will fail to sync. One is enough anyway: every other machine on the LAN mines against it in solo.

On the "bank" machine (the one hosting the node), start it with the external bind:

screen -dmS node ./build/release/bin/pbcd --rpc-bind-ip 0.0.0.0 --confirm-external-bind --log-file $PWD/pbcd.log

On the other machines (miners only β€” no node): edit miner/config.json and point it at the LAN IP of the "bank" machine:

"url": "192.168.X.X:18831"

(replace 192.168.X.X with that machine's LAN IP β€” ip a to find it; leave "daemon": true as is), then run the miner normally. Rewards land on the address configured in config.json, whichever node is used.

8.Troubleshooting