>> (p.1)
    Author Topic: Gocoin - totally different bitcoin client with deterministic cold wallet  (Read 38781 times)
    piotr_n (OP)
    Legendary
    *
    Offline Offline

    Activity: 2058
    Merit: 1427


    aka tonikt


    View Profile WWW
    May 08, 2013, 06:03:57 PM
    Last edit: January 14, 2018, 01:56:03 AM by piotr_n
    Merited by ABCbits (99), Mitchell (50), PawGo (5)
     #1

    If anyone is interested in my original implementation of a full bitcoin client, feel invited to try Gocoin.
    Having been disappointed with other alternative implementations of a full bitcoin node you maybe have seen, please be assured that this one actually works! Smiley

    Pre-compiled binaries for Windows and Linux (amd64) can be downloaded here: https://sourceforge.net/projects/gocoin/files/?source=directory
    They are usually not up to date as in general I provide no binaries, but building the client using Go compiler is quite easy and (unlike other bitcoin clients) this one builds in a second.

    The project is open source and the code is available at GitHub: https://github.com/piotrnar/gocoin
    To build the sources, just follow the instructions from README.md.
    Ask if you'd get stuck, but it is pretty straight forward, so you probably won't.

    You can find the official webpage of the project at: http://gocoin.pl/ - there is the User Manual and a lot of other info.

    There is also a wiki article: https://en.bitcoin.it/wiki/Gocoin although it hasn't been updated for awhile (feel welcome to contribute to it)


    Note: the info below refers to Gocoin version 1.8.0

    General info
    • There are no known consensus incompatibilities. Gocoin's consensus lib passes all the recent transaction & script tests (from the core's repo). Gocoin's node passes all the blocks test from TheBlueMatt's test scripts. The node has (an optional) functionality to (cross-) check each new transaction with the core's consensus lib.
    • The solution is fully functional, but I like working on it, so please keep in mind that the HEAD is a work in progress and will probably always be. The source code gets tagged regularly, so if anything does not work for you with the latest version, try the previous tag. The database format is not supposed to change.
    • You do not need the client (node) in order to use the wallet. In such case use balio tool to fetch the balance of the addresses you own, in order to spend your coins (read more here).
    • Works with testnet, so you can start your gocoin adventure from it (use "-t" switch at the command line, for both client and wallet).

    Client (the online bitcoin node)
    • Has a web interface (WebUI), by default available at http://localhost:8833/ (to access WebUI from a different host, you have to modify the config file first).
    • The entire UTXO database is kept in system memory, to maximise performance of verifying transactions and blocks.
    • From version 1.7.0 the node monitors balance on all P2SH and P2KH addresses allowing to check (or fetch for spending) the balance of any random address. The wallet's addresses aren't kept in the node's memory, but only in the user's browser.
    • The blocks on your disk are compressed, which saves 20-30% of space (comparing to bitcoin core). Additionally there is a tool called bdb that can purge old blocks from the database.

    Wallet (secure your money offline)
    • It is a separate app meant to be used as a deterministic cold wallet (on an offline PC), though if you don't mind the risks nothing can stop you from using it on the online PC.
    • Is console only, does not have any graphical user interface. Any operations on the wallet are driven by command line switches. You can put some defaults in a config file.
    • Has very low system requirements (tested working on Raspberry Pi Model A).
    • The wallet's security does not rely on any random number source.
    • The wallet's private key pool is based on a seed-password, so as long as you remember it you don't need any backups (some people call it a brain-wallet).
    • Since the seed-password is basically a straight forward private key of your coins, make sure that it is complex enough and that nobody is able to peek at it.
    • If you don't trust your brain to make a password strong enough, use a randomly generated string (e.g. catdev/urandom | head -c 20 | xxd -p) as the seed-password.
    • By default the wallet works with a pool of 250 deterministic addresses (you can change this value, if you need more).
    • In addition to the deterministic key pool, you can import raw private keys generated elsewhere (they need to be in the base58 format).
    • Supports (partial) signing of multi-signature transactions.
    • Supports Litecoin (allowing spending of litecoins with balio tool).

    Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
    PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
Page 1
Viewing Page: 1