Commit Graph

21179 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
d23a3c8af8 merge bitcoin#21320: fix libnatpmp macos cross compile 2022-02-26 17:49:13 +05:30
Kittywhiskers Van Gogh
687c7d4a5d merge bitcoin#18077: Add NAT-PMP port forwarding support 2022-02-26 17:49:13 +05:30
Odysseas Gabrielides
3ecfa04a72
Crash fix (#4697)
* Crash fix

* Keep verified LLMQ connections

* Revert "Keep verified LLMQ connections"

This reverts commit d44bba663a.

* Refactoring
2022-02-24 11:08:22 -06:00
Odysseas Gabrielides
a1027a3e8e
Keep verified LLMQ connections (#4701) 2022-02-23 13:03:31 -06:00
UdjinM6
db784fd4aa
Merge pull request #4695 from UdjinM6/bp14021
Backport 14021 and 15433
2022-02-23 12:56:08 +03:00
UdjinM6
7acaa0a93a
Fix "cs_main not held" in SyncObjects (#4694)
* Fix "cs_main not held" in SyncObjects

* use WITH_LOCK
2022-02-23 12:55:37 +03:00
MeshCollider
7d02a25c70
Merge #15433: Use a single wallet batch for UpgradeKeyMetadata
0bedcbafd Use a single wallet batch for UpgradeKeyMetadata (Jonas Schnelli)

Pull request description:

  Opening wallets (the first time) after #14021 took on my end around 30 seconds due to the keymetadata migration (tested on regtest).

  Using a single wallet batch reduces the required time for the migration down to <1s on my system for a default 2k keypool wallet.

Tree-SHA512: f68739e452d382f5294186f47511b94884a1a0868688dd3179034a7e091a67f93bc9dd45cdfc9fa6b1fe90362772b719278012f2f56b752b803c87db8597a7b0
2022-02-18 03:42:05 +03:00
MeshCollider
ed0e2dd075
Merge #14021: Import key origin data through descriptors in importmulti (+ changes from PRs partially merged earlier: 15368, 15749)
cb3511b9d Add release notes for importing key origin info change (Andrew Chow)
4c75a69f3 Test importing descriptors with key origin information (Andrew Chow)
02d6586d7 Import KeyOriginData when importing descriptors (Andrew Chow)
3d235dff5 Implement a function to add KeyOriginInfo to a wallet (Andrew Chow)
eab63bc26 Store key origin info in key metadata (Andrew Chow)
345bff601 Remove hdmasterkeyid (Andrew Chow)
bac8c676a Add a method to CWallet to write just CKeyMetadata (Andrew Chow)
e7652d3f6 Add WriteHDKeypath function and move *HDKeypath to util/bip32.{h,cpp} (Andrew Chow)
c45415f73 Refactor keymetadata writing to a separate method (Andrew Chow)

Pull request description:

  This PR allows for key origin data as defined by the descriptors document to be imported to the wallet when importing a descriptor using `importmulti`. This allows the `walletprocesspsbt` to include the BIP 32 derivation paths for keys that it is watching that are from a different HD wallet.

  In order to make this easier to use, a new field `hdmasterkeyfingerprint` has been added to `getaddressinfo`. Additionally I have removed `hdmasterkeyid` as was planned. I think that this API change is fine since it was going to be removed in 0.18 anyways. `CKeyMetadata` has also been extended to store key origin info to facilitate this.

Tree-SHA512: 9c7794f3c793da57e23c5abbdc3d58779ee9dea3d53168bb86c0643a4ad5a11a446264961e2f772f35eea645048cb60954ed58050002caee4e43cd9f51215097
2022-02-18 03:42:05 +03:00
UdjinM6
b0a8522d9d
Various translation related fixes (#4693)
* Move GovernanceList declaration up to solve lupdate warning

fixes `Qualifying with unknown namespace/class ::GovernanceList`

* mark non-translatable strings as such

* translate more strings in Governance tab

* fix `Class 'ProposalModel' lacks Q_OBJECT macro`
2022-02-15 19:32:38 +03:00
PastaPastaPasta
9789a42088
Merge pull request #4575 from Munkybooty/backports-0.19-pr7
Backports 0.19 pr7
2022-02-15 23:31:21 +07:00
UdjinM6
aa7c03fe2a
Avoid using raw pointers in GetAllNewerThan results (#4649)
pass copies around, fix gui updates and mem leaks
2022-02-15 19:28:55 +03:00
UdjinM6
88876573ff
Fix get_future data race in ctpl (#4690)
See https://wg21.cmeerw.net/lwg/msg7337 and https://wg21.cmeerw.net/lwg/issue2412
2022-02-15 19:28:29 +03:00
Kittywhiskers Van Gogh
0b3582ddd7
depends: bump bls-dash to 1.2.0, cmake to 3.22.2, relic to aecdcae (#4681)
* depends: bump cmake to 3.22.2

Contains additional patches to mitigate errors

```
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
CMake Error at Utilities/cmcurl/CMakeLists.txt:562 (message):
  Could not find OpenSSL.  Install an OpenSSL development package or
  configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.
```

* depends: bump bls-dash to 1.2.0 (979f423234)

* depends: bump relic to aecdcae795
2022-02-15 22:12:11 +07:00
PastaPastaPasta
b26eaf6954
build: allow building without openssl, enables native m1 development builds (#4683)
* build: allow building without openssl, enables native m1 development builds

* Update configure.ac, according to review

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

* introduce `--with-openssl`

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-02-13 11:50:23 +03:00
PastaPastaPasta
a3b4aab936
feat: introduce devnetVersion for devnet breaking changes; always use DGW on devnets (#4685)
* feat: introduce devnetVersion as a method for breaking changes to devnets

include devnetVersion in expected version for devnet connections

* feat: always use DGW on devnets

* fix p2p_connect_to_devnet.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-02-13 11:44:49 +03:00
thephez
dcc00ac8e9
test: skip test properly if zmq missing (#4684) 2022-02-12 04:33:46 +07:00
PastaPastaPasta
fe0ebb3c04
refactor: fix numerous compilation warnings (#4682)
* style: use clang-tidy style named parameters

* refactor: make IsTimeOutOfBounds testable by having current time be a parameter

* style: use x-> not (*x).

* refactor: make SelectCoinsGroupedByAddresses return a vector, remove out param

previous semantics was return false if the vecTally vector was empty. Now we just let the caller check if it is empty or not

* refactor: fix some sign-compare warnings

* refactor: consistently pre-declare stuff as struct / class inline with underlying type

* refactor: don't return const bool

* refactor: use ref to string

* refactor: use = default for CompactTallyItem

* refactor: adjust "initialization" ordering

* refactor: adjust how we handle negatives in GetProjectedMNPayees, use std::min

* refactor: don't bind a reference to a temporary value

* refactor: use a ref

* refactor: ensure attempt in SelectMemberForRecovery is non-negative.

* refactor: remove unused this capture

* refactor: fix numerous sign-compare warnings

* refactor: more consistently use size_t, use empty()
2022-02-11 19:15:26 +03:00
AJ ONeal
5e832e070d
docs: add header to binary download info (#4678)
* docs: add header to binary download info

* docs: update link from get-dash to downloads

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2022-02-11 00:58:53 +03:00
PastaPastaPasta
ea54faa50b
fix: avoid requesting transactions from 100+ peers when we are heavily connected and receive islock with unknown tx (#4680)
Changes the logic to only request from up to 4 peers, and to prefer masternodes for these peers. In practice, even if these four nodes do not forward the transaction, it doesn't matter, and we will receive the tx soon via inv
2022-02-11 00:57:51 +03:00
UdjinM6
52d3546a70
Partially revert 4652 (#4674)
Using `string_view` results in things like `nSessionDenom: 2 (\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00)` etc. for some reason
2022-02-02 12:08:50 +03:00
PastaPastaPasta
ac010d9bf3
feat: Implement support for P2SH payouts for proposals (#4672)
* GOVSCRIPT deployment

* replace DEPLOYMENT_GOVSCRIPT with DEPLOYMENT_GOV_FEE

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-02-02 12:08:05 +03:00
UdjinM6
359b5f3dff Do not reset validity flags for -checklevels below 3, fix wallet_balance.py 2022-01-30 18:31:00 -05:00
MarcoFalke
1c908fbd49 Merge #16079: wallet_balance.py: Prevent edge cases
bb41e632ca wallet_balance.py: Prevent edge cases (Steven Roose)

Pull request description:

  I ran into this edge case when running the test on Elements. I had a 0-value output as change.

ACKs for commit bb41e6:

Tree-SHA512: ef4c25289cafcdb4437f11ed537664dff5afedcefab75a46f985d3be70551de2d3bc8e9cfcb22c0f3d7d2eb95ff40df78b8d01dbacbf90c36bca00426937b0a2
2022-01-30 18:31:00 -05:00
MarcoFalke
c39bbf8d39 Merge #15758: qa: Add further tests to wallet_balance
fa79a783d6 test: Add reorg test to wallet_balance (MarcoFalke)
fad03cd046 test: Check that wallet txs not in the mempool are untrusted (MarcoFalke)
fa195315e6 test: Add getunconfirmedbalance test with conflicts (MarcoFalke)
fa464e8211 test: Add wallet_balance test for watchonly (MarcoFalke)

Pull request description:

  Second commit can be reviewed with `--ignore-all-space`

ACKs for commit fa79a7:
  jnewbery:
    utACK fa79a783d63060dc6a8521c1de58b158979a59e9

Tree-SHA512: ec4919a3c93b6dcb35d58e7c65bdffe7f4c8cb87b9287f3679631c1823ef5bd72789f233def94e60c1ab332711601751645566f5997ce250af55b328ed60e917
2022-01-30 18:31:00 -05:00
UdjinM6
fbeb31190b 16322 followup 2022-01-30 18:31:00 -05:00
Wladimir J. van der Laan
c516869bcf Merge #16322: wallet: Fix -maxtxfee check by moving it to CWallet::CreateTransaction
0d101a340c44841cbbc5982d55354b1787bc39e2 test: Add test for maxtxfee option (MarcoFalke)
177550101b600ccb32886695326eb72cd9752c8b wallet: Remove unreachable code in CreateTransaction (MarcoFalke)
5c1b9714cb0a13be28324f91f4ec9ca66a1de8c7 wallet: Fix -maxtxfee check by moving it to CWallet::CreateTransaction (João Barbosa)

Pull request description:

  Follow up to #16257, this PR makes `bumpfee` aware of `-maxtxfee`.

  It also prevents dangling locked unspents when calling `fundrawtransaction` - because the previous check was after `LockCoin`.

ACKs for top commit:
  MarcoFalke:
    re-ACK 0d101a340c44841cbbc5982d55354b1787bc39e2, only change is small test fixup

Tree-SHA512: 3464b24ae7cd4e72ed41438c6661828ba1304af020f05da62720b23668ae734e16cf47c6d97e150cc84ef631ee099b16fc786c858f3d089905845437338fd512
2022-01-30 18:31:00 -05:00
UdjinM6
5a8a95c494 12909 followup 2022-01-30 18:31:00 -05:00
MarcoFalke
247649ac42 Merge #12582: Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee
7ba2d57852 Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee (Russell Yanofsky)

Pull request description:

  New global variable was introduced in #11882 and not setting it causes:

  ```
  wallet/test/wallet_tests.cpp(638): error in "ListCoins": check wallet->CreateTransaction({recipient}, wtx, reservekey, fee, changePos, error, dummy) failed
  wallet/test/wallet_tests.cpp(679): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(686): error in "ListCoins": check available.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(705): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  ```

  It's possible to reproduce the failure reliably by running:

  ```
  src/test/test_bitcoin --log_level=test_suite --run_test=wallet_tests/ListCoins
  ```
  Failures happen nondeterministically because boost test framework doesn't run tests in a specified order, and tests that run previously can set the global variables and mask the bug.

  This is similar to bugs #12150 and #12424. Example travis failures are:

  https://travis-ci.org/bitcoin/bitcoin/jobs/348296805#L2676
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362560#L2769
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362563#L2824

Tree-SHA512: ca37b554a75c12ac2d534de62bf74eb9e0b29e4399ebf1fa10053a40887e55e9e7135f754a01e5a67499cc8677ae226542146b370b1e83d08bb63d79ff379073
2022-01-30 18:31:00 -05:00
UdjinM6
79f881b141 Do not create non-standard txes in feature_addressindex.py 2022-01-30 18:31:00 -05:00
MeshCollider
0f6c7b98a5 Merge #16402: Remove wallet settings from chainparams
fa4a605a4c611abe9af4c18aab20f4d1d039170f Remove wallet settings from chainparams (MarcoFalke)

Pull request description:

  Feels a bit odd to have wallet setting in the chainparams, so remove them from there

ACKs for top commit:
  promag:
    ACK fa4a605a4c611abe9af4c18aab20f4d1d039170f, missed s/2018/2019?
  practicalswift:
    utACK fa4a605a4c611abe9af4c18aab20f4d1d039170f
  darosior:
    ACK fa4a605a4c611abe9af4c18aab20f4d1d039170f

Tree-SHA512: 2b3a5ee85d36af290d7db80bed1339e3c684607f1ce61cc65c906726e9174e40325fb1f67a34d8780f2a61fa39a1785e7c3a1cef5b6d6c364f38db5300cdbe3a
2022-01-30 18:31:00 -05:00
MarcoFalke
8ca90f3f99 Merge #15891: test: Require standard txs in regtest by default
fa89badf887dcc01e5bdece248b5e7d234fee227 test: Require standard txs in regtest (MarcoFalke)
fa9b4191609c3ef75e69d391eb91e4d5c1e0bcf5 test: Add test that mainnet requires standard txs (MarcoFalke)
fa613ca0a8f99c4771859de9e571878530d3ecb5 chainparams: Remove unused fMineBlocksOnDemand (MarcoFalke)

Pull request description:

  I don't see a reason why regtest should allow non-standard txs, as it makes testing mainnet behaviour such as #15846 unnecessarily hard and unintuitive.

  Of course, testnet policy remains unchanged to allow propagation of non-standard txs.

ACKs for top commit:
  ajtowns:
    ACK fa89badf887dcc01e5bdece248b5e7d234fee227

Tree-SHA512: c4c675affb054868850bd2683aa07f4c741a448cbacb2ea8334191e105f426b0790fe6a468be61e9c5880d24154f7bf1c7075051697172dce92180c1bc3a1c90
2022-01-30 18:31:00 -05:00
Wladimir J. van der Laan
41f9bfaee6 Merge #11882: Disable default fallbackfee on mainnet
3f592b8 [QA] add wallet-rbf test (Jonas Schnelli)
8222e05 Disable wallet fallbackfee by default on mainnet (Jonas Schnelli)

Pull request description:

  Removes the default fallback fee on mainnet (but keeps it on testnet/regtest).

  Transactions using the fallbackfee in case the fallback fee has not been set are getting rejected.

Tree-SHA512: e54d2594b7f954e640cc513a18b0bfbe189f15e15bdeed4fe02b7677f939bca1731fef781b073127ffd4ce08a595fb118259b8826cdaa077ff7d5ae9495810db
2022-01-30 18:30:28 -05:00
MarcoFalke
356785cdaa Merge #16293: test: Make test cases separate functions
faf8318c55a6001270a6fc8ed2298767099bafba test: Split fundrawtx test into subtests (MarcoFalke)
fa6fba3bc8013d7f813edd71f152d86eab907e4d test: Make local symbols in run_test members (MarcoFalke)

Pull request description:

  This prevents scope-leak of symbols that are supposed to be local to one test case.

Top commit has no ACKs.

Tree-SHA512: 9b2a4ca2cdd631ef915d2f7e6cd62375df9a0919448350aa6e5ae4aa8a8fe3ba53870f7a9a25a57736894b4e3a45e861018253ed2d57d9a64c2bb65fa270fad8
2022-01-30 18:29:41 -05:00
Wladimir J. van der Laan
02e5436bb8 Merge #16451: Remove CMerkleTx
05b56d1c937b7667ad51400d2f9fb674af72953f [wallet] Remove CMerkleTx serialization logic (John Newbery)
783a76f23ba4f33b6e6f609eaf3bf41afd9bcd6f [wallet] Flatten CWalletTx class hierarchy (John Newbery)
b3a9d179f23f654b8fba63924bbca5fd31ad4bb0 [wallet] Move CMerkleTx functions into CWalletTx (John Newbery)

Pull request description:

  CMerkleTx is only used as a base class for
  CWalletTx. It was previously also used for vtxPrev which
  was removed in 93a18a3650.

  This PR moves all of the CMerkleTx members and logic
  into CWalletTx. The CMerkleTx class is kept for deserialization
  and serialization of old wallet files.

  This makes the refactor in #15931 cleaner.

ACKs for top commit:
  laanwj:
    ACK 05b56d1c937b7667ad51400d2f9fb674af72953f. Looks good to me.

Tree-SHA512: 3d3a0069ebb536b12a328f1261e7dc55158a71088d445ae4b4ace4142c432dc296f58c8183b1922e54a60b8cc77e9d17c3dce7478294cd68693594baacf2bab3
2022-01-30 18:29:30 -05:00
Wladimir J. van der Laan
cae283fdd8 Merge #16434: build: Specify AM_CPPFLAGS for ZMQ
29ee4c417d97dca29c4ef53b6c1a55caa902787a Specify AM_CPPFLAGS for ZMQ. (Daniel Kraft)

Pull request description:

  When building the ZMQ static library, add `AM_CPPFLAGS` to the library `CPPFLAGS`.  Otherwise, we may miss important flags that are specified elsewhere.  For instance, if `--enable-debug` is passed and
  `-DDEBUG_LOCKORDER` set, then that would not apply to the ZMQ library before (causing potential for hard-to-find bugs).

ACKs for top commit:
  laanwj:
    utACK 29ee4c417d97dca29c4ef53b6c1a55caa902787a

Tree-SHA512: 64085d71ed3f435a6e4df6dc42bda8b6159a4d292d0547c5b38c09d6ac95e976ad1728cd65278bffdd57363f60a58eb762b1171dafbe055cf94ffcd4f66da877
2022-01-30 18:29:19 -05:00
fanquake
dbdfa1b3d0 Merge #16484: doc: update labels in CONTRIBUTING.md
faa88d0b5c7f6e317d0e35daef28d320801f1bb5 doc: update labels in CONTRIBUTING.md (MarcoFalke)

Pull request description:

  None of the examples in the "trivial" area are acceptable pull requests, unless they are acceptable in a different area (like "doc" or "log").

  Fix that by removing the "trivial" area.

ACKs for top commit:
  jonatack:
    ACK faa88d0b5c7f6e317d0e35daef28d320801f1bb5
  fanquake:
    ACK faa88d0b5c7f6e317d0e35daef28d320801f1bb5 - agree that trivial was pretty useless and that the meaning was unclear. Other changes look fine. Surprised the white space linter hasn't been having a field day in this file.

Tree-SHA512: 6208bcc7c84ad0ca6aeaa2de1901c9da8971aac332b5e7a1194ea7b24fb2d887f988aa22fdfa818e89cbcfd8cb8595ce312525f88c81c5ade484fd7c9bd13d1b
2022-01-30 18:29:19 -05:00
Wladimir J. van der Laan
3f17cc9dd3 Merge #16436: gui: Do not create payment server if -disablewallet option provided
4057b7acb7125739537078d026ad96bb21708e3c wallet: Recognize -disablewallet option early (Hennadii Stepanov)

Pull request description:

  This PR makes early check for the `-disablewallet` option.

  If `-disablewallet=1`, objects `PaymentServer` and `WalletController` are  nor created.

ACKs for top commit:
  jonasschnelli:
    utACK 4057b7acb7125739537078d026ad96bb21708e3c
  laanwj:
    ACK 4057b7acb7125739537078d026ad96bb21708e3c

Tree-SHA512: 74633cd1eacd0914c73712e6dff190255b5378595cfee7eaeb91e17671fc9120928034739f4ae1c53b86f46c4b400390877241384376b2fc534de326d3ab0944
2022-01-30 18:29:19 -05:00
Wladimir J. van der Laan
12e2ad89ce Merge #16467: rpc: sendrawtransaction help privacy note
07e01d6258831fd2dfef959a405b3dfe4e88c3c1 rpc: sendrawtransaction unconditionality/privacy note (Jon Atack)

Pull request description:

  In sendrawtransaction RPCHelpMan, mention unconditionality and privacy as per http://www.erisian.com.au/bitcoin-core-dev/log-2019-07-25.html#l-522

  before

  ```
  $ bitcoin-cli help sendrawtransaction
  sendrawtransaction "hexstring" ( maxfeerate )

  Submits raw transaction (serialized, hex-encoded) to local node and network.

  Also see createrawtransaction and signrawtransactionwithkey calls.

  (...)
  ```

  after

  ```
  $ bitcoin-cli help sendrawtransaction
  sendrawtransaction "hexstring" ( maxfeerate )

  Submit a raw transaction (serialized, hex-encoded) to local node and network.

  Note that the transaction will be sent unconditionally to all peers, so using this
  for manual rebroadcast may degrade privacy by leaking the transaction's origin, as
  nodes will normally not rebroadcast non-wallet transactions already in their mempool.

  Also see createrawtransaction and signrawtransactionwithkey calls.

  (...)
  ```

ACKs for top commit:
  promag:
    ACK 07e01d6258831fd2dfef959a405b3dfe4e88c3c1.
  laanwj:
    ACK 07e01d6258831fd2dfef959a405b3dfe4e88c3c1

Tree-SHA512: 427b3ca29384eef271eb496b7b14e883220863543a536ddeb31940aaffd52ea0b607d929d50f2b7958514105ef7823fa05c1ee381d4a432808753c06bd97af58
2022-01-24 11:09:09 -05:00
Wladimir J. van der Laan
0ec883f34c Merge #16386: depends: disable unused Qt features
248e22bbc0d7bc40ae3584d53a18507c46b0e553 depends: disable unused Qt features (fanquake)

Pull request description:

  Related to #16354. Kept separate from #16370, because:

  > QT is a monster 😂 - dongcarl in #bitcoin-builds

  I've done some basic testing on `macOS 10.14` and `Debian 9.9` so far. Would be good to have someone test on Windows.

  I was thinking about adding some inline documentation, i.e info about where to find the lists of Qt features & libraries, as well as breaking the flags up so that it's clearer which libraries we are supplying, which we rely on Qt for etc. Could go towards addressing  some of`2` in #16354.

ACKs for top commit:
  sipsorcery:
    tACK 248e22bbc0d7bc40ae3584d53a18507c46b0e553 (Windows 10 test only)
  laanwj:
    ACK 248e22bbc0d7bc40ae3584d53a18507c46b0e553

Tree-SHA512: 2cdcea8d268de21d355a7625c4d352f65728df0b8d8cc0f396aca676f42099a819f95652dfbfc665c991ba12c52735c1e9b693df4b12e3ee178fd39356fba8e0
2022-01-24 11:09:09 -05:00
fanquake
c52cea9486 Merge #16430: doc: Update bips 35, 37 and 111 status
fa56b21c744577eb5d2085fd6104cbc3dc62d677 doc: Update bips 35, 37 and 111 status (MarcoFalke)

Pull request description:

  Follow-up to

  * #16152: Disable bloom filtering by default

ACKs for top commit:
  laanwj:
    ACK fa56b21c744577eb5d2085fd6104cbc3dc62d677, thanks for keeping this file up to date
  fanquake:
    ACK fa56b21c744577eb5d2085fd6104cbc3dc62d677

Tree-SHA512: 50c17067abbba096e8604b8abccbd0474ecc2dca973935751720c79a023a2d517bb025bb6c36d4fb0d29b7338322af7ae1c0d5a9aaf2712000d9d336c898c204
2022-01-24 11:09:09 -05:00
UdjinM6
0ed9f56a9b
Merge pull request #4612 from Munkybooty/backports-0.19-pr9
Backports 0.19 pr9
2022-01-24 18:26:59 +03:00
UdjinM6
bfe2967ced
Implement PKCS5_PBKDF2_HMAC_SHA512 (#4665) 2022-01-24 17:21:38 +03:00
PastaPastaPasta
8ef0231166
refactor: break circular dependencies(-16, +2) (#4670)
* refactor: break circular dependencies(-13, +2)

introduces specialtxman, which handles validation of special transactions, specialtx is now simply the primitive underlying type. This breaks a lot of the circular depends

Also removes an unneeded `#include <masternode/payments.h>` in net_processing.cpp, which resolves a circular dependency. (we know it's okay to remove b/c masternode/payments.h isn't included in any header files, and removing it doesn't break compilation)

* format: make clang-format happy

* remove unrelated change

* remove some unneeded includes to `evo/deterministicmns.h`, explicitly include some previously implicitly included includes.

Resolves two circular dependencies

* refactor: remove circular depend, unused include
2022-01-24 17:20:50 +03:00
Wladimir J. van der Laan
fc5ed587ca Merge #16871: build: make building protobuf optional in depends
107e030723552cf272dc8da01bb682032a457a3d build: make protobuf optional in depends (fanquake)
ff6122f32b21fa00e9308e098b33b9657debc1d7 doc: clarify protobuf build requirements (fanquake)

Pull request description:

  As mentioned by dongcarl in https://github.com/bitcoin/bitcoin/pull/15584#issuecomment-521780972, make building `protobuf` optional in depends. With this change it will only be built if you pass `PROTOBUF=1`.

ACKs for top commit:
  laanwj:
    code review ACK 107e030723552cf272dc8da01bb682032a457a3d
  Sjors:
    tACK 107e030 on macOS 10.14. When I build depends with `PROTOBUF=1` then `./configure` has `bip70` enabled.

Tree-SHA512: 49bc247a6879aaf55b943a3d0b930544ddef1e69a481955a8bebe0b02c9ad0fe168b93025f34168334cef34bb567478eb98eacab62ba909f2f64fb21119c71b8
2022-01-20 13:09:39 -05:00
fanquake
042207fa33 Merge #16885: doc: Update tx-size-small comment with relevant CVE disclosure
c4b0c08f7c91bcef48dd023982ff132795575247 Update tx-size-small comment with relevant CVE disclosure (Gregory Sanders)

Pull request description:

  Code first introduced under https://github.com/bitcoin/bitcoin/pull/11423 with essentially no description and no discussion.

ACKs for top commit:
  MarcoFalke:
    ACK c4b0c08f7c91bcef48dd023982ff132795575247
  fanquake:
    ACK c4b0c08f7c91bcef48dd023982ff132795575247

Tree-SHA512: 95d5c92998b8b1e944c477dbaee265b62612b6e815099ab31d9ff580b4dff777abaf7f326a284644709f918aa1510412d62310689b1250ef6e64de7b19ca9f71
2022-01-20 13:09:37 -05:00
Wladimir J. van der Laan
c0d211a356 Merge #14457: test: add invalid tx templates for use in functional tests
59e387705c7e55ec40400301346354fa2d0c613f test: add invalid tx templates for use in functional tests (James O'Beirne)

Pull request description:

  This change adds a list of `CTransaction`-generating templates which each correspond to a specific type of invalid transaction. We then use this list to test for a wider variety of invalid tx types in `p2p_invalid_tx.py` and `feature_block.py`.

  Consolidating all invalid tx types will allow us to more easily cover all tx reject cases from a variety of tests without repeating ourselves. Validation logic doesn't differ much between mempool and block acceptance, but there *is* a difference and we should be sure we're testing both comprehensively.

  Right now, I've only added templates covering the tx reject types listed below but if this approach seems worthwhile I will expand the list to be fully comprehensive.
  ```
  bad-txns-in-belowout
  bad-txns-inputs-duplicate
  bad-txns-too-many-sigops
  bad-txns-vin-empty
  bad-txns-vout-empty
  bad-txns-vout-negative
  ```

Tree-SHA512: 05407f4a953fbd7c44c08bb49bb989cefd39a2b05ea00f5b3c92197a3f05e1b302f789e33832445734220e1c333d133aba385740b77b84139b170c583471ce20
2022-01-20 13:09:17 -05:00
MarcoFalke
11eacbe855 Merge #16845: test: Add notes on how to generate data/wallets/high_minversion
2222c96deec0f636dee6e49efb745f29b06a40a5 test: Add notes on how to generate data/wallets/high_minversion (MarcoFalke)

Pull request description:

  I forgot to do this in #16796

ACKs for top commit:
  ryanofsky:
    ACK 2222c96deec0f636dee6e49efb745f29b06a40a5

Tree-SHA512: 5f24ffa641b97eac4febad42ade7228b14fa72335c918a10880c5dec86a3ecc3075a31526f275188e07fea95b8e2c6320c64f716099f604b00e13d5366fcee37
2022-01-20 13:09:17 -05:00
Wladimir J. van der Laan
07ce010869 Merge #16512: rpc: Shuffle inputs and outputs after joining psbts
c0b5d9710322a614a50ab5da081558cf6a38ad2a Test that joinpsbts randomly shuffles the inputs (Andrew Chow)
6f405a1d3b38395e35571b68aae55cae50e0762a Shuffle inputs and outputs after joining psbts (Andrew Chow)

Pull request description:

  `joinpsbts` currently just adds the inputs and outputs in the order of that the PSBTs were provided. This makes it extremely easy to identify which outputs belong to which inputs. This PR changes that so that all of the inputs and outputs are shuffled in the joined transaction.

ACKs for top commit:
  instagibbs:
    utACK c0b5d97103
  jonatack:
    ACK c0b5d9710322a614a50ab5da081558cf6a38ad2a modulo suggestions for later.

Tree-SHA512: 14a0b7aae07d92e6d2c76a3a3b228b481e1964cb7d34f97515bdda18e2ea05a9f97c5a22affc143b86ae8b95c3cb239849fb54219d65512bc2112264dca915c8
2022-01-20 13:09:17 -05:00
fanquake
9509768939 Merge #16812: doc: Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in
6aab7649d30b19d136a27f1287fd2c8b00fb460c doc: Fix whitespace errs in .md files, bitcoin.conf, Info.plist.in, and find_bdb48.m4 (Jon Layton)

Pull request description:

  Although there is an existing `test/lint/lint-whitespace.sh` linter, it only prevents new errors from being introduced. This commit removes all existing whitespace errors from Core markdown files (skips `src/crypto/ctaes/`, `leveldb/`, and `doc/release-notes/`), `bitcoin.conf`, and `Info.plist.in`.

  Further formatting could be done on the markdown documents, but seeing as there several coexisting styles that break a few `markdownlint` rules, a first step would be to define and add a linter to Travis. For now, the small fix is made.

ACKs for top commit:
  fanquake:
    ACK 6aab7649d30b19d136a27f1287fd2c8b00fb460c - Thanks for following up. Hopefully we now never have to deal with whitespace again.

Tree-SHA512: 810cc31ae4364b2dedf85783e67315d7b4e11589e4b32c599606e1b1ba8de0663bcae9ddb1bd8c9762a3636a2d65bdcd64ec22d2e90943f374a0c9574b77ca23
2022-01-20 13:09:17 -05:00
fanquake
85d185b268 Merge #16863: doc: Add a missing closing parenthesis in the bitcoin-wallet's help
b6233a4985519fea2ca35ae6d45877bb2df697f9 bitcoin-wallet: Add a missing closing parenthesis in the help (darosior)

Pull request description:

ACKs for top commit:
  kristapsk:
    utACK b6233a4985519fea2ca35ae6d45877bb2df697f9
  fanquake:
    ACK b6233a4985519fea2ca35ae6d45877bb2df697f9

Tree-SHA512: acf18633fdca4bd73838fcaa0ebe4121dd0b5308daa77c4458ec4c98a9e8aa6d9d6580a48c884147438af14e670b0606c1e76f72d1d7efd221c4da419061beed
2022-01-20 13:09:17 -05:00