<p><strong>Update:</strong> <a href="https://coin.dance/" rel="nofollow noreferrer">Coin Dance</a> has an excellent table of node implementations with descriptions and links at the bottom of their <a href="https://coin.dance/nodes" rel="nofollow noreferrer">Bitcoin Nodes Summary</a> page.</p>

<hr>

<p>Below are the implementations I've found. I'm not sure if all of them qualify as full nodes.</p>

<ul>
<li><a href="https://github.com/btcsuite/btcd#btcd" rel="nofollow noreferrer">btcd</a>
(in Go, by Conformal Systems LLC)</li>
<li><a href="https://github.com/bitsofproof" rel="nofollow noreferrer">Bits of Proof</a>
(in Java, by bits of proof zrt.)</li>
<li><a href="https://bitcoinj.github.io/" rel="nofollow noreferrer">bitcoinj</a> has a
<a href="https://bitcointalk.org/index.php?topic=291581.msg3152092#msg3152092" rel="nofollow noreferrer">fully verifying mode</a>
(in Java, by Mike Hearn)</li>
<li><a href="https://github.com/jgarzik/picocoin" rel="nofollow noreferrer">picocoin</a>
(in C, by Jeff Garzik)</li>
<li><a href="http://libbitcoin.dyne.org/" rel="nofollow noreferrer">libbitcoin</a> has an
<a href="http://libbitcoin.dyne.org/doc/fullnode.html" rel="nofollow noreferrer">example full node implementation</a>,
also advertises to be a
<a href="https://bitcointalk.org/index.php?topic=291581" rel="nofollow noreferrer">completely independent and full Bitcoin stack</a>
albeit only pre-alpha proof-of-concept with no GUI
(in C++, by Amir Taaki)</li>
<li><a href="https://github.com/samrushing/caesure" rel="nofollow noreferrer">caesure</a>
(in Python, by Sam Rushing)</li>
<li><a href="https://github.com/spesmilo/electrum-server" rel="nofollow noreferrer">Electrum-server</a>,
uses bitcoind as a back-end
(in Python, by thomasv@bitcointalk)</li>
<li><a href="http://ufasoft.com/coin/" rel="nofollow noreferrer">Ufasoft Coin</a>
(in C++, only for Windows, by Ufasoft)</li>
<li><a href="http://bitcore.io/" rel="nofollow noreferrer">Bitcore</a> (in JavaScript. Note that it needs parts of Bitcoin Core to function)</li>
</ul>

