Skip to content

blinklabs-io/handshake-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,471 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

handshake-node

Build Status ISC License GoDoc

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.

Current Status

The current release is 0.1.1-rc1, a mainnet release candidate. It includes:

  • Handshake mainnet and regtest chain parameters.
  • Blake2b/SHA3 Handshake proof-of-work and 236-byte block headers.
  • Handshake transaction outputs with address and covenant data.
  • Name covenant validation, Urkel-backed name state, and name proof RPCs.
  • Brontide P2P transport with plaintext fallback for compatibility work.
  • Mempool, mining, getblocktemplate, coinbase proof handling, and a Stratum v1 MVP server.
  • Authenticated JSON-RPC, websocket notifications, unsigned covenant constructors, hnsctl, and rpcclient support.
  • Full-block Handshake P2P service suitable for cdnsd indexing.

Requirements

Go 1.25 or newer.

Build

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

Run

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.

Ports

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.

Test

make unit
make lint

Integration tests are run serially because the daemon harness allocates local ports:

go test -p 1 -v -tags=rpctest ./integration/...

Documentation

License

handshake-node is licensed under the copyfree ISC License. Upstream btcd-derived code is also ISC licensed.

About

Handshake Node (forked from btcsuite/btcd)

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages