Commit Graph

19052 Commits

Author SHA1 Message Date
dustinface
8bd3fd32ca contrib|src: Update hard coded seeds (#4152)
* contrib: Update IPs in nodes_main.txt and nodes_test.txt

Mainnet: 1469339
Testnet: 498026

* src: Update static seeds in chainparamsseeds.h
2021-05-14 13:19:04 -05:00
PastaPastaPasta
5f79a02d26 increase BLOCK_CHAIN_SIZE marginally (#4150) 2021-05-14 13:18:52 -05:00
thephez
b7c47b5729 docs: update bips.md for v0.17 (#4149) 2021-05-14 13:17:40 -05:00
UdjinM6
ad7d23c606 instantsend: Partially revert 3987, add more tests for CL vs IS conflicts (#4146)
* tests: Check that CLs override ISes which invalidated non-CLed blocks earlier

* partial revert 3987: Do not mark blocks which conflict with ISes as "conflicting"
2021-05-14 13:17:40 -05:00
UdjinM6
1f2ad2e69a build: Bump relic to 3a23142be0a5510a3aa93cd6c76fc59d3fc732a5 (#4144) 2021-05-14 13:17:40 -05:00
UdjinM6
2640e25e70 Rename bit 6 from "v17" to "dip0020" (#4142) 2021-05-14 13:17:40 -05:00
Kittywhiskers Van Gogh
6c53843b1e Merge #21662: build: update Boost download URL (#4140)
See 36c10b9f4b from https://github.com/bitcoin/bitcoin/pull/21662/commits
2021-05-14 13:17:40 -05:00
UdjinM6
c9ed39ac71 qt: Fix recent txes list not shoing up initially when CJ is disabled (#4136) 2021-05-14 13:17:40 -05:00
UdjinM6
392828bb51 qt: Drop custom migration logic (#4135)
Use OptionsModel::checkAndMigrate() instead and clean up the mess one more time.

Also fixes `-resetguisettings`.
2021-05-14 13:17:40 -05:00
UdjinM6
645e59205e instantsend: Push matching islocks when replying to merkleblock inv in getdata only when all txes are pushed (#4134) 2021-05-14 13:17:40 -05:00
UdjinM6
4b93ea2e9a llmq: Bump llmq leveldb cache size to 8 MiB (#4133) 2021-05-14 13:17:40 -05:00
UdjinM6
286fa1101b evo: Refactor (Add/Update/Remove)MNs to do the job in one go (#4132)
* evo: Refactor (Add/Update/Remove)MNs to do the job in one go

Instead of hashing the value and querying `mnUniquePropertyMap` both 2 or 3 times per property.

Also unify their error messages while at it.

* evo: Align nullValue checks with others in {Add|Delete}UniqueProperty

Co-authored-by: xdustinface <xdustinfacex@gmail.com>
2021-05-14 13:17:40 -05:00
dustinface
b3c6d09b80 qt: Fix some font weight related issues (#4131)
* qt: Add missing -font-family overridden check

* qt: Add missing `QFont::ExtraBold`

* qt: Remove settings depencency from GUIUtil::loadFonts and load earlier

* qt: Modify supportedWeightToIndex

Return -1 in case of failure

* qt: Add GUIUtil::isSupportedWeight

* qt: Make sure there are always supported weights in the settings

* qt: Add "supported defaults" + store weights based on font family

* qt: Use supported defaults in update weight sliders

* qt: Use supported defaults when updating weight sliders

* qt: Fix tests
2021-05-14 13:17:40 -05:00
UdjinM6
b4a0d0120b rpc: Bail out early when no wallet is available in rpcs that require it, even on help <cmd> (#4123) 2021-05-14 13:17:40 -05:00
dustinface
97e75f0147 rpc|llmq|test: Implement verifychainlock (#4119)
* llmq: Make CLSIG_REQUESTID_PREFIX available outside of quorums_chainlocks.cpp

* rpc: Implement `verifychainlock`

* test: Add rpc_verifychainlock.py

* rpc: Fix help text

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-05-14 13:17:40 -05:00
PastaPastaPasta
5f3c580b4d Update copyright (#4115)
* run: `python3 contrib/devtools/copyright_header.py update .`

* bump copyright year
2021-05-14 13:17:39 -05:00
PastaPastaPasta
bc4e6fc538 llmq/rpc: Adjust verify islock, don't err when transaction isn't known locally (#4106)
* llmq/rpc: Adjust verify islock, don't err when transaction isn't known locally

* combine two ifs

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* tests: Verify islocks for unknown txes

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-05-11 16:52:44 -05:00
strophy
6badaaafab Update docker tags (#4103)
* feat: use github actions

* use v2 meta action

* adjust indentation

* try conditional versions

* try to remove flavor

* try different order

* manual suffix

* manual latest

* dev suffix on latest

* raw latest-dev

* typo

* workaround latest bug

* manual latest

* enable build

* add space

* revert Dockerfile changes

* use dashpay target repo
2021-05-11 16:52:16 -05:00
UdjinM6
4a883a7307 rpc: Tweak getaddressbalance to also show spendable and immature balances (#4098)
* rpc: Tweak getaddressbalance to also show spendable and immature balances

* tests: Check `balance_immature` and `balance_spendable`
2021-05-11 16:51:55 -05:00
UdjinM6
68caf300a9
qt: Do not use border-image (#4093)
Fixes weird image corruption on macos
2021-04-11 15:02:10 -04:00
UdjinM6
6d11d0b8fc
qt: Drop unused scrolbars.css (#4092)
It was removed from the build via #3571 and is no longer used in any way
2021-04-11 15:01:35 -04:00
UdjinM6
e28e449ed3
qt: Remove arrows from combobox dropdowns on linux (#4084) 2021-04-11 15:01:07 -04:00
UdjinM6
21372a238a
Bump CI test timeout (#4090)
Some of our tests are too heavy for slow gitlab shared runners
2021-04-10 16:37:29 -04:00
UdjinM6
a1d039a9d8
Update man pages (#4089)
Run `gen-manpages.sh`
2021-04-10 16:37:07 -04:00
UdjinM6
4110aabf71
Fix command line help strings (#4088)
* s/bitcoin-tx/dash-tx/

* Fix regtestLLMQ

* Make `-socketevents` help string OS-independent
2021-04-10 16:36:31 -04:00
UdjinM6
cc21461baf
Bump chainparams for mainnet and testnet (#4087)
* Bump nMinimumChainWork and defaultAssumeValid for mainnet and testnet

* Bump DEPLOYMENT_V17 start and timeout

* Bump chaintxdata

mainnet:
{
  "time": 1617874573,
  "txcount": 34709765,
  "window_final_block_hash": "000000000000000bd7dac80e97279c984a3266145c130ab76021f5bac6d80ff3",
  "window_block_count": 17280,
  "window_tx_count": 822851,
  "window_interval": 2723924,
  "txrate": 0.3020829509193355
}

testnet:
{
  "time": 1617874832,
  "txcount": 4926985,
  "window_final_block_hash": "000000b0940bec06e3245dc787743b3a7f039068878aa1c7c6d5b44c443770bf",
  "window_block_count": 17280,
  "window_tx_count": 26190,
  "window_interval": 2438451,
  "txrate": 0.01074042496650538
}
2021-04-10 16:34:26 -04:00
UdjinM6
a567170dd2
qt: Apply themes globally (#4086)
* qt: Apply themes globally

And do this early

* qt: Fix unexpected prompt icon in dash themes

This has been introduced by removing the `GUIUtil::loadStyleSheet(node,
autoCompleter->popup());` call which triggered a `QEvent::StyleChange`
to propery load the widgets before.

* qt: Move custom css timer out of loadStyleSheet

Co-authored-by: xdustinface <xdustinfacex@gmail.com>
2021-04-10 16:31:58 -04:00
UdjinM6
cab8b22040
qt: Fix theme loading (#4085)
* qt: Always use predefined css filenames instead of guessing them when using custom css dir

* qt: Safer getActiveTheme

* qt: Use correct default theme in dashThemeActive
2021-04-10 16:30:07 -04:00
UdjinM6
6ba3b2f3b8
Merge pull request #4081 from xdustinface/pr-fix-issue-3521
backport: Some wallet related PRs
2021-04-07 00:38:41 +03:00
dustinface
ff30f3fa22
depends: Use 1.0.1 of dashpay/bls-signatures in bls-dash.mk (#4083)
* depends: Use `1.0.1` of `dashpay/bls-signatures` in `bls-dash.mk`

* depends: Update relic to match the commit used in bls-signatures `1.0.1`
2021-04-06 17:43:58 +02:00
dustinface
ba2acda782
wallet: Don't throw in CreateWalletFile (#4079)
To make sure `RemoveWallet` gets called in `error` lambda.
2021-04-06 17:40:02 +02:00
dustinface
2d3ce525c1
llmq: Fix PoSe connection checks (#4058)
* llmq: Fix PoSe connection checks

* llmq: Print badConnection if not connected
2021-04-05 22:26:22 +03:00
MarcoFalke
773e39e1e5 Merge #13506: Qt: load wallet in UI after possible init aborts
3a03d2a33f Qt: load wallet in UI after possible init aborts (Jonas Schnelli)

Pull request description:

  Bug was introduced in #13063 (80b4910f7d87983f50047074c3c2397b0a5c4e92) where #13097 made possible to get "hit" by that bug. Reported by @ken2812221 (https://github.com/bitcoin/bitcoin/pull/13097#issuecomment-398445833).

  Dynamically loading a wallet informs the UI (and therefore makes the instance accessible) about the new wallet before all possible error cases where handled.

  Easy to reproduce by starting `bitcoin-qt --regtest --nowallet -usehd=0` then in the console enter `loadwallet wallet.dat`.

  This PR will make sure only correctly initialised (loaded) wallets will appear in the UI.

Tree-SHA512: 3139545e852d53b117182b579f45259c198d1c25c1a6fa4e0108f942d45f6fe2691e6bfcbbae2e18c33ad0174a520f379c17867b1eb87f950d830a5f519fec4f
2021-04-05 03:31:50 +02:00
Wladimir J. van der Laan
4666e2c20a Merge #13275: Qt: use [default wallet] as name for wallet with no name
2885c131b6b8ec1140e02ed8f2933c2ffbf41fd1 Qt: use [default wallet] as name for wallet with no name (Jonas Schnelli)

Pull request description:

  Loading a wallet from a state where only the default wallet was active results in using an empty string for the initial/default wallet name.

  This is a GUI only quick-fix that overrides wallet(s) with name "" to "[default wallet]". Does not affect `getwalletinfo` or `listwallets`.

  Also, unsure if it should be fixed at a deeper level and if – instead of [default wallet] – it should use `wallet.dat` (the filename of the default wallet).

Tree-SHA512: 1d50dbb200b23df5ac53ce15aeb6453af4da354d6e6e53fe33ff075b477493254d6028b6d3569a7804b1aa616cb9a988a53de818937e37cdcb19cb70a90e2a88
2021-04-05 03:31:50 +02:00
Wladimir J. van der Laan
5db88d27cb Merge #14552: wallet: detecting duplicate wallet by comparing the db filename.
591203149f1700f594f781862e88cbbfe83d8d37 wallet: Create IsDatabaseLoaded function (Chun Kuan Lee)
15c93f075a881deb3ad7b1dd8a4516a9b06e5e11 wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory. (Chun Kuan Lee)
c456fbd8dfcc748e5ec9feaa57ec0f2900f99cde Refactor: Move m_db pointers into BerkeleyDatabase (Russell Yanofsky)

Pull request description:

  Fix #14538

  Fix crash attempting to load the same wallet with different path strings that resolve to the same absolute path. The primary check which prevents loading the same wallet twice is:

  6b8d0a2164/src/wallet/db.cpp (L44)

  But this check is skipped if both wallet paths resolve to the same absolute path, due to caching here:

  6b8d0a2164/src/wallet/db.cpp (L467)

  Meanwhile a secondary check for duplicate wallets is not reliable because it based on a literal comparison, instead of comparison using absolute paths:

  6b8d0a2164/src/wallet/wallet.cpp (L3853)

  This PR fixes the latter check to compare the absolute path of a new wallet being loaded to absolute paths of wallets already loaded, so there should no longer be any way to load the same wallet more than once.

Tree-SHA512: 2fa01811c160b57be3b76c6b4983556a04bbce71a3f8202429987ec020664a062e897deedcd9248bc04e9baaa2fc7b464e2595dcaeff2af0818387bf1fcdbf6f
2021-04-05 03:31:50 +02:00
Wladimir J. van der Laan
d4ac6d62a9 Merge #14350: Add WalletLocation class
65f3672f3b82a6fa30e5171f85bc8d8a29e0797e wallet: Refactor to use WalletLocation (João Barbosa)
01a4c095c87500650663341533f000c6b613e9da wallet: Add WalletLocation utility class (João Barbosa)

Pull request description:

  Advantages of this change:
   - avoid resolving wallet absolute path and name repetitively and in multiple places;
   - avoid calling `GetWalletDir` in multiple places;
   - extract these details from the actual wallet implementation.

  The `WalletLocation` class can be a way to represent a wallet not yet loaded that exists in the wallet directory.

Tree-SHA512: 71ec09786e038499710e7acafe92d66ab9883fc894964e267443ae9c10a6872a10995c3987a169c436a4e793dae96b28fb97bd7f78483c4b72ac930fa23f8686
2021-04-05 03:31:50 +02:00
Wladimir J. van der Laan
86357cc55f Merge #14320: [bugfix] wallet: Fix duplicate fileid detection
4ea77320c5f0b275876be41ff530bb328ba0cb87 tests: add test case for loading copied wallet twice (Chun Kuan Lee)
2d796faf62095e83f74337c26e7e1a8c3957cf3c wallet: Fix duplicate fileid (Chun Kuan Lee)

Pull request description:

  The implementation in current master can not detect if the file ID is duplicate with flushed `BerkeleyEnvironment`. This PR would store the file ID in a global variable `g_fileids` and release it when the `BerkeleyDatabase` close. So it won't have to rely on a `Db*`.

  Fix #14304

Tree-SHA512: 0632254b696bb4c671b5e2e5781e9012df54ba3c6ab0f919d9f6d31f374d3b0f8bd968b90b537884ac8c3d2906afdd58c2ce258666263464c7dbd636960b0e8f
2021-04-05 03:31:50 +02:00
Wladimir J. van der Laan
5179599526 Merge #12493: [wallet] Reopen CDBEnv after encryption instead of shutting down
c1dde3a949b36ce9c2155777b3fa1372e7ed97d8 No longer shutdown after encrypting the wallet (Andrew Chow)
d7637c5a3f1d62922594cdfb6272e30dacf60ce9 After encrypting the wallet, reload the database environment (Andrew Chow)
5d296ac810755dc47f105eb95b52b7e2bcb8aea8 Add function to close all Db's and reload the databae environment (Andrew Chow)
a769461d5e37ddcb771ae836254fdc69177a28c4 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow)

Pull request description:

  This is the replacement for #11678 which implements @ryanofsky's [suggestion](https://github.com/bitcoin/bitcoin/pull/11678#pullrequestreview-76464511).

  Shutting down the software was to prevent the BDB environment from writing unencrypted private keys to disk in the database log files, as was noted [here](https://bitcointalk.org/index.php?topic=51474.msg616068#msg616068). This PR replaces the shutdown behavior with a CDBEnv flush, close, and reopen which achieves the same effect: everything is cleanly flushed and closed, the log files are removed, and then the environment reopened to continue normal operation.

  To ensure that no unencrypted private keys are in the log files after encrypting the wallet, I wrote [this script](https://gist.github.com/achow101/7f7143e6c3d3fdc034d3470e72823e9d) to pull private keys from the original wallet file and searches for these keys in the log files (note that you will have to change your file paths to make it work on your own machine).

  As for concerns about private keys being written to slack space or being kept in memory, these behaviors no longer exist after the original wallet encryption PR and the shutting down solution from 2011.

  cc @ryanofsky

Tree-SHA512: 34b894283b0677a873d06dee46dff8424dec85a2973009ac9b84bcf3d22d05f227c494168c395219d9aee3178e420cf70d4b3eeacc9785aa86b6015d25758e75
2021-04-05 03:31:50 +02:00
Jonas Schnelli
75d375acb7 Merge #13111: Add unloadwallet RPC
fe65bdec2 bugfix: Delete walletView in WalletFrame::removeWallet (João Barbosa)
0b82bac76 bugfix: Remove dangling wallet env instance (João Barbosa)
0ee77b207 ui: Support wallets unloaded dynamically (João Barbosa)
9f9b50d5f doc: Add release notes for unloadwallet RPC (João Barbosa)
ccbf7ae74 test: Wallet methods are disabled when no wallet is loaded (João Barbosa)
4940a20a4 test: Add functional tests for unloadwallet RPC (João Barbosa)
6608c369b rpc: Add unloadwallet RPC (João Barbosa)
537efe19e rpc: Extract GetWalletNameFromJSONRPCRequest from GetWalletForJSONRPCRequest (João Barbosa)

Pull request description:

  This patch adds wallet unload feature via RPC. It also adds UI support for unloaded wallets.

Tree-SHA512: 7c7f9f32f7a2266d2df574aa6b95f993c3dc82736f93304562122beb8756fb28cd22d03866b48f493c747441f22d30e196b098dec435cc25e035633f090351ea
2021-04-05 03:31:50 +02:00
UdjinM6
0b7d7a084a
net: Use Intra-Quorum Relay connections for other messages too (#4021)
* net: Use Intra-Quorum Relay connections for other messages too

Make intra-quorum data delivery more robust.

* Apply review suggestions
2021-04-03 20:24:03 +03:00
UdjinM6
6773d0285e
Translations 202103 (#4046)
* qt: Add missing button translation

* `make translate`

* ru

* fi

* it, pl

* de, fr, nl, pt, sk, th, tr

* 90%+: ar, es, ko, zh_CN, zh_TW
2021-04-03 20:19:14 +03:00
UdjinM6
a78208ade6
evo: Ensure special tx processing is aligned with UTXOs processing in ConnectBlock and mempool (#4015)
* evo: Pass CCoinsViewCache instead of relying on pcoinsTip

This ensures that we are on the same page with ConnectBlock etc.

* evo: Process special txes before updating UTXOs

This ensures consistency between the way we do it in blocks and in mempool

* test: Verify db consistency after MN collateral is spent via ProTx that updates the same MN

* Make stuff const

* more constness

Co-authored-by: pasta <pasta@dashboost.org>
2021-04-03 20:18:50 +03:00
PastaPastaPasta
a72acc113d
Move net.h include from quorums_*.h into quorums.cpp (#4075)
* Remove net include from quorums-util.h

* circular depends -1

* include timedata.h in quorums_debug.cpp

* fix circular depends linter
2021-04-02 03:19:34 +02:00
dustinface
a3cc51118e
Merge #13063: Use shared pointer to retain wallet instance (#4076)
80b4910f7d87983f50047074c3c2397b0a5c4e92 wallet: Use shared pointer to retain wallet instance (João Barbosa)

Pull request description:

  Currently there are 3 places where it makes sense to retain a wallet shared pointer:
   - `vpwallets`;
   - `interfaces::Wallet` interface instance - used by the UI;
   - wallet RPC functions - given by `GetWalletForJSONRPCRequest`.

  The way it is now it is possible to have, for instance, listunspent RPC and in parallel unload the wallet (once #13111 is merged) without blocking. Once the RPC finishes, the shared pointer will release the wallet.

  It is also possible to get all existing wallets without blocking because the caller keeps a local list of shared pointers.

  This is mostly relevant for wallet unloading.

  This PR replaces #11402.

Tree-SHA512: b7e37c7e1ab56626085afe2d40b1628e8d4f0dbda08df01b7e618ecd2d894ce9b83d4219443f444ba889096286eff002f163cb0a48f37063b62e9ba4ccfa6cce

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2021-04-01 13:28:43 -04:00
PastaPastaPasta
7e71a54e54
trivial: various include adjustments (#4074)
* remove unused includes in validation.cpp

circular depends -2

* use more specific include in quorums.h

circular depends -1

* Remove unneeded include from quorums.cpp

circular depends -1
2021-03-31 16:02:22 -04:00
PastaPastaPasta
4a84c99bad
trivial: Remove unneeded include from quorums_instantsend.cpp (#4073)
* Remove unneeded include from quorums_instantsend.cpp

Signed-off-by: pasta <pasta@dashboost.org>

* circular depends -6
2021-03-31 16:01:59 -04:00
UdjinM6
6770ba86ac
llmq: Implement GetAllQuorumMembers cache (#4072) 2021-03-29 14:11:26 -04:00
UdjinM6
cb59f13e1b
qt: Delete wallet views when wallets are removed in removeAllWallets (#4070) 2021-03-29 14:10:58 -04:00
dustinface
174f961d18
llmq: Refactor EnsureQuorumConnections (#4071)
* llmq: Return bool in EnsureQuorumConnections

* llmq: Call RemoveMasternodeQuorumNodes directly

Instead of removing the good nodes from the vector in first loop and 
call it with the bad ones in the second loop.

* refactor: Introduce and use CLLMQUtils::IsWatchQuorumsEnabled

* llmq: Move IsWatchQuorumsEnabled into EnsureQuorumConnections
2021-03-29 14:09:09 -04:00
dustinface
a3fa940b4d
test: Use reset_probe_timeouts and drop its sync_all call (#4063)
* test: Make use of reset_probe_timeouts in feature_llmq_simplepose.py

* test: Drop sync_all in reset_probe_timeouts

Seems like that not required here
2021-03-29 14:04:35 -04:00