Gocoin is a full Bitcoin solution written in Go language (golang).
The wallet combined with balio
tool also provides a working solution for Litecoin.
The software's architecture is focused on maximum security and good performance.
The client (p2p node) is an application independent from the wallet.
The wallet is deterministic and password seeded. As long as you remember the password, you do not need any backups of your wallet.
There is additional tool called downloader that can quickly sync (download) the blockchain state from the p2p network. Use it for the initial blockchain download or to sync your client after having it offline for a longer time.
In addition there is also a set of more and less useful tools.
They are all inside the tools/
folder.
Each source file in that folder is a separate tool.
The official web page of the project is served at www.assets-otc.com/gocoin.
There you can find extended documentation, including User Manual.
client / downloader:
- 64-bit architecture OS and Go compiler.
- File system supporting files larger than 4GB.
- At least 4GB of system memory highly recommended.
wallet:
- Any platform that you can make your Go (cross)compiler to build for (Raspberry Pi works).
- For security reasons make sure to use encrypted swap file (if there is a swap file).
- If you decide to store your password in a file, have the disk encrypted (in case it gets stolen).
Having hardware requirements met, any target OS supported by your Go compiler will do. Currently that can be at least one of the following:
- Windows
- Linux
- OS X
- Free BSD
Since no binaries are provided, in order to build Gocoin yourself, you will need the following tools installed in your system:
- Go (version 1.2 or higher) - http://golang.org/doc/install
- Git - http://git-scm.com/downloads
- Mercurial - http://mercurial.selenic.com/
If the tools mentioned above are all properly installed, you should be able to execute go
, git
and hg
from your OS's command prompt without a need to specify full path to the executables.
It is recommended to have gcc
complier installed in your system, to get advantage of performance improvements and memory usage optimizations.
For Windows install mingw
, or rather mingw64
since the client node needs 64-bit architecture.
Use go get
to fecth and install the source code files.
Note that source files get installed within your GOPATH folder.
Two extra packages are needed, which are not included in the standard set of Go libraries. You need to install them before building Gocoin. In order to do this, simply execute the following commands:
go get code.google.com/p/go.crypto/ripemd160
go get code.google.com/p/snappy-go/snappy
Use go get
to fetch and install Gocoin sources for you:
go get github.com/piotrnar/gocoin
Go to the client/
folder and execute go build
there.
Not having a compatible gcc
installed in your system, you will likely see an error like this:
# github.com/piotrnar/gocoin/lib/qdb
exec: "gcc": executable file not found in %PATH%
You can go on without gcc, although your running client (and downloader) will then need some more system memory.
To go on without gcc, copy file lib/qdb/no_gcc/membind.go
one folder up (overwriting the original lib/qdb/membind.go
).
Go to the wallet/
folder and execute go build
there.
Go to the downloader/
folder and execute go build
there.
Go to the tools/
folder and execute:
go build btcversig.go
Repeat the go build
for each source file of the tool you want to build.
Although it is an open source project, I am sorry to inform you that I will not merge in any pull requests. The reason is that I want to stay an explicit author of this software, to keep a full control its licensing. If you are missing some functionality, just describe me your needs and I will see what I can do for you. But if you want your specific code in, please fork and develop your own repo.