hellobitcoin

command module
v0.0.0-...-3fb12de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2017 License: MIT Imports: 17 Imported by: 0

README

###Overview

This is a collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.

It was a learning project for me to learn more about both golang, and the bitcoin protocol.

This project consists of three programs which each contain the most basic usecase.

  • keys.go - Generates a public/private key pair
  • transaction.go - Creates, and signs a bitcoin transaction
  • network.go - Connects to a peer, and sends a transaction over the network

###Disclaimer

These programs are not "crytographically" random, and should not be used for any purpose other than educational use.

###Installation

  1. Install go
  2. run go get to install dependencies
  3. Follow the instructions at go-secp256k1 to compile bitcoin/c-secp256k1
  4. Run one of the programs using the syntax below

Usage

Creating a key pair
go run keys.go

options (optional)
--testnet
Generating a transaction
go run transaction.go

options (required)
--private-key yourPrivateKey
--public-key yourPublicKey
--destination destinationPublicKey
--input-transaction inputTransactionHash
--satoshis satoshisToSend

options (optional)
--input-index inputTransactionIndex
Sending a transaction over the bitcoin network
go run network.go

options (required)
--transaction yourTransaction
--node-address 255.255.255.255 (IPv4 address of the bitcoin node to connect to)
--network-address 255.255.255.255 (IPv4 address of your public IP address)

options (optional)
--testnet

Dependencies

https://github.com/toxeus/go-secp256k1

This library is used for the creation of public keys from private keys, as well as signing transactions. It is a project which wraps the official bitcoin/c-secp256k1 bitcoin library.

https://github.com/tv42/base58

This library does the base58 conversion. I have included the base58 project in this codebase rather than importing it from the aforementioned github, because I needed to change the dictionary that was used.

Resources

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
base58
Package base58 implements a human-friendly base58 encoding.
Package base58 implements a human-friendly base58 encoding.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL