Commit Graph

21941 Commits

Author SHA1 Message Date
MarcoFalke
3c90d26bab Merge #15777: [docs] Add doxygen comments for keypool classes
f1a77b0c51 [docs] Add doxygen comment for CReserveKey (John Newbery)
37796b2dd4 [docs] Add doxygen comment for CKeyPool (John Newbery)
ef2d515af3 [wallet] move-only: move CReserveKey to be next to CKeyPool (John Newbery)

Pull request description:

  Docs/move-only

  Adds doxygen comments for the CKeyPool and CReserveKey objects. The way these work is pretty confusing and it's easy to overlook details (eg https://github.com/bitcoin/bitcoin/pull/15557#discussion_r271956393).

  These are on the verbose side, but I think too much commenting is better than not enough. Happy to take feedback on what's an appropriate level.

ACKs for commit f1a77b:
  jonatack:
    Thanks, John. Re-ACK f1a77b0c5176306ca9f6f30211e32d3502ed4281, doc-only changes with respect to previous review.
  jb55:
    ACK f1a77b0c5176306ca9f6f30211e32d3502ed4281

Tree-SHA512: 8bc97c7029cd2e8d9bfd2d2144eeff73474c71eda5a9d10817e1578ca0b70da677252037d83143faaff1808e2193408a21a8a89d36049eac77fd313990f0b67b
2022-05-17 12:57:09 -04:00
PastaPastaPasta
1d39df64de
Merge pull request #4765 from kittywhiskers/bdb2
backport: merge bitcoin#16963...19457: berkeley db refactoring (part 2)
2022-05-17 11:00:19 -05:00
Wladimir J. van der Laan
c3794c9e86 Merge #15510: [rpc] deriveaddresses: add range to CRPCConvertParam
9586157c0f9c12d3cfa55926ccc6c022324fa60a [rpc] deriveaddresses: add range to CRPCConvertParam (Sjors Provoost)

Pull request description:

  Missing from #15497

Tree-SHA512: 469de3f896bcd3435a480685e5257c51ba895df0311329d5e5a3cb2e1894e5358324473d998ea45221776aefe8836a7af6c4f12198a36d2d10bf6761991cfd60
2022-05-17 01:21:37 -04:00
Wladimir J. van der Laan
bbf79db207 Merge #17091: tests: Add test for loadblock option and linearize scripts
89339d14607434b33cfa343dc75877b62b1dfe0e tests: Add test for loadblock option (Fabian Jahr)

Pull request description:

  Fixes #17019

  Was initially part of #17044 but as the test got larger it made sense to split it into its own commit as suggested in #17019 .

  This is testing the `-loadblock` option by using the scripts in `contrib/linearize` to generate a `bootstrap.dat` file and starting a disconnected node with it. So it is also testing the linearize scripts which were untested before and needed to be made available for the CI environment, hence they are added to `DIST_CONTRIB` in `Makefile.am`.

ACKs for top commit:
  laanwj:
    ACK 89339d14607434b33cfa343dc75877b62b1dfe0e

Tree-SHA512: aede0cd6e8b21194973f3633bc07fa2672d66a6f85dfe6a57cee2bb269a65d19ea49d5f9ed7914a173b3847c76e70257aa865f44bde170c1999d9655b4862d1c
2022-05-17 01:20:21 -04:00
MarcoFalke
abee458dee Merge #17209: tests: Remove no longer needed UBSan suppressions (issues fixed). Add documentation.
0616138a0797cf68ad869906c36cf0767e20b313 tests: Remove no longer needed UBSan suppressions (issues fixed). Add documentation. (practicalswift)

Pull request description:

  Remove no longer needed UBSan suppressions (issues fixed). Add documentation.

  This PR is the CI-only subset of #17208 (which touches code).

  From a fuzzing perspective it would be really nice to be able to run UBSan with as few suppressions as possible :)

Top commit has no ACKs.

Tree-SHA512: a926ab3e80e12a805af110fbff470cdc61ef4db536919a5b8896ea8b70f761114a52d9b1c0f48b11c1d48338351bf2e003e01ce60c613612f26ba298dcc29cd9
2022-05-17 01:20:21 -04:00
Wladimir J. van der Laan
530fff5f59 Merge #17176: ci: Cleanup macOS runs
fa677d1801fb9153a95a1fc9855fd5f21fc440c0 ci: Remove redundant check for TRAVIS_OS_NAME (MarcoFalke)
fadccb263baf6b8694f750623add42f966e423a3 doc: Document that GNU tools are required for linters (MarcoFalke)
4444704ca9f66cdc24ab2d444941354db1dfed06 ci: Cleanup macOS runs (MarcoFalke)

Pull request description:

  * Remove a commented out cleanup task in `before_cache`
  * Remove the linter run on macOS, and document that GNU tools are required to run the linters

ACKs for top commit:
  Sjors:
    Code review ACK fa677d1801fb9153a95a1fc9855fd5f21fc440c0
  laanwj:
    ACK fa677d1801fb9153a95a1fc9855fd5f21fc440c0
  ryanofsky:
    Code review ACK fa677d1801fb9153a95a1fc9855fd5f21fc440c0 for new third commit replacing TRAVIS_OS_NAME check with NO_DEPENDS setting

Tree-SHA512: 9122a63bbe7887d9e379123152ea4ba44324cb18033b9e6b45bfdb1af665c10ea598564b9fcd57330d208a08e4696e41b4d6175f05f0843a3a76530da114f8c6
2022-05-17 01:20:21 -04:00
MarcoFalke
50fe493892 Merge #17177: doc: Describe log files + consistent paths in test READMEs
9576614d2d91ca946d164dfffca441f8bcbd6e2c doc: Describe log files + consistent paths in test READMEs (Martin Erlandsson)

Pull request description:

  picks up #15830

  I saw this was almost ready to merge but the test logging part was not 100% correct. I reworked that part, the rest is the same.

ACKs for top commit:
  GChuf:
    ACK 9576614d2d91ca946d164dfffca441f8bcbd6e2c

Tree-SHA512: 3de7f1b0a1b0419df6e7b55964d00e715b6cb7874b1849ad6f120597610d7df4182c4b61b9c9691ce04f4e392ed3caead4c623374be2066ac31319e702d45d09
2022-05-17 01:20:21 -04:00
MarcoFalke
5ab7f9074f Merge #17108: test: fix "tx-size-small" errors after default address change
32d665c2657793c8b2cc7248d26d80a940acfe20 test: fix "tx-size-small" errors after default address change (Sebastian Falbesoner)

Pull request description:

  Addresses #17043, affects RBF and BIP68 functional tests.

  The "tx-size-small" policy rule rejects transactions with a non-witness size of
  smaller than 82 bytes (see `src/validation.cpp:MemPoolAccept::PreChecks(...)`),
  which corresponds to a transaction with 1 segwit input and 1 P2WPKH output.

  Through the default address change, the created test transactions have segwit
  inputs now and sending to short scriptPubKeys might violate this rule. By
  bumping the dummy scriptPubKey size to 22 bytes (= the size of a P2WPKH
  scriptPubKey), on all occurences the problem is solved.

  The dummy scriptPubKey has the format:
      ```21 <21-byte-long string of 'a' or 1s>```

ACKs for top commit:
  instagibbs:
    reACK 32d665c265 just s/Bytes/bytes/
  MarcoFalke:
    ACK 32d665c2657793c8b2cc7248d26d80a940acfe20

Tree-SHA512: 80e0386ff3c3f462901ba5c1e5ef2cbf095d9c0a40c8c3cfeacd4a3ab676afe744aa95b9eed77b4b3eec88bed930b33aa718117ed0977f6374e858a2f3bd5c57
2022-05-17 01:20:21 -04:00
fanquake
b71e6fd8b6 Merge #17081: doc: fix Makefile target in benchmarking.md
a54ab2104c82c41d17ca603999a9a03161eefc9e [doc] fix Makefile target in benchmarking.md (Sebastian Falbesoner)

