I want to play with the implementation to better understand the inner workings of Bitcoin. I'm familiar mostly with python and C# and found no clients in either of the languages. My C skills are rusty because I haven't done any C in last decade.
-
1C and C# are completely different.– Piotr KulaSep 11, 2013 at 14:56
-
2@ppumkin: Yes, that's his point. He wants a C# implementation because his C is rusty.– Meni RosenfeldSep 11, 2013 at 15:31
-
Yes - My point was that is going to be difficult as C is based on 8086 compiler and C# on .NET Libraries. There will be a lot of headaches, especially cryptographic, which BTC is based off.– Piotr KulaSep 11, 2013 at 15:36
4 Answers
There isn't yet a complete implementation AFAIK, but there are different libraries that implement bitcoin features (wallets, keys, utilities,
Depends on whether you want an implementation of bitcoin network protocol or wallet or just an overlay on top of the JSON-RPC interface of bitcoind.
Useful code on github:
https://github.com/jgarzik/python-bitcoinrpc - Python interface to bitcoin's JSON-RPC API
https://github.com/etotheipi/BitcoinArmory - Python-Based Bitcoin Software
https://github.com/gavinandresen/bitcointools - Python-based tools for the Bitcoin cryptocurrency system
https://github.com/jgarzik/python-bitcoinlib - Bitcoin library
https://github.com/spesmilo/electrum - Electrum thin-client
https://github.com/spesmilo/electrum-server - Electrum server
https://github.com/spesmilo/sx - Python CLI tools
NBitcoin is the most complete lib to date, here are links and articles about it.
NBitcoin Github : https://github.com/NicolasDorier/NBitcoin
NBitcoin Nuget : https://www.nuget.org/packages/NBitcoin/
Intro : http://www.codeproject.com/Articles/768412/NBitcoin-The-most-complete-Bitcoin-port-Part-Crypt
Stealth Payment, and BIP38 : http://www.codeproject.com/Articles/775226/NBitcoin-Cryptography-Part
How to build transaction : http://www.codeproject.com/Articles/835098/NBitcoin-Build-Them-All
Using the NBitcoin Indexer : http://www.codeproject.com/Articles/819567/NBitcoin-Indexer-A-scalable-and-fault-tolerant-blo
How to Scan the blockchain : http://www.codeproject.com/Articles/784519/NBitcoin-How-to-scan-the-Blockchain (You can dismissthe ScanState for that, now I concentrate on the indexer)
In addition to aantonop's links, there is also for python:
PyCoin https://github.com/richardkiss/pycoin Utilities for transactions signing and verification, and creation of deterministic wallets according to the BIP0032 standard.
PyWallet https://github.com/jackjack-jj/pywallet bitcoin wallet importer/exporter
You might also want to take a look at this C# bitcoin library: https://github.com/GeorgeKimionis/BitcoinLib