A bitcoin library in C, SPV wallet & more.
C Other
Switch branches/tags
Nothing to show
Clone or download
jgarzik Merge pull request #106 from hubslave/master
Update build on OpenBSD
Latest commit eba4b3c Feb 20, 2018

README.md

Picocoin

GitHub license Build Status Coverage Status

Tiny bitcoin library, with lightweight client and utils.

This contains several pieces of interest:

  • libccoin - C library for building bitcoin applications
  • picocoin - (WIP) Bitcoin HD wallet
  • brd - (WIP) Bitcoin network full node ("block relay daemon")
  • Comprehensive test suite.

libccoin library dependencies: GMP

picocoin client dependencies: GMP libevent 2.x jansson 2.x (2.1 used for development)

block relay daemon (brd) dependencies: GMP libevent 2.x

Command line and configuration file usage

The picocoin wallet is operated via command line, in a similar style to "git sub-command". To obtain a list of commands, run

$ ./picocoin --help

The program stores settings in a key/value map. These key=value parameters may be specified on the command line via --set, or in a configuration file. To view these settings, run

$ ./picocoin settings

Recognized parameters

addnode

Format: address SPACE port

Manually add P2P node to peer manager.

config (alias "c")

Specify a pathname to the configuration file.

wallet (alias "w")

Specify a pathname to the wallet data file. Default "picocoin.wallet"

AES encryption is applied to the wallet. Passphrase is specified via environment variable PICOCOIN_PASSPHRASE.

debug

Enable additional debug output.

net.connect.timeout

TCP connect(2) timeout.

Recognized commands

chain-set

Select blockchain and network. Reads the "chain" settings variable. Acceptable values are "chain=bitcoin" and "chain=testnet3". Updates internal parameters (pchMessageStart / network magic, genesis block, ...)

dns-seeds

Query and display bitcoin DNS seeds, for P2P node addresses.

settings

Display settings map.

address

Generate a new bitcoin address (ECDSA keypair). Store it in the current wallet,

create

Initialize a new wallet. Refuses to initialize, if the filename already exists.

createAccount

Create new HD account.

netsync

Synchronize with network: send any pending payments, and check for new incoming payments.

addressList

List all legacy non-HD bitcoin addresses in wallet.

dump

Dump entire wallet contents, including all private keys.

info

Informational summary of wallet data.