Commit graph

27067 commits

Author SHA1 Message Date
John Newbery
a20ab22786 [net processing] Make GetPeerRef const 2020-12-07 11:57:12 +00:00
John Newbery
ed7e469cee [net_processing] Move peer_map to PeerManager 2020-12-07 11:55:28 +00:00
MarcoFalke
00f4dcd552
Merge #20138: net: Assume that SetCommonVersion is called at most once per peer
fa0f415709 net: Assume that SetCommonVersion is called at most once per peer (MarcoFalke)

Pull request description:

  This restores the check removed in https://github.com/bitcoin/bitcoin/pull/17785#discussion_r503224381

  Instead of using `error`, which was used previously, it uses a newly introduced `Assume()`. `error` had several issues:
  * It logs unconditionally to the debug log
  * It doesn't abort the program when the error is hit in tests

ACKs for top commit:
  practicalswift:
    cr ACK fa0f415709: patch looks correct
  jnewbery:
    utACK fa0f415709

Tree-SHA512: cd7424a9485775e8c7093b725f8f52a90d47485185e79bac80f7810e450d0b3fda608d8805e9239094929f7bad2dca3fe772fb78ae606c2399d15405521e136b
2020-12-07 12:48:55 +01:00
Hennadii Stepanov
c932e0d67e
doc: Update wallet database installation guide for macOS 2020-12-07 13:25:06 +02:00
Hennadii Stepanov
ee7b84e63c
build: Use Homebrew's sqlite package if it is available 2020-12-07 13:24:59 +02:00
Wladimir J. van der Laan
f3e17686b3
Merge #20468: build: warn when generating man pages for binaries built from a dirty branch
6690adba08 Warn when binaries are built from a dirty branch. (Tyler Chambers)

Pull request description:

  - Adjusted `--version` flag behavior in bitcoind and bitcoin-wallet to have the same behavior.
  - Added `--version` flag to bitcoin-tx to match.
  - Added functionality in gen-manpages.sh to error when attempting to generate man pages for binaries built from a dirty branch.

  mitigates problem with  issue #20412

ACKs for top commit:
  laanwj:
    Tested ACK 6690adba08

Tree-SHA512: b5ca509f1a57f66808c2bebc4b710ca00c6fec7b5ebd7eef58018e28e716f5f2358e36551b8a4df571bf3204baed565a297aeefb93990e7a99add502b97ee1b8
2020-12-07 10:51:45 +01:00
Wladimir J. van der Laan
31438cc818
Merge #20482: Add depends qt fix for ARM macs
c23f6f84ef Add depends qt fix for ARM macs (Jonas Schnelli)

Pull request description:

  With this, depends builds fine on macOS 11 on an Apple Silicon Mac (ARM64).

ACKs for top commit:
  laanwj:
    Code review ACK c23f6f84ef

Tree-SHA512: a8354cec99969cff9e7dab150c335050ddb4b3c93a9f12a4db5e8046f02b11ce692ac17c2b96cbbe7f380c1aa110b15b8d6d48d51bc9c560282c702e99fd8a8d
2020-12-07 10:07:53 +01:00
MarcoFalke
fa8abdc995
rpc: Use FeeModes doc helper in estimatesmartfee
Can be reviewed with --ignore-all-space
2020-12-07 09:28:47 +01:00
Jonas Schnelli
eab63b971d
Merge #19847: rpc, refactor: Avoid duplicate set lookup in gettxoutproof
52fc39917f rpc: Reject empty txids in gettxoutproof (João Barbosa)
73dc19a330 rpc, refactor: Avoid duplicate set lookup in gettxoutproof (João Barbosa)

Pull request description:

ACKs for top commit:
  jonasschnelli:
    code review ACK 52fc39917f