Pull request description:

  While the resulting binary is called `bench_bitcoin`, the Makefile target is
  named `bitcoin_bench` (see `src/Makefile.bench.include`)

ACKs for top commit:
  fanquake:
    ACK a54ab2104c82c41d17ca603999a9a03161eefc9e - Tested on macOS and Debian 9.9, as this only [seemed to work there](https://github.com/bitcoin/bitcoin/pull/16536#discussion_r310366868) when these docs were added.

Tree-SHA512: bcf8d48ccba488f0533111a3be57ddc6c948b3a38beed129635e1c7e0b4608bc9ddf625e8469606bb31d4cedf3341c443564a197d6b1ab5268a9ed44ed5018a3
2022-05-17 01:20:21 -04:00
UdjinM6
56898d2085
feat(rpc/wallet): allow skipping/forcing blockchain rescan on upgradetohd (#4822)
* wallet: allow skipping/forcing blockchain rescan on upgradetohd

* tests: test new use cases in wallet_upgradetohd.py

* add release notes
2022-05-17 01:51:54 +03:00
Kittywhiskers Van Gogh
c7f33f3d06 merge bitcoin#19261: Drop ::HasWallets() 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
cf92976c2b partial bitcoin#15934: Merge settings one place instead of five places
Excludes 7f40528cd50fc43ac0bd3e785de24d661adddb7a
2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
6d8839473c merge bitcoin#20255: Add Assume() identity function 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
ff4dc02ac6 merge bitcoin#19491: Make Assert work with any value 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
e5897baf30 partial bitcoin#19277: Add Assert identity function'
Excludes fa34587f1c811d99200453b0936219c473f514b0 and fab80fef61ddd4afeff6e497c7e76bffcd05e8a4
2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
d9c9e4764a merge bitcoin#17999: Add ChainClient setMockTime, getWallets methods 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
bddd07bf72 merge bitcoin#19011: Reduce cs_main lock accumulation during GUI startup 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
b87d125f54 merge bitcoin#19300: Handle concurrent wallet loading 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
029cbfc261 merge bitcoin#16963: Fix unique_ptr usage in boost::signals2 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
01d00f3227 merge bitcoin#19671: Remove -zapwallettxes 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
b3be463cf1 merge bitcoin#19457: Cleanup wallettool salvage and walletdb extraneous declarations 2022-05-13 18:04:32 +05:30
Kittywhiskers Van Gogh
edc27a8404 merge bitcoin#19335: Cleanup and separate BerkeleyDatabase and BerkeleyBatch 2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
6267fa8427 partial bitcoin#18923: Never schedule MaybeCompactWalletDB when -flushwallet is off
Excludes faf8401c195f52470d1ca6e2c94cb3820e57ee41 and fa28a618972911239a119248ab1194702a5c36d8
2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
71bb9def32 merge bitcoin#16923: Handle duplicate fileid exception 2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
e9e5ba5daf merge bitcoin#19085: clean up PeriodicFlush() 2022-05-13 18:04:31 +05:30
PastaPastaPasta
d561e3c726
refactor: misc bls/llmq refactoring (#4834)
* refactor: misc clang-tidy refactorings

* refactor(dkgsession): misc clang-tidy refactoring

* refactor: adjust blockprocessor.*

* refactor: adjust CChainLockSig api

* avoid function calls inside of assert
2022-05-13 00:11:39 +03:00
UdjinM6
b582524939
fix(coinjoin): CreateDenominated crash (#4838)
We overshoot (intentionally) and nBalanceToDenominate can become negative because of that. It was fine with raw loops but irange throws an exception here.
2022-05-12 23:32:23 +03:00
Munkybooty
e95655cd9f
refactor(rpc): Mechanical/Manual RPC backports (#4734)
* rpc: switch to using RPCHelpMan.Check()

* rpc: Auto-format RPCResult

* rpc: Auto-format RPCResult (rpcdump.cpp)

* rpc: Auto-format RPCResult (rpcwallet.cpp)

* Fix Description String method and typo

* Fix code breaking semicolons

* Attempt to fix misc build errors

* Fixes for get wallet info

* fixes and missing parts of 16240, 17809, 19386

TODO: convert `RPCResults{}`

* Revert "rpc: restore legacy RPCResult support"

This reverts commit c014b7df92.

* revert e401d6e1aa

to fix test crashes

* adjust dash subcommands to be compatible

* trivial fixes rpc: Auto-format RPCResult

* fix `quorum rotationinfo`

* various fixes

Co-authored-by: Karl-Johan Alm <karljohan-alm@garage.co.jp>
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-05-12 15:29:17 -05:00
UdjinM6
ebb5b5bcaa
Merge pull request #4836 from PastaPastaPasta/develop-trivial-2022-05-11
backport: bitcoin#22685: clientversion: No suffix #if CLIENT_VERS…
2022-05-12 23:26:58 +03:00
thephez
61e33c09be
chore: switch to conventional commit style for PR titles (#4835)
* docs: indicate conventional commit syntax should be used for PRs

* feat: add config file for semantic PR GH app

Requires installation of https://probot.github.io/apps/semantic-pull-requests/

* docs: mention added backport type
2022-05-12 23:25:36 +03:00
UdjinM6
9e9ccc6b92
fix(qt): include upgradetohd into "no history" list (#4832) 2022-05-12 23:12:36 +03:00
UdjinM6
eccceaebb1
wallet: Fix wallet autobackup on start (#4831)
19324 follow-up (merged via 4714) - `AutoBackupWallet()` call was unreachable.

NOTE: It's safe to call it after `Verify()` because 18918 backport moved salvage logic out of `Verify*()`.
2022-05-12 23:11:50 +03:00
fanquake
8504c5a139 Merge bitcoin/bitcoin#22685: clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE
5100deee5822795d385570a380d3c117d05d851d clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE (Carl Dong)

Pull request description:

  ```
  Previously, building from a release source tarball would result in a
  version string like v22.0.0-<commithash>, but we expect just v22.0.0.
  This commit solves this problem.

  Also use PACKAGE_VERSION instead of reconstructing it.
  ```

  Fixes the underlying problem of #22623

ACKs for top commit:
  achow101:
    ACK 5100deee5822795d385570a380d3c117d05d851d
  fanquake:
    ACK 5100deee5822795d385570a380d3c117d05d851d - tested that prior the output of `src/bitcoind -version` on the `22.x` branch was `Bitcoin Core version v22.0.0-d3bd5410f64e`, and with this commit cherry-picked it is `Bitcoin Core version v22.0.0rc2`.

Tree-SHA512: 78705e285ff1271d5012e888837049044db4d11d66c252c6b964685892ef078c56fe122f12daa87c71532f4352f695d1e88a228665adcd7afe3ddce3f209b49f
2022-05-11 11:03:39 -05:00
Kittywhiskers Van Gogh
4ecc49fb73
trivial: bump immer to 9cb6a5a, fix irange to work on c++20 (#4827)
* depends: bump immer from 0.6.2 to 0.7.0 (9cb6a5a)

* util: ensure irange operator lhs and rhs are both const types
2022-05-09 09:49:33 -05:00
PastaPastaPasta
fc9a6f8ff6
build: enhance CMakeLists to dynamically detect kernel version to utilize (#4828) 2022-05-09 14:13:49 +03:00
MarcoFalke
980e7b4f7c Merge #14802: rpc: faster getblockstats using BlockUndo data
d20d756752 rpc: faster getblockstats using BlockUndo data (Felix Weis)

Pull request description:

  Using undo data for a block (rev?????.dat) we can retrieve value information about prevouts and calculate the final transaction fee (rate). This approach is about 80x faster, drops the requirement for `-txindex`, and works for all non-pruned blocks.

  ```
  # 2018-11-25T16:36:19Z Bitcoin Core version v0.17.99.0-edc715240-dirty (release build)
  seq 550100 550200  0.00s user 0.00s system 62% cpu 0.004 total
  xargs -n1 src/bitcoin-cli getblockstats  0.21s user 0.19s system 17% cpu 2.302 total

  # 2018-11-25T16:39:17Z Bitcoin Core version v0.17.0 (release build)
  seq 550100 550200  0.00s user 0.00s system 87% cpu 0.002 total
  xargs -n1 src/bitcoin-cli getblockstats  0.24s user 0.22s system 0% cpu 3:19.42 total
  ```

ACKs for commit d20d75:
  MarcoFalke:
    re-utACK d20d7567528e216badb8475df298bb3cec008985

Tree-SHA512: 5babc3eb8d2fee2cb23dc12f522656b80737a540cbf2b13390a8f388304c46c064cca76f896b46a6e2abae8cc582d28e1ab20dd4bb17ad6142f20630c2d30c54
2022-05-06 12:20:56 -04:00
UdjinM6
a356832882
Merge pull request #4826 from UdjinM6/de_generate
backport 14468, 14631, 15492
2022-05-02 22:05:53 +03:00
Kittywhiskers Van Gogh
b47d4843bf
merge bitcoin#22646: tighter Univalue integration, remove --with-system-univalue (#4823)
* merge bitcoin#22646: tighter Univalue integration, remove `--with-system-univalue`

* masternode: add missing header in meta.cpp
2022-05-02 10:31:46 -05:00
Kittywhiskers Van Gogh
c4fe4e3db6
docs: release notes for dash#4023, 4704, 4756 (#4825)
* docs: add release notes for dash#4023

* docs: add release notes for dash#4704

* docs: add release notes for dash#4756
2022-05-01 23:41:31 +03:00
UdjinM6
6ebc5b5df3
mnsync: drop regtest-only "quick sync" mode (#4824) 2022-05-01 23:40:30 +03:00
UdjinM6
e743af559f
fix tool_wallet.py 2022-05-01 22:52:30 +03:00
MarcoFalke
0bbd8bfab6
Merge #14631: [tests] Move deterministic address import to setup_nodes
3fd7e76f6d [tests] Move deterministic address import to setup_nodes (John Newbery)

Pull request description:

  This requires a small changes to a few tests, but means that
  deterministic addresses will always be imported (unless setup_nodes
  behaviour is explicitly overridden).

  Tidies up the way we import deterministic addresses, requested in review comment here: https://github.com/bitcoin/bitcoin/pull/14468#discussion_r225594586.

Tree-SHA512: 2b32edf500e286c463398487ab1153116a1dc90f64a53614716373311abdc83d8a251fdd8f42d1146b56e308664deaf62952113f66e98bc37f23968096d1a961
2022-05-01 22:52:30 +03:00
MarcoFalke
8cac4ed930
Merge #15492: [rpc] remove deprecated generate method
07cae5287c [wallet] remove unused GetScriptForMining (Sjors Provoost)
8bb3e4c487 [rpc] remove deprecated generate method (Sjors Provoost)

Pull request description:

  As announced in v0.18, the wallet generate rpc method is deprecated and will be fully removed in v0.19.

  Clients should transition to using the node rpc method `generatetoaddress`.

Tree-SHA512: 9e5e913b59f3e18440b2b7b356124c7b87ad19f81a1ab6ada06a6c396b84e734895465f569296f1ba8c12abf74863bab5fd77765c9e806c239713aa83a59485f
2022-05-01 20:52:10 +03:00
MarcoFalke
e4f621fd57
merge #14468: [wallet] Deprecate generate RPC method
ab9aca2bdf [rpc] add 'getnewaddress' hint to 'generatetoaddress' help text. (John Newbery)
c9f02955b2 [wallet] Deprecate the generate RPC method (John Newbery)
aab81720de [tests] Add generate method to TestNode (John Newbery)
c269209336 [tests] Small fixups before deprecating generate (John Newbery)

Pull request description:

  Deprecates the `generate` RPC method.

  For concept discussion, see #14299.

  Fixes #14299.

Tree-SHA512: 16a3b8b742932e4f0476c06b23de07a34d9d215b41d9272c1c9d1e39966b0c2406f17c5ab3cc568947620c08171ebe5eb74fd7ed4b62151363e305ee2937cc80
2022-05-01 20:51:43 +03:00
UdjinM6
29cdb4adb0
wallet: fix metadata updates on HD derivation (#4819)
* wallet: Use temporary structure to update metadata correctly while generating new hd keys

* wallet: Make sure to never update an already existing key_origin while deriving hd keys
2022-04-30 23:33:45 +03:00
UdjinM6
208fa62acb
Merge pull request #4818 from PastaPastaPasta/develop-trivial-2022-04-28
backport trivial 2022 04 28
2022-04-28 23:24:27 +03:00
UdjinM6
57d31c0f97
Merge #9572: Skip witness sighash cache for non-segwit transactions (#4814)
0da49b5 Skip precompute sighash for transactions without witness (Johnson Lau)

Pull request description:

  This saves unnecessary hash caching for non-segwit transactions, but I am not sure if the difference is noticeable.

Tree-SHA512: 5cd733a729a52a45781510b3572b26e76837a94155caa14311c6d23a27a12e9613ff278dfc2592e21f640202782f22c5ad00fca85c4de5efacaa617c48ccb08d

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2022-04-28 20:56:40 +03:00
strophy
ff2f768114
ci: fix docker context (#4816) 2022-04-28 11:35:50 -05:00
MarcoFalke
0277d06767 Merge bitcoin/bitcoin#23761: build: use __SIZEOF_INT128__ for checking __int128 availability
e9440aeb5cad98fea9971f5126461e0a2b30ab54 build: use __SIZEOF_INT128__ for checking __int128 availability (fanquake)

Pull request description:

  We already use this in the blockfilter code,

  bf66e258a8/src/blockfilter.cpp (L34-L36)

  so not sure we need to maintain two different ways of testing
  for the same functionality. Consolidate on testing for `__SIZEOF_INT128__`,
  which we already use, is supported by the compilers we care about, and is
  also used by libsecp256k1.

ACKs for top commit:
  sipa:
    utACK e9440aeb5cad98fea9971f5126461e0a2b30ab54
  Zero-1729:
    crACK e9440aeb5cad98fea9971f5126461e0a2b30ab54

Tree-SHA512: 8aeef1734486a863b5091123bb5f9ba8868b1e2b4b35114586e3eb5862a38d4a1518ed069f37f41cb5e5ce2f6c87d95671996366d5ee990e0c90f268a8978ba3
2022-04-28 10:59:05 -05:00
fanquake
ce1ab9e7aa Merge bitcoin/bitcoin#22820: build, qt: Fix typo in QtInputSupport check
e251726affe97da745362c82567c2377ceb07d21 build, qt: Fix typo in QtInputSupport check (Hennadii Stepanov)

Pull request description:

  This typo slipped in fecb3723b63d1441f1f786352e9ef330c1ac57a5 (#21565).

  I apologize for that as a reviewer of #21565.

ACKs for top commit:
  fanquake:
    ACK e251726affe97da745362c82567c2377ceb07d21

Tree-SHA512: c14d603ed5a9b7e4b6503bfb93e66b800d5a107f21a8375c6f98465ef937e3e55b9c4fc160407c7e3ee402b495c5820ebb35ec6cb92956c1ee4092415635b915
2022-04-28 10:59:05 -05:00