Gocoin bitcoin software
An open-source Bitcoin solution written in Go language (golang). It can be built for every platform that has a working Go compiler. It uses a proprietary license, though is free to use for non-commercial purposes.
Features
Gocoin has a several unique features, that distinguish it from the original bitcoin client.
Node / Client
- All the unspent outputs are kept in memory, which makes switching between different wallets, as well as checking a balance of any address, relatively fast (few seconds max).
- Allows a user to limit the upload and download network bandwidth used by the client.
- Can be monitored and controlled through a web interface (from a web browser).
- Works with its own implementation of a cold storage wallet.
Wallet
- For security reasons, it is supposed to be used with a PC that has never been (and will never be) connected to a network.
- The wallet is deterministic and a seed-password based. As long as you can remember the password, there is no need for any backups.
- Additionally it can import private keys from an existing bitcoin wallet (that comes in the base58 format).
- Has very low hardware requirements. Can be run on i.e. Raspberry Pi
- Can generate Type-2 deterministic keys/addresses
- Supports signing of P2SH multisig transactions.
Node-less mode
It is possible to use Gocoin's wallet, without a need to have a running client node.
In such a case the required balance files are fetched with a tool called FetchBal, from two popular block explorer services; BlockChain.info and BlockExplorer.com.
Requirements
The client node requires 64-bit platform and at least 4GB of system memory. It also requires a file system that can handle files larger than 4GB.
Limitations
- No GUI, though the online node has web interface
- No RPC API
- No IPv6
- No UPnP
History
Gocoin was written by a single person for a private purposes. The software's first public release was announced in May 2013 on Bitcointalk forum.[1] Ever since then, the software has been actively maintained and further developed, being armed with new features, further optimized and cleaned up from issues.
It happened twice that the client wasn't able to catch up with the block chain, because of the implementation difference of the chain protocol that was causing it to reject a valid block. In both cases the issue has been fixed within single days. The fist fix for such a critical issue was introduced in version 0.5.7 - the second one in 0.9.3.