7

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.

3
  • 1
    C and C# are completely different.
    – Piotr Kula
    Sep 11, 2013 at 14:56
  • 2
    @ppumkin: Yes, that's his point. He wants a C# implementation because his C is rusty. Sep 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 Kula
    Sep 11, 2013 at 15:36

4 Answers 4

6

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

4

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)

3

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

1

You might also want to take a look at this C# bitcoin library: https://github.com/GeorgeKimionis/BitcoinLib

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.