- The goal of this document is to provide a reading list for learning to program Blockchain (distributed ledger) systems as well as the crucial code sources
- It is not meant to be comprehensive, it lists only the most useful sources
- There is a bonus: code/software useful for Bitcoin algorithmic trading
The document is split into two major sections: Content and Code
- The Content section contains a reading list of mostly technical documents for Blockchain development
- The Code section contains a list of open-source blockchain and bitcoin projects
- WIP: send suggestions to @FrantaPolach or open a GitHub issue
- Original bitcoin paper (Satoshi)
- BIP70: Payments Protocol (Andresen)
- Working with the Payments Protocol (Andresen)
- BIP32: Hierarchical Deterministic (HD) Wallets (Wuille)
- BIP32 Implementation: Money Tree HD Wallet (BitVault)
- Script Reference
- Raw Transactions API
- Colored Coins Protocol Specification (Flavien)
- The Mastercoin Protocol Specification (Gross)
- R3 Corda
Kotlin/JVM
(R3) - Hyperledger Fabric
Go
(Hyperledger) - Sawtooth Lake Distributed ledger
python
(Hyperledger) - BigchainDB
python
(BigchainDB) - Sidechains: Elements Project
C++
(Blockstream) - Scorex
Scala/JVM
(IOHK)
- bitcoin
C++
(Satoshi) - bitcoinj: Java implementation of a Bitcoin client-only node
Java
(bitcoinj) - bitcoin-qt: Qt GUI for C++ Bitcoin client
C++
(laanwj) - btcd: alternative full node bitcoin implementation written in Go
Go
(conformal)
- bitcointools: python-based tools for the Bitcoin cryptocurrency system
python
(gavinandresen) - pycoin: python-based Bitcoin utility library.
python
(richardkiss) - bitcoin-testnet-box: Create a private, difficulty 1 bitcoin testnet
Shell
(freewil) - transactions: Bitcoin for humans
python
(ascribe) - Blockstack: Decentralized DNS for Blockchain Applications (blockstack)
- bitcoin-abe: Abe: block browser for Bitcoin and similar currencies
python
(jtobey) - insight: A bitcoin blockchain API for web wallets
JavaScript
(bitpay) - node-bitcoin-explorer: A Block Explorer clone built using node-bitcoin-p2p
JavaScript
(bitcoinjs) - BTCplex
Go
(tsileo) - blockparser: Fast, quick and dirty bitcoin blockchain parser
C++
(znort987) - blockchain-explorer
JavaScript
(hyperledger-explorer)
- Bitcoin arbitrage: opportunity detector
python
(maxme) - gekko: A bitcoin trading bot
Node.js
(askmike) - Redbit: Automated Bitcoin Trading Bot
python
(hyppo) - ArBit: An automated Bitcoin arbitrage trading program.
Go
(goteppo) - cryptrade: Node.js Bitcoin bot for Bitstamp/BTC-E/CEX.IO
CoffeeScript
(pulsecat) - ga-bitbot: Genetic algorithm trade system for bitcoin
python
- Algo execution engine
python
(joequant) - Python Algorithmic Trading Library
python
(gbeced) - BitMex market maker
python
(BitMEX)