About

fbd is a Fistbump full node written in Swift.

Built by eskimo. Source on GitHub.

FBC

fb1q7zf3q480led5rf4qnhyc4j8n52wa3t0cydh9ye

BTC

bc1qmj5dc3sj2kk3u3lf20gyt4uaf96aqazt64q30l

Installation

git clone https://github.com/eskimo/fbd.git cd fbd

macOS

./install/macos.sh

Linux

./install/linux.sh

Windows

powershell -ExecutionPolicy Bypass -File install\windows.ps1

macOS, Linux, Windows. Each script installs dependencies, builds, and installs fbd and fbdctl.

Configuration

fbd --network main --host 0.0.0.0 --log-level debug --index-tx
FlagDescriptionDefault
--network, -nmain, testnet, regtest, simnetmain
--datadir, -dData directory~/.fbd (macOS/Linux), %LOCALAPPDATA%\fbd (Windows)
--hostP2P listen address127.0.0.1
--port, -pP2P portnetwork default
--max-outboundMax outbound peers8
--max-inboundMax inbound peers64
--seedsAdditional seed peers
--nodesConnect only to these peers
--agentUser agent suffix
--rpc-hostRPC listen address127.0.0.1
--rpc-portRPC portnetwork default
--api-keyRPC API keyauto-generated
--no-authDisable RPC authfalse
--ns-hostDNS listen address127.0.0.1
--ns-portDNS portnetwork default
--miner-addressCoinbase payout address
--log-leveltrace, debug, info, warning, errorinfo
--index-txTransaction index for historical lookupsfalse
--index-addressAddress index for lookups by addressfalse

Config file

<datadir>/fbd.conf — CLI flags override config values.

network = main host = 0.0.0.0 nodes = 1.2.3.4:32867, 5.6.7.8:32867 log-level = debug index-tx = true

Networks

NetworkP2PBrontideRPCDNSHRP
main32867328683286932870fb
testnet42867428684286942870ft
regtest52867528685286952870fr
simnet62867628686286962870fs

RPC

fbdctl

fbdctl getblockcount
{ "result": 318614, "error": null }

curl

curl -s http://127.0.0.1:32869/ \ -X POST \ -u "x:YOUR_API_KEY" \ -d '{"method":"getblockcount","params":[],"id":1}'
{ "result": 318614, "error": null, "id": 1 }
curl returns standard JSON-RPC with an extra id field. Examples below show the result value only.

Auth

A random key is generated on startup at <datadir>/.cookie. fbdctl reads it automatically.

HTTP Basic auth: username x, password is the key.

Wallets

Wallet commands require --wallet <name>. Auto-selected if only one wallet exists.

fbdctl --wallet main getbalance

Methods tagged wallet required need this flag.