• This repository has been archived on 15/Feb/2024
  • Stars
    star
    271
  • Rank 151,717 (Top 3 %)
  • Language
    C
  • License
    MIT License
  • Created about 12 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A bitcoin library in C, SPV wallet & more.

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.

More Repositories

1

cpuminer

CPU miner for bitcoin
C
948
star
2

pyminer

Python miner for bitcoin
Python
835
star
3

python-bitcoinrpc

Python interface to bitcoin's JSON-RPC API
Python
645
star
4

pushpool

Bitcoin mining pool server (getwork-based; obsolete)
C
194
star
5

pynode

Bitcoin P2P router, in python
Python
152
star
6

python-bitcoinlib

Bitcoin library
Python
115
star
7

sqlfun

Modern SQL parser using Bison (Yacc) and Flex
Yacc
80
star
8

playground21

21BC playground
Python
79
star
9

moxiebox

Deterministic execution virtual machine sandbox for Moxie arch
C
74
star
10

univalue

High performance RAII C++ JSON library and universal value object class
C++
56
star
11

txtool

Bitcoin transaction tool
JavaScript
45
star
12

smartcoin

Distributed smart property software
Python
41
star
13

rust-protobuf-example

Example rust protobuf project
Rust
32
star
14

rpcsrv

JSON-RPC server based on C++11 and libevent
M4
31
star
15

auctionpunk

Bitcoin-based decentralized auction software
JavaScript
25
star
16

mcp

Payment channels for bitcoin
JavaScript
21
star
17

kvdbd

API service exporting embedded key/value databases to remote users
Rust
18
star
18

kvapp

Rust microservice template. Clone-and-go app exposing HTTP REST API to database.
Rust
17
star
19

bc-hashfs

Bitcoin Computer hashfs
Python
15
star
20

bip100

BIP 100 materials
12
star
21

arbot

Cryptocurrency mining arbitrage bot
Python
12
star
22

pybond

distribution bond market software
Python
12
star
23

posixutils

POSIX command line utilities, from scratch
Roff
11
star
24

itd

iSCSI target daemon
C
9
star
25

nfs4d

NFSv4 daemon
C
6
star
26

gdbm-native-rs

Rust crate library for reading/writing GDBM key/value databases
Rust
6
star
27

jup

Json UPdate tool -- a JSON swiss army knife
M4
5
star
28

tabled

table daemon
C
4
star
29

sparse-llvm

LLVM backend for Sparse
C
3
star
30

pgdb

key/value database library
C
3
star
31

pgdb2

C++ key/value database library
C++
3
star
32

hail

core cloud services
C
3
star
33

dirc

Decentralized IRC server & proxy
JavaScript
3
star
34

self-signed-cert-rs

Tool to generate self-signed TLS certificates for web servers
Rust
3
star
35

dvdns

Authoritative-only DNS server
C
2
star
36

pagedb

An on-disk key/value database library
Python
2
star
37

posixutils-rs

Core POSIX command line utilities in safe Rust
Rust
2
star
38

gdbm-docs

Unofficial technical documentation related to the GDBM database
2
star
39

outdoors

Checklists related to the outdoors, camping, survival, etc.
2
star
40

disclosures

1
star
41

gdbmtool-rs

GDBM interactive database tool
Rust
1
star
42

pcgtools

PCGen file tools
Rust
1
star