Thanks also (in alphabetical order) to @cbeams, @mikehearn, and @tgeller, among others. The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
2.8 KiB
{% autocrossref %}
The Developer Guide aims to provide the information you need to start building Bitcoin-based applications. To make the best use of this guide, you may want to install the current version of Bitcoin Core, either from [source][core git] or from a [pre-compiled executable][core executable].
Once installed, you'll have access to three programs: bitcoind
,
bitcoin-qt
, and bitcoin-cli
. When run with no arguments, all three
programs default to Bitcoin's main network ([mainnet][mainnet]{:#term-mainnet}{:.term}) which will require
you purchase satoshis in order to generate transactions.
However, for development, it's safer and cheaper to use Bitcoin's test network ([testnet][testnet]{:#term-testnet}{:.term}) where the satoshis spent have no real-world value. Testnet also relaxes some restrictions (such as standard transaction checks) so you can test functions which might currently be disabled by default on mainnet.
To use testnet, use the argument -testnet
with each program or add
testnet=1
to your bitcoin.conf
file. To get
free satoshis for testing, use [Piotr Piasecki's testnet faucet][].
Testnet is a public resource provided for free by members of the
community, so please don't abuse it.
You can speed up development further using the [regression test mode][] which creates a new testnet local to your computer. This regtest mode will let you generate blocks almost instantly with a RPC command so you can generate your own satoshis and add transactions to the block chain immediately.
-
bitcoin-qt
provides a combination full Bitcoin peer and wallet frontend. From the Help menu, you can access a console where you can enter the RPC commands used throughout this document. -
bitcoind
is more useful for programming: it provides a full peer which you can interact with through RPCs to port 8332 (or 18332 for testnet). -
bitcoin-cli
allows you to send RPC commands tobitcoind
from the command line. For example,bitcoin-cli help
All three programs get settings from bitcoin.conf
in the Bitcoin
application directiory:
-
Windows:
%APPDATA%\Bitcoin\
-
OSX:
$HOME/Library/Application Support/Bitcoin/
-
Linux:
$HOME/.bitcoin/
Questions about Bitcoin development are best sent to the Bitcoin [Forum][forum tech support] and [IRC channels][]. Errors or suggestions related to documentation on Bitcoin.org can be [submitted as an issue][docs issue] or posted to the [bitcoin-documentation mailing list][].
In the following guide, some strings have been shortened or wrapped: "[...]" indicates extra data was removed, and lines ending in a single backslash "\" are continued below. If you hover your mouse over a paragraph, cross-reference links will be shown in blue. If you hover over a cross-reference link, a brief definition of the term will be displayed in a tooltip.
{% endautocrossref %}