Infrastructure

From Bitcoin Wiki
Revision as of 17:03, 3 March 2011 by Luke-jr (talk | contribs) (Overall infrastructure view)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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)
  • 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
wxBitcoin

Wallet

Software Old JSON-RPC New Wallet protocol
bitcoind Yes No
wxBitcoin Yes 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
BitDroid ?? No
Java Bitcoin Client ?? No
Spesmilo Yes No
wxBitcoin No No