Slashdot Mirror


Btcd - a Bitcoind Alternative Written In Go!

An anonymous reader writes "The folks at Conformal have announced btcd, an alternative full-node implementation to bitcoind, written in Go! They have released the first of their core packages, btcwire, available for download at GitHub. As a bitcoin user myself, I love the idea of a full alternative. It will only make bitcoin stronger and more independent. This will be great for the Go community, too!"

7 of 150 comments (clear)

  1. Go! or Go? by c0lo · · Score: 5, Informative

    TFS mixes the two: written in Go! and great for the Go community
    TFA says: it's Go not Go!

    --
    Questions raise, answers kill. Raise questions to stay alive.
  2. It's not a full node by Anonymous Coward · · Score: 5, Informative

    All they have released is a handler for the network protocol. This doesn't verify blocks, send transactions or anything else. Are the other parts closed source or do they just not exist?

    1. Re:It's not a full node by IamTheRealMike · · Score: 5, Informative

      A full node is a really, really large amount of work. I feel that lots of people don't realise this, get enthusiastic and think, "I love Bitcoin! I love Go! I'll write Bitcoin in Go" where for Go you can substitute basically any language that's fun or popular. Then they write the easy bits (like wire marshalling) and eventually the project dies around the time that it's time to implement the wallet or Bloom filtering or robust test suites. Possibly Conformal is different, we'll have to wait and see, but the feature set they advertised in their blog is very much what has been seen many times before. In particular there's no handling of the block chain, re-orgs, no wallet and they haven't got any infrastructure to test edge cases.

      One reason implementing Bitcoin properly is not fun is an entire class of bugs that doesn't exist in normal software - chain splitting bugs - which can be summed up as "Your software behaves how you thought it's supposed to work rather than how the original bitcoind actually does work". Bitcoin is highly unusual in that it implements group consensus - lots of nodes have to perform extremely complicated calculations and arrive at exactly the same result in lockstep, to a far far higher degree of accuracy than other network protocols. This means that you have to replicate the same set of bugs bitcoind has. Failure to do so can lead to opening up security holes via consensus failure which can in turn lead to double spending (and thus your users lose money!).

      Being compatible with the way bitcoind is written (bugs and all) may require you to break whatever abstractions you have introduced to make the code cleaner or more elegant or whatever reason you have for reimplementing Bitcoin. Here's a trivial example - signatures in Bitcoin have an additional byte that basically selects between one of a few different modes. It's actually one of three modes plus a flag. So a natural way to implement this is as an enum representing the three modes plus a boolean for the flag. But that won't work. There is a transaction in the block chain which has a sighash flag that doesn't fit any of the pre-defined values (it's zero) and because Satoshi's code uses bit testing it still works. But if you turn the flag into an enum, when you re-serialise the mode flags you'll re-serialise it wrong and arrive at an incorrect result. So you have to pass these flags around as integers and select via bit testing as well.

      Bitcoin is full of these kinds of weird edge cases. Eventually you come to realise that reimplementing it is dangerous and probably whatever benefits you thought it had, it probably doesn't. Some people believe there should be independent reimplementations anyway and I can understand and respect that, but doing it safely is an absolutely massive piece of work. You have to really, really, really believe in diversity to do it - the features of language-of-the-day aren't good enough to justify the effort.

  3. Re:This is good for Bitcoin by usuallylost · · Score: 3, Informative

    Cash is only worth what people are willing to trade for it, I fail to see how Bitcoin is inherently any different.

    I do not think it is inherently different. I think the volatility comes in because Bitcoin is a tiny market compared to say the US dollar or the Euro. So transactions that wouldn't impact those larger currencies at all can have a major impact on the value of Bitcoin. Things like currency sell offs happen all the time in the world market. The major government currencies are so large that we hardly notice them. Smaller currencies, those from smaller economies and Bitcoin, get hit with things like that and it has a large impact on the value of those currencies. So people have to realize if they are dealing in Bitcoins it is a smaller more volatile market than say the one for dollars. I wouldn't be surprised if we don't, assuming we haven't already, start seeing things like currency speculators operating in the Bitcoin market. The danger will be is if those speculators find ways to artificially manipulate that market.

  4. Re:This is good for Bitcoin by Hatta · · Score: 1, Informative

    When did you go to school? When I went to civics class it was nothing but indoctrination. I didn't hear anything about the problems with our system, just how important it was for us to vote for one of the puppets chosen for us. Somehow all our problems would be solved if we got 100% voter turnout... voting for the same damn Democrats and Republicans we get anyway.

    --
    Give me Classic Slashdot or give me death!
  5. Re:This is good for Bitcoin by gman003 · · Score: 3, Informative

    At least it only fluctuates. When a major currency *does* change value by that much, that fast, it's always been part of an inflationary spiral - the value goes down, and never comes back up.

    And I think it's a bit unfair to judge Bitcoin against major currencies just yet. Even the most ardent supporters of Bitcoin don't claim it's on par with the Euro or Dollar. It's perhaps on par with certain small countries' currencies - and yes, those experience changes in value relative to other currencies as well, even when "pegged" to a larger currency. Not quite to the degree of the Bitcoin Bubble, but that was a pretty rare circumstance.

    PS: How are you figuring that 1000% figure? It peaked almost exactly a month ago at 235$/BTC, crashed at its lowest to 25$/BTC, and currently seems fairly stable around 120$/BTC. I can't see a sane way to get 1000% out of those numbers.

  6. Re:This is good for Bitcoin by pla · · Score: 4, Informative

    I can't pay my taxes in BTC

    You can't pay your (US) taxes in Euros, either. Does that say anything about the legitimacy of the Euro? Though in fairness, if you wanted to consider that particular example one of a failing currency, I'd have a hard time disagreeing. ;)


    As for overall confidence, there's a sucker born every minute, as long as there are suckers having confidence in it, it will remain, until such a time as it becomes so mind blowingly obvious that even the most idiotic supporter can't deny it.

    I literally cannot think of a better argument against fiat currency. "Here, suckers, work for 40 years to collect enough of these papers we prooooomise will still hold (30% of) their value when you retire, and when they don't, hey, at least you'll have <snicker> Social Security to fall back on". And for the record, it actually comes out to more like eight suckers born every minute (in the US alone). That doesn't necessarily make BTC any better - But as with my point about the Euro, any argument against something you dislike that applies equally well to something you like, doesn't really have much persuasive power.


    even with that "relatively stable" 90-120 range you're still talking about a 30% fluctuation, which is both unpredictable and dangerous for people who are trying to use it for normal currency stuff.

    Barnes & Noble has a market cap of 1.3B - Roughly the same as Bitcoin. It shot up, yesterday alone, by 30% (well, 26%, anyway). Most people, even its own investors, expect it to go the way of Borders within a year or two.

    Barnes & Noble stock, however, does not count as a currency. So take that as you will.


    In the long term it will deflate out of existence, I just hope that there are some criminal prosecutions for the folks that are boosting the currency for personal gain.

    I merely disagreed with you up to that statement. But that? Why? Why would you hope for criminal prosecutions over something you have gone so far to minimize as little more than a fad? Do you wish the same for collectors of Beanie Babies and Hummels, or do you reserve your bitterness for collectors of failed foreign currencies?