Bitcoind

This is the approved revision of this page, as well as being the most recent.
Bitcoind interface, commands, RPC

Bitcoind is a program that implements the Bitcoin protocol for remote procedure call (RPC Server) use. It is also the second Bitcoin client in the network's history. It is available under the MIT license in 32-bit and 64-bit versions for Windows, Linux, and Mac OS X.

As part of Bitcoin Core, bitcoind has been bundled with the original client from version 0.2.6 to 0.4.9, and with Bitcoin-Qt since 0.5.0. The Bitcoind can be downloaded from the official repository on GitHub.

Contents

Bitcoind ReviewEdit

Bitcoin has both a graphical interface called bitcoin-qt and a console interface, bitcoind. If the first is convenient for human use, then without a text it is quite difficult to make an online store or any other service that accepts bitcoins as a payment. About it and speech will go.

To work you need to run one instance of bitcoin as a daemon, so he worked as a full-fledged host on the network and give commands to it using another copy of bitcoind. The interaction between them happens via JSON-RPC over TCP port 8332. In order for them to recognize and trust each other, you need to set rpcpassword, which is written in the file ~/.bitcoin / bitcoin.conf as rpcpassword=blah-blah-blah. If you do not have such a file you need to create it. There you can register and other settings from those given when starting the daemon.

Commands for running BitcoindEdit

Bitcoind – bitcoin client

See running bitcoind for more detail and an example of the configuration file.

Bitcoind is a headless daemon, and also bundles a testing tool for the same daemon. It provides a JSON-RPC interface, allowing it to be controlled locally or remotely which makes it useful for integration with other software or in larger payment systems. Various commands are made available by the API.

To use locally, first start the program in daemon mode:

bitcoind -daemon

Then you can execute API commands, e.g.:

bitcoin-cli getinfo
bitcoin-cli listtransactions

To stop the bitcoin daemon, execute:

bitcoin-cli stop

How bitcoind works?Edit

bitcoind is a multithreaded C++ program. It is designed to be portable across Windows, Mac, and Linux systems. The multithreaded aspect leads to some complexity and the use of certain code patterns to deal with concurrency that may be unfamiliar to many programmers. Also, the code is aggressive in the use of C++ constructs, so it will help to be fluent with map, multimap, set, string, vector, iostream, and templates. As is typical of a C++ program, a lot of code tends to end up in the header files so be sure to search both the .cpp and .h files when looking for a function.

The client is oriented around several major operations, which are described in separate detailed articles and summarized in the following sections.

Initialization and StartupEdit

Upon startup, the client performs various initialization routines including starting multiple threads to handle concurrent operations.

Node DiscoveryEdit

The client uses various techniques to find out about other Bitcoin nodes that are currently connected to the network.

Node ConnectivityEdit

The client initiates and maintains connections to other nodes.

Sockets and MessagesEdit

The client processes messages from other nodes and sends messages to other nodes using socket connections.

Block ExchangeEdit

Nodes advertise their inventory of blocks to each other and exchange blocks to build block chains.

Transaction ExchangeEdit

Nodes exchange and relay transactions with each other. The client associates transactions with bitcoin addresses in the local wallet.

Wallet ServicesEdit

The client can create transactions using the local wallet. The client associates transactions with bitcoin addresses in the local wallet. The client provides a service for managing the local wallet.

RPC InterfaceEdit

The client offers an JSON-RPC interface over HTTP over sockets to perform various operational functions and to manage the local wallet.

User InterfaceEdit

Bitcoind's current user interface is the command line while it used to be based on wxWidgets. A graphical user interface is now provided by Bitcoin-qt in version 0.5+ for the reference client.

TroubleshootingEdit

I get "Error loading blkindex.dat" when I try to run the clientEdit

blkindex.dat is part of the database that stores the local copy of the blockchain which may have become corrupted.

Open the Bitcoin data directory:

  • Windows: %APPDATA%\Bitcoin
  • Linux: ~/.bitcoin
  • Mac: ~/Library/Application Support/Bitcoin/

Make a backup of that entire folder, then delete everything EXCEPT wallet.dat. Start bitcoin again and it will download a fresh copy of the blockchain (WARNING: This will take a long time).

History of official bitcoind releasesEdit

Bitcoin from the Command Line
Version Date Supported platforms Reference
0.13.1 2016-Oct-16 Windows32/64, Linux, ARM Linux, MacOS X [1]
0.13.0 2016-Aug-23 Windows32/64, Linux, ARM Linux, MacOS X [2]
0.12.1 2016-Apr-15 Windows32/64, Linux, MacOS X [3]
0.12.0 2016-Feb-23 Windows32/64, Linux, MacOS X [4]
0.11.2 2015-Nov-13 Windows32/64, Linux, MacOS X [5]
0.11.1 2015-Oct-15 Windows32/64, Linux, MacOS X [6]
0.10.3 2015-Oct-14 Windows32/64, Linux, MacOS X [7]
0.11.0 2015-Jul-12 Windows32/64, Linux, MacOS X [8]
0.10.2 2015-May-19 Windows32/64, Linux, MacOS X [9]
0.10.1 2015-Apr-27 Windows32/64, Linux, MacOS X [10]
0.10.0 2015-Feb-16 Windows32/64, Linux, MacOS X [11]
0.9.3 2014-Sep-27 Windows32/64, Linux, MacOS X [12]
0.9.2.1 2014-Jun-19 Windows32/64, Linux, MacOS X [13]
0.9.2 2014-Jun-16 Windows32/64, Linux, MacOS X [14]
0.9.1 2014-Apr-8 Windows32/64, Linux, MacOS X [15]
0.9.0 2014-Mar-19 Windows32/64, Linux, MacOS X [16]
0.8.6 2013-Dec-9 Windows32, Linux, MacOS X [17]
0.8.5 2013-Sep-13 Windows32, Linux, MacOS X [18]
0.8.4 2013-Sep-3 Windows32, Linux, MacOS X [19]
0.8.3 2013-Jun-25 Windows32, Linux, MacOS X [20]
0.8.2 2013-May-29 Windows32, Linux, MacOS X [21]
0.8.1 2013-Mar-18 Windows32, Linux, MacOS X [22]
0.8.0 2013-Feb-19 Windows32, Linux, MacOS X [23]
0.7.2 2012-Dec-14 Windows32, Linux, MacOS X [24]
0.5.7 2012-Nov-23
0.7.1 2012-Oct-19 Windows32, Linux, MacOS X [25]
0.7.0 2012-Sep-17 Windows32, Linux, MacOS X [26]
0.5.6 2012-Jul-22 Windows32, Linux, MacOS X
0.4.7 2012-Jul-22 Windows32
0.6.0.9 2012-Jul-08
0.6.3 2012-Jun-25 Windows32, Bitcoind Linux, MacOS X [27]
0.6.2 2012-May-08 Windows32, Linux, MacOS X [28]
0.6.1 2012-May-04 Windows32, Linux, MacOS X
0.6.0.7 2012-May-04
0.5.5 2012-May-04 Windows32 [29]
0.4.6 2012-May-04 Windows32 [30]
0.5.4 2012-Apr-15 Windows32, Linux [31]
0.4.5 2012-Apr-15
0.6.0 2012-Mar-30 Windows32, Linux, MacOS X [32]
0.5.3.1 2012-Mar-17 Windows32 [33]
0.5.3 2012-Mar-14 Windows32, Linux, MacOS X [34]
0.4.4 2012-Mar-14 Windows32 [35]
0.5.2 2012-Jan-09 Windows32, Linux, MacOS X [36]
0.4.3 2012-Jan-09 Windows32, Linux [37]
0.5.1 2011-Dec-15 Windows32, Linux, MacOS X [38]
0.4.2 2011-Dec-12
0.5.0 2011-Nov-21 Windows32, Linux, MacOS X [39]
0.4.1 2011-Nov-21 Windows32, Linux, MacOS X [40]
0.4.0 2011-Sep-23 Windows32, Linux, MacOS X [41]
0.3.24 2011-Jul-08 Windows32, Linux, MacOS X [42]
0.3.23 2011-Jun-13 Windows32, Linux, MacOS X [43]
0.3.22 2011-Jun-05 Windows32, Linux, MacOS X [44]
0.3.21 2011-Apr-27 Windows32, Linux, MacOS X [45]
0.3.20 2011-Feb-21 Windows32, Linux, MacOS X [46]
0.3.19 2010-12-12 Windows32, Linux, MacOS X [47]
0.3.18 2010-12-08 Windows32, Linux, MacOS X [48]
0.3.17 2010-11-25 Windows32, Linux, MacOS X [49]
0.3.15 2010-11-13 Windows32, Linux [50]
0.3.14 2010-10-21 Windows32, Linux [51]
0.3.13 2010-10-01 Windows32, Linux, MacOS X [52]
0.3.12 2010-09-07 Windows32, Linux [53]
0.3.11 2010-08-27 Windows32, Linux, MacOS X [54]
0.3.10 2010-08-15 Windows32, Linux32/64, MacOS X [55]
0.3.8.1 2010-08-09 Linux64 [56]
0.3.8 2010-08-03 Windows32, Linux, MacOS X [57]
0.3.7 2010-08-01 Windows32, Linux, MacOS X [58]
0.3.6 2010-07-29 Windows32, Linux, MacOS X [59]
0.3.3 2010-07-25 Windows32, Linux, MacOS X [60]
0.3.2.5 2010-07-24 Windows32, Linux [61]
0.3.2 2010-07-17 Windows32, Linux, MacOS X [62]
0.3.1 2010-07-15 Windows32, Linux [63]
0.3.0 2010-07-06 Windows32, Linux, MacOS X [64][65]
0.2.0 2009-12-17 06:52 Windows XP /Vista, Linux [66][67]
0.1.5 2009-02-04 19:46 Windows NT/2000/XP [68]
0.1.3 2009-01-12 22:48 Windows NT/2000/XP [69]
0.1.2 2009-01-11 22:32 Windows NT/2000/XP [70]
0.1.0 2009-01-09 Windows NT/2000/XP

