]> Git Repo - VerusCoin.git/blame - README.md
Fix -loadblock after shutdown during IBD
[VerusCoin.git] / README.md
CommitLineData
9c6546c9 1Bitcoin Core integration/staging tree
c8af33aa 2=====================================
20d59455 3
5a0823a0 4[![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)
5
9a6497ed 6https://www.bitcoin.org
20d59455 7
b598581b 8Copyright (c) 2009-2014 Bitcoin Core Developers
20d59455
CD
9
10What is Bitcoin?
11----------------
12
13Bitcoin is an experimental new digital currency that enables instant payments to
14anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate
15with no central authority: managing transactions and issuing money are carried
9c6546c9 16out collectively by the network. Bitcoin Core is the name of open source
20d59455
CD
17software which enables the use of this currency.
18
19For more information, as well as an immediately useable, binary version of
9a6497ed 20the Bitcoin Core software, see https://www.bitcoin.org/en/download.
20d59455
CD
21
22License
23-------
24
9c6546c9 25Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
20d59455 26information or see http://opensource.org/licenses/MIT.
81b2d877 27
ae42d69d 28Development process
20d59455 29-------------------
81b2d877 30
20d59455
CD
31Developers work in their own trees, then submit pull requests when they think
32their feature or bug fix is ready.
cc558f06 33
20d59455
CD
34If it is a simple/trivial/non-controversial change, then one of the Bitcoin
35development team members simply pulls it.
cc558f06 36
20d59455
CD
37If it is a *more complicated or potentially controversial* change, then the patch
38submitter will be asked to start a discussion (if they haven't already) on the
39[mailing list](http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development).
cba3a174 40
20d59455
CD
41The patch will be accepted if there is broad consensus that it is a good thing.
42Developers should expect to rework and resubmit patches if the code doesn't
0aa9851b 43match the project's coding conventions (see [doc/coding.md](doc/coding.md)) or are
20d59455 44controversial.
cba3a174 45
20d59455
CD
46The `master` branch is regularly built and tested, but is not guaranteed to be
47completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created
48regularly to indicate new official, stable release versions of Bitcoin.
cba3a174 49
b67b9e70 50Testing
20d59455
CD
51-------
52
53Testing and code review is the bottleneck for development; we get more pull
4665b1ab
WL
54requests than we can review and test on short notice. Please be patient and help out by testing
55other people's pull requests, and remember this is a security-critical project where any mistake might cost people
20d59455
CD
56lots of money.
57
58### Automated Testing
13945b2a 59
20d59455 60Developers are strongly encouraged to write unit tests for new code, and to
0aa9851b 61submit new unit tests for old code. Unit tests can be compiled and run (assuming they weren't disabled in configure) with: `make check`
b67b9e70 62
20d59455
CD
63Every pull request is built for both Windows and Linux on a dedicated server,
64and unit and sanity tests are automatically run. The binaries produced may be
da986f79
CLD
65used for manual QA testing — a link to them will appear in a comment on the
66pull request posted by [BitcoinPullTester](https://github.com/BitcoinPullTester). See https://github.com/TheBlueMatt/test-scripts
20d59455 67for the build/test scripts.
b67b9e70 68
20d59455 69### Manual Quality Assurance (QA) Testing
b67b9e70 70
20d59455
CD
71Large changes should have a test plan, and should be tested by somebody other
72than the developer who wrote the code.
da986f79 73See https://github.com/bitcoin/QA/ for how to create a test plan.
15283971
WL
74
75Translations
76------------
77
78Changes to translations as well as new translations can be submitted to
79[Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/bitcoin/).
80
18c7ba8d 81Translations are periodically pulled from Transifex and merged into the git repository. See the
15283971
WL
82[translation process](doc/translation_process.md) for details on how this works.
83
18c7ba8d 84**Important**: We do not accept translation changes as GitHub pull requests because the next
15283971 85pull from Transifex would automatically overwrite them again.
c47f5379 86
18c7ba8d
MF
87Translators should also subscribe to the [mailing list](https://groups.google.com/forum/#!forum/bitcoin-translators).
88
c47f5379
GA
89Development tips and tricks
90---------------------------
91
92**compiling for debugging**
93
94Run configure with the --enable-debug option, then make. Or run configure with
95CXXFLAGS="-g -ggdb -O0" or whatever debug flags you need.
96
97**debug.log**
98
99If the code is behaving strangely, take a look in the debug.log file in the data directory;
2027450d 100error and debugging messages are written there.
c47f5379
GA
101
102The -debug=... command-line option controls debugging; running with just -debug will turn
103on all categories (and give you a very large debug.log file).
104
105The Qt code routes qDebug() output to debug.log under category "qt": run with -debug=qt
106to see it.
107
108**testnet and regtest modes**
109
110Run with the -testnet option to run with "play bitcoins" on the test network, if you
111are testing multi-machine code that needs to operate across the internet.
112
113If you are testing something that can run on one machine, run with the -regtest option.
2027450d 114In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
b498a949 115that run in -regtest mode.
c47f5379
GA
116
117**DEBUG_LOCKORDER**
118
119Bitcoin Core is a multithreaded application, and deadlocks or other multithreading bugs
120can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
2027450d
AJ
121CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks
122are held, and adds warnings to the debug.log file if inconsistencies are detected.
This page took 0.1302 seconds and 4 git commands to generate.