Tree-SHA512: 76b18e5235e8b2d394685515a4a60335666eeb0f6b31c1d397f7db2fbe681bc817b8cd3e8f6708b9dacd6113e4e1d94837072cae27834b8a1a22d2717db8191e
2020-12-07 09:17:08 +01:00
MarcoFalke
1a04f45fe9
Merge #19832: p2p: Put disconnecting logs into BCLog::NET category
1816327e53 p2p: Put disconnecting logs into BCLog::NET category (Hennadii Stepanov)

Pull request description:

  It's too noisy:
  ```
  $ cat debug.log | wc -l
  28529
  $ cat debug.log | grep "Disconnecting and discouraging peer" | wc -l
  10177
  ```

ACKs for top commit:
  MarcoFalke:
     noban, addnode and local peers are still unconditionally logged (as they should), but this one can go into a category, so cr-ACK 1816327e53
  practicalswift:
    ACK 1816327e53 for the reasons MarcoFalke gave above.
  ajtowns:
    ACK 1816327e53

Tree-SHA512: c312c1009090840659b2cb1364d8ad9b6ab8e742fc462aef169996d93c76c248507639a00257ed9d73a6916c01176b1793491b2305e92fdded5f9de0935b6ba6
2020-12-07 09:07:57 +01:00
fanquake
d0ca394596
Merge #20476: contrib: Add test for ELF symbol-check
ed1bbcefea contrib: add MACHO tests to symbol-check tests (fanquake)
5bab08df17 contrib: Add test for ELF symbol-check (Wladimir J. van der Laan)

Pull request description:

  Check both failure cases:
  - Use a glibc symbol from a version that is too new
  - Use a symbol from a library that is not in the allowlist

  And also check a conforming binary.

  Adding a similar check for Windows PE can be done in a separate PR.

ACKs for top commit:
  fanquake:
    ACK ed1bbcefea

Tree-SHA512: fd437612e003922465fe1396efa1fa3a64bd1c7b0a514d2a0a7a0caaaa9fb5cb43e0ed7caec15eb0a3508692c9eb3212d7ba3c7e8180b942dd3e50616ad6e557
2020-12-07 15:33:37 +08:00
wodry
32045bbfd5
[doc] Tidy up Tor doc (more stringent)
This is a follow up to https://github.com/bitcoin/bitcoin/pull/19638 that left some deprectaed "hidden service/server" naming occurences.

It also shall make the chapter titles regarding creation of onion services stringent and easy to read and distinguish.

It removes the one and only reference to the testnet (here the testnet onion service port), as it is not explained that it references to the testnet and I do not know why it is mentioned there. It is only confusing. Also, as said, the testnet is not referenced at any other place in this document.
2020-12-07 05:17:26 +01:00
fanquake
cef2efafce
Merge #20577: doc: libconsensus: add missing error code description, fix NBitcoin link
cb0b7125c1 doc: libbitcoinconsensus: add missing error code description, fix NBitcoin link (Sebastian Falbesoner)

