aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-01Merge #13805: [wallet] Correctly limit output group sizeMarcoFalke
a13647b8bd [qa] Add test for too-large wallet output groups (Suhas Daftuar) 57ec1c97b2 [wallet] correctly limit output group size (Suhas Daftuar) Pull request description: Also add a test to ensure that output groups are being limited, even if a wallet has many outputs corresponding to the same scriptPubKey (the test fails without the first commit). Tree-SHA512: 2aaa82005b0910488f5cbf40690d4c5e2f46949e299ef70b4cb6e440713811443d411dcbc6d71b1701fd82423073125e21747787d70830cd021c841afb732d51
2018-07-31Merge #13247: Add tests to SingleThreadedSchedulerClient() and document the ↵MarcoFalke
memory model cbeaa91dbb Update ValidationInterface() documentation to explicitly specify threading and memory model (Jesse Cohen) b296b425a7 Update documentation for SingleThreadedSchedulerClient() to specify the memory model (Jesse Cohen) 9994d01d8b Add Unit Test for SingleThreadedSchedulerClient (Jesse Cohen) Pull request description: As discussed in #13023 I've split this test out into a separate pr This test (and documentation update) makes explicit the guarantee (previously undefined, but implied by the 'SingleThreaded' in `SingleThreadedSchedulerClient()`) - that callbacks pushed to the `SingleThreadedSchedulerClient()` obey the single threaded model for memory and execution - specifically, the callbacks are executed fully and in order, and even in cases where a subsequent callback is executed by a different thread, sequential consistency of memory for all threads executing these callbacks is maintained. Maintaining memory consistency should make the api more developer friendly - especially for users of the validationinterface. To the extent that there are performance implications from this decision, these are not currently present in practice because all use of this scheduler happens on a single thread currently, furthermore the lock should guarantee consistency across callback executions even when callbacks are executed by multiple threads (as the test does). Tree-SHA512: 5d95a7682c402e5ad76b05bc9dfbca99ca64105f62ab9e78f6fc0f6ea8c5277aa399fbb94298e35cc677b0c2181ff17259584bb7ae230e38aa68b85ecbc22856
2018-07-31Merge #13822: bench: Make CoinSelection output groups pass eligibility filterMarcoFalke
494634a052 bench: Make CoinSelection output groups pass eligibility filter (Andrew Chow) Pull request description: Set the depth of the output groups used in the CoinSelection benchmark to be 6 in order to pass the eligibility filter for the benchmark. Fixes #13813 Tree-SHA512: 55fc6aeda0127f5e155efb982aec211b70dfd3257808dce627886af6866ffa25de4df3c9b10f8c45b6c298a42542c54654f36e59efb208e9055885361f0e501c
2018-07-31Merge #13776: net: Add missing verification of IPv6 address in ↵Wladimir J. van der Laan
CNetAddr::GetIn6Addr(...) 2fb0066b9932f3725a5a0533530453c6da4010ce net: Add missing verification of IPv6 address in CNetAddr::GetIn6Addr(...) (practicalswift) Pull request description: Add missing verification of IPv6 address in `CNetAddr::GetIn6Addr(...)`. Tree-SHA512: 8b0681252eec9cf293a2043e99fdacec520e321b477d8aca1cbd6327b85bf6c5e8cd820fb914f097c62655947e88745ebccd824a78b995a8186e910e6fe520aa
2018-07-31bench: Make CoinSelection output groups pass eligibility filterAndrew Chow
Set the depth of the output groups used in the CoinSelection benchmark to be 6 in order to pass the eligibility filter for the benchmark.
2018-07-31Merge #13799: Ignore unknown config file options; warn instead of errorMarcoFalke
247d5740d2 Ignore unknown config file options for now (Pieter Wuille) 04ce0d88ca Report when unknown config file options are ignored (Pieter Wuille) Pull request description: As reported by @satwo on IRC a few days ago, the current mechanism of treating unknown config file options as errors is problematic for options like `-rpcclienttimeout` which aren't defined for `bitcoind`. A full solution would be to either make all binaries be aware of each other's options, or to permit config file options that only apply to specific binaries (`bitcoind`, `bitcoin-qt`, `bitcoin-cli`). Both of these seem too invasive to introduce for 0.17. As a compromise, this PR makes it ignores those options, but still warn about it in the log file. Tree-SHA512: dfddc771b91df3031a9c98d9f3292f8f4fcd1b97ebb7317b2f457e12d9f205dc63f42721302e7258dbb53f273d7cc041a65a0a9120972769555784e1f1cc9aef
2018-07-31Merge #13809: contrib: Remove debian and rpm subfolderMarcoFalke
fa0e1e2f63 contrib: Remove debian and rpm subfolders (MarcoFalke) Pull request description: The folders are now located here: * https://github.com/bitcoin-core/packaging/tree/master/debian * https://github.com/bitcoin-core/packaging/tree/master/rpm Note that I kept the copyright file, so that it can be updated for our purposes in the commit that adds new files. Tree-SHA512: 4c919e8e04cdcc56f2c4c16e83c68d5ec74b7e4438ca54222a37f85cf604b77880393d1a0004f16f270ab04ee00b2060129c5c2e0b34815679940f1c3b5754f3
2018-07-31Merge #13794: chainparams: Update with data from assumed valid chainWladimir J. van der Laan
fa8f2d826c7ed90c164cfc039d97ce2fa95d1914 doc: Fix chainTxData comment (MarcoFalke) fa6094f1529ccb8068db06c63a0fecebb3f82583 chainparams: Update with data from assumed valid chain (MarcoFalke) Pull request description: Can be reviewed by using the `getblock` and `getchaintxstats` rpcs of a synced node. Reviewers get extra points when their full node has checkpoints and assumevalid disabled. Tree-SHA512: cedd61fde129ae4c16fc12275b61e4c5659b6d72dd801c608efc294188561bc986d94652fe9bea71ada48654258e2a074d2d2da78036c69608ccff3a6cc1ccf5
2018-07-30Ignore unknown config file options for nowPieter Wuille
2018-07-30Update ValidationInterface() documentation to explicitly specify threading ↵Jesse Cohen
and memory model
2018-07-30Update documentation for SingleThreadedSchedulerClient() to specify the ↵Jesse Cohen
memory model
2018-07-30Merge #13814: Add BIP174 to list of implemented BIPsMarcoFalke
1dbad82f61 Add BIP174 to list of implemented BIPs (Pieter Wuille) Pull request description: Tree-SHA512: 43d605d47ef08f9cf4008d6b25d990ddfa02fa59b1db84d805113609c5339de9e3def6ea39637bbb1c5439a7a1aaeffdb528c345349548777338f9250274ee2f
2018-07-30Add BIP174 to list of implemented BIPsPieter Wuille
2018-07-30Merge #13786: refactor: Avoid locking tx pool cs thriceMarcoFalke
fa5ed4f8d2 refactor: Avoid locking tx pool cs thrice (MarcoFalke) Pull request description: `addUnchecked` is (outside the tests) only called by ATMP, which already takes the tx pool read lock. So locking it twice more in both `addUnchecked` methods seems redundant. Similarly `CalculateMemPoolAncestors` is (beside once in the wallet) only called in contexts, where the tx pool lock is already taken. So remove the lock there as well. Tree-SHA512: fcf603b570da0fc529fe6db8add218663eae52845510732bee0d4611263d2429d3d3c9c8ae68493d67287d13504500ed51905ccbe711eb15a0af3b019edad543
2018-07-30doc: Fix chainTxData commentMarcoFalke
2018-07-30Merge #13779: travis: improve readability of travis.yml and log outputsMarcoFalke
f98146d001 use travis:fold in test script steps (Julian Fleischer) 9730d3af31 make .travis/yml a bit more readable (Julian Fleischer) Pull request description: This PR contains two commits which * make the travis.yml file a bit more readable by splitting the environment variables over lines (it's a little bit more verbose but way easier to compare across forks or visually grasp in the first place), * use `travis:fold` to fold the `autogen`, `configure`, `make`, and so forth, steps. The `END_FOLD` shell function preserves the exit code of the statement right before. Tree-SHA512: 7aff86e72008093f46d6ec7afa735f01e40c18f1efe55867d6ff4039191986c0fa8d4136cd53adb34e29f0f40e30c37d1a83615aea3f8438c20ec3b1c2910295
2018-07-30use travis:fold in test script stepsJulian Fleischer
2018-07-30contrib: Remove debian and rpm subfoldersMarcoFalke
2018-07-30Merge #13782: Fix osslsigncode compile issue in gitian-buildMarcoFalke
284f424d5a Fix osslsigncode compile issue in gitian-build (Chun Kuan Lee) Pull request description: Install libssl1.0-dev that is compatible with osslsigncode. Fixes #13762 Verifed that this gitian descriptor file can sign 0.16.2rc2. Tree-SHA512: 3029b86e77567a4e033b5ad95826e60df12a0486ac3c4afcac48218f5c76ba49e7f1c1307ce93ffc465ca2f24e12c401e4542929263688e4bd6521aeca3ff73b
2018-07-30Merge #13806: qa: Fix bench/block_assemble assert failureMarcoFalke
6f53edb395 Acquire cs_main before ATMP call in block_assemble bench (James O'Beirne) Pull request description: Calling `bench_bitcoin` currently fails due to calling ATMP without acquiring cs_main first in the recently added block_assemble bench (https://github.com/bitcoin/bitcoin/pull/13219). ``` $ cat <(uname -a) <(gcc --version) Linux james 4.4.0-119-generic #143+jamesob SMP Mon Apr 16 21:47:24 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 $ ./src/bench/bench_bitcoin WARNING: This is a debug build - may result in slower benchmarks. # Benchmark, evals, iterations, total, min, max, median Assertion failed: lock cs_main not held in validation.cpp:566; locks held: [1] 19323 abort (core dumped) ./src/bench/bench_bitcoin ``` ``` (gdb) bt #0 0x00007fbdc9cf5428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007fbdc9cf702a in __GI_abort () at abort.c:89 #2 0x0000555a19580dc5 in AssertLockHeldInternal (pszName=pszName@entry=0x555a19834549 "cs_main", pszFile=pszFile@entry=0x555a1988a001 "validation.cpp", nLine=nLine@entry=566, cs=cs@entry=0x555a19ba55c0 <cs_main>) at sync.cpp:157 #3 0x0000555a194b395f in AcceptToMemoryPoolWorker (chainparams=..., pool=..., state=..., ptx=std::shared_ptr (count 1, weak 0) 0x555a1bb819b0, pfMissingInputs=pfMissingInputs@entry=0x0, nAcceptTime=1532964079, plTxnReplaced=0x0, bypass_limits=false, nAbsurdFee=@0x7ffcbc1719d8: 0, coins_to_uncache=std::vector of length 0, capacity 0, test_accept=false) at validation.cpp:566 #4 0x0000555a194ba661 in AcceptToMemoryPoolWithTime (chainparams=..., pool=..., state=..., tx=std::shared_ptr (count 1, weak 0) 0x555a1bb819b0, pfMissingInputs=pfMissingInputs@entry=0x0, nAcceptTime=<optimized out>, plTxnReplaced=0x0, bypass_limits=false, nAbsurdFee=0, test_accept=false) at validation.cpp:998 #5 0x0000555a194ba7ce in AcceptToMemoryPool (pool=..., state=..., tx=std::shared_ptr (count 1, weak 0) 0x555a1bb819b0, pfMissingInputs=pfMissingInputs@entry=0x0, plTxnReplaced=plTxnReplaced@entry=0x0, bypass_limits=bypass_limits@entry=false, nAbsurdFee=0, test_accept=false) at validation.cpp:1014 #6 0x0000555a19363fbe in AssembleBlock (state=...) at bench/block_assemble.cpp:102 #7 0x0000555a193654d3 in std::_Function_handler<void (benchmark::State&), void (*)(benchmark::State&)>::_M_invoke(std::_Any_data const&, benchmark::State&) (__functor=..., __args#0=...) at /usr/include/c++/5/functional:1871 #8 0x0000555a193501d7 in std::function<void (benchmark::State&)>::operator()(benchmark::State&) const (this=this@entry=0x555a1ba2cda0, __args#0=...) at /usr/include/c++/5/functional:2267 #9 0x0000555a1934ec4c in benchmark::BenchRunner::RunAll (printer=..., num_evals=5, scaling=<optimized out>, filter=..., is_list_only=false) at bench/bench.cpp:121 #10 0x0000555a1934ade9 in main (argc=<optimized out>, argv=<optimized out>) at bench/bench_bitcoin.cpp:92 ``` Tree-SHA512: fdd7b28ff123ccea7a4f334d53f735d0c0f94aa9cc52520c2dd34dca45d78c691af64efcd32366fc472fedffbd79591d2be2bb3bfc4a5186e8712b6b452d64e3
2018-07-30[qa] Add test for too-large wallet output groupsSuhas Daftuar
2018-07-30Acquire cs_main before ATMP call in block_assemble benchJames O'Beirne
Otherwise we fail an assert in sync.cpp:AssertLockHeldInternal.
2018-07-30Merge #13803: doc: add note to contributor docs about warranted PR'sMarcoFalke
db213aa47f doc: add note to contributor docs about warranted PR's (Karl-Johan Alm) Pull request description: Tree-SHA512: 39d4085ec0217c56b0d6a34e95d7b7a18e0373ec25549e6460cb8ef16218a6060f15e539ec2f8cceccd1188d2769e14fc276071f214ceb80db9b08ec5c24ccef
2018-07-30doc: add note to contributor docs about warranted PR'sKarl-Johan Alm
2018-07-30Fix osslsigncode compile issue in gitian-buildChun Kuan Lee
2018-07-30[wallet] correctly limit output group sizeSuhas Daftuar
2018-07-30Merge #13554: Remove unused function argumentsWladimir J. van der Laan
bd9d0690dcc62bb6dc01bda38f63fa965003b8b9 Remove unused argument to WitnessSigOps(...) (practicalswift) d1d7cfebd2c22bdec9ed96d8a389c00d7f898ff8 Remove unused argument to DefaultOptions(...) (practicalswift) 05dbb0c042ba647bf83c15f059c41620e2164337 Remove unused argument to ThreadHTTP(...) (practicalswift) Pull request description: Remove unused function arguments. Tree-SHA512: 9933b6d34ff00a32d2f06a2e542d1225bdfb2c960599f01a8ff0427324b3529db49f19ffdbf54059acbbef5ca87f4c3169e97082169022022cd1e3afa7aaa56d
2018-07-30Merge #13764: contrib: Fix test-security-check fail in Ubuntu 18.04Wladimir J. van der Laan
1e60713a68296a0ff221befb48b2958fbf019ebf contrib: Fix test-security-check fail in Ubuntu 18.04 (Chun Kuan Lee) Pull request description: - Fix test-security-check fail in Ubuntu 18.04. Those flags are enabled by default, so we must specify `-no` to make the executable does 'not' have those attributes. - Drop HIGH_ENTROPY_VA. After update our gitian system to Bionic, the compiler should support HIGH_ENTROPY_VA Tree-SHA512: 78c1f2aae1253ddd52faa1af569b7151a503a217c7ccbe21b8004d8910c45d8a27ff04695eacbdadd7192d2c91c0d59941ca20c651dd2d5052b9999163a11ae4
2018-07-30Report when unknown config file options are ignoredPieter Wuille
2018-07-29chainparams: Update with data from assumed valid chainMarcoFalke
2018-07-29doc: Add historical release notes for 0.16.2Wladimir J. van der Laan
Tree-SHA512: 39601090cbfbc51b00426696c118758953d3eb5e0323e9105a5aabb63ab22eb1b3edbabb541bb7a24869c53624dee3c220fd2c1f3fbe627f8d9d168a23064393
2018-07-29Merge #13732: Depends: Fix Qt's rcc determinismMarcoFalke
6b5506a286 Fix Qt's rcc determinism for depends/gitian (Fuzzbawls) Pull request description: With the update to Qt 5.9 having been merged, Qt's `rcc` tool now embeds a file's last modified time in it's output. Since the build system generates temporary files for all locale translations (`*.qm` files) at build time, the resulting `qrc_bitcoin_locale.cpp` file was always being generated in a non-deterministic way. This is a backport of https://bugreports.qt.io/browse/QTBUG-62511, which is included in Qt versions 5.11+, that allows for an environment variable (`QT_RCC_SOURCE_DATE_OVERRIDE`) to override the behavior described above. This environment variable is in turn set in the gitian descriptors, as that is where determinism is vital for release purposes. Prior to this, the `qt_libbitcoinqt_a-qrc_bitcoin_locale.o` object file (included into `libbitcoinqt.a`) was returning a different `sha256sum` for each and every build, regardless of file contents change, thus breaking determinism in the resulting binaries. This should fix #13731 Tree-SHA512: 174017e41f9afc3950ef54a9419de81577ec900db9aec3c78ccd3d879c6aecaaeb944fde0615b933f43e6ca9d7898a27ec071cdd0b91cb772755a3012de96725
2018-07-29refactor: Avoid locking tx pool cs thriceMarcoFalke
2018-07-29Merge #13774: Return void instead of bool for functions that cannot failMarcoFalke
d78a8dc3e8 Return void instead of bool for functions that cannot fail (practicalswift) Pull request description: Return `void` instead of `bool` for functions that cannot fail: * `CBlockTreeDB::ReadReindexing(...)` * `CChainState::ResetBlockFailureFlags(...)` * `CTxMemPool::addUnchecked(...)` * `CWallet::CommitTransaction(...)` * `CWallet::LoadDestData(...)` * `CWallet::LoadKeyMetadata(...)` * `CWallet::LoadScriptMetadata(...)` * `CWallet::LoadToWallet(...)` * `CWallet::SetHDChain(...)` * `CWallet::SetHDSeed(...)` * `PendingWalletTx::commit(...)` * `RemoveLocal(...)` * `SetMinVersion(...)` * `StartHTTPServer(...)` * `StartRPC(...)` * `TorControlConnection::Disconnect(...)` Some of the functions can fail by throwing. Found by manually inspecting the following candidate functions: ``` $ git grep -E '(^((static|virtual|inline|friend)[^a-z])*[^a-z]*bool [^=]*\(|return true|return false)' -- "*.cpp" "*.h" ``` Tree-SHA512: c0014e045362dbcd1a0cc8f69844e7b8cbae4f538e7632028daeca3a797ac11d8d3d86ebc480bedcb8626df3e96779d592747d52a12556fc49921b114fa0ccc6
2018-07-27Merge #13775: doc: Remove newlines from error messageMarcoFalke
620361fce8 Fix accidental use of the addition assignment operator ("+="). Remove newlines from error message. (practicalswift) Pull request description: Fix accidental use of the addition assignment operator (`+=`). _Note to reviewers:_ Perhaps the `\n`:s should be removed too? Tree-SHA512: 4e8c2dfd6025d78ef9d60522297994829dacc447e6b6782e15c0bdd5dd2daa17ca9a8948bfa9a15be57d9286092356381d7e6747980303852d273eb0df0dd76b
2018-07-27Fix accidental use of the addition assignment operator ("+="). Remove ↵practicalswift
newlines from error message.
2018-07-27Merge #13771: travis: Retry to fetch docker imageMarcoFalke
faaf49147c travis: Retry to fetch docker image (MarcoFalke) Pull request description: Maybe prevents some of these network errors: https://travis-ci.org/bitcoin/bitcoin/jobs/408607854#L419 ? Tree-SHA512: c3837c2391921c16da95e9b288b3156426193578e4e6de83de7d4e7f422eb88415c471c578ec6fed266cb231f49b4af851bf195dce88776c7677c653cf125911
2018-07-27Merge #13711: [bench] Add benchmark for unserialize prevectorMarcoFalke
46340b3337 [bench] Add benchmark for unserialize prevector (Akio Nakamura) Pull request description: This PR adds benchmarks for the unserialization of the prevector. Note: Separated from #12324. Tree-SHA512: c055a283328cc2634c01eb60f26604a8665939bbf77d367b6ba6b4e01e77d4511fab69cc3ddb1e62969adb3c48752ed870f45ceba153eee192302601341e18a7
2018-07-27Return void instead of bool for functions that cannot failpracticalswift
* CBlockTreeDB::ReadReindexing(...) * CChainState::ResetBlockFailureFlags(...) * CTxMemPool::addUnchecked(...) * CWallet::LoadDestData(...) * CWallet::LoadKeyMetadata(...) * CWallet::LoadScriptMetadata(...) * CWallet::LoadToWallet(...) * CWallet::SetHDChain(...) * CWallet::SetHDSeed(...) * RemoveLocal(...) * SetMinVersion(...) * StartHTTPServer(...) * StartRPC(...) * TorControlConnection::Disconnect(...)
2018-07-27make .travis/yml a bit more readableJulian Fleischer
2018-07-27net: Add missing verification of IPv6 address in CNetAddr::GetIn6Addr(...)practicalswift
2018-07-26Merge #13773: wallet: Fix accidental use of the comma operatorMarcoFalke
aecd615ad7 wallet: Fix accidental use of the comma operator (practicalswift) Pull request description: Fix accidental use of the comma operator. Tree-SHA512: 035bf497343996c67a2fe25f367d1a416811b518cb9c7a18ce92355627871614e40db699e869881f941bc51e47fb94022f5ae13e7f01462ef35249b2dd3647a0
2018-07-26wallet: Fix accidental use of the comma operatorpracticalswift
2018-07-26travis: Retry to fetch docker imageMarcoFalke
2018-07-26Merge #13423: [net] Thread safety annotations in net_processingWladimir J. van der Laan
1e3bcd251768baeb95e555d51d2dc787a6b2acee [net_processing] Add thread safety annotations (Jesse Cohen) f393a533bebc088985f94c725b9af881500ba998 Annotate AssertLockHeld() with ASSERT_CAPABILITY() for thread safety analysis (Jesse Cohen) Pull request description: (note that this depends on #13417) This commit fully annotates all globals in net_processing with clang thread safety annotations. Subsequent commits will begin transitioning some of this data away from cs_main into locks that are local to net_processing. Static thread safety analysis should it easier to verify correctness of that process. Tree-SHA512: b47aa410cb9ada21072370176aea9a74c575643fa1ee8cf1d43c8e28675eef17f33e5242ac422f840e8178e132ecb58412034c6334b68f1b57c686df80d4e8e2
2018-07-26Merge #13095: build: update ax_boost_chrono/unit_test_frameworkMarcoFalke
aa85dcf472 build: sync ax_boost_chrono/unit_test (fanquake) Pull request description: [ax_boost_chrono](https://github.com/bitcoin/bitcoin/blob/master/build-aux/m4/ax_boost_chrono.m4) and [ax_boost_unit_test_framework](https://github.com/bitcoin/bitcoin/blob/master/build-aux/m4/ax_boost_unit_test_framework.m4) were updated from upstream in #12678. However some minor upstream changes were missed. Pull those changes in here so these files actually reflect their upstream serial. Tree-SHA512: 71d9ee7a1616d9d36e6f63dedb6687918c3662bde724cdda1fdf3eb039c8973acd166273876a9b2671a7e087149fcf956552f9f2b946e5ee1835d12944c0065d
2018-07-26contrib: Fix test-security-check fail in Ubuntu 18.04Chun Kuan Lee
2018-07-25Fix Qt's rcc determinism for depends/gitianFuzzbawls
Backport of https://bugreports.qt.io/browse/QTBUG-62511 to resolve locale determinism during the build process.
2018-07-25[net_processing] Add thread safety annotationsJesse Cohen
2018-07-25Annotate AssertLockHeld() with ASSERT_CAPABILITY() for thread safety analysisJesse Cohen