Do not search icu when boost is found system wide
Add cmake variables for tests, wallet and bench options
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
fix bech32 prefix
bumped version
improve trie read RAM use, fix a few compiler warnings
open segwit window until Jan 2020
work around Windows ICU build issue
upped the soft fork thresh length to a week
open testnet soft forks window
clarifying segwit to be manually enabled
same for testnet
fix windows test run
unit test round 2
attempting to fix ccache use on darwin
made ccache optional, no longer pulls clang on darwin build
fixing darwin build from Dockerfile
fixed missing nproc on OSX
updated readme to include regtest example, build examples
fix QT unit tests
made -j get passed down, added build.sh
This contains significant rebase / merge / testing work by Naut
<lbrynaut@protonmail.com>, Anthony Fieroni <bvbfan@abv.bg> and Brannon
King <countprimes@gmail.com>.
b5a4abeca2 Add test for GCC bug 90348 (Pieter Wuille)
05fb9f7fbb build with -fstack-reuse=none (MarcoFalke)
Pull request description:
Backports:
* [build with -fstack-reuse=none](https://github.com/bitcoin/bitcoin/pull/15983)
* [Add test for GCC bug 90348](https://github.com/bitcoin/bitcoin/pull/15985)
b5a4abeca2 has been modified to replace the `setup_common.h` with `test_bitcoin.h` include.
ACKs for commit b5a4ab:
Empact:
ACK b5a4abeca2 by review of the linked PRs, the GCC bug and option, and visual inspection/comparison of the ported code
laanwj:
Code review + relevancy for backport ACK b5a4abeca2
Tree-SHA512: cdfdc6e2f208e8dc6a8a86cd7a7ed0f2a6f96604a0663efc970f580f693c1975353341fa8434b23de3cb681e03c6918e3342178752ed595d16a0ec50db913266
fe95f84542 qa: Test .walletlock file is closed (João Barbosa)
2e9e904a5d wallet: Close wallet env lock file (João Barbosa)
22cdb6cf59 wallet: Close dbenv error file db.log (João Barbosa)
f20513bd71 Tests: add unit tests for GetWalletEnv (Pierre Rochard)
85c6263ddb Trivial: add doxygen-compatible comments relating to BerkeleyEnvironment (Pierre Rochard)
f22d02f537 Free BerkeleyEnvironment instances when not in use (Russell Yanofsky)
0a9af2d4cb wallet: Create IsDatabaseLoaded function (Chun Kuan Lee)
7751ea37b6 Refactor: Move m_db pointers into BerkeleyDatabase (Russell Yanofsky)
caf1146b13 wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory. (Chun Kuan Lee)
34da2b7c76 tests: add test case for loading copied wallet twice (Chun Kuan Lee)
8965b6ab47 wallet: Fix duplicate fileid (Chun Kuan Lee)
16e5759455 wallet: Refactor to use WalletLocation (João Barbosa)
21693ff0b7 wallet: Add WalletLocation utility class (João Barbosa)
1c98a758d0 No longer shutdown after encrypting the wallet (Andrew Chow)
435df68c62 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow)
048fda2a66 After encrypting the wallet, reload the database environment (Andrew Chow)
f455979eb1 Add function to close all Db's and reload the databae environment (Andrew Chow)
Pull request description:
This PR backports the following pull requests:
- #12493 [wallet] Reopen CDBEnv after encryption instead of shutting down
- #14350 Add WalletLocation class
- #14320 [bugfix] wallet: Fix duplicate fileid detection
- #14552 wallet: detecting duplicate wallet by comparing the db filename.
- #11911 Free BerkeleyEnvironment instances when not in use
- #15297 wallet: Releases dangling files on BerkeleyEnvironment::Close
Tree-SHA512: 52d759bc4f140ca96e39b37746cc20e786741b08ddc658a87ea77fbcfbb481f1c7b75aba4fc57ca9bca8ca7154e535da1fdd650fd114873655cd85c490c79f14
Instead of adding BerkeleyEnvironment objects permanently to the g_dbenvs map,
use reference counted shared pointers and remove map entries when the last
BerkeleyEnvironment reference goes out of scope.
This change was requested by Matt Corallo <git@bluematt.me> and makes code that
sets up mock databases cleaner. The mock database environment will now go out
of scope and be reset on destruction so there is no need to call
BerkeleyEnvironment::Reset() during wallet construction to clear out prior
state.
This change does affect bitcoin behavior slightly. On startup, instead of same
wallet environments staying open throughout VerifyWallets() and OpenWallets()
calls, VerifyWallets() will open and close an environment once for each wallet,
and OpenWallets() will create its own environment(s) later.
Github-Pull: #11911
Rebased-From: f1f4bb7
This is a refactoring change that doesn't affect behavior. The motivation
behind the change is give BerkeleyEnvironment objects access to
BerkeleyDatabase objects so it will be possible to simplify the duplicate
wallet check and more reliably avoid opening the same databases twice.
Github-Pull: #14552
Rebased-From: c456fbd
Since the database environment is flushed, closed, and reopened during
EncryptWallet, there is no need to shut down the software anymore.
Github-Pull: #12493
Rebased-From: c1dde3a