Infrastructure

From Bitcoin Wiki
Jump to: navigation, search

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
bitcoin.pl
bitcoind
bitcoin-alt
bitcoinj
Pycoin
wxBitcoin
QBitcoin CORE

Wallet

Software Old JSON-RPC New Wallet protocol
bitcoind Yes No
bitcoinj ?? No
wxBitcoin Yes No
QBitcoin Wallet ?? No

Miner

Software Old JSON-RPC New Wallet protocol
Cpu_Miner Yes No
DiabloMiner Yes No
Poclbm Yes No

User Interface

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