Pages:
Author

Topic: Gocoin - totally different bitcoin client with deterministic cold wallet - page 10. (Read 38679 times)

legendary
Activity: 2053
Merit: 1356
aka tonikt
Sweet.  I'll take a look.

It would be interesting to see how Go's special benefits could be proven in a bitcoin client.
They were. Another thing that I found very useful were maps.
sr. member
Activity: 322
Merit: 250
Re: Go's special channel interfaces.  Any benefit for a Bitcoin client?
Of course - it would be a huge waste to not use such a great feature, and also go routines...
Though not really so much of it, at least at this stage.

If you grep the sources for "chan" or "go", you can find the places.



Sweet.  I'll take a look.


It would be interesting to see how Go's special benefits could be proven in a bitcoin client.
legendary
Activity: 2053
Merit: 1356
aka tonikt
Re: Go's special channel interfaces.  Any benefit for a Bitcoin client?
Of course - it would be a huge waste to not use such a great feature, and also go routines...
Though not really so much of it, at least at this stage.

If you grep the sources for "chan" or "go", you can find the places.
sr. member
Activity: 322
Merit: 250


Awesome.  Thanks for bringing Go to Bitcoin.


Re: Go's special channel interfaces.  Any benefit for a Bitcoin client?
legendary
Activity: 2053
Merit: 1356
aka tonikt
Show them your work. Maybe you can get a consultancy gig.
Thanks for an advise, but I am doing well, not working for a corp that cuts a large part of my work's fruits, to pay for their stupid marketing, just so stupid people could be jumping up an down... Smiley

Just a "thanks, I like your client and I actually use it" from a random person - that's all I need as an incentive for my work.
legendary
Activity: 1500
Merit: 1022
I advocate the Zeitgeist Movement & Venus Project.
Show them your work. Maybe you can get a consultancy gig.
legendary
Activity: 2053
Merit: 1356
aka tonikt
Do you think that all projects written in Go should have equal amount of interest or is it that everything that is somehow related to bitcoin clients should have equal amount of coverage or what?

I will tell you a secret, and the name of it is MARKETING.
Yeah,  MARKETING – whatever, man.

Both; for the mankind, and for me, marketing is even more useless than re-inventing wheels, so let me just stay away from it, OK?

In the meantime, if you had any questions, or a feedback, about an actually working first bitcoin client written in Go, you know where to find me. Smiley
legendary
Activity: 1498
Merit: 1000
Of course my implementation is not a "bitcoind alternative", but only because I am not a kind of person that would be spending his time trying to re-invent a wheel.
I mean: why would I need a bitcoind alternative, if I already have bitcoind?

Scale, read about it, plus if you had a bitcoind in the language you use most often, you can customize it more to your uses.
full member
Activity: 209
Merit: 101
FUTURE OF CRYPTO IS HERE!
Do you think that all projects written in Go should have equal amount of interest or is it that everything that is somehow related to bitcoin clients should have equal amount of coverage or what?

I will tell you a secret, and the name of it is MARKETING.

The other group start their marketing message:
"btcd is an alternative full-node implementation of the bitcoin protocol written in Go and is currently under active development"
Sounds very interesting, doesn't it, and you have to read much deeper into the message to realize that it actually is really really far from fulfilling the expectations set in the first sentence. But see how that tactic works.

On the other hand you start your marketing message with:
"If anyone is interested in yet another bitcoin client, you are welcome to try my recent work"
You express you don't believe anybody is interested in something yet another. Okay, got the message.

"At this stage the solution is meant for developers who know what Go is, and rather only for testing"
Okay it is only for the 10 people that are both developers and do it in Go, and not only that but actually only for those ones that are interested in jumping to test somebody else's random work turning the number of people that feel interested pretty close to zero. Most of the others have closed the browser tab already by now.

Then what follows is a long post that is basically tl:dr with a lot of incoherent random deep-inside detail issues from here and there and you are wondering why the masses of people are not jumping up and down.
legendary
Activity: 2053
Merit: 1356
aka tonikt
Hey guys, that's just not fair that today many bitcoin-focused media are screaming about a "bitcoin alternative made in Go", that is planed to be released "soon", by some Conformal (whoever they are), while my yesterday's announcement has been completely ignored.

What is wrong with you?  Smiley
You don't believe me, that my software actually works? It really does - feel free to see for yourself.

Of course my implementation is not a "bitcoind alternative", but only because I am not a kind of person that would be spending his time trying to re-invent a wheel.
I mean: why would I need a bitcoind alternative, if I already have bitcoind?

So my implementation has not much to do with bitcoind, but instead it is focused on fulfilling my own personal needs, which might (by a chance) be similar with your needs - think about it.

And that is, for instance, why my node does not relay transactions.
I know that it is bad for the network, but I am very sorry for having only 1000kbps of upstream at my DSL, and so I am not going to waste 50% of it, plus lots of my CPU, just to relay your satoshidice bets. So I don't - and what can you do about it? Wink

Another feature that I needed, and implemented it into Gocoin, was a cold deterministic wallet, that is based on a password-seed and thus does not require any backups.
My implementation is designed for such a wallet(s), which is of course an opposite of how it is made in bitcoind.

Moreover, Gocoin has an option to limit the bandwidth usage, which was also very important for me.
I do not know if you were checking the actual bandwidth that your bitcoin client takes, but all I can tell you is that my browser stops loading pages, when I have it running and you guys have just mined a new block. So for me a bandwidth limit is not a minor feature.

To wrap it up. I really don't understand why a news about an implementation of bitcoind in Go, that is supposed to be released in some undefined feature, happens to be so much more of a headline than a news about a Go implementation of a bitcoin node with some unique features, that can already be tried. I guess it's because I just don't know the right people in the theater... Smiley
legendary
Activity: 2053
Merit: 1356
aka tonikt
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. cat /dev/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).
Pages:
Jump to: