An implementation of the Nano cryptocurrency protocol in golang
An implementation of the Nano protocol written from scratch in Go (golang).
A crypto currency has to be resilient to survive, and the network is only as resilient as the weakest link. With only one implementation of the protocol, any bugs that are found affect the entire network. The aim of this project is to create an alternative implementation that is 100% compatible with the reference implementation to create a more robust network.
Additionally, there is no reference specification for the Nano protocol, only a high level overview. I've had to learn the protocol from reading the source-code. I'm hoping a second implementation will be useful for others to learn the protocol.
Eventually the project will contain the following components:
A support library containing common functions, e.g. block validation, hashing, proof of work, etc
A tool to generate vanity addresses (See https://en.bitcoin.it/wiki/Vanitygen)
A full node implementation compatible with the official Nano wallet, but with faster initial sync times out of the box.
A GUI Wallet that can either run as a node or as a light wallet.
A simple project to get the basic public-key cryptography functions working and tested.
Any pull requests would be welcome!
I haven't been using Go for very long so any style/organisation fixes would be greatly appreciated.
Feel free to donate some Nano to nano_1frankh36p3e4cy4xrtj79d5rmcgce9wh4zke366gik19gifb5kxcnoju3y5 to help keep me motivated :beers: