f26dab7Adapt ZMQ/rest serialization to take rpcserialversion arg (instagibbs)21ccb9fAdd option to return non-segwit serialization via rpc (Gregory Sanders)a710a43Improvement of documentation of command line parameter 'whitelist' (wodry)58eab24[qa] rpc-tests: Apply random offset to portseed (MarcoFalke)ecd7db5[qa] test_framework: Exit when tmpdir exists (MarcoFalke)387ec9dAdd script tests for FindAndDelete in pre-segwit and segwit scripts (Johnson Lau)87fbcedChange all instance of 'GMT epoch' to 'Unix epoch' (matthias)b1e978cinstance of 'mem pool' to 'mempool' (S. Matthew English)ff55a2dUpdate gitian signing key of jl2012 (Johnson Lau)28d0f22Fix calculation of number of bound sockets to use (Matt Corallo)396c405Include select.h when WIN32 is not defined (Ivo van der Sangen)eebc699bench: Fix subtle counting issue when rescaling iteration count (Wladimir J. van der Laan)0c09d9fSend tip change notification from invalidateblock (Russell Yanofsky)6f7841cqt: Avoid OpenSSL certstore-related memory leak (Wladimir J. van der Laan)e5ad693qt: Avoid shutdownwindow-related memory leak (Wladimir J. van der Laan)e4bea4fqt: Avoid splash-screen related memory leak (Wladimir J. van der Laan)c12f4e9qt: Prevent thread/memory leak on exiting RPCConsole (Wladimir J. van der Laan)dc46b10qt: Plug many memory leaks (Wladimir J. van der Laan)ff423cc[Qt] Clean up and fix coincontrol tree widget handling (Wladimir J. van der Laan)6d70a73[Qt] fix coincontrol sort issue (Jonas Schnelli)3fffbf7Doxygen: Set PROJECT_NAME = "Bitcoin Core" (MarcoFalke)f82c81bfix getnettotals RPC description about timemillis. (Masahiko Hyuga)6fe3981net: don't send feefilter messages before the version handshake is complete (Cory Fields)5f3a12cqt: Use correct conversion function for boost::path datadir (Wladimir J. van der Laan)08d1c90Missed one "return false" in recent refactoring in #9067 (UdjinM6)f27596aEvery main()/exit() should return/use one of EXIT_ codes instead of magic numbers (UdjinM6)f85ee01Fix exit codes: - `--help`, `--version` etc should exit with `0` i.e. no error ("not enough args" case should still trigger an error) - error reading config file should exit with `1` (UdjinM6)5bcb05d[rpc] ParseHash: Fail when length is not 64 (MarcoFalke)973ca1eFix doxygen comment: the transaction is returned in txOut (Pavel Janík)6f86b53[Qt] make warnings label selectable (Jonas Schnelli)106da69Sync bitcoin-tx with tx version policy (BtcDrak)12428b4add software-properties-common (Steven)40169dcSet minimum required Boost to 1.47.0 (fanquake)c134d92[build-aux] Boost_Base serial 27 (fanquake)4a974b2Simple Update to File 'bitcoin-qt.desktop' (matthias)975ab12Update INSTALL landing redirection notice for build instructions. (randy-waterhouse)3a3bcbfUse RelevantServices instead of node_network in AttemptToEvict. (Gregory Maxwell)ca1fd75Make orphan parent fetching ask for witnesses. (Gregory Maxwell)b96a8f7[qa] Test getblocktemplate default_witness_commitment (Suhas Daftuar)99477c7Always add default_witness_commitment with GBT client support (Pieter Wuille)da5a16bAlways drop the least preferred HB peer when adding a new one. (Gregory Maxwell)094848blog block size and weight correctly. (jnewbery)d1b4da9build: fix qt5.7 build under macOS (Cory Fields)
Bitcoin Core integration/staging tree
What is Bitcoin?
Bitcoin is an experimental digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin Core is the name of open source software which enables the use of this currency.
For more information, as well as an immediately useable, binary version of the Bitcoin Core software, see https://bitcoin.org/en/download, or read the original whitepaper.
License
Bitcoin Core is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.
Development Process
The master branch is regularly built and tested, but is not guaranteed to be
completely stable. Tags are created
regularly to indicate new official, stable release versions of Bitcoin Core.
The contribution workflow is described in CONTRIBUTING.md.
The developer mailing list should be used to discuss complicated or controversial changes before working on a patch set.
Developer IRC can be found on Freenode at #bitcoin-core-dev.
Testing
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.
Automated Testing
Developers are strongly encouraged to write unit tests for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled in configure) with: make check
There are also regression and integration tests of the RPC interface, written
in Python, that are run automatically on the build server.
These tests can be run (if the test dependencies are installed) with: qa/pull-tester/rpc-tests.py
The Travis CI system makes sure that every pull request is built for Windows, Linux, and OS X, and that unit/sanity tests are run automatically.
Manual Quality Assurance (QA) Testing
Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.
Translations
Changes to translations as well as new translations can be submitted to Bitcoin Core's Transifex page.
Translations are periodically pulled from Transifex and merged into the git repository. See the translation process for details on how this works.
Important: We do not accept translation changes as GitHub pull requests because the next pull from Transifex would automatically overwrite them again.
Translators should also subscribe to the mailing list.