8 ms·
Btcd: A Full Alternative Bitcoin Implementation, Written In Go
- saurik 14y ago> The implementation is not yet entirely done, but most core features such as transaction verification, database interaction and network connectivity are tested as working, and the company has released one component of the system for public review... I have a different definition of "full".
- jeffasinger 14y agoI think full here may mean in the sense that it actually verifies the entire blockchain, rather than relying on an instance of bitcoind to do that.
- saurik 13y agoI am willing to re-state "I have a different definition of 'implementation'"? It actually occurred to me that that is how "full" might be being used in this context (I spent some time recently learning about bitcoin and even ran a class on it a few days ago, and had run into the distinction), but if I were to say I had "an end-to-end website rendering engine written in Erlang" would you not also feel a little disappointed when you got to my page and found only that "most of the core pieces, such as CSS3 selectors, DOM event bubbling, and network connectivity are done and we've open sourced the HTML parser"?
- conformal 14y agoi think there has been some confusion in links and titles: btcd is a full-node alternative implementation of the bitcoin protocol. this was not meant to be misleading and you are right to point out that the btcwire package is far from the entire piece of software. in another few weeks all the pieces will be public and it will be closer to a full implementation, per my interpretation of your use of the word full.
- jimrandomh 14y agoSome variety in Bitcoin software could be a good thing. However, I'd just like to leave a reminder here that beta-level software is not something you should trust significant amounts of Bitcoins to, or build a business on, until it stops being beta-level.
- tptacek 14y agoYeah, not like bitcoind.
- swhitt 14y agoWhen this was posted on reddit there was a bit of confusion as the title lead people to believe this was about an alternate cryptocurrency (like litecoin, feathercoin, etc). It's actually a complete reimplementation of the Bitcoin protocol, which can be used as an alternative to the bitcoind/bitcoin-qt (the official Bitcoin p2p clients) JSON-RPC interface.
- DanielBMarkham 14y agoSpeaking as a Bitcoin skeptic, the really cool thing about it is that it opens up a world of virtual collectibles. Bitcoin isn't the future of money, it's more like Netscape -- a new way of doing things we haven't thought of before. The follow-on products should truly be amazing. Good to see this.
- michielvoo 14y agoNot sure from your comment if you got the gist of it... but this is not an alternative to Bitcoin, the currency. It's an alternative to bitcoind, the library. If anything, the article suggests, the rise of such alternative implementations of the same protocol could make the network as a whole more resilient and stable.
- Guvante 14y agoWhy does that disagree with what he said? Netscape understood the same protocols all future browsers did, with only some feature misalignment, yet eventually disappeared. I think he is saying the same thing to could happen to Bitcoin, the current use cases of the currency may be only the beginning.
- SomeoneWeird 14y agoThis is ridiculous, it's not even a partial implementation, it's just a serialization library, at the moment. People should get their facts straight :)
- whaevr 14y agoInteresting, one question though. Who thought orange text on white background was a good idea? Ow
- patio11 14y agoInterestingly, the main bitcoin developers generally treat other implementations of the protocol as being suspect and more-than-possibly threatening, since if you're not bug-for-bug compatible with the satoshi client that is a security risk. This remains true even if you improve upon the satoshi client with regards to, for example, hewing closer to the published spec. This might come as something of a surprise to many HNers, who would think "But wait. The Internet would sort of suck if HTML5 were a purely advisory document and failing to match IE6's actual behavior 100% of the time was a fatal flaw in a browser." But, to quote a fairly representative post from their forums: Any implementation needs to specifically test for uniformity with the network: Bitcoin is a distributed consensus algorithm and differences in what nodes accept or reject in the blockchain— things which would be minor harmless behavioral differences in most software— can often result in fatal security flaws where an attacker can move the nodes in question onto a separate fork and double-spend their funds away or partition the network. This requires a unusual level of care and system level tests. Many of the most interesting cases are the great many things which must be rejected as no amount of exposure to the live network will trigger those cases (until an attacker exploits them to partition the network). (cite: https://bitcointalk.org/index.php?topic=192880.0 https://bitcointalk.org/index.php?topic=192880.0)
- mseebach 14y agoHow can a bug in the implementation be a security risk? Aren't the artefacts of bitcoin (I don't know the correct terminology) cryptographically unambiguous, completely independent of the implementation used to create them? The "problem" with HTML incompatibilities is that there is room for plenty of ambiguity in both standard and implementation, without compromising the fundamental mission of the users of the protocol (rendering web content).
- betterunix 14y ago"How can a bug in the implementation be a security risk?" It could fork the block chain: http://bitcoin.org/chainfork.html http://bitcoin.org/chainfork.html
- Strilanc 14y ago
- Sami_Lehtinen 14y agoAlso see: https://blog.conformal.com/btcd-a-bitcoind-alternative-written-in-go/ https://blog.conformal.com/btcd-a-bitcoind-alternative-writt... Btw, this original link was posted here full week ago.
- kellros 14y agoShould definitely build this with the gcc go compiler (which featured a couple of days ago on HN) that produces larger binaries but faster code :)