Infrastructure

Contents

Overview

Components

  • Peer/Node — Maintains connections with the BitCoin network, and relays BitCoin traffic based on policies.
  • Wallet — Maintains private key database, and controls balances for the user.
  • UI — End-user interface. Could be a wx/Qt/GTK GUI, CLI, Android app, iPhone app, etc…
  • Miner — Tries to solve blocks for the wallet.

Protocols

  • p2p — Used for communication between Peers/Nodes, and also between your personal Peer/Node and your Wallet(s)
  • JSON-RPC — Old wallet-control protocol; suitable for web integration
  • wallet — Used for communication between your Wallet(s) and your Miner(s) and User Interface(s)

Diagram

___________ | |--(p2p protocol)---ooooooooooooooo | Peer/Node |--(p2p protocol)--o Other Peers o |___________|--(p2p protocol)---ooooooooooooooo | (p2p protocol) _____|_____ _________ | | | | | Wallet |--(wallet protocol)--| Miner | |___________| |_________| | (wallet protocol) _____|__________ | | | User Interface | |________________| 

Implementations

Peer/Node

Software
bitcoind
Pycoin
wxBitcoin
QBitcoin CORE

Wallet

Software Old JSON-RPC New Wallet protocol
bitcoind
wxBitcoin
QBitcoin Wallet

Miner

Software Old JSON-RPC New Wallet protocol
Cpu_Miner
DiabloMiner
Poclbm

User Interface

Software Old JSON-RPC New Wallet protocol
Bitcoin-js-remote
BitDroid
QBitcoin API Client
QBitcoin CLI
QBitcoin GUI
Java Bitcoin Client
Spesmilo
wxBitcoin

Source

http://bitcoin.it/

See Also on BitcoinWiki