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!"

32 of 150 comments (clear)

  1. This is good for Bitcoin by vikingpower · · Score: 3, Funny

    ...in world full of banking problems, banking crises and eroding trust in fiduciary money. Way to go !

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
    1. Re:This is good for Bitcoin by Joce640k · · Score: 5, Insightful

      Yep. What the world really needs right now is a new currency whose value fluctuates like a share price.

      (Because it's based on the same premise - that it's only worth what people are willing to pay for it).

      --
      No sig today...
    2. Re:This is good for Bitcoin by Anonymous Coward · · Score: 5, Insightful

      While technically true, have you seen any major currency fluctuate over >1000% within a month lately? Ignoring what actually happens in real life does not help your argument.

    3. Re:This is good for Bitcoin by Anonymous Coward · · Score: 4, Insightful

      That's funny. I see it as the value of a dollar fluctuates and bitcoin is constant. I guess it's all a matter of perspective. ;)

    4. Re:This is good for Bitcoin by Joce640k · · Score: 4, Insightful

      The price of food can double in a single day and you think it's normal? Luckily your wages do the exact same thing, right?

      --
      No sig today...
    5. Re:This is good for Bitcoin by dbIII · · Score: 4, Insightful

      Which makes you a target for such scams :(
      Schools used to have subjects called things like "social studies", "civics" or something similar to try to give kids a rudimentary bullshit detector to protect against bent politicians, naturopaths and pyramid schemes. Whatever happened to those?

    6. Re:This is good for Bitcoin by aliquis · · Score: 2

      Could happen with fruits ;)

      I guess what matters in the end is how much real world stuff you can acquire / have.

    7. Re:This is good for Bitcoin by Edzilla2000 · · Score: 2

      Actually, in Greece, they use the Euro, so... Their money has not lost value...

    8. Re:This is good for Bitcoin by pla · · Score: 3, Insightful

      have you seen any major currency fluctuate over >1000% within a month lately? Ignoring what actually happens in real life does not help your argument.

      Bitcoin has not fluctuated anywhere near 1000% in the past month. At most you could say 530%, comparing the low of 50 on April 16 to the high of 266 on April 10th. And excluding that bubble-and-pop (which very much still happens in USD-denominated assets), the exchange rate has remained relatively stable in the 90-120 range.

      However, even in making that 530% point, you've overlooked the opposite side of the coin - Bitcoin has whatever value people will pay for it, as does the US dollar. If people will pay $266 US dollars for one Bitcoin, not only has Bitcoin shot up in relative value, but the US dollar has shot down at the same time.

      Only the size of the USD vs BTC economies hides that fact. But when people will pay $266 for what most of the haters call a scam currency, that doesn't reflect well on the overall confidence in what they've traded for that "scam" currency.

    9. Re:This is good for Bitcoin by gmclapp · · Score: 2

      You might be interested in reading the history of the foreign exchange to better understand why the Bitcoin is different. I don't think that Bitcoin is necessarily a bad thing. But it certainly is not a currency and is very different than the US dollar. We use a system of floating exchange rates now in which the US Dollar is "backed" by the British pound, the Yen, the Australian dollar and many more. this system ensures that the value of the US dollar, as well as the others mentioned are relatively stable with respect to commodities. (Like Bitcoin)

      Long story short, the Bitcoin is a commodity. Not a currency.

      http://en.wikipedia.org/wiki/Gold_standard
      http://www.fxtrademaker.com/forex_history.htm

      --
      Common Sense (+1)
    10. 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.

    11. Re:This is good for Bitcoin by ultranova · · Score: 4, Insightful

      Actually, in Greece, they use the Euro, so... Their money has not lost value...

      Which is one of the problems of euro, since it means that neither industry nor tourism get a boost from prices effectively falling. Euro will eventually collapse, of course, once enough countries have gone bankrupt that the rest can't carry it anymore, but it'll be too late for Greece.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    12. 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.

    13. Re:This is good for Bitcoin by serviscope_minor · · Score: 2

      Ahh, Servitroll_major!

      You know you've achieved some sort of slashdot goal when you have your very own AC stalker!

      --
      SJW n. One who posts facts.
    14. 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?

    15. Re:This is good for Bitcoin by AuMatar · · Score: 3, Insightful

      No, you don't. Look at the dollar or the pound. You see multi-decade stability (the last major blip with the dollar was disinflation in the 80s) , with a roughly constant rate of devaluation. That's what you want to see in a currency. Not a few months of relative stability with massive swings on either side. To even make the claim of stability because it had periods of it for parts of 1 year is a complete joke.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  2. 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.
    1. Re:Go! or Go? by Svippy · · Score: 2

      According to the source, it is Go, not Go!. But yes, the summary was confusing.

      --
      Clicked pie.
    2. Re:Go! or Go? by DNS-and-BIND · · Score: 2

      This is precisely why including punctuation marks in product names is UTTERLY FUCKING STUPID. It's right up there with naming your product something funny from today's news (*cough* The GIMP *cough*) when the joke stops being funny about ten minutes after the project goes live.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    3. Re:Go! or Go? by Beorytis · · Score: 2

      If the creators of Go! had called their language Go, then Google *might* have chosen another name for Go. Apparently Goo was already taken. Maybe they could have used (their ticker symbol) Goog. Of course they might have just used Goo!.

  3. Not just perspective by ebcdic · · Score: 4, Insightful

    What have you bought over the last year? How has their price varied in dollars and in bitcoins? No currency's value is constant, but some are a lot more constant than others.

  4. 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.

  5. Namecoin by guises · · Score: 2

    As Bitcoin alternatives go, I really liked the idea behind Namecoin. Not that it's likely to go anywhere, but it's something that puts some real backing, value, to the currency while simultaneously doing something to address the piss poor domain name allocation system that we have right now. Bitcoin is currently just floating on enthusiasm and greed, this would actually have some worth if people got behind it.

  6. Krayon Kash!! by erroneus · · Score: 4, Funny

    My 6 year old loves to doodle with his crayons. Lately, I've been having him draw money. So far, the good ones are really rare. So I figure they are probably worth a substantial amount of money. I'm going to start releasing them as currency soon. I'm also working out a deal with Paypal to accept them.

    1. Re:Krayon Kash!! by nine-times · · Score: 2

      Try to sell them all before the Krayon Kash Krash.

  7. Re:Better than fiat currencies by Joce640k · · Score: 2

    Bitcoins have gone from worthless in 2010 to $120 a coin in 2013

    $120 is only today's price. It can go down.

    “...the system is secure as long as the honest nodes collectively control more [computing] power than any cooperating group of attacker nodes.” - Satoshi Nakamoto, creator of Bitcoin.

    ie. If governments or bot-herders want to destroy Bitcoin, they can.

    In fact, if I was a bot herder I'd be busy working on a way to manipulate the price of bitcoin for fun and profit.

    --
    No sig today...
  8. What programming language? "Go" or "Go!"??? by lucag · · Score: 2

    Please: observe that "Go!" and "Go" are two quite different programming languages.
    The client appears to be written in "Go" which is the language by google, but the headline would suggest "Go!" by McKabe & Clark.
    I find the same ambiguity in the text... still, I am looking forward to the time we shall use the full unicode range in order to have
    similar looking, yet entirely different, names. That shall be fun!

  9. Re:Better than fiat currencies by fuzzyfuzzyfungus · · Score: 5, Insightful

    Given the (currently tiny) market for goods buyable with bitcoins, their 'value' is heavily dependent on the health of the exchanges where you can cash out into some other currency.

    Incidentally, those exchanges appear to get hacked and/or DDsSed every couple of months...

    With the GPU, FPGA, and ASIC miners either online or coming-real-soon-now, bot-herding in order to outcompete honest nodes is a substantial computational challenge, CPU miners are just too pitiful; but it would seem that the real weakness to exploit is the (much softer) underbelly of conventional web infrastructure and the price swings that attacks on that part of the bitcoin economy can create.

    The trade between bitcoins and USD looks sort of like the buying and selling of stock, in a world where it's totally normal for the NYSE to be firebombed multiple times per year...

  10. Go by Google or Go! by Francis McCabe by Murdoch5 · · Score: 2

    Go and Go! are very different language, which one was it programmed in?

    GO: http://en.wikipedia.org/wiki/Go_(programming_language)
    GO!: http://en.wikipedia.org/wiki/Go!_(programming_language)

  11. Re:Bad Name by Beorytis · · Score: 2

    They chose a bad, confusing name: btcd

    Imagine if bitcoins were instead called x-Koins. What would this project be called?

  12. I conclude the opposite by Anonymous Coward · · Score: 4, Interesting

    Your post is extremely interesting, but the mandatory conclusion I make from it is the exact opposite of yours. If the original code is so full of idiosyncracies and gotchas then it's an extreme liability to everyone who values Bitcoin, and quite likely contains backdoors or deliberate weaknesses that are hidden by the obscurity.

    There can be no more important task for the Bitcoin community I think than to specify all elements of the static protocol and dynamic behavior of all parts, and reimplement them in other languages, especially safe languages.

    Go is certainly a good candidate for this large body of work, safe, clean, and fast.