dash-docs/_includes/guide_intro.md
David Harding ffde087f02 Contributions by @harding to devel docs
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.

The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
2014-05-09 22:13:59 -04:00

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 to bitcoind 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 %}