handshake-node is a Handshake (HNS) blockchain full node written in Go. It is a fork of btcd, but its target behavior is the Handshake network: Handshake block headers, proof-of-work, transactions, covenants, name state, P2P transport, mining, and RPCs.
This is not a Bitcoin node, and it does not include a wallet. Wallet software must manage keys, signing, coin selection, and wallet state externally.
The current release is 0.5.0 for Handshake mainnet. It includes:
getblocktemplate, coinbase proof handling, and a Stratum
v1 MVP server.hnsctl, and rpcclient support.Go 1.26.6 or newer. The module toolchain directive automatically selects a patched Go toolchain when supported.
git clone https://github.com/blinklabs-io/handshake-node.git
cd handshake-node
make build
To install the node and command-line tools into your Go binary directory:
go install -v . ./cmd/...
handshake-node
The daemon can start with no configuration, but production deployments should set explicit RPC credentials and review listener settings:
handshake-node \
--rpcuser=myuser \
--rpcpass=mypassword \
--rpclisten=127.0.0.1:12037
Environment variables use the HANDSHAKE_NODE_ prefix, for example
HANDSHAKE_NODE_RPCUSER and HANDSHAKE_NODE_RPCPASS.
| Port | Purpose |
|---|---|
| 12038 | Mainnet P2P |
| 12037 | Mainnet RPC |
| 12039 | Prometheus metrics, disabled by default |
| 12040 | Stratum, disabled by default |
RPC is authenticated and TLS-enabled by default. Do not expose RPC, metrics, or
Stratum listeners publicly without reviewing the security options in
docs/configuration.md.
make unit
make lint
Integration tests are run serially because the daemon harness allocates local ports:
go test -p 1 -v -tags=rpctest ./integration/...
handshake-node is licensed under the copyfree ISC License. Upstream btcd-derived code is also ISC licensed.
Content type
Image
Digest
sha256:b669b76b1…
Size
17.5 MB
Last updated
2 days ago
docker pull blinklabs/handshake-node:main