No description
Find a file
Steven Roose e51ed82876
Merge #502: [0.17 MERGE] Merge up to Core 3832c25f17
634e3953f MERGE FIX: Prevent mainnet unit tests from thinking they have signed blocks after custom tests (Gregory Sanders)
c42c82329 MERGE FIX: Pegin witness test cleanup (Gregory Sanders)
6c1c65249 MERGE FIX: move pegin witness test to beginning to maybe avoid dirtying other tests (Gregory Sanders)
a36ee6c0e MERGE FIX: Augment IsValidPeginWitness with err string return (Gregory Sanders)
9d9ee3d51 MERGE FIX: Adapt bitcoin_functional sync to regtest2 (Gregory Sanders)
7c97d6a81 MERGE FIX: sync up bitcoin_functional (Gregory Sanders)
949405202 MERGE FIX: enable parent chain in fedpeg-based unit tests (Gregory Sanders)
c73e56428 MERGE FIX: instantiate consensus.has_parent_chain for all chains (Gregory Sanders)
4f4fe8f6c MERGE FIX: ConnectTip: ub fix for bench (Gregory Sanders)
80857b329 MERGE FIX: TEST: fixup bitcoin functional (Gregory Sanders)
e0a8aba13 MERGE FIX: Properly parse sendtomainchain args from -cli (Gregory Sanders)
420267122 MERGE FIX: spelling linter fixes (Gregory Sanders)
01799727c MERGE FIX: fixup travis bitcoin_functional run (Gregory Sanders)
90f7d18c8 MERGE-FIX: functional tests (Gregory Sanders)
51584e73a MERGE-FIX: various compilation fixes (Gregory Sanders)
d641c29a5 travis: Run feature_dbcrash functional tests in cron job (Chun Kuan Lee)
c0d947d72 tests: Reorder tests and move most of extended tests up to normal tests (Chun Kuan Lee)
cccc362d6 build: Remove libssl from LDADD unless gui (MarcoFalke)
8e1c13e6d doc: Document -checklevel levels (Wladimir J. van der Laan)
c1dde3a94 No longer shutdown after encrypting the wallet (Andrew Chow)
d7637c5a3 After encrypting the wallet, reload the database environment (Andrew Chow)
5d296ac81 Add function to close all Db's and reload the databae environment (Andrew Chow)
a769461d5 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow)
9dcb6763f [qa] Use correct python index slices in example test (Suhas Daftuar)
fa8433e37 qa: Remove unneded import_deterministic_coinbase_privkeys overwrite, add comments (MarcoFalke)
e413c2ddd qa: Fix codespell error and have lint-spelling error instead of warn (MarcoFalke)
14b29a77a Fix reference to lint-locale-dependence.sh (Hennadii Stepanov)
e22136893 utils: Convert fs error messages from multibyte to utf-8 (Chun Kuan Lee)
e4ef4b459 [build] remove #ifdef ENABLE_WALLET from interfaces/node (John Newbery)
fa6ab8ada rpc: Return more specific reject reason for submitblock (MarcoFalke)
b16ab9af0 Report progress in ReplayBlocks while rolling forward (João Barbosa)
b6a253337 Remove redundant BIP174 test from rpc_psbt.json (araspitzu)
fac953983 qa: Run all tests even if wallet is not compiled (MarcoFalke)
faa669cbc qa: Premine to deterministic address with -disablewallet (MarcoFalke)
d38bf9105 Call unicode API on Windows (Chun Kuan Lee)
d0b1cee1f doc: `-help-debug` implies `-help` (Wladimir J. van der Laan)
9a565a828 Pass export privkey DER compression flag correctly (liuyujun)
fae3fbd61 logging: Replace LogPrint macros with regular functions (MarcoFalke)
e0664f7f5 build: Move interfaces/* to libbitcoin_server (Wladimir J. van der Laan)
23db9546c utils: run commands using utf-8 string on Windows (Chun Kuan Lee)
7d038dcb4 [build] remove ENABLE_WALLET ifdef from httprpc.cpp (John Newbery)
3076556cd [build] Move dummy wallet into its own .cpp file. (John Newbery)
bb6ca65f9 gui: get special folder in unicode (Chun Kuan Lee)
1c5d22585 Drop boost::scoped_array (Chun Kuan Lee)
e7a72455f Scripts and tools: increased timeout downloading (Emanuele Cisbani)
a679109be Speed up knapsack_solver_test by not recreating wallet 100 times. (lucash.dev@gmail.com)
893628be0 Drop minor GetSerializeSize template (Ben Woosley)
da74db094 Drop unused GetType() from CSizeComputer (Ben Woosley)
b9babc82d utils: Use _wfopen and _wreopen on Windows (Chun Kuan Lee)
fa7e9694e qt: Also log and print messages or questions like bitcoind (MarcoFalke)
dd031e383 noui: Move handlers to header file (MarcoFalke)
fa263bcfe qa: Fix silent merge conflict in wallet_importmulti (MarcoFalke)
98ea64cf2 Let wallet importmulti RPC accept labels for standard scriptPubKeys (Russell Yanofsky)
faa1a7494 tx pool: Use class methods to hide raw map iterator impl details (MarcoFalke)
d9d79576f Preserve a format of RPC command definitions (Kostiantyn Stepaniuk)
9256f7d13 build: avoid getifaddrs when unavailable (Cory Fields)
fa462b365 wallet: Set encrypted_batch to nullptr after delete. Avoid double free in the case of NDEBUG. (practicalswift)
faea5bfc5 doc: release notes for -enablebip61 default change (MarcoFalke)
fa14b54a8 p2p: Disable BIP 61 by default (MarcoFalke)
7177e093f depends: Remove unused Qt 4 dependencies (Chun Kuan Lee)
dc287c98f Squashed 'src/univalue/' changes from 51d3ab34ba..7890db99d6 (MarcoFalke)
946107a68 Only log "Using PATH_TO_bitcoin.conf" message on startup if conf file exists. (Alexander Leishman)
bc8aa2ba7 don't translate command line options (Michael Polzer)
fac3e22b1 qa: Read reject reasons from debug log, not p2p messages (MarcoFalke)
b2f49bd73 Integration of property based testing into Bitcoin Core (Chris Stewart)
65a449f8e Explain when reindex-chainstate can be used instead of reindex (Sjors Provoost)
e351a16a2 Remove reference to deprecated RPC call in build instructions (Michael Goldstein)
a6f16f1b1 Docs: Add disable-wallet section to OSX build instructions (Michael Goldstein)
f7e9e7046 [rpc] Remove deprecated sigrawtransaction rpc method. (John Newbery)
90c834089 [RPC] Remove warning about wallet addresses in createmultisig() (John Newbery)
df905e390 [rpc] Remove deprecated validateaddress usage. (John Newbery)
fab526751 doxygen: Remove misleading checkpoints comment in CMainParams (MarcoFalke)
2b5d6f8df Replace duplcate reference with reference to reference doc (Pieter Wuille)
89709db7a Adjust TODO link (Pieter Wuille)
9254ffcf2 Add descriptor reference documentation (Pieter Wuille)
ed2332aef test: Add test for config file parsing errors (MarcoFalke)
a66c0f78a util: Report parse errors in configuration file (Wladimir J. van der Laan)
f8a81f73a lint: Add spell check linter (codespell) (practicalswift)
ada356208 Fix typos reported by codespell (practicalswift)
e9a78e9b3 doc: Change documentation for =0 for non-boolean options (Wladimir J. van der Laan)
341f7c7b0 macOS fix: Check for correct version of flake8 to avoid spurious warnings. The brew installed flake8 version is Python 2 based and does not work. (practicalswift)
908a559f3 macOS fix: Add excludes for checks added in the newer shellcheck version installed by brew (practicalswift)
ec4d57bbb macOS fix: Work around empty (sub)expression error when using BSD grep (practicalswift)
b57d7d92f macOS fix: Avoid mapfile due to ancient version of bash shipped with macOS (practicalswift)
e4a79b4b3 appveyor: Use clcache to speed up build (Chun Kuan Lee)
f34c8c466 Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations. (practicalswift)
ee3a494f3 gui: Favor macOS show / hide action in dock menu (João Barbosa)
e8c4a1e36 Add new regtest ports in doc following #10825 ports reattributions (Antoine Riard)
8ecaee13f Increase signal to noise in appveyor build output by reducing the MSVC warning count from 12 to 4 (12 is assuming the changes in #14086 are also implemented). (practicalswift)
5d62dcf9c lint: Make sure we read the command line inputs using utf-8 decoding in python (Chun Kuan Lee)
c7f7fa467 Trivial: update clang thread-safety docs url (Ben Woosley)
68bfc0bce doc: correct GetDifficulty doc after #13288 (fanquake)
83d53058a Switch nPrevNodeCount to vNodesSize. (Patrick Strateman)
fb97437ef added note that control port must be enabled and how to do that in torrc config file (Jordan Baczuk)
8dfc2f30d Test rpc_help.py failed: Check whether ZMQ is enabled or not. (Kvaciral)
190bf62be scripted-diff: Small locking rename (Russell Yanofsky)
9c4dc597d Use LOCK macros for non-recursive locks (Russell Yanofsky)
1382913e6 Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection (Russell Yanofsky)
ba1f095aa MOVEONLY Move AnnotatedMixin declaration (Russell Yanofsky)
41b88e933 Add unit test for DEBUG_LOCKORDER code (Russell Yanofsky)
62b6f0f21 Add EXCLUSIVE_LOCKS_REQUIRED to CWallet::ListCoins (Russell Yanofsky)
545e85ecc Add AssertLockHeld assertions in CWallet::ListCoins (Russell Yanofsky)
ca1a09312 Add regression test: Don't assert(...) with side effects (practicalswift)
4c3c9c386 Don't assert(...) with side effects (practicalswift)
b602c9b3a tests: Add missing locking annotations and locks (practicalswift)
f05599557 blockfilter: Omit empty scripts from filter contents. (Jim Posen)
75ea00f39 Remove unused fsbridge::freopen (practicalswift)
cceedbc4b Don't close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift)
fa782a308 qa: Use named args in some tests (MarcoFalke)
b4d330967 scripted-diff: Use named arguments in feature_block (MarcoFalke)
749ba35e7 scripted-diff: Pass node into p2p_segwit acceptance tests (MarcoFalke)
8550f1fb2 Add README.md to linux release tarballs (Hennadii Stepanov)
c516c3a77 [contrib] Support ARM and RISC-V symbol check (Chun Kuan Lee)
c9c32e6b8 [wallet] Kill accounts (John Newbery)
1e29379d6 Fix potential deadlock (practicalswift)
d58dc9f94 Add lock annotations (cs_args) (practicalswift)
db5e9d3c8 Add missing locks (cs_args) (practicalswift)
0e534d4dc Fix incorrect Doxygen comments (practicalswift)
fa309dc30 validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke)
fa587773e scripted-diff: Remove unused first argument to addUnchecked (MarcoFalke)
fe5c49766 tx pool: Use the entry's hash instead of the one passed to addUnchecked (MarcoFalke)
ddd395f96 Mark CTxMemPoolEntry members that should not be modified const (MarcoFalke)
6af6d9b23 test: Add tests for RPC help (João Barbosa)
1d9aa008d Explicitly initialize prevector _union (Ben Woosley)
b193d5a44 Removes the Boost case_conv.hpp dependency. (251)
7a208d9fa Implements custom tolower and toupper functions. (251)
e2ba043b8 Implements ParseNetwork unit test. (251)
1661a472b add unicode compatible file_lock for Windows (Chun Kuan Lee)
1cc58978b tests: Fix accidental trunction from int to bool (practicalswift)
61fe653bd fix walletcreatefundedpsbt deriv paths, add test (Gregory Sanders)
fae040010 qa: Add some actual witness in rpc_rawtransaction (MarcoFalke)
917353c8b Make SignPSBTInput operate on a private SignatureData object (Pieter Wuille)
cad5dd236 Pass HD path data through SignatureData (Pieter Wuille)
03a99586a Implement key origin lookup in CWallet (Pieter Wuille)
3b01efa0d [MOVEONLY] Move ParseHDKeypath to utilstrencodings (Pieter Wuille)
81e1dd5ce Generalize PublicOnlySigningProvider into HidingSigningProvider (Pieter Wuille)
84f1f1bfd Make SigningProvider expose key origin information (Pieter Wuille)
611ab307f Introduce KeyOriginInfo for fingerprint + path (Pieter Wuille)
16e288acd test padding non micro timestamps (John Newbery)
995dd89d8 [Tests] Make combine_logs.py handle multi-line logs (John Newbery)
4c530e010 travis: add  CXXFLAGS=-Wnopsabi at ARM job (Chun Kuan Lee)
dd777f3e1 Remove unused variable (practicalswift)
cdf408945 Remove redundant assignments (dead stores) (practicalswift)
1ac3c983b Mark single-argument constructors "explicit" (practicalswift)
bb08423d5 [doc] Add release notes for 'account' API removal (John Newbery)
1f4b865e5 [wallet] Re-sort wallet RPC commands (John Newbery)
f0dc850bf [wallet] Remove wallet account RPCs (John Newbery)
c410f4157 [tests] Remove wallet accounts test (John Newbery)
c55c5f2b1 fix missing differentiation between UNIT and FUNCTIONAL tests in travis build (Julian Fleischer)
414326952 use export LC_ALL=C.UTF-8 (Julian Fleischer)
728c82d02 make script exit if a command fails (Julian Fleischer)
506890b24 move remaining travis build steps into individual files (Julian Fleischer)
272306ea5 number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer)
519e2739c move lint stage up to resemble travis build ui (Julian Fleischer)
86d34f0e6 abort script in END_FOLD on non-zero exit code (Julian Fleischer)
4f2f88c7b move script sections info individual files and comply with shellcheck (Julian Fleischer)
a9910d82c contrib: Adjust output to current test format (Akio Nakamura)
5778bf95d Report minfeefilter value in getpeerinfo rpc (Anthony Towns)
384273260 test: Add testing of value_ret for SelectCoinsBnB (Ben Woosley)
497e90c02 Remove default argument to prevector constructor to remove ambiguity (Ben Woosley)
f1640d093 Make IS_TRIVIALLY_CONSTRUCTIBLE consistent on GCC < 5 (Ben Woosley)
fad8afa38 travis: Run unit tests --with-sanitizers=undefined (MarcoFalke)
0d00fd590 depends: allow CC/CXX to be overridden during configure (Cory Fields)
7d0a8ad31 Docs: Fix help message typo optiona -> optional (Ben Woosley)
faf4a9b67 qa: Stop txindex thread before calling destructor (MarcoFalke)
0b16f679d auto generate MSVC project files (Chun Kuan Lee)
254c85b68 bench: Benchmark GCS filter creation and matching. (Jim Posen)
f33b717a8 blockfilter: Optimization on compilers with int128 support. (Jim Posen)
97b64d67d blockfilter: Unit test against BIP 158 test vectors. (Jim Posen)
a4afb9cad blockfilter: Additional helper methods to compute hash and header. (Jim Posen)
cd09c7925 blockfilter: Serialization methods on BlockFilter. (Jim Posen)
c1855f605 blockfilter: Construction of basic block filters. (Jim Posen)
53e7874e0 blockfilter: Simple test for GCSFilter construction and Match. (Jim Posen)
558c536e3 blockfilter: Implement GCSFilter Match methods. (Jim Posen)
cf70b5500 blockfilter: Implement GCSFilter constructors. (Jim Posen)
c454f0ac6 blockfilter: Declare GCSFilter class for BIP 158 impl. (Jim Posen)
9b622dc72 streams: Unit tests for BitStreamReader and BitStreamWriter. (Jim Posen)
fe943f99b streams: Implement BitStreamReader/Writer classes. (Jim Posen)
87f2d9ee4 streams: Unit test for VectorReader class. (Jim Posen)
947133dec streams: Create VectorReader stream interface for vectors. (Jim Posen)
737670c03 Use assert when running from multithreaded code as BOOST_CHECK_* are not thread safe (Jesse Cohen)
9e2de6b9d Move cs_main locking annotations from .cpp to .h (practicalswift)
9e0a51411 Add compile time checking for all cs_main runtime locking assertions (practicalswift)
870bd4c73 Update functional RBF test to check replaceable flag (dexX7)
820d31f95 Add "bip125-replaceable" flag to mempool RPCs (dexX7)
03a2d6801 Tests: add usage note to check-rpc-mappings.py (Mason Simon)
ddddce0e4 util: Replace boost::signals2 with std::function (MarcoFalke)
fa6c3dea4 p2p: Clarify control flow in ProcessMessage() (MarcoFalke)
984d72ec6 Return the script type from Solver (Ben Woosley)
23f434378 Add CMerkleTx::IsImmatureCoinBase method (Ben Woosley)
fa3e9f762 qa: Add TestNode::assert_debug_log (MarcoFalke)
00f58f8c4 rpc: Avoid locking cs_main in some wallet RPC (João Barbosa)
fa74d3d72 qa: Remove unused deserialization code in msg_version (MarcoFalke)
fa5099ceb p2p: Remove dead code for nVersion=10300 (MarcoFalke)
856334171 Bugfix: NSIS: Exclude Makefile* from docs (Luke Dashjr)
46f834537 contrib: Support github pull request gitian-build (Chun Kuan Lee)
317f2cb3f test: Check RPC settxfee errors (João Barbosa)
48618daf2 Add checks for settxfee reasonableness (Anthony Towns)
321159e53 don't report minversion wallet entry as unknown (Gregory Sanders)
19efc01ae Add PSBT documentation (Pieter Wuille)
18c49eb88 http: Add const modifier to HTTPRequest methods (João Barbosa)
3567b247f test: Add lint to prevent SIGNAL/SLOT connect style (João Barbosa)
f78558f1e qt: Use new Qt5 connect syntax (João Barbosa)

Pull request description:

Tree-SHA512: 6da8dacc63f7ca6f28ed6aa0143cc65383d9ac17fcad26c17b683397701ba170b3987fa0f246ef8408766975d7b80b62c5ff8a20cfcb78ce54d65b8a620e9e91
2019-02-12 15:03:13 +00:00
.github Make default issue text all comments to make issues more readable 2017-11-16 11:50:56 -05:00
.travis MERGE FIX: TEST: fixup bitcoin functional 2019-01-31 10:55:11 +00:00
.tx tx: Update transifex slug 016x→017x 2018-08-02 13:42:15 +02:00
build-aux/m4 Merge #13095: build: update ax_boost_chrono/unit_test_framework 2018-07-26 08:54:59 -04:00
build_msvc appveyor: Use clcache to speed up build 2018-09-03 23:55:00 +08:00
contrib UPSTREAM MERGE BROKEN: Merge commit '3832c25f17' into merge_14225 2019-01-28 18:14:25 +00:00
depends UPSTREAM MERGE BROKEN: Merge commit '3832c25f17' into merge_14225 2019-01-28 18:14:25 +00:00
doc UPSTREAM MERGE BROKEN: Merge commit '3832c25f17' into merge_14225 2019-01-28 18:14:25 +00:00
share Bugfix: NSIS: Exclude Makefile* from docs 2018-08-22 15:29:22 +02:00
src MERGE FIX: Prevent mainnet unit tests from thinking they have signed blocks after custom tests 2019-01-31 10:55:41 +00:00
test MERGE FIX: Adapt bitcoin_functional sync to regtest2 2019-01-31 10:55:31 +00:00
.gitattributes Separate protocol versioning from clientversion 2014-10-29 00:24:40 -04:00
.gitignore [build] .gitignore: add QT Creator artifacts 2017-12-22 12:37:00 +01:00
.travis.yml MERGE FIX: TEST: fixup bitcoin functional 2019-01-31 10:55:11 +00:00
appveyor.yml appveyor: Use clcache to speed up build 2018-09-03 23:55:00 +08:00
autogen.sh Add "export LC_ALL=C" to all shell scripts 2018-06-14 15:27:52 +02:00
configure.ac UPSTREAM MERGE BROKEN: Merge commit '3832c25f17' into merge_14225 2019-01-28 18:14:25 +00:00
CONTRIBUTING.md doc: add note to contributor docs about warranted PR's 2018-07-30 23:47:46 +09:00
COPYING [Trivial] Update license year range to 2018 2018-01-01 04:33:09 +09:00
INSTALL.md Update INSTALL landing redirection notice for build instructions. 2016-10-06 12:27:23 +13:00
libbitcoinconsensus.pc.in Unify package name to as few places as possible without major changes 2015-12-14 02:11:10 +00:00
Makefile.am Actually run the bitcoin functional tests with test_runner 2018-10-26 12:00:55 -04:00
README.md doc: Adjust bitcoincore.org links 2018-07-22 10:32:38 -04:00

Bitcoin Core integration/staging tree

Build Status

https://bitcoincore.org

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://bitcoincore.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.

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. Further details on running and extending unit tests can be found in /src/test/README.md.

There are also regression and integration tests, written in Python, that are run automatically on the build server. These tests can be run (if the test dependencies are installed) with: test/functional/test_runner.py

The Travis CI system makes sure that every pull request is built for Windows, Linux, and macOS, 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.