Infrastructure: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Luke-jr (talk | contribs)
Overall infrastructure view
 
Goonie (talk | contribs)
 
(8 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 34: Line 35:
|-
|-
! Software
! Software
|-
| [[bitcoin.pl]]
|-
|-
| [[bitcoind]]
| [[bitcoind]]
|-
| [[bitcoin-alt]]
|-
| [[BitCoinJ|bitcoinj]]
|-
| [[Pycoin]]
|-
|-
| [[wxBitcoin]]
| [[wxBitcoin]]
|-
| [[QBitcoin|QBitcoin CORE]]
|}
|}


Line 46: Line 57:
|-
|-
| [[bitcoind]] || {{Table Value Yes}} || {{Table Value No}}
| [[bitcoind]] || {{Table Value Yes}} || {{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}}
|-
| [[QBitcoin Wallet]] || {{Table Value Unknown}} || {{Table Value No}}
|}
|}


Line 68: Line 83:
|-
|-
| [[Bitcoin-js-remote]] || {{Table Value Unknown}} || {{Table Value No}}
| [[Bitcoin-js-remote]] || {{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}}
|-
| [[QBitcoin|QBitcoin API Client]] || {{Table Value Unknown}} || {{Table Value No}}
|-
| [[QBitcoin|QBitcoin CLI]] || {{Table Value Unknown}} || {{Table Value No}}
|-
| [[QBitcoin|QBitcoin GUI]] || {{Table Value Unknown}} || {{Table Value No}}
|-
|-
| [[Java Bitcoin Client]] || {{Table Value Unknown}} || {{Table Value No}}
| [[Java Bitcoin Client]] || {{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