Pull request description:

  This PR improves the libbitcoinconsensus description in `shared-libraries.md` in two ways:
  * adds the missing error code description for `bitcoinconsensus_ERR_INVALID_FLAGS` (introduced by commit 5ca8ef299a, PR #8976)
  * updates and fixes the link to the NBitcoin implementation (introduced by commit 3361edd010, PR #6430)
      * the owner of the `NBitcoin` github repository changed from `NicolasDorier` to `MetacoSA` (redirection still worked though)
      * instead of dynamically referring to a file in master with a fixed line number (which is obviously always quickly outdated), use a permalink with a file numbers area

ACKs for top commit:
  MarcoFalke:
    cr ACK cb0b7125c1
  harding:
    Code (documentation) review ACK cb0b7125c1.  Text is clear and seems accurate, and the link checks out.

Tree-SHA512: 9840458db6fb40e71c9852104aefcec5abbaf5054c6123701181dd477cea8c81d3647f376b67692159adf577c9b6305b05b784728bf9f14a753fab5898075a4e
2020-12-07 10:17:23 +08:00
practicalswift
31b136e580 Don't declare de facto const reference variables as non-const 2020-12-06 18:44:31 +00:00
practicalswift
1c65c075ee Don't declare de facto const member functions as non-const 2020-12-06 18:44:25 +00:00
MarcoFalke
64156ad4d1
Merge #19893: test: Remove or explain syncwithvalidationinterfacequeue
fa6af31227 test: Document why syncwithvalidationinterfacequeue is needed in tests (MarcoFalke)
fa135a13b8 Revert "test: Add missing sync_all to wallet_balance test" (MarcoFalke)

Pull request description:

  syncwithvalidationinterfacequeue is a hidden test-only RPC, so it should not be used when it is not needed. Thus, either remove it or explain why it is needed.

ACKs for top commit:
  fjahr:
    Code review ACK fa6af31227

Tree-SHA512: de30db4ab521184091ee5beeab02989138cf7cf05088f766a2fb106151b239310b63d5380cb79e2a072f72c5ae9513aecae8eb9c1c7be713771585c3cb04d63a
2020-12-06 19:13:10 +01:00
MarcoFalke
9385549a31
Merge #20581: Don't make "in" parameters look like "out"/"in-out" parameters: pass by ref to const instead of ref to non-const
12dcdaaa54 Don't make "in" parameters look like "out"/"in-out" parameters: pass by ref to const instead of ref to non-const (practicalswift)

Pull request description:

  Don't make "in" parameters look like "out"/"in-out" parameters: pass by ref to const instead of ref to non-const.

ACKs for top commit:
  MarcoFalke:
    cr ACK 12dcdaaa54
  fjahr:
    Code review ACK 12dcdaaa54
  hebasto:
    ACK 12dcdaaa54, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: bf9e476dc27bfbd856b42cc4720fb2d4b74e64039776ce067691aaf536360b36902ef72988c7914505df5bf0ed2f1557e0eba52b87935d3a17db865ea17f6093
2020-12-06 19:10:19 +01:00
practicalswift
5021810650 Make CanFlushToDisk a const member function 2020-12-06 00:54:10 +00:00
practicalswift
281cf99554 Do not run functions with necessary side-effects in assert() 2020-12-06 00:48:09 +00:00
practicalswift
12dcdaaa54 Don't make "in" parameters look like "out"/"in-out" parameters: pass by ref to const instead of ref to non-const 2020-12-06 00:22:40 +00:00
Sebastian Falbesoner
cb0b7125c1 doc: libbitcoinconsensus: add missing error code description, fix NBitcoin link 2020-12-05 13:37:00 +01:00
MarcoFalke
f35e4d906f
Merge #20572: ci: Adjust Cirrus CI task names (follow up)
667b6a29df ci: Adjust Cirrus CI task names (follow up) (Hennadii Stepanov)

Pull request description:

  "no depends" implies "only system libs".

  #20545 follow up .

ACKs for top commit:
  practicalswift:
    ACK 667b6a29df

Tree-SHA512: b3bf5dc931b7aeed30932e8d6c5f5b0040e4be5a5676ed23b41675ebad2f8a016b1abb27584b68970ee00bc5b2af7122ca9566f373db5f3a2e38fcf7eee6522a
2020-12-05 06:24:46 +01:00
Jon Atack
6fa72ceb80
test: add coverage for passing fee rate as a string 2020-12-04 22:35:31 +01:00
Hennadii Stepanov
667b6a29df
ci: Adjust Cirrus CI task names (follow up)
"no depends" implies "only system libs".
2020-12-04 23:17:31 +02:00
Jon Atack
ce207d6b93
wallet, bugfix: allow send to take string fee rate values 2020-12-04 22:12:36 +01:00
João Barbosa
52fc39917f rpc: Reject empty txids in gettxoutproof 2020-12-04 18:38:23 +00:00
João Barbosa
73dc19a330 rpc, refactor: Avoid duplicate set lookup in gettxoutproof 2020-12-04 18:38:23 +00:00
Russell Yanofsky
f3d870fc22 wallet: List all wallets in non-SQLite or non-BDB builds
This commit does not change behavior when bitcoin is built normally with both
the SQLite and BDB libraries. It just makes non-SQLite and non-BDB builds
more similar to the normal build. Specifically:

- It makes wallet directory lists always include all wallets so wallets don't
  appear missing depending on the build.

- It now triggers specific "Build does not support SQLite database format" and
  "Build does not support Berkeley DB database format" errors if a wallet can't
  be loaded instead of the more ambiguous and scary "Data is not in recognized
  format" error.
2020-12-04 11:03:28 -04:00
MarcoFalke
751ffaabad
Merge #20562: tests: Test that a fully signed tx given to signrawtx is unchanged
773c42b265 tests: Test that a fully signed tx given to signrawtx is unchanged (Andrew Chow)

Pull request description:

  Tests that a fully signed transaction given to `signrawtransactionwithwallet` is both unchanged and marked as complete. This tests for a regression in 0.20 where the transaction would not be marked as complete.

ACKs for top commit:
  MarcoFalke:
    ACK 773c42b265 🕶

Tree-SHA512: b32afd5f2667c817ee59c37af78cb37352e7c22d0271833d446fd61f11b354974694128a3b408f214db459caef3fd67ecdbf1664280ac2de602215f05aa4a6de
2020-12-04 16:03:28 +01:00
Russell Yanofsky
d70dc89e78 refactor: Consolidate redundant wallet database path and exists functions
No change in behavior. Just remove a little bit of code, reduce macro usage,
remove duplicative functions, and make BDB and SQLite implementations more
consistent with each other.
2020-12-04 11:03:28 -04:00
Russell Yanofsky
6a7a63644c refactor: Drop call to GetWalletEnv in wallet salvage code
No observable change in behavior. This just avoids a redundant environment
lookup. Motivation is to be able to simplify the GetWalletEnv implementation in
an upcoming commit.
2020-12-04 11:03:28 -04:00
Russell Yanofsky
6ee9cbdd18 refactor: Replace ListWalletDir() function with ListDatabases()
No change to behavior. This is just cleanup after previous MOVEONLY commit to
make db.h list function fit conventions of surrounding functions.
2020-12-04 11:03:28 -04:00
Russell Yanofsky
5aaeb6cf87 MOVEONLY: Move IsBDBFile, IsSQLiteFile, and ListWalletDir
This commit does not change to any code and behavior. It it is easily reviewed
with the --color-moved=dimmed_zebra git diff option.

Motivation for this change is to:

- Consolidate redundant functions
  IsBDBFile /ExistsBerkeleyDatabase / SplitWalletPath, and
  IsSQLiteFile / ExistsSQLiteDatabase in the next commits

- Detect SQLite wallets consistently regardless whether bitcoin is built with
  SQLite support in the next commits

- Avoid attempting to open SQLite databases with the BDB library when bitcoin
  is built without SQLite support in the next commits
2020-12-04 11:03:28 -04:00
MarcoFalke
c1604483d3
Merge #20566: refactor: Use C++17 std::array where possible
fac7ab1d5b refactor: Use C++17 std::array where possible (MarcoFalke)

Pull request description:

  Using the C++11 std::array with explicit template parameters is problematic because overshooting the size will fill the memory with default constructed types.

  For example,

  ```cpp
  #include <array>
  #include <iostream>

  int main()
  {
      std::array<int, 3> a{1, 2};
      for (const auto& i : a) {
          std::cout << i << std::endl;  // prints "1 2 0"
      }
  }
  ```

ACKs for top commit:
  jonasschnelli:
    Code Review ACK fac7ab1d5b
  practicalswift:
    cr ACK fac7ab1d5b
  vasild:
    ACK fac7ab1d
  promag:
    Code review ACK fac7ab1d5b.

Tree-SHA512: ef7e872340226e0d6160e6fd66c6ca78b2ef9c245fa0ab27fe4777aac9fba8d5aaa154da3d27b65dec39a6a63d07f1063c3a8ffb667a98ab137756a1a0af2656
2020-12-04 15:18:48 +01:00
fanquake
9601c0d7aa
Merge #20565: Android : Ensure pic build for bdb
e373959d6f Android : Ensure pic build for bdb (Block Mechanic)

Pull request description:

  This pr ensures android builds for the BDB dependency have the pic flag enabled. Android builds were failing to link with reloc errors.

ACKs for top commit:
  laanwj:
    Code review ACK e373959d6f
  jonasschnelli:
    utACK e373959d6f

Tree-SHA512: 68319ed7cc0bd295eaa87dd53ba051daeb1456bc3ab9b48ca0c4b831a9c8da1073480478efde73689f0e403e37409a8459229264656f05ba5fef6c257a74f977
2020-12-04 22:13:22 +08:00
John Newbery
a529fd3e3f [net processing] Move GetNodeStateStats into PeerManager 2020-12-04 11:37:45 +00:00
Hennadii Stepanov
c96d1f65a5
build, refactor: Check that Homebrew's qt5 package is actually installed
This change unifies Homebrew packages workflow, and does not change
behavior.
2020-12-04 13:02:08 +02:00
MarcoFalke
fa0f415709
net: Assume that SetCommonVersion is called at most once per peer 2020-12-04 11:19:15 +01:00
MarcoFalke
dca80ffb45
Merge #20255: util: Add Assume() identity function
faa05854f8 util: Remove probably misleading TODO (MarcoFalke)
fac5efe730 util: Add Assume() identity function (MarcoFalke)
fa861569dc util: Allow Assert(...) to be used in all contexts (practicalswift)

Pull request description:

  This is needed for #20138. Please refer to the added documentation for motivation.

ACKs for top commit:
  practicalswift:
    cr ACK faa05854f8
  jnewbery:
    utACK faa05854f8
  hebasto:
    ACK faa05854f8, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 72165fbd898b92ab9a79b070993fa1faa86c2e3545b6645e72c652bda295d5107bc298d0482bf3aaf0926fc0c3e6418a445c0e073b08568c44231f547f76a688
2020-12-04 11:07:28 +01:00
Wladimir J. van der Laan
ca759bc743
Merge #20200: doc: rename CODEOWNERS to REVIEWERS
86e6add5ca doc: rename CODEOWNERS to REVIEWERS (Adam Jonas)

Pull request description:

  This PR renames the CODEOWNERS file to REVIEWERS and works with DrahtBot to leave a comment requesting a review.

  Testing of the functionality was done on https://github.com/adamjonas/bitcoin-codeowners-sandbox/pulls.

  ~EDIT: [after further testing of a fake organization](https://github.com/jonasorg/bitcoin-codeowners-sandbox-org/pulls), it appears that in order to be automatically tagged, the reviewer requires write level permissions. This is undocumented and will obviously close the circle of who can be tagged and so this PR reverts the addition of the file in #18949.~

  ~This removes a line not being parsed in the CODEOWNERS file introduced in #18949. While the pattern [checked out](https://github.com/bitcoin/bitcoin/pull/18949#issuecomment-648859076) using `git ls-files`, it is preventing the CODEOWNERS file from automatically tagging reviewers. For future modifications to this file, note that [any line failing to parse causes the entire file to stop identifying codeowners](http://www.benjaminoakes.com/git/2018/08/10/Testing-changes-to-GitHub-CODEOWNERS/#:~:text=warning).~

  ~I experimented in a [sandbox repo](https://github.com/adamjonas/bitcoin-codeowners-sandbox/pulls) to discover the offending line and this change appears to fix the problem.~

ACKs for top commit:
  laanwj:
    Doesn't look like github is going to fix this any time soon and besides REVIEWERS is a better name so ACK 86e6add5ca

Tree-SHA512: b3425eca4be62f829f0edcfa08232df310680835c2f60e9fa36956a6b59a2b0cd0ab580c572c87affccd843fbd849f4f99e4b3d9d7b6070ab117953f04e17f5a
2020-12-04 10:36:37 +01:00
MarcoFalke
fab48da908
test: Fix intermittent wallet_multiwallet issue with got_loading_error 2020-12-04 10:32:00 +01:00
MarcoFalke
fa8e15f7b7
test: pep8 wallet_multiwallet.py 2020-12-04 10:27:38 +01:00
Jonas Schnelli
257cf05f9b
Merge #20563: build: Check that Homebrew's berkeley-db4 package is actually installed
d3ef947524 build: Check that Homebrew's berkeley-db4 package is actually installed (Hennadii Stepanov)

Pull request description:

  On master (a0489f3472) the `configure` script is not able to determine that Homebrew's `berkeley-db4` package is uninstalled. This causes a compile error on macOS.

  With this PR, and with the [uninstalled](https://stackoverflow.com/questions/20802320/detect-if-homebrew-package-is-installed) `berkeley-db4` package:
  ```
  % ./configure -q
  configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for BDB wallet support (--without-bdb to disable BDB wallet support)
  ```

  Related #20478.

ACKs for top commit:
  promag:
    Tested ACK d3ef947524.
  willcl-ark:
    tACK d3ef947524
  jonasschnelli:
    utACK d3ef947524

Tree-SHA512: 8dc532e08249ec63bd357594aa458d314b6e8537fc63f5b1d509c84d0d71d5b1f70172caa1a7efe2fc8af31c829e7982a0695cf3fbe5cbc477019550269915e1
2020-12-04 10:08:18 +01:00
Wladimir J. van der Laan
34c80d9eee test: Add option to git-subtree-check to do full check, add help
This adds a brief help text to `git-subtree-check.sh` and adds and an
option to do a full remote check instead of having two different code
paths with a successful exit status. Also make it explicit that the CI
is not doing this.
2020-12-04 09:36:17 +01:00
MarcoFalke
fac7ab1d5b
refactor: Use C++17 std::array where possible 2020-12-04 08:22:45 +01:00
MarcoFalke
e2ae6a2bef
Merge #20182: ci: Build with --enable-werror by default, and document exceptions
2f6fe4e4e9 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov)

Pull request description:

  This PR prevents introducing of new compiler warnings in the master branch, e.g., #19986, #20162.

ACKs for top commit:
  practicalswift:
    cr ACK 2f6fe4e4e9: patch looks correct
  MarcoFalke:
    re-ACK 2f6fe4e4e9 🏏
  vasild:
    ACK 2f6fe4e

Tree-SHA512: 23b5feb5bc472658c992d882ef61af23496f25adaa19f9c79bfaef5d2db273d44981aa93b1631a7d37cb58755283c1dacf3f2d68e501522d3fa8c965ab646d19
2020-12-04 07:23:58 +01:00
Block Mechanic
e373959d6f Android : Ensure pic build for bdb 2020-12-04 01:57:54 +02:00
Hennadii Stepanov
d3ef947524
build: Check that Homebrew's berkeley-db4 package is actually installed 2020-12-03 23:39:14 +02:00
Andrew Chow
773c42b265 tests: Test that a fully signed tx given to signrawtx is unchanged
Tests that a fully signed transaction given to
signrawtransactionwithwallet is both unchanged and marked as complete.
This tests for a regression in 0.20 where the transaction would not be
marked as complete.
2020-12-03 15:53:58 -05:00
Hennadii Stepanov
2f6fe4e4e9
ci: Build with --enable-werror by default, and document exceptions 2020-12-03 20:51:39 +02:00