Difference between revisions of "Infrastructure"

From Bitcoin Wiki
Jump to: navigation, search
(Peer/Node)
(User Interface)
 
(3 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
=== Protocols ===
 
=== Protocols ===
 
*p2p -- Used for communication between Peers/Nodes, and also between your personal Peer/Node and your Wallet(s)
 
*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)
 
*wallet -- Used for communication between your Wallet(s) and your Miner(s) and User Interface(s)
  
Line 41: Line 42:
 
| [[bitcoin-alt]]
 
| [[bitcoin-alt]]
 
|-
 
|-
| [[BitCoinJ]]
+
| [[BitCoinJ|bitcoinj]]
 
|-
 
|-
 
| [[Pycoin]]
 
| [[Pycoin]]
Line 57: Line 58:
 
| [[bitcoind]] || {{Table Value Yes}} || {{Table Value No}}
 
| [[bitcoind]] || {{Table Value Yes}} || {{Table Value No}}
 
|-
 
|-
| [[BitCoinJ]] || {{Table Value Unknown}} || {{Table Value No}}
+
| [[BitCoinJ|bitcoinj]] || {{Table Value Unknown}} || {{Table Value No}}
 
|-
 
|-
 
| [[wxBitcoin]] || {{Table Value Yes}} || {{Table Value No}}
 
| [[wxBitcoin]] || {{Table Value Yes}} || {{Table Value No}}
Line 83: Line 84:
 
| [[Bitcoin-js-remote]] || {{Table Value Unknown}} || {{Table Value No}}
 
| [[Bitcoin-js-remote]] || {{Table Value Unknown}} || {{Table Value No}}
 
|-
 
|-
| [[BitCoinJ]] || {{Table Value Unknown}} || {{Table Value No}}
+
| [[BitCoinJ|bitcoinj]] || {{Table Value Unknown}} || {{Table Value No}}
 
|-
 
|-
 
| [[BitDroid]] || {{Table Value Unknown}} || {{Table Value No}}
 
| [[BitDroid]] || {{Table Value Unknown}} || {{Table Value No}}

Latest revision as of 12:36, 31 March 2013

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