Up to and including version 0.3.19 is the "Satoshi code". The founder retired from development with end of 2010. Here are three URLs given where you still(!) (2013-01-04) can download one of the "original Satoshi codes". So also this Bitcoin release history.

See alsoEdit

External LinksEdit

ReferencesEdit

  1. Bitcoin Core version 0.13.1 released
  2. Bitcoin Core version 0.13.0 released
  3. Bitcoin Core version 0.12.1 released
  4. Bitcoin Core version 0.12.0 released
  5. Bitcoin Core version 0.11.2 released
  6. Bitcoin Core version 0.11.1 released
  7. Bitcoin Core version 0.10.3 released
  8. Bitcoin Core version 0.11.0 released
  9. Bitcoin Core version 0.10.2 released
  10. Bitcoin Core version 0.10.1 released
  11. Bitcoin Core version 0.10.0 released
  12. Bitcoin Core version 0.9.3 released
  13. Bitcoin Core version 0.9.2.1 released
  14. Bitcoin Core version 0.9.2 released
  15. Bitcoin Core version 0.9.1 released
  16. Bitcoin Core version 0.9.0 released
  17. Bitcoin-Qt version 0.8.6 released
  18. Bitcoin-Qt version 0.8.5 released
  19. Bitcoin-Qt version 0.8.4 released
  20. Bitcoin-Qt version 0.8.3 released
  21. Bitcoin-Qt version 0.8.2 released
  22. Bitcoin-Qt version 0.8.1 released
  23. Bitcoin-Qt version 0.8.0 released
  24. Bitcoin-Qt/bitcoind version 0.7.2 released
  25. Bitcoin-Qt/bitcoind version 0.7.1 released
  26. Bitcoin-Qt/bitcoind version 0.7.0 released
  27. Bitcoin-Qt / bitcoind version 0.6.3 released
  28. Re: Version 0.6.1 release candidate 2
  29. Version 0.5.5 and 0.4.6 released
  30. Version 0.5.5 and 0.4.6 released
  31. Version 0.5.4 released
  32. bitcoin.org: Bitcoin version 0.6.0 released
  33. URGENT: Windows Bitcoin-Qt update
  34. Bitcoin-Qt, bitcoind version 0.5.3 released
  35. bitcoind version 0.4.4 released
  36. Bitcoin-Qt, bitcoind version 0.5.2 released
  37. bitcoind version 0.4.3 released
  38. Bitcoin-Qt, bitcoind version 0.5.1 released
  39. Bitcoin-Qt/bitcoind version 0.5.0
  40. wxBitcoin/bitcoind version 0.4.1
  41. Bitcoin version 0.4.0 released
  42. Bitcoin version 0.3.24 released
  43. Bitcoin version 0.3.23 released
  44. Bitcoin version 0.3.22
  45. Bitcoin version 0.3.21
  46. Version 0.3.20
  47. Added some DoS limits, removed safe mode (0.3.19)
  48. Version 0.3.18
  49. Version 0.3.17
  50. Version 0.3.15
  51. Version 0.3.14
  52. Version 0.3.13, please upgrade
  53. Version 0.3.12 is now available.
  54. Version 0.3.11 is now available.
  55. tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
  56. Version 0.3.8.1 update for Linux 64-bit
  57. Please upgrade to 0.3.8!
  58. 0.3.7 Changes
  59. *** ALERT *** Upgrade to 0.3.6
  60. Bitcoin 0.3.3 released -- PLEASE UPGRADE
  61. Version 0.3.2.5 -- please test!
  62. Bitcoin 0.3.2 released
  63. Bitcoin 0.3.1 released
  64. Bitcoin 0.3 released!
  65. Bitcoin 0.3 released!
  66. Bitcoin 0.2 released!
  67. Bitcoin 0.2 released
  68. Bitcoin v0.1.5 released
  69. Bitcoin v0.1.3
  70. Bitcoin v0.1.2 now available


Licence.png