<p>(Sources: <a href="https://bitcoinfoundation.org/blog/?p=204" rel="nofollow noreferrer">Core Development Update #4</a> by Gavin Andresen, Jun 21 2013 on the Bitcoin Foundation blog; bitcointalk.org forums)</p>

<p><strong>Updated</strong> bitcoinj and libbitcoin status (based on information from
<a href="https://bitcointalk.org/index.php?topic=291581" rel="nofollow noreferrer">this bitcointalk thread</a>);
Electrum backend
<strong>Added</strong> Bitcore</p>

CC BY-SA 3.0
2014-05-12T18:34:54.030Z
I'd like to stress that miners must use bitcoind. If certain miners use different implementations it might cause forks in the blockchain. It's a complicated issue talked more in detail here http://bitcoin.stackexchange.com/questions/25254/why-dont-developers-switch-from-bitcoin-qt-to-a-cleaner-implementation
Luca Matteis
CC BY-SA 3.0
2014-05-12T18:53:48.010Z
We also use our own implementation, in Go as well but distinct from btcd: http://www.blockcypher.com
Matthieu
CC BY-SA 3.0
2014-05-24T07:06:47.420Z
@Matthieu Thanks for the information! Looks like it's only used internally by you and it isn't possible for others to run full nodes using your software?
akaihola
CC BY-SA 3.0
2014-05-24T15:40:06.643Z
@akaihola For now, but you can access it through the API and we will open source it when we're ready.
Matthieu
CC BY-SA 3.0
2015-02-06T16:20:25.477Z
Should [NBitcoin](https://github.com/NicolasDorier/NBitcoin) be listed here too?
Arturo Torres Sánchez
CC BY-SA 3.0
2015-06-09T15:07:34.567Z
I think Hive uses Electrum-server as its backend? Is the API documented?
Janus Troelsen
CC BY-SA 3.0
2014-05-12T18:30:45.313Z
2016-11-20T14:12:11.700Z
2016-11-20T14:12:11.700Z
akaihola
<p>In "<a href="https://bitcoin.stackexchange.com/q/12820/214">Does running an alternative full node implementation benefit the Bitcoin network?</a>", I asked about running an alternative full node implementation for the benefit of the Bitcoin network.</p>

<p>What is the current status of different alternative full node implementations with regard to</p>

<ul>
<li>maturity (alpha/beta/stable)</li>
<li>performance</li>
<li>compatibility tests</li>
<li>code review</li>
<li>suitability for different purposes:

<ul>
<li>experimentation</li>
<li>merchants</li>
<li>as a wallet</li>
<li>as a lightweight wallet back-end</li>
<li>solely for the benefit of the network?</li>
</ul></li>
</ul>

<p><strong>Update:</strong> Moved the list of implementations into an answer.</p>

CC BY-SA 3.0
2013-10-07T11:42:43.503Z
This question requires a good answer to be too long for this format. However, I think the [Client overview page of the bitcoin.it-wiki](https://en.bitcoin.it/wiki/Clients) might be at least partially what you are looking for.
Murch
CC BY-SA 3.0
2014-02-21T11:52:09.303Z
@Murch You must consider that StackExchange answers usually appear first and foremost while searching, and that an answer here might attract more interest than a blog post could. The SE format is rich enough, I guess the limitations are engagement and expertise - i.e., nobody cares, or who cares doesn't know.
Bruno Kim
CC BY-SA 3.0
2014-02-21T13:50:56.293Z
@BrunoKim Correct. Unfortunately, engagement on the Bitcoin.SE is somewhat at a low, so I would expect information that has to be constantly updated to fall behind quickly, i.e. in this case I think it is better to link to the bitcoin wiki (not a blog post) instead of duplicating their effort.
Murch
CC BY-SA 3.0
2014-02-22T20:38:40.470Z
@Murch I couldn't find any wiki page on bitcoin.it about full node implementations, and the tables there don't seem to have a column for that either. In your opinion, should I create a list of full node implementations on the wiki instead of maintaining this list here?
akaihola
CC BY-SA 3.0
2014-02-22T23:30:58.600Z
Well, if someone starts doing it here, that would be marvelous of course, I was just thinking that there might be more people using bitcoin.it actively than bitcoin.SE.

However, I am not sure, are you currently collecting information in the Question? It might be better if you created an answer instead for the answer part. :) If you need help, I am up for it, I usually hang out in the Bitcoin chat when I am online.
Murch
CC BY-SA 3.0
2014-03-16T17:41:07.257Z
The answer to this question will change radically over time, (and may actually be opinion-driven,) so I don't think this is a good place for this question.
BraveNewCurrency
CC BY-SA 3.0
2014-03-19T21:38:32.483Z
In any case, the answer part of the question would make a good start for an answer.
Murch
CC BY-SA 3.0
2014-05-10T15:49:06.617Z
It's not an answer, but I requested to be able to do my Masters Thesis about Bitcoin and if my proposal is accepted, I will be building a full node implementation in Dart. I've been building a [Dart Bitcoin library](https://github.com/dartcoin/dartcoin-lib) for the last few months.
Steven Roose
<network><nodes>
What's the status of alternative full node implementations?
akaihola
# What's the status of alternative full node implementations?

(Asked by: username_0 on 2013-08-21)

In "[Does running an alternative full node implementation benefit the Bitcoin network?](https://bitcoin.stackexchange.com/q/12820/214)", I asked about running an alternative full node implementation for the benefit of the Bitcoin network.

What is the current status of different alternative full node implementations with regard to

* maturity (alpha/beta/stable)
* performance
* compatibility tests
* code review
* suitability for different purposes:
  + experimentation
  + merchants
  + as a wallet
  + as a lightweight wallet back-end
  + solely for the benefit of the network?

**Update:** Moved the list of implementations into an answer.

**Tags:** network, nodes

> **Comments:**
> **username_1**: This question requires a good answer to be too long for this format. However, I think the [Client overview page of the bitcoin.it-wiki](https://en.bitcoin.it/wiki/Clients) might be at least partially what you are looking for.  
> **username_2**: @username_1 You must consider that StackExchange answers usually appear first and foremost while searching, and that an answer here might attract more interest than a blog post could. The SE format is rich enough, I guess the limitations are engagement and expertise - i.e., nobody cares, or who cares doesn't know.  
> **username_1**: @BrunoKim Correct. Unfortunately, engagement on the Bitcoin.SE is somewhat at a low, so I would expect information that has to be constantly updated to fall behind quickly, i.e. in this case I think it is better to link to the bitcoin wiki (not a blog post) instead of duplicating their effort.  
> **username_0**: @username_1 I couldn't find any wiki page on bitcoin.it about full node implementations, and the tables there don't seem to have a column for that either. In your opinion, should I create a list of full node implementations on the wiki instead of maintaining this list here?  
> **username_1**: Well, if someone starts doing it here, that would be marvelous of course, I was just thinking that there might be more people using bitcoin.it actively than bitcoin.SE.  However, I am not sure, are you currently collecting information in the Question? It might be better if you created an answer instead for the answer part. :) If you need help, I am up for it, I usually hang out in the Bitcoin chat when I am online.  
> **username_3**: The answer to this question will change radically over time, (and may actually be opinion-driven,) so I don't think this is a good place for this question.  
> **username_1**: In any case, the answer part of the question would make a good start for an answer.  
> **username_4**: It's not an answer, but I requested to be able to do my Masters Thesis about Bitcoin and if my proposal is accepted, I will be building a full node implementation in Dart. I've been building a [Dart Bitcoin library](https://github.com/dartcoin/dartcoin-lib) for the last few months.  

---

## 1 answers

### Answer by username_0 on 2014-05-12. Score: 11

**Update:** [Coin Dance](https://coin.dance/) has an excellent table of node implementations with descriptions and links at the bottom of their [Bitcoin Nodes Summary](https://coin.dance/nodes) page.

---

Below are the implementations I've found. I'm not sure if all of them qualify as full nodes.

* [btcd](https://github.com/btcsuite/btcd#btcd)
  (in Go, by Conformal Systems LLC)
* [Bits of Proof](https://github.com/bitsofproof)
  (in Java, by bits of proof zrt.)
* [bitcoinj](https://bitcoinj.github.io/) has a
  [fully verifying mode](https://bitcointalk.org/index.php?topic=291581.msg3152092#msg3152092)
  (in Java, by Mike Hearn)
* [picocoin](https://github.com/jgarzik/picocoin)
  (in C, by Jeff Garzik)
* [libbitcoin](http://libbitcoin.dyne.org/) has an
  [example full node implementation](http://libbitcoin.dyne.org/doc/fullnode.html),
  also advertises to be a
  [completely independent and full Bitcoin stack](https://bitcointalk.org/index.php?topic=291581)
  albeit only pre-alpha proof-of-concept with no GUI
  (in C++, by Amir Taaki)
* [caesure](https://github.com/samrushing/caesure)
  (in Python, by Sam Rushing)
* [Electrum-server](https://github.com/spesmilo/electrum-server),
  uses bitcoind as a back-end
  (in Python, by thomasv@bitcointalk)
* [Ufasoft Coin](http://ufasoft.com/coin/)
  (in C++, only for Windows, by Ufasoft)
* [Bitcore](http://bitcore.io/) (in JavaScript. Note that it needs parts of Bitcoin Core to function)

(Sources: [Core Development Update #4](https://bitcoinfoundation.org/blog/?p=204) by Gavin Andresen, Jun 21 2013 on the Bitcoin Foundation blog; bitcointalk.org forums)

**Updated** bitcoinj and libbitcoin status (based on information from
[this bitcointalk thread](https://bitcointalk.org/index.php?topic=291581));
Electrum backend
**Added** Bitcore

> **Comments:**
> **username_5**: I'd like to stress that miners must use bitcoind. If certain miners use different implementations it might cause forks in the blockchain. It's a complicated issue talked more in detail here http://bitcoin.stackexchange.com/questions/25254/why-dont-developers-switch-from-bitcoin-qt-to-a-cleaner-implementation  
> **username_6**: We also use our own implementation, in Go as well but distinct from btcd: http://www.blockcypher.com  
> **username_0**: @username_6 Thanks for the information! Looks like it's only used internally by you and it isn't possible for others to run full nodes using your software?  
> **username_6**: @username_0 For now, but you can access it through the API and we will open source it when we're ready.  
> **username_7**: Should [NBitcoin](https://github.com/NicolasDorier/NBitcoin) be listed here too?  
> **username_8**: I think Hive uses Electrum-server as its backend? Is the API documented?  

---

