This work-in-progress project is writing a simplified cryptocurrency (mostly following Bitcoin) blockchain in Go.
The desire to do so is two-fold:
- To learn more about the nuts and bolts of crypto
- To learn more about Go!
While the result is not intended to be production-level quality nor used for actual transactions, the hope is to create enough realistic features on it to mimic the flow of real transactions.
Clone the repository:
git clone git@github.com:neil-berg/blockchain.git
Build the binary:
go build main.go
Use the CLI (more to come!):
./main addblock --data "Paying Jane .0005 BTC for coffee"
./main printchain
This blockchain utilitizes the NutsDB as a fast and simple key-value store. /database contains the custom wrappers around various NutsDB methods.
This project largely follows an excellent tutorial on building a Blockchain in Go. The main differences are project organization and the use of NutsDB instead of BoltDB.
I welcome any contributions or feedback to this project. Please feel free to file issues or submit PRs.