Commit graph

2273 commits

Author SHA1 Message Date
fanquake
a43b8e9555
build: set OSX_MIN_VERSION to 10.15
This is required to use std::filesystem on macOS as support for it only
landed in the libc++ dylib shipped with 10.15.

See also: https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes

Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13.
2021-09-16 17:50:19 +08:00
fanquake
7709bf46ce
Merge bitcoin/bitcoin#22970: doc: Update snap release process for new versioning scheme
fad86061e5 doc: Update snap release process for new versioning scheme (MarcoFalke)

Pull request description:

ACKs for top commit:
  jarolrod:
    ACK fad86061e5
  fanquake:
    ACK fad86061e5 - moving these instructions to the packaging repo.

Tree-SHA512: 80a9d1484a6544e44a7e57967a62d6e3084efe946de40ac5f0ad0aeb79399d578a7b690186b33d394402d383715741203ebd09ff3f376a5f657045ed96f273e7
2021-09-16 10:41:45 +08:00
W. J. van der Laan
c88f43f1ac doc: Add historical release notes for 22.0 2021-09-14 13:20:48 +02:00
MarcoFalke
fad86061e5
doc: Update snap release process for new versioning scheme 2021-09-14 12:50:31 +02:00
fanquake
76630cbfb9
doc: add glibc to dependencies.md 2021-09-10 11:18:58 +08:00
fanquake
2ef0accefc
remove --enable-glibc-back-compat from CI and docs 2021-09-10 11:18:58 +08:00
W. J. van der Laan
b05d3e76e7
Merge bitcoin/bitcoin#22079: zmq: Add support to listen on IPv6 addresses
e6998838e5 doc: Add IPv6 address to zmq example (nthumann)
8abe5703a9 test: Add IPv6 test to zmq (nthumann)
ded449b726 zmq: Enable IPv6 on listening socket (nthumann)

Pull request description:

  This PR adds support for listening on IPv6 addresses with bitcoinds ZMQ interface, just like the RPC server.
  Currently, it is not possible to specify an IPv6 address, as the `ZMQ_IPV6` [socket option](http://api.zeromq.org/master:zmq-setsockopt#toc27) is not set and therefore the ZMQ initialization fails, if one does so. The absence of this option has also been noted [here](https://github.com/bitcoin/bitcoin/issues/15198#issuecomment-617378512).
  With this PR one can e.g. set `-zmqpubhashblock=tcp://[::1]:28333` to listen on the IPv6 loopback address.

ACKs for top commit:
  laanwj:
    Code review ACK e6998838e5
  theStack:
    Tested ACK e6998838e5 🌱

Tree-SHA512: 43c3043d8d5c79794d475926259c1be975b694db4fcc1f7750a9a28e242f0fa1b531735a63ea5777498003aa5834f6243f39742d0f3941f2f37593d0c7890700
2021-09-09 15:37:13 +02:00
MarcoFalke
92aad5303b
Merge bitcoin/bitcoin#21930: doc: update enumerator naming in developer notes
77f37f58ad doc: update enum naming in developer notes (Jon Atack)

Pull request description:

  Per our current doc, the general rule is we follow the C++ Core Guidelines, which for enumerator naming stipulate:

  https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Renum-caps
  ```
  Don’t use ALL_CAPS for enumerators
  Reason: Avoid clashes with macros.
  ```

  but our examples (and often, codebase) are contradictory to it (and perhaps to common usage), which can be confusing when a contributor needs to choose a style to use. This patch:

  - updates the enumerator examples to snake_case per CPP Core Guidelines
  - clarifies for contributors that in this project enumerators may be snake_case, PascalCase or ALL_CAPS, and to use what seems appropriate.

ACKs for top commit:
  practicalswift:
    cr ACK 77f37f58ad
  ryanofsky:
    ACK 77f37f58ad. I think this is good because it modernizes the example and clarifies current conventions.
  promag:
    ACK 77f37f58ad.

Tree-SHA512: 7facc607fe5e1abab0f635864340143f13c2e4bb074eb17eac7d829dcd0cf244c5c617fc49d35e8774e8af1fa1205eeebe0cca81f538a2a61f6a7ba200878bc6
2021-09-06 14:14:22 +02:00
Michael Dietz
9de0d94508
doc: add disclaimer highlighting shortcomings of the basic multisig example 2021-09-03 13:49:03 -05:00
Michael Dietz
f9479e4626
test, doc: basic M-of-N multisig minor cleanup and clarifications
wallet_multisig_descriptor_psbt.py is refactored in this commit. While
behavior doesn't change we do cleanup the way wallets are accessed
throughout the test as this is done a lot for the various signers
and their multisigs. We also get rid of some shallow methods and
instead inline them for improved readability.

descriptors.md is improved to be more explicit about which wallet
(ie the signer or multisig) is required for each step.
2021-09-03 13:49:03 -05:00
merge-script
632be5514c
Merge bitcoin/bitcoin#23061: Fix (inverse) meaning of -persistmempool
faa9c19a4b doc: Add 23061 release notes (MarcoFalke)
faff17bbde Fix (inverse) meaning of -persistmempool (MarcoFalke)

Pull request description:

  Passing `-persistmempool` is currently treated as `-nopersistmempool`

ACKs for top commit:
  jnewbery:
    reACK faa9c19a4b
  hebasto:
    ACK faa9c19a4b, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: f34a89a07745dabe340eb845b2a348b79c093e9056f7a21c17e1ba2e278177c9b4cf30e8095791fd645a7f90eb34850b2eee0c869b4f6ec02bf749c73b0e52ee
2021-09-27 10:12:14 +02:00
W. J. van der Laan
09cb5ec6c8
Merge bitcoin/bitcoin#23065: Allow UTXO locks to be written to wallet DB
d96b000e94 Make GUI UTXO lock/unlock persistent (Samuel Dobson)
077154fe69 Add release note for lockunspent change (Samuel Dobson)
719ae927dc Update lockunspent tests for lock persistence (Samuel Dobson)
f13fc16295 Allow lockunspent to store the lock in the wallet DB (Samuel Dobson)
c52789365e Allow locked UTXOs to be store in the wallet database (Samuel Dobson)

Pull request description:

  Addresses and closes #22368

  As per that issue (and its predecessor #14907), there seems to be some interest in allowing unspent outputs to be locked persistently. This PR does so by adding a flag to lockunspent to store the change in the wallet database. Defaults to false, so there is no change in default behaviour.

  Edit: GUI commit changes default behaviour. UTXOs locked/unlocked via the GUI are now persistent.

ACKs for top commit:
  achow101:
    ACK d96b000e94
  kristapsk:
    ACK d96b000e94
  lsilva01:
    Tested ACK d96b000e94 on Ubuntu 20.04
  prayank23:
    ACK d96b000e94

Tree-SHA512: 957a5bbfe7f763036796906ccb1598feb6c14c5975838be1ba24a198840bf59e83233165cb112cebae909b6b25bf27275a4d7fa425923ef6c788ff671d7a89a8
2021-09-26 11:30:18 +02:00
Samuel Dobson
077154fe69 Add release note for lockunspent change 2021-09-25 23:50:06 +12:00
MarcoFalke
faa9c19a4b
doc: Add 23061 release notes 2021-09-25 09:52:09 +02:00
MarcoFalke
fa050bbc0a
test: Update test README and lint script 2021-09-02 10:26:35 +02:00
MarcoFalke
245462b66c
Merge bitcoin/bitcoin#22418: release: Remove gitian
ab9c34237a release: remove gitian (fanquake)

Pull request description:

  Note that this doesn't yet touch any glibc back compat related code.

ACKs for top commit:
  laanwj:
    Code review ACK ab9c34237a

Tree-SHA512: 8e2fe3ec1097f54bb11ab9136b43818d90eab5dbb0a663ad6a552966ada4bdb49cc12ff4e66f0ec0ec5400bda5c81f3a3ce70a9ebb6fe1e0db612da9f00a51a7
2021-09-02 10:09:53 +02:00
fanquake
77e77e8544
Merge bitcoin/bitcoin#22631: doc: Add packages that provide Qt Wayland plugin for Linux
5559cf1460 doc: Add packages that provide Qt Wayland plugin for Linux (Hennadii Stepanov)

Pull request description:

  When building on Linux using system packages (without depends) the support of Wayland protocol for modern desktop environments (e.g., GNOME, KDE Plasma) depends on the presence of the installed Qt Wayland plugin which is loaded dynamically at the GUI startup.

  1. On Debian/Ubuntu, the [`qtwayland5`](https://packages.ubuntu.com/focal/qtwayland5) package is required (also see this [patch](https://codereview.qt-project.org/c/qt/qtbase/+/231227), and this [doc](https://wiki.debian.org/Wayland#Qt_.28supported_since_5.29)):
  - with `qtwayland5` installed:
  ```
  $ QT_QPA_PLATFORM="wayland;xcb" ./src/qt/bitcoin-qt -printtoconsole
  Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
  2021-08-05T09:51:31Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
  2021-08-05T09:51:31Z Qt 5.11.3 (dynamic), plugin=wayland (dynamic)
  2021-08-05T09:51:31Z No static plugins.
  2021-08-05T09:51:31Z Style: fusion / QFusionStyle
  2021-08-05T09:51:31Z System: Debian GNU/Linux 10 (buster), x86_64-little_endian-lp64
  ...
  ```

  - without `qtwayland5`:
  ```
  $ QT_QPA_PLATFORM="wayland;xcb" ./src/qt/bitcoin-qt -printtoconsole
  Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
  qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
  2021-08-05T09:48:55Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
  2021-08-05T09:48:55Z Qt 5.11.3 (dynamic), plugin=xcb (dynamic)
  2021-08-05T09:48:55Z No static plugins.
  2021-08-05T09:48:55Z Style: fusion / QFusionStyle
  2021-08-05T09:48:55Z System: Debian GNU/Linux 10 (buster), x86_64-little_endian-lp64
  2021-08-05T09:48:55Z Screen: XWAYLAND0 1920x1200, pixel ratio=1.0
  ...
  ```

  2. On Fedora, the [`qt5-qtwayland`](https://fedora.pkgs.org/34/fedora-x86_64/qt5-qtwayland-5.15.2-4.fc34.x86_64.rpm.html) package is required:
  - with `qt5-qtwayland` installed:
  ```
  $ ./src/qt/bitcoin-qt -printtoconsole
  QSocketNotifier: Can only be used with threads started with QThread
  2021-08-05T08:41:03Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
  2021-08-05T08:41:03Z Qt 5.15.2 (dynamic), plugin=wayland (dynamic)
  2021-08-05T08:41:03Z No static plugins.
  2021-08-05T08:41:03Z Style: fusion / QFusionStyle
  2021-08-05T08:41:03Z System: Fedora 34 (Workstation Edition), x86_64-little_endian-lp64
  ...
  ```
  - without `qt5-qtwayland`:
  ```
  $ ./src/qt/bitcoin-qt -printtoconsole
  qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
  2021-08-05T07:50:41Z Bitcoin Core version v22.99.0-c4b42aa4ffa1 (release build)
  2021-08-05T07:50:41Z Qt 5.15.2 (dynamic), plugin=xcb (dynamic)
  2021-08-05T07:50:41Z No static plugins.
  2021-08-05T07:50:41Z Style: fusion / QFusionStyle
  2021-08-05T07:50:41Z System: Fedora 34 (Workstation Edition), x86_64-little_endian-lp64
  2021-08-05T07:50:41Z Screen: XWAYLAND0 1920x1200, pixel ratio=1.0
  ...
  ```

ACKs for top commit:
  fanquake:
    ACK 5559cf1460 - I don't think there's any harm to point this out in our Linux build docs. It's not changing our binaries or dependencies in any way.

Tree-SHA512: e26856586b29540b55c12905a091408e95ce59ea2c952520086b41138c955fba1b78e95e868f75205af07c6eccae51644177f7165d837ae058aaf0c0abf3ccf5
2021-09-02 11:25:42 +08:00
fanquake
ab9c34237a
release: remove gitian 2021-08-31 09:37:23 +08:00
Pieter Wuille
d2a09c8355 doc: mention bech32m/BIP350 in doc/descriptors.md 2021-08-30 13:45:22 -04:00
MarcoFalke
33707a2a88
Merge bitcoin/bitcoin#22782: Remove unused MaybeSetAddrName
fa9eade142 Remove GetAddrName (MarcoFalke)
fa786570a5 Remove unused RecursiveMutex cs_addrName (MarcoFalke)
fa82f4ea96 Remove unused MaybeSetAddrName (MarcoFalke)

Pull request description:

  .

ACKs for top commit:
  jnewbery:
    Code review ACK fa9eade142
  naumenkogs:
    utACK fa9eade142

Tree-SHA512: 61501a699add59225dc8127b6dfdda450d768c86f958fdf94e9c28309c3705ecfbee4b064d44228b8c1190c19c39272becc7ede8386ac1406699ea2285881c72
2021-08-27 11:46:26 +02:00
fanquake
adccbb380b
Merge bitcoin/bitcoin#21862: test: Set regtest.BIP65Height = 111 to speed up tests
faf7e485e9 Set regtest.BIP65Height = 111 to speed up tests (MarcoFalke)

Pull request description:

  No need to waste time by forcing creation of more than 1000 blocks to get the benefits of being able to test BIP 65. Also, reducing the height makes it more likely that (third-party) tests are conforming to BIP 65, which is enforced on mainnet for all new blocks.

ACKs for top commit:
  theStack:
    re-ACK faf7e485e9 📍
  Zero-1729:
    re-ACK faf7e485e9
  kristapsk:
    ACK faf7e485e9

Tree-SHA512: 79a8263e7233838666b9b636b496a8b9eb12398c779f9434677e1d62816732c0a7c7b3e73965be1fb0038d35e05e5a90e665bd74e9610104127dfc4ea38169bf
2021-08-27 07:53:25 +08:00
W. J. van der Laan
7740ebcb02
Merge bitcoin/bitcoin#22648: doc, test: improve i2p/tor docs and i2p reachable unit tests
017597767b Add I2P network SetReachable/IsReachable unit test assertions (Jon Atack)
b87a9c4d13 Improve doc/i2p.md regarding I2P router options/versions (Jon Atack)
bebcf785c0 Update i2p.md and tor.md regarding -onlynet config option (Jon Atack)

Pull request description:

  This pull addresses https://github.com/bitcoin/bitcoin/issues/22634#issuecomment-894104681 and various user feedback/questions, updates the -onlynet documentation in doc/i2p.md and doc/tor.md per #22651 (src/init.cpp is already fine) and fills in some missing I2P unit test coverage.

  Note: this PR depends in part on whether #22651 is merged in order to propose the correct -onlynet documentation (it is currently aligned with the change in #22651), so that PR should be decided or merged first.

ACKs for top commit:
  Rspigler:
    Re-ACK 017597767b
  prayank23:
    reACK 017597767b
  vasild:
    ACK 017597767b

Tree-SHA512: ae606437522bfccdfb7508108cddc7dfede2385e30a0561dbd007b784ed2639962c28552eb0e9336412faa323637fe964c26b8d8fc6dcf9fc63734ac00d05736
2021-08-26 12:44:46 +02:00
MarcoFalke
faf7e485e9
Set regtest.BIP65Height = 111 to speed up tests 2021-08-26 11:08:24 +02:00
MarcoFalke
fa9eade142
Remove GetAddrName
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html#c131-avoid-trivial-getters-and-setters
2021-08-26 10:44:26 +02:00
S3RK
0bc666b053 doc: add info for debugging with relative paths 2021-08-21 20:42:42 +02:00
Jon Atack
b87a9c4d13
Improve doc/i2p.md regarding I2P router options/versions 2021-08-19 15:41:46 +02:00
fanquake
d3169349a9
Merge bitcoin/bitcoin#22654: guix: Don't include directory name in SHA256SUMS
132cae44f2 doc: Mention the flat directory structure for uploads (Andrew Chow)
fb17c99e35 guix: Don't include directory name in SHA256SUMS (Andrew Chow)

Pull request description:

  The SHA256SUMS file can be used in a sha256sum -c command to verify downloaded binaries. However users are likely to download just a single file and not place this file in the correct directory relative to the SHA256SUMS file for the simple verification command to work. By not including the directory name in the SHA256SUMS file, it will be easier for users to verify downloaded binaries.

ACKs for top commit:
  Zero-1729:
    re-ACK 132cae44f2
  fanquake:
    ACK 132cae44f2

Tree-SHA512: c9ff416b8dfb2f3ceaf4d63afb84aac9fcaefbbf9092f9e095061b472884ec92c7a809e6530c7132a82cfe3ab115a7328e47994a412072e1d4feb26fc502c8c5
2021-08-20 15:10:26 +08:00
Andrew Chow
132cae44f2 doc: Mention the flat directory structure for uploads
The uploaded binaries need to match the same flat directory structure of
the SHA256SUMS file in order for torrent downloaders to be able to
verify the download without moving files. Mention this in the release
process doc.
2021-08-19 16:48:39 -04:00
fanquake
1ea11e10ac
doc: link to managing-wallets from doc readme
This was forgotten in #22523.
2021-08-19 08:52:25 +08:00
Michael Dietz
e05cd0546a
doc: add another signing flow for multisig with descriptor wallets and PSBTs 2021-08-16 10:43:07 +05:00
Michael Dietz
17dd657300
doc: M-of-N multisig using descriptor wallets and PSBTs, as well as a signing flow 2021-08-16 10:43:07 +05:00
lsilva01
ce4e90629e Document about wallet backup and restoration
This PR adds a document about backing up and restoring the Bitcoin Core wallet as suggested in the issue https://github.com/bitcoin/bitcoin/issues/20149 .
2021-08-17 09:40:47 -03:00
MarcoFalke
fa76ebd1a6
doc: Add missing PR 16333 release note 2021-08-16 18:00:38 +02:00
W. J. van der Laan
0b5344b0d1
Merge bitcoin/bitcoin#22632: test: Set regtest.BIP66Height = 102 to speed up tests
fafe896a0b test: Set regtest.BIP66Height = 102 to speed up tests (MarcoFalke)

Pull request description:

  No need to waste time by forcing creation of more than 1000 blocks to get the benefits of being able to test BIP 66. Also, reducing the height makes it more likely that (third-party) tests are conforming to BIP 66, which is enforced on mainnet for all new blocks.

ACKs for top commit:
  GeneFerneau:
    Concept + code review ACK [fafe896](fafe896a0b)
  0xB10C:
    crACK fafe896a0b
  laanwj:
    ACK fafe896a0b
  Zero-1729:
    tACK fafe896
  kristapsk:
    ACK fafe896a0b. Full functional test suite showed few second speed incrase on my laptop (although I didn't do proper benchmarking with multiple runs, just single `time ./test/functional/test_runner.py` on current master vs this PR).
  theStack:
    Tested ACK fafe896a0b
  hg333:
    tACK fafe896a0b

Tree-SHA512: 4bbee3c8587d612e74a59fde49b6439c1296f2fc27d3a7cf59a35e920f729fdd581c930290bd04def618f81412236676ddb99b4ceb4d80dfb9fd610b128a04b1
2021-08-10 16:18:26 +02:00
fanquake
8193294cab
Merge bitcoin/bitcoin#22642: release: Release with separate SHA256SUMS and sig files
90b3e482e9 release: Release with separate SHA256SUMS and sig files (Carl Dong)

Pull request description:

  This allows us to:
  - remove the rfc4880 EOL hacks, and
  - release with a SHA256SUMS.asc file that's a combination of all signer signatures

ACKs for top commit:
  achow101:
    ACK 90b3e482e9
  laanwj:
    Concept and code review ACK 90b3e482e9

Tree-SHA512: 5d5086063d303aa0cbd590e5fdf2ae8f555e25f4e43bf67545e33384449b990e94834c711622530ad0eb3dcc83f52746884a5081dadb0acff8dd799cfadafac7
2021-08-09 16:19:49 +08:00
lsilva01
5984084610 Specifies how to set the value of TORGROUP
This change just makes it more explicit how to assign the value to the TORGROUP variable.
2021-08-08 00:00:32 -03:00
Jon Atack
bebcf785c0
Update i2p.md and tor.md regarding -onlynet config option 2021-08-07 00:45:51 +02:00
Alex Groce
6e1150ea3b fuzz: add guide to fuzzing with Eclipser v1.x 2021-08-06 08:51:30 -07:00
Carl Dong
90b3e482e9 release: Release with separate SHA256SUMS and sig files
This allows us to remove the rfc4880 EOL hacks and release with a
SHA256SUMS.asc file that's a combination of all signer signatures.
2021-08-05 16:58:54 -04:00
MarcoFalke
fafe896a0b
test: Set regtest.BIP66Height = 102 to speed up tests 2021-08-05 12:08:33 +02:00
Hennadii Stepanov
5559cf1460
doc: Add packages that provide Qt Wayland plugin for Linux 2021-08-05 11:49:16 +03:00
MarcoFalke
dd981b5e84
Merge bitcoin/bitcoin#22618: [p2p] Small follow-ups to 21528
9778b0fec1 [net_processing] Provide debug error if code assumptions change. (Amiti Uttarwar)
aa79c91260 [docs] Add release notes for #21528 (Amiti Uttarwar)

Pull request description:

  Adds a release note & addresses [this](https://github.com/bitcoin/bitcoin/pull/21528#discussion_r680963101) review comment to make expectations more explicit.

ACKs for top commit:
  Zero-1729:
    re-ACK 9778b0fec1
  jonatack:
    ACK 9778b0fec1

Tree-SHA512: 9507df5f2746d05c6df8c86b7a19364610ebfafc81af7650be7e68d7536a0685cce9fd2e5f287ef92b6245c584f8875b24a958109ba5bd8acf3c8fc9fd19eef2
2021-08-05 09:29:54 +02:00
Amiti Uttarwar
aa79c91260 [docs] Add release notes for #21528
And fix a typo in the test.
2021-08-04 12:36:22 -07:00
Jon Atack
49d503aefa
doc: update -addrinfo in release-notes.md and tor.md 2021-08-03 12:12:47 +02:00
MarcoFalke
fa2c868886
doc: Add release notes for 22570 (ignore banlist.dat) 2021-08-02 17:54:15 +02:00
W. J. van der Laan
dcd116950f
Merge bitcoin/bitcoin#22001: doc: Generate doxygen documentation for test sources
5d37cc44f9 Generate doxygen documentation for test sources (Patrick Kamin)

Pull request description:

  Fixes #19248

  While searching for the documentation of the test utilities I realized they were excluded from doxygen. I agree with the statement in #19248. It's also helpful for new contributors to gain a broader understanding of the class dependencies visually (see BasicTestSetup)

ACKs for top commit:
  laanwj:
    ACK 5d37cc44f9

Tree-SHA512: 32f0abab2970c65621af5cee7f620c2653bd9688366e125543262bd078841e64a5a1e24cf0241e9f6ec538b8759e06108d5ff056449aa1c98d5f287deef18c86
2021-08-02 13:52:46 +02:00
W. J. van der Laan
efd6f904c7
Merge bitcoin/bitcoin#22570: Ignore banlist.dat
fa1eddb1a3 Fix whitespace in touched files (MarcoFalke)
fa4e6afdae Remove unused CSubNet serialize code (MarcoFalke)
fa384fdd0b Ignore banlist.dat (MarcoFalke)

Pull request description:

  The code to read `banlist.dat` should be removed eventually. The major release (22.x) can be used to translate a `banlist.dat` into a `banlist.json`. Thus, it is now possible to remove the reading code.

ACKs for top commit:
  Zero-1729:
    re-ACK fa1eddb1a3
  laanwj:
    concept and code review ACK fa1eddb1a3
  vasild:
    ACK fa1eddb1a3
  jonatack:
    Light code review utACK fa1eddb1a3

Tree-SHA512: e136193b7c0ba1d6d2e79c7fb4106ba4af75fa229ed7214675ee64e98e59bb4808779e7a8a09eecce62f7a5d4bc6e16b8a5ad4596129357c8fc5e3b88f214249
2021-08-02 13:27:17 +02:00
W. J. van der Laan
fd9c22ca69
Merge bitcoin/bitcoin#22589: net, doc: update I2P hardcoded seeds and docs for 22.0
d2dffd5be4 doc: add info to i2p.md about IBD time and multiple networks (Jon Atack)
2962640c49 contrib, p2p: update I2P hardcoded seeds (Jon Atack)

Pull request description:

  - Update the I2P seeds with the latest ones I can connect to (feedback welcome).

  - Update the I2P doc with frequently asked and reported info: IBD speed and running with other networks.

ACKs for top commit:
  tryphe:
    ACK d2dffd5be4
  duncandean:
    ACK d2dffd5
  willcl-ark:
    ACK d2dffd5be4
  laanwj:
    ACK d2dffd5be4
  vasild:
    ACK d2dffd5be4

Tree-SHA512: 1edda0eb77b4e224b44961849b36c5a13e1eb14bdc50f909ec44d7fe926c259cada62404906594a1cf68ffd96254647ac49f24248214b42403ecebae45135e63
2021-08-02 11:03:29 +02:00
MarcoFalke
6499928bfb
Merge bitcoin/bitcoin#22573: fuzz: document faster throughput configuration
8a4f0fcd3f Document faster throughput configuration (Alex Groce)

Pull request description:

  This is a small change to the fuzzing doc that I think might help more people improve the corpus coverage, which I think is low partly just due to lack of long, low-overhead, runs, in addition to the need to apply a more diverse set of fuzzers and coverage notions.

ACKs for top commit:
  practicalswift:
    ACK 8a4f0fcd3f
  tryphe:
    ACK 8a4f0fcd3f

Tree-SHA512: 0f1802f5c551d6ade7393cd2ac439ffd485786b17c4fd0f1a321f69f8ed0db1167ae04b5cae7bf904e89aba03e89b6d974bff564bfc6a78a571893719f323434
2021-07-31 09:26:12 +02:00
Jon Atack
d2dffd5be4
doc: add info to i2p.md about IBD time and multiple networks 2021-07-30 11:24:34 +02:00
MarcoFalke
fa384fdd0b
Ignore banlist.dat
This also allows to remove the "dirty" argument, which can now be
deduced from the return value of Read().
2021-07-30 11:21:51 +02:00
fanquake
8f76f9f613
Merge bitcoin/bitcoin#22531: guix: Fixes to guix-{attest,verify}
9b313dfef1 guix: Ensure EPOCH_SOURCE_DATE does not include GPG information (Andrew Chow)
43225f0a2a guix: Remove extra \r from all.SHA256SUMS line ending (Andrew Chow)
d080c27066 guix, doc: Add a note that codesigners need to rebuild after tagging (Andrew Chow)
4a466388a0 guix: Allow changing the base manifest in guix-verify (Andrew Chow)
33455c7696 guix: Make all.SHA256SUMS rather than codesigned.SHA256SUMS (Andrew Chow)

Pull request description:

  `guix-verify` expects `all.SHA256SUMS` but `guix-attest` produces `codesigned.SHA256SUMS`. Since `all.SHA256SUMS` makes more sense (as the file contains all the sha256sums, not just the codesigned ones), `guix-attest` has been changed to output a file of that name.

  As a quality of life improvement, `guix-verify` can take `SIGNER` and use the signer's manifest as the base to compare against. This makes it easier to compare a single person's attestations with everyone else's and can make it more obvious when one builder is clearly mismatching with everyone else.

  Lastly `release-process.md` is updated with a note about a gotcha that can cause a mismatch in the codesigned attestation.

ACKs for top commit:
  fanquake:
    ACK 9b313dfef1

Tree-SHA512: 0d60627def38288dbd3059ad1e72cad224f9205da11b1a561c082ef28250a074df5cc5f2797c91a7be027bc486a3fda3319c2e496a8724e5b539337236c6f990
2021-07-29 11:13:12 +08:00
fanquake
be92dc5876
Merge bitcoin/bitcoin#22538: doc: fix command typo in guix README
198ceb82f9 script, doc: guix touchups (jonatack)
d7b7f610a5 Updated Readme, Corrected the codesign typo (h)

Pull request description:

ACKs for top commit:
  jamesob:
    ACK 198ceb82f9
  jonatack:
    ACK 198ceb82f9

Tree-SHA512: 408360cebb51cff330fdd5d5d8ae91a168cdc99fb1377913fd9119e6eba536e58f87ff5c5b479e21a21fa3403323b137c338005bbd67e6fd24314929cdff9325
2021-07-29 11:03:18 +08:00
Alex Groce
8a4f0fcd3f
Document faster throughput configuration 2021-07-28 13:03:08 -07:00
Andrew Chow
d080c27066 guix, doc: Add a note that codesigners need to rebuild after tagging
One of the issues observed during the 22.0rc1 release process was that a
codesigner's attestation mismatched non-codesigner attestations because
the guix-codesign step was performed prior to tagging the version in
bitcoin-detached-sigs.
2021-07-28 12:59:47 -04:00
0xb10c
8f37f5c2a5
tracing: Tracepoint for connected blocks
Can, for example, be used to benchmark block connections.
2021-07-27 17:12:38 +02:00
0xb10c
4224dec22b
tracing: Tracepoints for in- and outbound P2P msgs
Can be used to monitor in- and outbound node traffic.

Based on ealier work by jb55.

Co-authored-by: William Casarin <jb55@jb55.com>
2021-07-27 17:12:16 +02:00
0xb10c
469b71ae62
doc: document systemtap dependency 2021-07-27 16:33:43 +02:00
0xb10c
84ace9aef1
doc: Add initial USDT documentation
Both added files are extended in the following commits.

doc/usdt.md is based on earlier work by laanwj.

Co-authored-by: W. J. van der Laan <laanwj@protonmail.com>
2021-07-27 16:32:01 +02:00
jonatack
198ceb82f9 script, doc: guix touchups 2021-07-23 21:23:37 +05:30
Klement Tan
a37e29d32f
cli: Implement human readable -getinfo. 2021-07-21 19:27:04 +08:00
fanquake
2ce7f95d4a
doc: clean out release notes post branch-off 2021-07-21 17:19:48 +08:00
MarcoFalke
458d6ac23b
Merge bitcoin/bitcoin#22407: rpc: Return block time in getblockchaininfo
20edf4bcf6 rpc: Return block time in getblockchaininfo (João Barbosa)

Pull request description:

  Return tip time in `getblockchaininfo`, for some use cases this can save a call to `getblock`.

ACKs for top commit:
  naumenkogs:
    ACK 20edf4bcf6
  theStack:
    re-ACK 20edf4bcf6
  0xB10C:
    ACK 20edf4bcf6
  kristapsk:
    ACK 20edf4bcf6
  Zero-1729:
    re-ACK 20edf4bcf6

Tree-SHA512: 29a920cfff1ef53e0af601c3f93f8f9171f3be47fc84b0fa293cb865b824976e8c1510b17b27d17daf0b8e658dd77d9dc388373395f0919fc4a23cd5019642d5
2021-07-21 09:47:35 +02:00
MarcoFalke
fafade9c79
doc: Adjust commit message template for the guix.sigs repo 2021-07-20 17:49:44 +02:00
João Barbosa
20edf4bcf6 rpc: Return block time in getblockchaininfo 2021-07-20 10:43:26 +01:00
fanquake
e7441a6a45
Merge bitcoin/bitcoin#21711: guix: Add full installation and usage documentation
fac4814106 doc/release-process: Add torrent creation details (Carl Dong)
5d24cc3d82 guix/INSTALL: Guix installs init scripts in libdir (Carl Dong)
5da2ee49d5 guix/INSTALL: Add coreutils/inotify-dir-recreate troubleshooting (Carl Dong)
318c60700b guix: Adapt release-process.md to new Guix process (Carl Dong)
fcab35b229 guix-attest: Produce and sign normalized documents (Carl Dong)
c2541fd0ca guix: Overhaul README (Carl Dong)
46ce6ce378 tree-wide: Rename gitian-keys to builder-keys (Carl Dong)
fc4f8449f3 guix: Update various check_tools lists (Carl Dong)
263220a85c guix: Check for a sane services database (Carl Dong)

Pull request description:

  Based on: #21462

  Keeping the README in one file so that it's easy to search through. Will add more jumping links later so navigation is easier.

  Current TODOs:
  - [x] Shell installer option: prompt user to re-login for `/etc/profile.d` entry to be picked up
  - [x] Binary tarball option: prompt user to create `/etc/profile.d` entry and re-login
  - [x] Fanquake docker option: complete section
  - [x] Arch Linux AUR option: prompt to start `guix-daemon-latest` unit after finishing "optional setup" section
  - [x] Building from source option: Insert dependency tree diagram that I made
  - [x] Building from source option: redo sectioning, kind of a mess right now
  - [x] Optional setup: make clear which parts are only needed if building from source
  - [x] Workaround 1 for GnuTLS: perhaps mention how to remove Guix build farm's key
  - [x] Overall (after everything): Make the links work.

  Note to self: wherever possible, tell user how to check that something is true rather than branching by installation option.

ACKs for top commit:
  fanquake:
    ACK fac4814106 - going to go ahead and merge this now. It's a lot of documentation, and could probably be nit-picked / improved further, however, that can continue over the next few weeks. I'm sure more (backportable) improvements / clarifications will be made while we progress through RCs towards a new release.

Tree-SHA512: dc46c0ecdfc67c7c7743ca26e4a603eb3f54adbf81be2f4c1f4c20577ebb84b5250b9c9ec89c0e9860337ab1c7cff94d7963c603287267deecfe1cd987fa070a
2021-07-20 11:09:39 +08:00
Carl Dong
fac4814106 doc/release-process: Add torrent creation details
Source: https://github.com/bitcoin/bitcoin/pull/21711#discussion_r668754244
2021-07-19 18:24:36 -04:00
Carl Dong
318c60700b guix: Adapt release-process.md to new Guix process
Also, clean up release-process.md
2021-07-19 18:24:36 -04:00
MarcoFalke
853ac47705
Merge bitcoin/bitcoin#22393: doc: added info to bitcoin.conf doc
fa84caebc7 doc: added info to bitcoin.conf doc (Brian Liotti)

Pull request description:

  Should probably be explicitly stated to not make modifications to the conf file while daemon is running. ref #11586

  For example, if rpc credentials are modified while bitcoind is running, `bitcoin-cli stop` is unable to stop bitcoind until the original credentials are restored in `bitcoin.conf`

ACKs for top commit:
  rajarshimaitra:
    ACK fa84caebc7
  Zero-1729:
    ACK fa84caebc7
  theStack:
    ACK fa84caebc7 🗄️

Tree-SHA512: f6ddffc25563c0b01e661b6abe43a7909938ad8eca38d6d0e2d4a2ce9fb850e51b54d950ef3118b74b6e340c64fe3f37205861720a2de2933db29782234869bb
2021-07-15 16:41:55 +02:00
W. J. van der Laan
d86e6625e8
Merge bitcoin/bitcoin#22369: doc: Add steps for Transifex to release process
a16378e501 doc: Remove unnecessary steps from translations update process (Wladimir J. van der Laan)
2584929823 doc: Add steps for transifex to release process (Wladimir J. van der Laan)

Pull request description:

  Document how to update settings on and for the transifex website before and after branch-off of a new release.

  (This is #21440, updated with the review feedback.)

ACKs for top commit:
  laanwj:
    ACK a16378e501
  hebasto:
    ACK a16378e501

Tree-SHA512: 9669cc3bc7ba056f913ee77c2ef9d9ee2313da947fc07f8cd955807c34c5d39e3af73587adfe734274ab2412a7dfb1e2dfe7ee4904ca28cfef9bf8061d26a573
2021-07-15 14:57:21 +02:00
Jon Atack
77f37f58ad
doc: update enum naming in developer notes
- Update the enumerator examples to snake_case per CPP Core Guidelines
  https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Renum-caps

- Clarify that in this project enumerators may be snake_case, PascalCase, or
  ALL_CAPS, and to use what is seems appropriate.
2021-07-13 21:22:24 +02:00
W. J. van der Laan
d8f1e1327f
Merge bitcoin/bitcoin#22112: Force port 0 in I2P
4101ec9d2e doc: mention that we enforce port=0 in I2P (Vasil Dimov)
e0a2b390c1 addrman: reset I2P ports to 0 when loading from disk (Vasil Dimov)
41cda9d075 test: ensure I2P ports are handled as expected (Vasil Dimov)
4f432bd738 net: do not connect to I2P hosts on port!=0 (Vasil Dimov)
1f096f091e net: distinguish default port per network (Vasil Dimov)
aeac3bce3e net: change I2P seeds' ports to 0 (Vasil Dimov)
38f900290c net: change assumed I2P port to 0 (Vasil Dimov)

Pull request description:

  _This is an alternative to https://github.com/bitcoin/bitcoin/pull/21514, inspired by https://github.com/bitcoin/bitcoin/pull/21514#issuecomment-815049933. They are mutually exclusive. Just one of them should be merged._

  Change assumed ports for I2P to 0 (instead of the default 8333) as this is closer to what actually happens underneath with SAM 3.1 (https://github.com/bitcoin/bitcoin/pull/21514#issuecomment-812632520, https://github.com/bitcoin/bitcoin/pull/21514#issuecomment-816564719).

  Don't connect to I2P peers with advertised port != 0 (we don't specify a port to our SAM 3.1 proxy and it always connects to port = 0).

  Note, this change:
  * Keeps I2P addresses with port != 0 in addrman and relays them to others via P2P gossip. There may be non-bitcoin-core-22.0 peers using SAM 3.2 and for them such addresses may be useful.
  * Silently refuses to connect to I2P hosts with port != 0. This is ok for automatically chosen peers from addrman. Not so ok for peers provided via `-addnode` or `-connect` - a user who specifies `foo.b32.i2p:1234` (non zero port) may wonder why "nothing is happening".

  Fixes #21389

ACKs for top commit:
  laanwj:
    Code review ACK 4101ec9d2e
  jonatack:
    re-ACK 4101ec9d2e per `git range-diff efff9c3 0b0ee03 4101ec9`, built with DDEBUG_ADDRMAN, did fairly extensive testing on mainnet both with and without a peers.dat / -dnsseeds=0 to test boostrapping.

Tree-SHA512: 0e3c019e1dc05e54f559275859d3450e0c735596d179e30b66811aad9d5b5fabe3dcc44571e8f7b99f9fe16453eee393d6e153454dd873b9ff14907d4e6354fe
2021-07-13 14:52:41 +02:00
W. J. van der Laan
e0fe658b86
Merge bitcoin/bitcoin#22335: doc: recommend --disable-external-signer in OpenBSD build guide
e65d1d4986 doc: recommend `--disable-external-signer` in OpenBSD build guide (Sebastian Falbesoner)

Pull request description:

  Building the master branch with the default build settings (i.e. with external signer support enabled) leads to the following errors on my OpenBSD 6.9 machine:

  ```
  In file included from util/system.cpp:9:
  In file included from /usr/local/include/boost/process.hpp:25:
  In file included from /usr/local/include/boost/process/group.hpp:32:
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:38:17: error: no member named 'waitid' in the global namespace
          ret = ::waitid(P_PGID, p.grp, &status, WEXITED | WNOHANG);
                ~~^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:38:24: error: use of undeclared identifier 'P_PGID'
          ret = ::waitid(P_PGID, p.grp, &status, WEXITED | WNOHANG);
                         ^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:38:48: error: use of undeclared identifier 'WEXITED'
          ret = ::waitid(P_PGID, p.grp, &status, WEXITED | WNOHANG);
                                                 ^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:144:17: error: no member named 'waitid' in the global namespace
          ret = ::waitid(P_PGID, p.grp, &siginfo, WEXITED | WSTOPPED | WNOHANG);
                ~~^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:144:24: error: use of undeclared identifier 'P_PGID'
          ret = ::waitid(P_PGID, p.grp, &siginfo, WEXITED | WSTOPPED | WNOHANG);
                         ^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:144:49: error: use of undeclared identifier 'WEXITED'
          ret = ::waitid(P_PGID, p.grp, &siginfo, WEXITED | WSTOPPED | WNOHANG);
                                                  ^
  /usr/local/include/boost/process/detail/posix/wait_group.hpp:144:59: error: use of undeclared identifier 'WSTOPPED'
          ret = ::waitid(P_PGID, p.grp, &siginfo, WEXITED | WSTOPPED | WNOHANG);
                                                            ^
  7 errors generated.
  ```

  This PR recommends passing `--disable-external-signer` in the OpenBSD build guide ([as suggested by laanwj](https://github.com/bitcoin/bitcoin/pull/22294#issuecomment-867452411)). The same commit also bumps the OpenBSD version mentioned in the header to 6.9 -- I recently used this document to setup a Bitcoin Core build on 6.9 and the description and all mentioned versions were still valid (before external signer support was enabled by default).

  Would be nice if another OpenBSD user could confirm the build error.

ACKs for top commit:
  laanwj:
    ACK e65d1d4986

Tree-SHA512: c3ae7eca29cf42b4b52024477e1c3fb7242bbf9d809bc95f8fa08b2f9bf4bcfd4f22457d58569a208ac1d8e5fe41b270addd13d85a5bba0521a0f9e325288448
2021-07-12 10:01:48 +02:00
Vasil Dimov
4101ec9d2e
doc: mention that we enforce port=0 in I2P
Co-authored-by: Jon Atack <jon@atack.com>
2021-07-09 11:19:38 +02:00
Carl Dong
46ce6ce378 tree-wide: Rename gitian-keys to builder-keys 2021-07-08 11:29:54 -04:00
fanquake
692b78793b
Merge bitcoin/bitcoin#22360: doc: Remove unused section from release process
fa051d3e5e doc: Remove unused section from release process (MarcoFalke)

Pull request description:

  The section does not apply to us, because it is being done by the maintainers of the `bitcoin.org` website, see https://github.com/bitcoin-dot-org/Bitcoin.org/issues/3641#issuecomment-819586576 . Documentation about the process is in their repo: https://github.com/bitcoin-dot-org/bitcoin.org/blob/master/docs/adding-events-release-notes-and-alerts.md#release-notes

ACKs for top commit:
  jarolrod:
    ACK fa051d3e5e
  Zero-1729:
    ACK fa051d3e5e
  fanquake:
    ACK fa051d3e5e

Tree-SHA512: eadc192958bb0d1009ad94c2ec79087b87514e3d19e2e6d759440392fa4abc432c512ba60692018e789c822a98a515a5f9a42966de4f8fe6b0a8b99470a76b5c
2021-07-07 14:45:41 +08:00
Brian Liotti
fa84caebc7
doc: added info to bitcoin.conf doc 2021-07-06 09:32:37 -04:00
fanquake
c609e10545
Merge bitcoin/bitcoin#22292: bench, doc: benchmarking updates and fixups
d8513fe411 doc: update doc/benchmarking.md (Jon Atack)
84e2d5b781 bench: bench_bitcoin.cpp help fixups (Jon Atack)
10f4ce2078 bench: bench.h fixes and improvements (Jon Atack)

Pull request description:

  Fixups and updates I noticed while writing benchmarks for #22284.

ACKs for top commit:
  za-kk:
    ACK d8513fe411
  theStack:
    ACK d8513fe411 🚤

Tree-SHA512: d494956b5d6a3329e98e8b6f4405a10613b8fce51a04bbf4493d8b3497b8d5b177c1a9a3eeb828796eb4edb92b0ace769595151e223671c0dc8f09bcf631ebb5
2021-07-05 08:47:36 +08:00
Wladimir J. van der Laan
a16378e501
doc: Remove unnecessary steps from translations update process
These have been integrated into the script long ago.
2021-07-03 21:31:29 +02:00
Wladimir J. van der Laan
2584929823
doc: Add steps for transifex to release process
Document how to update settings on and for the transifex website before
and after branch-off of a new release.
2021-07-03 21:31:26 +02:00
fanquake
bfd910cae4
Merge bitcoin/bitcoin#18568: doc: Clarify developer notes about constant naming
05f9770c1f doc: Clarify developer notes about constant naming (Russell Yanofsky)

Pull request description:

  I'm pretty sure developer notes were intended to say constants should be upper case and variables should be lower case, but right now they are ambiguous about whether to write:

  ```c++
  extern const int SYMBOL;
  ```

  or:

  ```c++
  extern const int g_symbol;
  ```

  First convention above is better than the second convention because it tells you without having to look anything up that the value of `SYMBOL` won't change at runtime. Also I haven't seen other c++ projects using the second convention.

ACKs for top commit:
  MarcoFalke:
    cr ACK 05f9770c1f
  practicalswift:
    ACK 05f9770c1f
  jarolrod:
    ACK 05f9770c1f 🥃

Tree-SHA512: 766d0e25d9db818d45df4ad6386987014f2053584cbced4b755ceef8bda6b7e2cfeb34eb8516423bd03b140faaf577614d5e3be2799f7eed0eb439187ab85323
2021-06-30 09:23:15 +08:00
MarcoFalke
fa051d3e5e
doc: Remove unused section from release process 2021-06-28 11:17:24 +02:00
MarcoFalke
8cdf91735f
Merge bitcoin/bitcoin#22349: doc: repository IRC updates
dd49f1b52e doc: doc/README.md IRC updates (Jon Atack)

Pull request description:

  Follow-up to https://github.com/bitcoin/bitcoin/pull/22109:

  - update remaining link and reference from Freenode to Libera
  - remove defunct #bitcoin-dev channel
  - other minor fixups

ACKs for top commit:
  fanquake:
    ACK dd49f1b52e

Tree-SHA512: de20a8f3889028def7139be1cd0fa15daa3351ca987a16090d0caa6b4cd397e370400e2b3033ec776e270aa3a1ab085ada20fbdcc063ac88e2ad3b8351a596e7
2021-06-28 08:00:47 +02:00
Hennadii Stepanov
18c2027c76
doc: Document minimum required libc++ version 2021-06-28 05:10:56 +03:00
Jon Atack
dd49f1b52e
doc: doc/README.md IRC updates
- update remaining link and reference from freenode to libera
- remove no-longer-existing #bitcoin-dev IRC channel
- other minor fixups
2021-06-27 21:26:03 +02:00
Sebastian Falbesoner
e65d1d4986 doc: recommend --disable-external-signer in OpenBSD build guide 2021-06-24 14:58:42 +02:00
W. J. van der Laan
b7565c708d
Merge bitcoin/bitcoin#22250: doc: add basic I2P documentation
78cdab1ad2 doc: sort entries in doc/README.md#Miscellaneous alphabetically (Vasil Dimov)
cad487bcfa doc: add basic I2P documentation (Vasil Dimov)

Pull request description:

  Add basic I2P documentation to help users to start using I2P and Bitcoin Core.

ACKs for top commit:
  jonatack:
    ACK 78cdab1ad2
  laanwj:
    ACK 78cdab1ad2

Tree-SHA512: 71cffc9419338a21cb9e811ee9463d6d09eef1a2a73190f766523bc1642a1f58984d5b2ab13da9b6560387ac9f431aace8bc7ae9b776585ecd3e3c1ff6af8e8d
2021-06-24 13:38:39 +02:00
fanquake
c31161f4f7
Merge bitcoin/bitcoin#22320: build: set minimum required Boost to 1.64.0
957f358427 build: remove check for Boost Process header (fanquake)
df2c933217 build: remove workaround for Boost and std::atomic (fanquake)
2bf211696b build: set minimum required Boost to 1.64.0 (fanquake)

Pull request description:

  Setting a newer minimum required Boost means we can remove the awkward header / compile check for Boost Process.

  If we don't do this, we should at-least make Boost Process being missing no longer a failure, otherwise anyone building using Boost < 1.64.0 would have to pass `--disable-external-signer` as well.

  The only system I can see that is affected here, (doesn't have new enough system packages) is Debian Oldstable. However, anyone compiling there, can use depends. They can also no-longer use the system GCC (6.0), and I'd assume would be using Clang 7, which would be the newest compiler available to them. It's extended, LTS support also end in 1 year from now, so anyone still using it should be considering upgrading.

  Debian Buster (Stable) has 1.67+, Ubuntu Bionic has 1.65+, any of the BSDs, recent Fedora, macOS etc all also have well and truly new enough Boost versions available.

  I think this is something we should just do for 22.0. If not, definitely for 23.0.

  Fixes #22319. Compiling Bitcoin Core should work, as `windows.h` will be included.
  Alternative to #22294.
  Would also close #22269.
  #19128 could be re-opened.

ACKs for top commit:
  laanwj:
    Tested ACK 957f358427 that this fixes #22269.
  MarcoFalke:
    review ACK 957f358427

Tree-SHA512: a8ffa7933dce8bf994892ef16664103d7b4e1008e52628e9becb918a7727232dfb51b23100a82dc2b60cd9af5877abc32dc2d3754a7e1b3ac5410a92fdf393f3
2021-06-24 18:35:25 +08:00
Jon Atack
d8513fe411
doc: update doc/benchmarking.md 2021-06-24 11:15:29 +02:00
Vasil Dimov
78cdab1ad2
doc: sort entries in doc/README.md#Miscellaneous alphabetically 2021-06-23 12:21:39 +02:00
Vasil Dimov
cad487bcfa
doc: add basic I2P documentation 2021-06-23 12:21:38 +02:00
Prayank
86a4a15bdc Highlight DNS request part 2021-06-23 14:48:56 +05:30
MarcoFalke
d6e0d78c31
Merge bitcoin/bitcoin#20966: banman: save the banlist in a JSON format on disk
bb719a08db style: remove () from assert in rpc_setban.py (Vasil Dimov)
24b10ebda3 doc: fix grammar in doc/files.md (Vasil Dimov)
dd4e957dcd test: ensure banlist can be read from disk after restart (Vasil Dimov)
d197977ae2 banman: save the banlist in a JSON format on disk (Vasil Dimov)

Pull request description:

  Save the banlist in `banlist.json` instead of `banlist.dat`.

  This makes it possible to store Tor v3 entries in the banlist on disk
  (and any other addresses that cannot be serialized in addrv1 format).

  Only read `banlist.dat` if it exists and `banlist.json` does not exist (first start after an upgrade).

  Supersedes https://github.com/bitcoin/bitcoin/pull/20904
  Resolves https://github.com/bitcoin/bitcoin/issues/19748

ACKs for top commit:
  jonatack:
    Code review re-ACK bb719a08db per `git range-diff 6a67366 4b52c72 bb719a0`
  achow101:
    Code Review ACK bb719a08db

Tree-SHA512: fc135c3a1fe20bcf5d008ce6bea251b4135e56c78bf8f750b4bd8144c095b81ffe165133cdc7e4715875eec7e7c4e13ad9f5d2450b21102af063d7c8abf716b6
2021-06-23 10:01:56 +02:00
fanquake
2bf211696b
build: set minimum required Boost to 1.64.0 2021-06-23 15:48:37 +08:00
MarcoFalke
fa09fd1a09
doc: Final merge of release notes snippets 2021-06-21 16:31:06 +02:00
W. J. van der Laan
6556da77d7
Merge bitcoin/bitcoin#21056: rpc: Add a -rpcwaittimeout parameter to limit time spent waiting
b9e76f1bf0 rpc: Add test for -rpcwaittimeout (Christian Decker)
f76cb10d7d rpc: Prefix rpcwaittimeout error with details on its nature (Christian Decker)
c490e17ef6 doc: Add release notes for the `-rpcwaittimeout` cli parameter (Christian Decker)
a7fcc8eb59 rpc: Add a `-rpcwaittimeout` parameter to limit time spent waiting (Christian Decker)

Pull request description:

  Adds a new numeric `-rpcwaittimeout` that can be used to limit the
  time we spend waiting on the RPC server to appear. This is used by
  downstream projects to provide a bit of slack when `bitcoind`s RPC
  interface is not available right away.

  This makes the `-rpcwait` argument more useful, since we can now limit
  how long we'll ultimately wait, before potentially giving up and reporting
  an error to the caller. It was discussed in the context of the BTCPayServer
  wanting to have c-lightning wait for the RPC interface to become available
  but still have the option of giving up eventually ([4355]).

  I checked with laanwj whether this is already possible ([comment]), and
  whether this would be a welcome change. Initially I intended to repurpose
  the (optional) argument to `-rpcwait`, however I decided against it since it
  would potentially break existing configurations, using things like `rpcwait=1`,
  or `rpcwait=true` (the former would have an unintended short timeout, when
  old behavior was to wait indefinitely).

  ~Due to its simplicity I didn't implement a test for it yet, but if that's desired I
  can provide one.~ Test was added during reviews.

  [4355]: https://github.com/ElementsProject/lightning/issues/4355
  [comment]: https://github.com/ElementsProject/lightning/issues/4355#issuecomment-768288261

ACKs for top commit:
  laanwj:
    Code review ACK b9e76f1bf0
  promag:
    ACK b9e76f1bf0.

Tree-SHA512: 3cd6728038ec7ca7c35c2e7ccb213bfbe963f99a49bb48bbc1e511c4dd23d9957c04f9af1f8ec57120e47b26eaf580b46817b099d5fc5083c98da7aa92db8638
2021-06-21 15:54:56 +02:00
Vasil Dimov
24b10ebda3
doc: fix grammar in doc/files.md 2021-06-21 15:27:57 +02:00
Vasil Dimov
d197977ae2
banman: save the banlist in a JSON format on disk
Save the banlist in `banlist.json` instead of `banlist.dat`.

This makes it possible to store Tor v3 entries in the banlist on disk
(and any other addresses that cannot be serialized in addrv1 format).

Only read `banlist.dat` if it exists and `banlist.json` does not
exist (first start after an upgrade).

Supersedes https://github.com/bitcoin/bitcoin/pull/20904
Resolves https://github.com/bitcoin/bitcoin/issues/19748
2021-06-21 14:39:44 +02:00
nthumann
e6998838e5
doc: Add IPv6 address to zmq example 2021-06-20 16:56:08 +02:00
W. J. van der Laan
4bff49bbb1
Merge bitcoin/bitcoin#22172: doc: update tor.md, release notes with removal of tor v2 support
2ad034a890 doc: update release notes with removal of tor v2 support (Jon Atack)
49938eee9c doc: update tor.md with removal of tor v2 support (Jon Atack)

Pull request description:

  Follow-up documentation to #22050 that removed support for Tor version 2 hidden services from Bitcoin Core.

ACKs for top commit:
  laanwj:
    ACK 2ad034a890

Tree-SHA512: 0f13f9d1db7e11f1e3d9967b6d17b8dc3144b3ab3a258c706464c5e6ac5cbcf2ce2db4ea54be9939f05a82ebd1e7f325f50b435f9822c08b4f21ed4ac58de0af
2021-06-12 12:23:17 +02:00
Jon Atack
2ad034a890
doc: update release notes with removal of tor v2 support 2021-06-12 12:09:25 +02:00
Sebastian Falbesoner
6780a095d8 doc: remove obsolete okSafeMode RPC guideline from developer notes
Since the flag has been removed from the RPC command table in commit
ec6902d0ea (PR #11179), this guideline
is not relevant anymore and can be removed.
2021-06-10 02:02:29 +02:00
Jon Atack
49938eee9c
doc: update tor.md with removal of tor v2 support 2021-06-06 19:05:01 +02:00
W. J. van der Laan
c7dd9ff71b
Merge bitcoin/bitcoin#22051: Basic Taproot derivation support for descriptors
2667366aaa tests: check derivation of P2TR (Pieter Wuille)
7cedafc541 Add tr() descriptor (derivation only, no signing) (Pieter Wuille)
90fcac365e Add TaprootBuilder class (Pieter Wuille)
5f6cc8daa8 Add XOnlyPubKey::CreateTapTweak (Pieter Wuille)
2fbfb1becb Make consensus checking of tweaks in pubkey.* Taproot-specific (Pieter Wuille)
a4bf84039c Separate WitnessV1Taproot variant in CTxDestination (Pieter Wuille)
41839bdb89 Avoid dependence on CTxDestination index order (Pieter Wuille)
31df02a070 Change Solver() output for WITNESS_V1_TAPROOT (Pieter Wuille)
4b1cc08f9f Make XOnlyPubKey act like byte container (Pieter Wuille)

Pull request description:

  This is a subset of #21365, to aide review.

  This adds support `tr(KEY)` or `tr(KEY,SCRIPT)` or `tr(KEY,{{S1,{{S2,S3},...}},...})` descriptors, describing Taproot outputs with specified internal key, and optionally any number of scripts, in nested groups of 2 inside `{`/`}` if there are more than one. While it permits importing `tr(KEY)`, anything beyond that is just laying foundations for more features later.

  Missing:
  * Signing support (see #21365)
  * Support for more interesting scripts inside the tree (only `pk(KEY)` is supported for now). In particular, a multisig policy based on the new `OP_CHECKSIGADD` opcode would be very useful.
  * Inferring `tr()` descriptors from outputs (given sufficient information).
  * `getaddressinfo` support.
  * MuSig support. Standardizing that is still an ongoing effort, and is generally kind of useless without corresponding PSBT support.
  * Convenient ways of constructing descriptors without spendable internal key (especially ones that arent't trivially recognizable as such).

ACKs for top commit:
  Sjors:
    utACK 2667366 (based on https://github.com/bitcoin/bitcoin/pull/21365#issuecomment-846945215 review, plus the new functional test)
  achow101:
    Code Review ACK 2667366aaa
  lsilva01:
    Tested ACK 2667366aaa
  meshcollider:
    utACK 2667366aaa

Tree-SHA512: 61046fef22c561228338cb178422f0b782ef6587ec8208d3ce2bd07afcff29a664b54b35c6b01226eb70b6540b43f6dd245043d09aa6cb6db1381b6042667e75
2021-06-03 21:58:41 +02:00
Christian Decker
c490e17ef6 doc: Add release notes for the -rpcwaittimeout cli parameter 2021-06-03 11:23:22 +02:00
Hennadii Stepanov
2fda0c7851
doc: Drop no longer required notes for Windows builds 2021-06-02 18:04:47 +03:00
W. J. van der Laan
1186910b6b
Merge bitcoin/bitcoin#22088: doc: improve note on choosing posix mingw32
dafab2b1b3 doc: improve note on choosing posix mingw32 (Jarol Rodriguez)

Pull request description:

  The current [windows build doc](https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md) can lead someone to believe that the step where you must choose the posix mingw32 g++ compiler option is only for `Ubuntu 18.04`. It is only until you (or just me) go through the cross-compile process and realize that it's not building because you didn't set this option on > `Ubuntu 18.04`. Then you come back and read the footnotes and see: `Starting from Ubuntu Xenial 16.04...`.

  This PR improves this portion of the doc by editing the text around this stage to state "this is now the next step". We could add a note saying `Ubuntu 18.04 and up`, but this is redundant as it's unlikely someone will be using < Ubuntu 18.04 since it's not officially supported by our build system. While here, some minor fixups and add some more guidance to completing this step.

  **Master:** [render](https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md#building-for-64-bit-windows)
  **PR:** [render](dafab2b1b3/doc/build-windows.md (building-for-64-bit-windows))

ACKs for top commit:
  laanwj:
    ACK dafab2b1b3
  hebasto:
    ACK dafab2b1b3

Tree-SHA512: d8d50fa13c34be753700843183a1a4addad6447c813bfc039865ba11d5fa03c25206ed6f3782331df4c6a44448e3fec4138ae911b995b5cacc5b756bb5d74bb4
2021-06-02 17:01:02 +02:00
fanquake
a83bbf02c7
Merge bitcoin/bitcoin#22054: depends: Bump Qt version to 5.12.11
fa416cea84 depends: Bump Qt version to 5.12.11 (Hennadii Stepanov)

Pull request description:

  Qt 5.12.11:
  - [fixes](c5d904639d) macOS related [QTBUG-87014](https://bugreports.qt.io/browse/QTBUG-87014), and the `fix_bigsur_drawing.patch` (which is our workaround for QTBUG-87014) could be dropped
  - [upgrades](00326c9dc1) supported macOS SDK to 11.0, and removes related warnings
  - fixes tab widget rendering on macOS Big Sur ([here](4d6832d03f) and [here](28b015342d)):
    - master (5.12.10)
  ![DeepinScreenshot_select-area_20210525122725](https://user-images.githubusercontent.com/32963518/119474470-dd24a180-bd54-11eb-82e6-ca4d39b0b177.png)
  ![DeepinScreenshot_select-area_20210525123634](https://user-images.githubusercontent.com/32963518/119475548-ebbf8880-bd55-11eb-9c13-477016f8c23b.png)
    - this PR (5.12.11)
  ![Screenshot from 2021-05-25 12-28-02](https://user-images.githubusercontent.com/32963518/119474537-ed3c8100-bd54-11eb-8efe-7fe5ccae8a98.png)

  Closes https://github.com/bitcoin-core/gui/issues/136.

ACKs for top commit:
  goums:
    ACK fa416cea84
  fanquake:
    ACK fa416cea84 - merging this now to move it out of the way of other Qt related changes.

Tree-SHA512: 4e621b214f05d12a060757fadf2fa103c09b594d7b1c2ad9200f550e55c1e1fdf66f2f830550e724b9277448e5480be256cb0003f4597902944400e16c4a68b8
2021-06-02 12:12:33 +08:00
MarcoFalke
9999e4c64b
doc: Fix external links (IRC, ...) 2021-05-31 17:27:57 +02:00
Jarol Rodriguez
dafab2b1b3 doc: improve note on choosing posix mingw32 2021-05-27 19:00:34 -04:00
W. J. van der Laan
7257e50dba
Merge bitcoin/bitcoin#20833: rpc/validation: enable packages through testmempoolaccept
13650fe2e5 [policy] detect unsorted packages (glozow)
9ef643e21b [doc] add release note for package testmempoolaccept (glozow)
c4259f4b7e [test] functional test for packages in RPCs (glozow)
9ede34a6f2 [rpc] allow multiple txns in testmempoolaccept (glozow)
ae8e6df709 [policy] limit package sizes (glozow)
c9e1a26d1f [fuzz] add ProcessNewPackage call in tx_pool fuzzer (glozow)
363e3d916c [test] unit tests for ProcessNewPackage (glozow)
cd9a11ac96 [test] make submit optional in CreateValidMempoolTransaction (glozow)
2ef187941d [validation] package validation for test accepts (glozow)
578148ded6 [validation] explicit Success/Failure ctors for MempoolAcceptResult (glozow)
b88d77aec5 [policy] Define packages (glozow)
249f43f3cc [refactor] add option to disable RBF (glozow)
897e348f59 [coins/mempool] extend CCoinsViewMemPool to track temporary coins (glozow)
42cf8b25df [validation] make CheckSequenceLocks context-free (glozow)

Pull request description:

  This PR enables validation dry-runs of packages through the `testmempoolaccept` RPC. The expectation is that the results returned from `testmempoolaccept` are what you'd get from test-then-submitting each transaction individually, in that order (this means the package is expected to be sorted in topological order, for now at least). The validation is also atomic: in the case of failure, it immediately halts and may return "unfinished" `MempoolAcceptResult`s for transactions that weren't fully validated. The API for 1 transaction stays the same.

  **Motivation:**
  - This allows you to test validity for transaction chains (e.g. with multiple spending paths and where you don't want to broadcast yet); closes #18480.
  - It's also a first step towards package validation in a minimally invasive way.
  - The RPC commit happens to close #21074 by clarifying the "allowed" key.

  There are a few added restrictions on the packages, mostly to simplify the logic for areas that aren't critical to main package use cases:
  - No package can have conflicts, i.e. none of them can spend the same inputs, even if it would be a valid BIP125 replacement.
  - The package cannot conflict with the mempool, i.e. RBF is disabled.
  - The total count of the package cannot exceed 25 (the default descendant count limit), and total size cannot exceed 101KvB (the default descendant size limit).

  If you're looking for review comments and github isn't loading them, I have a gist compiling some topics of discussion [here](https://gist.github.com/glozow/c3acaf161c95bba491fce31585b2aaf7)

ACKs for top commit:
  laanwj:
    Code review re-ACK 13650fe2e5
  jnewbery:
    Code review ACK 13650fe2e5
  ariard:
    ACK 13650fe

Tree-SHA512: 8c5cbfa91a6c714e1c8710bb281d5ff1c5af36741872a7c5df6b24874d6272b4a09f816cb8a4c7de33ef8e1c2a2c252c0df5105b7802f70bc6ff821ed7cc1a2f
2021-05-27 22:40:24 +02:00
Hennadii Stepanov
fa416cea84
depends: Bump Qt version to 5.12.11 2021-05-27 14:53:18 +03:00
Jon Atack
d8f1ea7227
doc: describe in fuzzing.md how to reproduce a CI crash
and add/improve a few headers
2021-05-25 15:18:50 +02:00
Pieter Wuille
7cedafc541 Add tr() descriptor (derivation only, no signing)
This adds a new descriptor with syntax e.g. tr(KEY,{S1,{{S2,S3},S4})
where KEY is a key expression for the internal key and S_i are
script expression for the leaves. They have to be organized in
nested {A,B} groups, with exactly two elements.

tr() only exists at the top level, and inside the script expressions
only pk() scripts are allowed for now.
2021-05-24 12:14:16 -07:00
glozow
9ef643e21b [doc] add release note for package testmempoolaccept 2021-05-24 15:48:32 +01:00
MarcoFalke
18cf1c5165
Merge bitcoin/bitcoin#21991: build: libevent 2.1.12-stable
f152c1ac66 build: libevent 2.1.12-stable (fanquake)

Pull request description:

  Start using [libevent 2.1.12-stable](https://github.com/libevent/libevent/releases/tag/release-2.1.12-stable) in depends. Changelog is available here: https://raw.githubusercontent.com/libevent/libevent/release-2.1.12-stable/ChangeLog. This release basically only contains bug fixes.

  Upgrading will also prevent some oss-fuzz reports which are coming from libevent code, such as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34355 & https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34412.

  Guix builds:
  ```bash
  aa365feab851d2055c4c3cd787fc1db972a8f2efe1e7c75bc62b34594846a021  guix-build-f152c1ac66bf/output/aarch64-linux-gnu/bitcoin-f152c1ac66bf-aarch64-linux-gnu-debug.tar.gz
  80cf96c4618279f4420b3f15ce3d3331937506e7996d8c325ce741f4da431fad  guix-build-f152c1ac66bf/output/aarch64-linux-gnu/bitcoin-f152c1ac66bf-aarch64-linux-gnu.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/aarch64-linux-gnu/inputs.SHA256SUMS
  b6261b19ed8f55e655122d515a4f76a984e1f74f932630ce40ca34bb76fadfc6  guix-build-f152c1ac66bf/output/arm-linux-gnueabihf/bitcoin-f152c1ac66bf-arm-linux-gnueabihf-debug.tar.gz
  be1018237e5e739a742f777efdbdd28ff794cfc2faa39930d5da6dfcfa620da3  guix-build-f152c1ac66bf/output/arm-linux-gnueabihf/bitcoin-f152c1ac66bf-arm-linux-gnueabihf.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/arm-linux-gnueabihf/inputs.SHA256SUMS
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  guix-build-f152c1ac66bf/output/dist-archive/SKIPATTEST.TAG
  52fa25961965b53e73319f5f8ba5a62f789b56ff3a07286ed5fe88771c2674bf  guix-build-f152c1ac66bf/output/dist-archive/bitcoin-f152c1ac66bf.tar.gz
  069dfc72b83527722552d12db86f3f7046be9a85d0ccc5168c71af0d38dbc9a9  guix-build-f152c1ac66bf/output/powerpc64-linux-gnu/bitcoin-f152c1ac66bf-powerpc64-linux-gnu-debug.tar.gz
  dba47d56dccdd4183762f888ab2e64bf8c074a6873dcf6dac663f88633932926  guix-build-f152c1ac66bf/output/powerpc64-linux-gnu/bitcoin-f152c1ac66bf-powerpc64-linux-gnu.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/powerpc64-linux-gnu/inputs.SHA256SUMS
  e43e2c631ed0dd587a52705b36e5e69e9e622d493eb6741d438976197a1416f2  guix-build-f152c1ac66bf/output/powerpc64le-linux-gnu/bitcoin-f152c1ac66bf-powerpc64le-linux-gnu-debug.tar.gz
  f47f006c68262e3cd30acc355478d4ea056bb1c055bc51c5adab56305c260725  guix-build-f152c1ac66bf/output/powerpc64le-linux-gnu/bitcoin-f152c1ac66bf-powerpc64le-linux-gnu.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/powerpc64le-linux-gnu/inputs.SHA256SUMS
  f62805fd8652e28d935da14b0328f62a583be24b5517a5c7f189970bdd3c6eb0  guix-build-f152c1ac66bf/output/riscv64-linux-gnu/bitcoin-f152c1ac66bf-riscv64-linux-gnu-debug.tar.gz
  db16cbddfc790798af8617213cc726002545f05cfb90ec00e462ba5d3aca10b1  guix-build-f152c1ac66bf/output/riscv64-linux-gnu/bitcoin-f152c1ac66bf-riscv64-linux-gnu.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/riscv64-linux-gnu/inputs.SHA256SUMS
  2c1afbc6ea44e5947ffcbdf031233f03f7a63b93ca08ddfec2c45c661c1666bc  guix-build-f152c1ac66bf/output/x86_64-apple-darwin18/bitcoin-f152c1ac66bf-osx-unsigned.dmg
  65cff5a1bc7eb411b1bb26eb407c2a944e5bf24b08cfcd7a9eeea47924106ac8  guix-build-f152c1ac66bf/output/x86_64-apple-darwin18/bitcoin-f152c1ac66bf-osx-unsigned.tar.gz
  98a5c002aed8a35912853cca5e5ffd7afc91eb839b81ca8bc73ddf010839e3ac  guix-build-f152c1ac66bf/output/x86_64-apple-darwin18/bitcoin-f152c1ac66bf-osx64.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/x86_64-apple-darwin18/inputs.SHA256SUMS
  84e3188d369aae01a459b477e1935a9466338bb9ea6d4beb93675275a5ac62fd  guix-build-f152c1ac66bf/output/x86_64-linux-gnu/bitcoin-f152c1ac66bf-x86_64-linux-gnu-debug.tar.gz
  ea3f4d928f82ea3d1079be3d4e020349e9d412c621149656ea409a61de906c4c  guix-build-f152c1ac66bf/output/x86_64-linux-gnu/bitcoin-f152c1ac66bf-x86_64-linux-gnu.tar.gz
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/x86_64-linux-gnu/inputs.SHA256SUMS
  6dc14c4e1d0b353b865a9f807dafe7ec56e829a8bc104a5ac6ef331bdc9bc726  guix-build-f152c1ac66bf/output/x86_64-w64-mingw32/bitcoin-f152c1ac66bf-win-unsigned.tar.gz
  bd382152587c2dc5816d615d71e36df80f54eac5b4913569148e44117b80517c  guix-build-f152c1ac66bf/output/x86_64-w64-mingw32/bitcoin-f152c1ac66bf-win64-debug.zip
  d2f38b52ea54e913ccadbda6c264a258ca9a55b40a8af96ab8123e8311170aef  guix-build-f152c1ac66bf/output/x86_64-w64-mingw32/bitcoin-f152c1ac66bf-win64-setup-unsigned.exe
  8846b6edcdb0b3c29bdbab08b3582ee13b4877724bf3811246360b14b73ae420  guix-build-f152c1ac66bf/output/x86_64-w64-mingw32/bitcoin-f152c1ac66bf-win64.zip
  53db9e6b78fa13e0753cab4a35da5e66156c54485020c6c49b1cd1ab406e978b  guix-build-f152c1ac66bf/output/x86_64-w64-mingw32/inputs.SHA256SUMS
  ```

  Gitian builds:
  ```bash
  # macOS:
  19401d11d0eda5cdcbab8c1353f7110963288e5223fd95d8cc3380107b66a7e4  bitcoin-f152c1ac66bf-osx-unsigned.dmg
  3eb2383c5af734a86eaf1895f261c1ba5fddc130d9682857eff08fa7d0599e93  bitcoin-f152c1ac66bf-osx-unsigned.tar.gz
  c2572b6f17613a380cf95417ed6a533d8f75fb1418428e234cb90cc0d3d5a655  bitcoin-f152c1ac66bf-osx64.tar.gz
  52fa25961965b53e73319f5f8ba5a62f789b56ff3a07286ed5fe88771c2674bf  src/bitcoin-f152c1ac66bf.tar.gz
  4bcf84076345c61736c63f33e6f9db57b626030c417c2a1b668752d5f87dab22  bitcoin-core-osx-22-res.yml

  # Windows:
  5857fda233fc9fdb04391bd1718522b774978d093912650d4dc6e49b70dde40b  bitcoin-f152c1ac66bf-win-unsigned.tar.gz
  beff745cde9f19d3d619c3c360a9eb37dbe94169cbc968ac7958e80521584787  bitcoin-f152c1ac66bf-win64-debug.zip
  e92010f76d8b286e291c4420349018029e72013ae8bf5b98eccfbf9f856a1490  bitcoin-f152c1ac66bf-win64-setup-unsigned.exe
  46c38498fb16e5353de24caffd11d00b23162ec92f126de57888b4f92f375d79  bitcoin-f152c1ac66bf-win64.zip
  52fa25961965b53e73319f5f8ba5a62f789b56ff3a07286ed5fe88771c2674bf  src/bitcoin-f152c1ac66bf.tar.gz
  851ebc1f3028ec421d733a15acf7514474a44837b75e2f94c1f80ab383b1a364  bitcoin-core-win-22-res.yml

  # Linux:
  4270014b016a309b6ccff39cf87b90f3b5a36a10eab5d2c41697b12b9eb5e63e  bitcoin-f152c1ac66bf-aarch64-linux-gnu-debug.tar.gz
  f226aaeb9cf7786fa5f4dc379611c8b1b3b580df503f79905158d0e2271c3862  bitcoin-f152c1ac66bf-aarch64-linux-gnu.tar.gz
  4cd6208dc30c15b71d80d9cd59d367aba676934609d59581c8f418f9e864994d  bitcoin-f152c1ac66bf-arm-linux-gnueabihf-debug.tar.gz
  21746b2bbf4fd6778ea0357271f569975029667dea2ad0000abb6751eeba8071  bitcoin-f152c1ac66bf-arm-linux-gnueabihf.tar.gz
  d73e6b2a779061037eaa3174615a7e5bb6082056ee4dc13de4026cc3ad21f3c5  bitcoin-f152c1ac66bf-powerpc64-linux-gnu-debug.tar.gz
  e6c5876dcdd30b8936b957afc8adb9341c64a1201ba8c4285f5f76bc37689c7c  bitcoin-f152c1ac66bf-powerpc64-linux-gnu.tar.gz
  fc0270f7c220519e91ecd27c37df7ec130e16db8508e51b52eb88eae1f0d05d2  bitcoin-f152c1ac66bf-powerpc64le-linux-gnu-debug.tar.gz
  3729a36717f704a6e30a0368a68d2356ec9af240b706a7a8c117f7ebcc5ebbca  bitcoin-f152c1ac66bf-powerpc64le-linux-gnu.tar.gz
  b661fc47dbf4a56cecfe02abfff78644524cd6d94aac51a38d83a4ba96a21b6e  bitcoin-f152c1ac66bf-riscv64-linux-gnu-debug.tar.gz
  8934ae4727e7908f626d2392877cad153696c6d8e832a9dbc0960e090f633ab4  bitcoin-f152c1ac66bf-riscv64-linux-gnu.tar.gz
  cc8511b71c89575f15cfbb360c18c0af298869fd4e8c4a27ef2c04b6bc0f0703  bitcoin-f152c1ac66bf-x86_64-linux-gnu-debug.tar.gz
  1cfb8cf750ca7af47cbab00d8eaee336fb11c22756a62b26b5c9a1263b5b0cd4  bitcoin-f152c1ac66bf-x86_64-linux-gnu.tar.gz
  52fa25961965b53e73319f5f8ba5a62f789b56ff3a07286ed5fe88771c2674bf  src/bitcoin-f152c1ac66bf.tar.gz
  3b5053c7392a1a6264f3d192136e50fc9db969834d9d3643d860a3f0e2f79535  bitcoin-core-linux-22-res.yml
  ```

ACKs for top commit:
  practicalswift:
    ~~cr ACK f152c1ac66: patch looks correct and this should resolve the OSS-Fuzz issues~~ ACK temporarily redacted while awaiting non-determinism fix
  MarcoFalke:
    Approach ACK f152c1ac66
  hebasto:
    ~ACK f152c1ac66bfe5c77d947d5c99ce5da3a88797fa~ [retracted due to non-reproducible builds](https://github.com/bitcoin/bitcoin/pull/21991#issuecomment-844005749)

Tree-SHA512: 43253131f6d7fadfcda541e00c13d5e2fd395555563bcc42218ba4657d8f94b09760cbad6b8f0a17e426eed817624b745464d2733f7d5ac00fbb92a6ffadab84
2021-05-21 08:12:35 +02:00
Patrick Kamin
5d37cc44f9 Generate doxygen documentation for test sources 2021-05-19 22:08:18 -07:00
Jon Atack
ce6bca88e8
doc: release note for getnodeaddresses by network 2021-05-19 13:06:06 +02:00
fanquake
f152c1ac66
build: libevent 2.1.12-stable 2021-05-18 10:19:10 +08:00
Raul Siles
33b0b26a03 doc: note that brew installed qt is not supported 2021-05-17 21:36:08 -04:00
fanquake
1ef34ee25e
Merge bitcoin/bitcoin#21947: doc: Fix OSS-Fuzz links
fadd98d02f doc: Fix OSS-Fuzz links (MarcoFalke)

Pull request description:

  * Add missing link to the coverage report
  * Replace unqualified link with qualified one

ACKs for top commit:
  practicalswift:
    ACK fadd98d02f
  jarolrod:
    ACK fadd98d02f

Tree-SHA512: 5d5138288ae75d6a9ae536f307a63813ffe60c628a8c9a74b33f0d1be1a34fac2ff5eca9c9fe64be3139f2251736ba088c5f3731f0b3f50c70c5a5f1a89f0ea4
2021-05-16 19:59:27 +10:00
MarcoFalke
61fea52171
Merge bitcoin/bitcoin#21942: docs: improve make with parallel jobs description.
07bc22ef10 docs: improve make with parallel jobs description. (Klement Tan)

Pull request description:

  Changed `use -jX here for parallelism` to `use "-j N" for N parallel jobs`

  **Rationale**: In my opinion `use -jX here for parallelism` is quite ambiguous as it could be perceived as a single option without any argument. Ie running:
  ```sh
  make -jX
  ```

  Embarrassingly this caused me to be stuck for quite a long time until I opened the help menu for `make` but if I am the only one who faced this issue I would be happy to close this PR.

ACKs for top commit:
  jarolrod:
    ACK 07bc22ef10

Tree-SHA512: 2d119b6a461668906c63184b865d2cc9fb2f75abeba34e2e44bc1ef3bcb4adec4a49896ddaf3cc6a20c0095ad20d0de0908401b351eaca9443161d24d6b20d0b
2021-05-14 08:22:02 +02:00
MarcoFalke
fadd98d02f
doc: Fix OSS-Fuzz links 2021-05-14 08:15:03 +02:00
Klement Tan
07bc22ef10
docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
MarcoFalke
db2990d01f
Merge bitcoin/bitcoin#21925: doc: Update bips.md for 0.21.1
faf30f2ae0 doc: Update bips.md for 0.21.1 (MarcoFalke)

Pull request description:

ACKs for top commit:
  kristapsk:
    ACK faf30f2ae0
  jarolrod:
    ACK faf30f2ae0
  prayank23:
    ACK faf30f2ae0

Tree-SHA512: b09e8782306fe990d4eba871627cb7aa97a521a5aa08b7c7369fbfc24e49c3c9386cd06c590af076dff9b95ade207cc470911aa4b97cd5f366630974e71e1348
2021-05-13 09:15:15 +02:00
MarcoFalke
faf30f2ae0
doc: Update bips.md for 0.21.1 2021-05-12 10:06:37 +02:00
MarcoFalke
fa0ad7b9fe
doc: Remove mention of priority estimation
Follow up to commit b2322e0fc6
2021-05-11 11:52:32 +02:00
W. J. van der Laan
32692d2681
Merge bitcoin/bitcoin#21359: rpc: include_unsafe option for fundrawtransaction
11d6459b6e rpc: include_unsafe option for fundrawtransaction (t-bast)

Pull request description:

  Allow RPC users to opt-in to unsafe inputs when funding a raw transaction.

  Applications that need to manage a complex RBF flow (such as lightning nodes using anchor outputs) are very limited if they can only use safe inputs.

  I also added this option to `send` and `walletcreatefundedpsbt` who internally delegate to `fundrawtransaction`.

  Fixes #21299

ACKs for top commit:
  laanwj:
    Code review ACK 11d6459b6e

Tree-SHA512: 5e542a4febcfd6f41cf784678ff02ec9282eae2082c274983f72c5ea87b7ebbe1bd5fdc6a020d7a9d5996157754eb4966b8aeb6c1ceebf0b1519f735579b8bac
2021-05-10 16:05:23 +02:00
MarcoFalke
576300afb0
Merge bitcoin/bitcoin#21856: doc: add OSS-Fuzz section to fuzzing.md doc
47c3ea021e doc: add OSS-Fuzz section to fuzzing.md doc (Adam Jonas)

Pull request description:

  This adds documentation about [Bitcoin Core's participation](https://github.com/google/oss-fuzz/pull/5699/files) in Google's OSS-Fuzz program and adds the caveat that the project may not disclose vulnerabilities within the 90-day window described in the [program's disclosure guidelines](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/).

ACKs for top commit:
  jonatack:
    ACK 47c3ea021e

Tree-SHA512: 87bf0146fb74d1e4b3b8839e6c8f3d53046008a6d5b926ffe5b95be3c396a5e47e47967533422f60b04c4446482f49d210ada410b742f69781a7afde623d704d
2021-05-05 16:34:00 +02:00
Adam Jonas
47c3ea021e doc: add OSS-Fuzz section to fuzzing.md doc
Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
2021-05-05 10:10:56 -04:00
W. J. van der Laan
54617fad99
Merge bitcoin/bitcoin#21709: doc: update reduce-memory.md and bitcoin.conf -maxconnections info
300234ab66 doc: update bitcoin.conf maxconnections info (Jon Atack)
926827065f doc: update reduce-memory.md peer connections info (Jon Atack)

Pull request description:

  This patch updates the documentation in `doc/reduce-memory.md` and `share/examples/bitcoin.conf` regarding the peer connections limits and `-maxconnections`

ACKs for top commit:
  jarolrod:
    re-ACK 300234ab66
  laanwj:
    ACK 300234ab66
  prayank23:
    ACK 300234ab66

Tree-SHA512: 90f53626124afb50706e6a3b644bc7bb800bb7cf41ae7062c20c17b3d9bdf4a8d73b4cf188faec9113d772596f7e4bc36a4a69481cacb92cc55d5956181d0c31
2021-05-05 16:10:55 +02:00
W. J. van der Laan
23109cc548
Merge bitcoin/bitcoin#21753: doc: add -addrinfo to tor docs
65f30e4c21 doc: add -addrinfo troubleshooting section to tor.md (Jon Atack)

Pull request description:

  Follow-up to #21595.

ACKs for top commit:
  jarolrod:
    ACK 65f30e4c21
  practicalswift:
    ACK 65f30e4c21
  0xB10C:
    ACK 65f30e4c21
  theStack:
    ACK 65f30e4c21

Tree-SHA512: d17fa007106b8f877d2632c99273c663a24f025febe52faec9b197c561df808fd6a92bb27992ccbf5c3cc0d82058a8c4b82a2f1b99325f0ddfdac5ef703ac7d7
2021-05-05 15:52:00 +02:00
fanquake
60132382a7
Merge bitcoin/bitcoin#20867: Support up to 20 keys for multisig under Segwit context
ebd4be43cc doc: add release notes for 20867 (Antoine Poinsot)
5aa50ab9cc rpc/util: multisig: only check redeemScript size is <= 520 for P2SH (Antoine Poinsot)
063df9e897 test/functional: standardness sanity checks for P2(W)SH multisig (Antoine Poinsot)
ae0429d3af script: allow up to 20 keys in wsh() descriptors (Antoine Poinsot)
9fc68faf35 script: match multisigs with up to MAX_PUBKEYS_PER_MULTISIG keys (Antoine Poinsot)

Pull request description:

  As described in https://github.com/bitcoin/bitcoin/issues/20620 multisigs are currently limited to 16 keys in descriptors and RPC helpers, even for P2WSH and P2SH-P2WSH.

  This adds support for multisig with up to 20 keys (which are already standard) for Segwit v0 context for descriptors (`wsh()`, `sh(wsh())`) and RPC helpers.

  Fixes https://github.com/bitcoin/bitcoin/issues/20620

ACKs for top commit:
  meshcollider:
    re-utACK ebd4be43cc
  instagibbs:
    re-ACK ebd4be43cc

Tree-SHA512: 36141f10a8288010d17d5c4fe8d24878bcd4533b88a8aba3a44fa8f74ceb3182d70fee01427e0ab7f53ce7fab46c88c1cd3ac3b18ab8a10bd4a6b8b74ed79e46
2021-05-03 12:44:23 +08:00
W. J. van der Laan
2448457cca
Merge #21830: doc: Add doc/release-notes/release-notes-0.21.1.md
fab53ea72f doc: Add doc/release-notes/release-notes-0.21.1.md (MarcoFalke)

Pull request description:

ACKs for top commit:
  laanwj:
    ACK fab53ea72f

Tree-SHA512: f228c51c5fd4d18badc72ca185b91a05b248614a69646b234e03963626eccbafcf23c8057bbaa9ae3a3fc4e7d8f007fd69306fc87da229c0c44847de8be42aad
2021-05-02 10:36:46 +02:00
MarcoFalke
fab53ea72f
doc: Add doc/release-notes/release-notes-0.21.1.md 2021-05-02 09:59:14 +02:00
Jon Atack
54133c59b8
doc: add indexes/coinstats/db/ to files.md 2021-05-01 13:57:52 +02:00
t-bast
11d6459b6e
rpc: include_unsafe option for fundrawtransaction
Allow RPC users to opt-in to unsafe inputs when funding a raw transaction.

Applications that need to manage a complex RBF flow (such as lightning
nodes using anchor outputs) are very limited if they can only use safe inputs.

Fixes #21299
2021-04-30 18:53:47 +02:00
Antoine Poinsot
ebd4be43cc
doc: add release notes for 20867
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
2021-04-28 10:00:31 +02:00
Russell Yanofsky
7d76cf667e multiprocess: Add comments and documentation 2021-04-23 03:02:50 -05:00
Jon Atack
65f30e4c21
doc: add -addrinfo troubleshooting section to tor.md 2021-04-22 13:00:21 +02:00
W. J. van der Laan
0180453471
Merge #21595: cli: create -addrinfo
06c43201a7 cli: use C++17 std::array class template argument deduction (CTAD) (Jon Atack)
edf3167151 addrinfo: raise helpfully on server error or incompatible server version (Jon Atack)
bb85cbc4f7 doc: add cli -addrinfo release note (Jon Atack)
5056a37624 cli: add -addrinfo command (Jon Atack)
db4d2c282a cli: create AddrinfoRequestHandler class (Jon Atack)

Pull request description:

  While looking at issue #21351, it turned out that the problem was a lack of tor v3 addresses known to the node. It became clear (e.g. https://github.com/bitcoin/bitcoin/issues/21351#issuecomment-811004779) that a CLI command returning the number of addresses the node knows per network (with a tor v2 / v3 breakdown) would be very helpful. This patch adds that.

  `-addrinfo` is useful to see if your node knows enough addresses in a network to use options like `-onlynet=<network>`, or to upgrade to the upcoming tor release that no longer supports tor v2, for which you'll need to be sure your node knows enough tor v3 peers.

  ```
  $ bitcoin-cli --help | grep -A1 addrinfo
    -addrinfo
         Get the number of addresses known to the node, per network and total.

  $ bitcoin-cli -addrinfo
  {
    "addresses_known": {
      "ipv4": 14406,
      "ipv6": 2511,
      "torv2": 5563,
      "torv3": 2842,
      "i2p": 8,
      "total": 25330
    }
  }

  $ bitcoin-cli -addrinfo 1
  error: -addrinfo takes no arguments
  ```

  This can be manually tested, for example, with commands like this:
  ```
  $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length <= 22)) | .address' | wc -l
  5563
  $ bitcoin-cli getnodeaddresses 0 | jq '.[] | (select(.address | contains(".onion")) | select(.address | length > 22)) | .address' | wc -l
  2842
  $ bitcoin-cli getnodeaddresses 0 | jq '.[] | .address' | wc -l
  25330
  ```

ACKs for top commit:
  laanwj:
    Tested ACK 06c43201a7

Tree-SHA512: b668b47718a4ce052aff218789f3da629bca730592c18fcce9a51034d95a0a65f8e6da33dd47443cdd8f60c056c02696db175b0fe09a688e4385a76c1d8b7aeb
2021-04-20 14:36:36 +02:00
Jon Atack
926827065f
doc: update reduce-memory.md peer connections info 2021-04-17 20:17:59 +02:00
Hennadii Stepanov
5f2be6e71e
Remove no longer used contrib/bitcoin-qt.pro from the repo 2021-04-15 15:39:42 +03:00
fanquake
3aa4935db7
Merge #17934: doc: Use CONFIG_SITE variable instead of --prefix option
223b1ba7d9 doc: Use CONFIG_SITE instead of --prefix (Hennadii Stepanov)

Pull request description:

  The current examples of `--prefix=...` option usage to point `configure` script to appropriate `depends` directory is not [standard](https://www.gnu.org/prep/standards/html_node/Directory-Variables.html). This causes some [confusion](https://github.com/bitcoin/bitcoin/pull/16691) and a bit of inconvenience.

  Consider a CentOS 7 32 bit system. Packages `libdb4-devel`, `libdb4-cxx-devel`, `miniupnpc-devel` and `zeromq-devel` are unavailable from repos. After recommended build with depends:
  ```
  cd depends
  make
  cd ..
  ./autogen.sh
  ./configure --prefix=$PWD/depends/i686-pc-linux-gnu
  make
  ```
  a user is unable to `make install` compiled binaries neither locally (to `~/.local`) nor system-wide (to `/usr/local`) as `--prefix` is set already.

  Meanwhile, the standard approach with using [`config.site`](https://www.gnu.org/software/automake/manual/html_node/config_002esite.html) files allows both possibilities:

  ```
  cd depends
  make
  cd ..
  ./autogen.sh
  CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure --prefix ~/.local
  make
  make install
  ```

  or

  ```
  CONFIG_SITE=$PWD/depends/i686-pc-linux-gnu/share/config.site ./configure
  make
  sudo make install  # install to /usr/local
  ```

  Moreover, this approach is used in [Gitian descriptors](https://github.com/bitcoin/bitcoin/tree/master/contrib/gitian-descriptors) already.

ACKs for top commit:
  practicalswift:
    ACK 223b1ba7d9: patch looks correct
  fanquake:
    ACK 223b1ba7d9

Tree-SHA512: 46d97924f0fc7e95ee4566737cf7c2ae805ca500e5c49af9aa99ecc3acede4b00329bc727a110aa1b62618dfbf5d1ca2234e736f16fbdf96d6ece5f821712f54
2021-04-13 21:16:04 +08:00
fanquake
f0b457212f
Merge #21467: Move external signer out of wallet module
88d4d5ff2f rpc: add help for enumeratesigners and walletdisplayaddress (Sjors Provoost)
b0db187e5b ci: use --enable-external-signer instead of --with-boost-process (Sjors Provoost)
b54b2e7b1a Move external signer out of wallet module (Sjors Provoost)

Pull request description:

  In addition, this PR enables external signer testing on CI.

  This PR moves the ExternalSigner class and RPC methods out of the wallet module.

  The `enumeratesigners` RPC can be used without a wallet since #21417. With additional modifications external signers could be used without a wallet in general, e.g. via `signrawtransaction`.

  The `signerdisplayaddress` RPC is ranamed to `walletdisplayaddress` because it requires wallet context. A future `displayaddress` RPC call without wallet context could take a descriptor argument.

  This commit fixes a `rpc_help.py` failure when configured with `--disable-wallet`.

ACKs for top commit:
  ryanofsky:
    Code review ACK 88d4d5ff2f
  fanquake:
    ACK 88d4d5ff2f

Tree-SHA512: 3242a24e22313aed97eee32a520bfcb1c17495ba32a2b8e06a5e151e2611320e2da5ef35b572d84623af0a49a210d2f9377a2531250868d1a0ccf3e144352a97
2021-04-13 14:35:16 +08:00
MarcoFalke
f6c44e999b
Merge #21602: rpc: add additional ban time fields to listbanned
d3b0b08b0f doc: release notes for new listbanned fields (Jarol Rodriguez)
60290d3f5e test: increase listbanned unit test coverage (Jon Atack)
3e978d1a5d rpc: add time_remaining field to listbanned (Jarol Rodriguez)
5456b34531 rpc: add ban_duration field to listbanned (Jarol Rodriguez)
c95c61657a doc: improve listbanned help (Jarol Rodriguez)
dd3c8eaa33 rpc: swap position of banned_until and ban_created fields (Jarol Rodriguez)

Pull request description:

  This PR adds a `ban_duration` and `time_remaining` field to the `listbanned` RPC command. Thanks to jonatack, this PR also expands the `listbanned` test coverage to include these new fields

  It's useful to keep track of `ban_duration` as this is another data point on which to sort banned peers. I found this helpful in adding additional context columns to the GUI `bantablemodel` as part of a follow-up PR. As [suggested](https://github.com/bitcoin/bitcoin/pull/21602#issuecomment-813486134) by jonatack, `time_remaining` is another useful user-centric data point.

  Since a ban always expires after its created, the `ban_created` field is now placed before the `banned_until` field. This new ordering is more logical.

  This PR also improves the `help listbanned` output by providing additional context to the descriptions of the `address`, `ban_created`, and `banned_until` fields.

  **Master: listbanned**
  ```
  [
    {
      "address": "1.2.3.4/32",
      "banned_until": 1617691101,
      "ban_created": 1617604701
    },
    {
      "address": "135.181.41.129/32",
      "banned_until": 1649140716,
      "ban_created": 1617604716
    }
  ]
  ```

  **PR: listbanned**
  ```
  [
    {
      "address": "1.2.3.4/32",
      "ban_created": 1617775773,
      "banned_until": 1617862173,
      "ban_duration": 86400,
      "time_remaining": 86392
    },
    {
      "address": "3.114.211.172/32",
      "ban_created": 1617753165,
      "banned_until": 1618357965,
      "ban_duration": 604800,
      "time_remaining": 582184
    }
  ]
  ```

ACKs for top commit:
  jonatack:
    re-ACK d3b0b08b0f
  hebasto:
    ACK d3b0b08b0f, tested on Linux Mint 20.1 (x86_64).
  MarcoFalke:
    review ACK d3b0b08b0f 🕙

Tree-SHA512: 5b83ed2483344e546d57e43adc8a1ed7a1fff292124b14c86ca3a1aa2aec8b0f7198212fabff2c5145e7f726ca04ae567fe667b141254c7519df290cf63774e5
2021-04-11 13:36:29 +02:00
Hennadii Stepanov
223b1ba7d9
doc: Use CONFIG_SITE instead of --prefix 2021-04-09 12:25:18 +03:00
Jon Atack
bb85cbc4f7
doc: add cli -addrinfo release note 2021-04-09 09:02:09 +02:00
Jarol Rodriguez
d3b0b08b0f doc: release notes for new listbanned fields 2021-04-08 13:21:30 -04:00
Sjors Provoost
b54b2e7b1a
Move external signer out of wallet module
This commit moves the ExternalSigner class and RPC methods out of the wallet module.

The enumeratesigners RPC can be used without a wallet since #21417.
With additional modifications external signers could be used without a wallet in general, e.g. via signrawtransaction.

The signerdisplayaddress RPC is ranamed to walletdisplayaddress because it requires wallet context.
A future displayaddress RPC call without wallet context could take a descriptor argument.

This commit fixes a rpc_help.py failure when configured with --disable-wallet.
2021-04-08 17:56:00 +02:00
W. J. van der Laan
cb79cabdd9
Merge #21594: rpc: add network field to getnodeaddresses
5c446784b1 rpc: improve getnodeaddresses help (Jon Atack)
1b9189866a rpc: simplify/constify getnodeaddresses code (Jon Atack)
3bb6e7b655 rpc: add network field to rpc getnodeaddresses (Jon Atack)

Pull request description:

  This patch adds a network field to RPC `getnodeaddresses`, which is useful on its own, particularly with the addition of new networks like I2P and others in the future, and which I also found helpful for adding a new CLI command as a follow-up to this pull that calls `getnodeaddresses` and needs to know the network of each address.

  While here, also improve the `getnodeaddresses` code and help.

  ```
  $ bitcoin-cli -signet getnodeaddresses 3
  [
    {
      "time": 1611564659,
      "services": 1033,
      "address": "2600:1702:3c30:734f:8f2e:744b:2a51:dfa5",
      "port": 38333,
      "network": "ipv6"
    },
    {
      "time": 1617531931,
      "services": 1033,
      "address": "153.126.143.201",
      "port": 38333,
      "network": "ipv4"
    },
    {
      "time": 1617473058,
      "services": 1033,
      "address": "nsgyo7begau4yecc46ljfecaykyzszcseapxmtu6adrfagfrrzrlngyd.onion",
      "port": 38333,
      "network": "onion"
    }
  ]

  $ bitcoin-cli help getnodeaddresses
  getnodeaddresses ( count )

  Return known addresses, which can potentially be used to find new nodes in the network.

  Arguments:
  1. count    (numeric, optional, default=1) The maximum number of addresses to return. Specify 0 to return all known addresses.

  Result:
  [                         (json array)
    {                       (json object)
      "time" : xxx,         (numeric) The UNIX epoch time when the node was last seen
      "services" : n,       (numeric) The services offered by the node
      "address" : "str",    (string) The address of the node
      "port" : n,           (numeric) The port number of the node
      "network" : "str"     (string) The network (ipv4, ipv6, onion, i2p) the node connected through
    },
    ...
  ]
  ```
  Future idea: allow passing `getnodeaddresses` a network (or networks) as an argument to return only addresses in that network.

ACKs for top commit:
  laanwj:
    Tested ACK 5c446784b1
  jarolrod:
    re-ACK 5c446784b1
  promag:
    Code review ACK 5c446784b1.

Tree-SHA512: ab0101f50c76d98c3204133b9f2ab6b7b17193ada31455ef706ad11afbf48f472fa3deb33e96028682369b35710ccd07d81863d2fd55c1485f32432f2b75efa8
2021-04-07 18:56:01 +02:00
Jon Atack
3bb6e7b655
rpc: add network field to rpc getnodeaddresses 2021-04-07 12:57:07 +02:00
MarcoFalke
fa5eabe721
refactor: Remove negative lock annotations from globals 2021-04-05 08:42:15 +02:00
MarcoFalke
1111896eb7
doc: Merge release notes 2021-03-29 15:57:14 +02:00
MarcoFalke
faeba9819d
rpc: Missing doc updates for bumpfee psbt update
Adds updates that have been missed in commit
ea0a7ec949:

* RPC help doc update
* Release notes update
* Remove "mutable" keyword from lambda
2021-03-29 15:56:51 +02:00
MarcoFalke
1c7be9ab90
Merge #20286: rpc: deprecate addresses and reqSigs from rpc outputs
90ae3d8ca6 doc: Add release notes for -deprecatedrpc=addresses and bitcoin-tx (Michael Dietz)
085b3a7299 rpc: deprecate `addresses` and `reqSigs` from rpc outputs (Michael Dietz)

Pull request description:

  Considering the limited applicability of `reqSigs` and the confusing output of `1` in all cases except bare multisig, the `addresses` and `reqSigs` outputs are removed for all rpc commands.

  1) add a new sane "address" field (for outputs that have an identifiable address, which doesn't include bare multisig)
  2) with -deprecatedrpc: leave "reqSigs" and "addresses" intact (with all weird/wrong behavior they have now)
  3) without -deprecatedrpc: drop "reqSigs" and "addresses" entirely always.

  Note: Some light refactoring done to allow us to very easily delete a few chunks of code (marked with TODOs) when we remove this deprecated behavior.

  Using `IsDeprecatedRPCEnabled` in core_write.cpp caused some circular dependencies involving core_io

  Circular dependencies were caused by rpc/util unnecessarily importing node/coinstats and node/transaction. Really what rpc/util needs are some fundamental type/helper-function definitions. So this was cleaned up to make more sense.

  This fixes #20102.

ACKs for top commit:
  MarcoFalke:
    re-ACK 90ae3d8ca6 📢

Tree-SHA512: 8ffb617053b5f4a8b055da17c06711fd19632e0037d71c4c8135e50c8cd7a19163989484e4e0f17a6cc48bd597f04ecbfd609aef54b7d1d1e76a784214fcf72a
2021-03-29 15:14:31 +02:00
MarcoFalke
3bcd278aa6
Merge bitcoin-core/gui#154: qt: Support macOS Dark mode
dc4551c22c remove incompatibility release note for darkmode on macos (Sylvain Goumy)
303cfc6227 allow darkmode on macos build (Sylvain Goumy)
78f75a2d60 Allow icon colorization on mac os to better support dark mode (Uplab)

Pull request description:

  Allow icons to be colorized on macOS to support native Dark mode color scheme.

  Rendering on macOS Big Sur before PR:
  ![macos-darkmode-before-pr](https://user-images.githubusercontent.com/5577626/102502739-43f3af80-407f-11eb-9263-5bbc27b371c2.png)

  Rendering on macOS Big Sur after PR:
  ![macos-darkmode-after-pr](https://user-images.githubusercontent.com/5577626/102502678-350cfd00-407f-11eb-8b98-e271f2688c36.png)

  Light mode stay visually unchanged.

  <del>Note, that this currently only affect the build from source, as the macos dmg includes an attributes to force light color scheme on macos windows (see https://github.com/bitcoin/bitcoin/pull/14593). </del>
  <del>But once all glitches are fixed, we will be able to remove this temporary fix. </del>
  Edit: this PR is know including the removal of `NSRequiresAquaSystemAppearance` on Info.plist file so that the color fix is apply to every build.

  Linked issues: #68 #136

ACKs for top commit:
  hebasto:
    re-ACK dc4551c22c
  jarolrod:
    ACK dc4551c22c

Tree-SHA512: 1c3a4dec796063e61fcaf80112afc2b15c8669a1cd30ebd537cea96647c20215f8f80289719f905820bb0c490c8c1f94bfae4bb32f9c6d1fdd4e8f199ebb559f
2021-03-29 11:17:19 +02:00
MarcoFalke
11840509fb
Merge #21484: doc: Add release notes for #18335
51eef4a03e doc: Add release notes for #18335 (rpc work queue exceeded error) (Larry Ruane)

Pull request description:

  Follow-on to #18335

ACKs for top commit:
  darosior:
    ACK 51eef4a03e

Tree-SHA512: 863d92cb1c23493d9c8c42ed89b30ebd59092e44f159de4cefbabfe4101e7d7d40f24776ff3fcf39dedf90b45fc25845cf7a2177af38729ce2118d75c3cd779b
2021-03-29 11:09:08 +02:00
Sylvain Goumy
dc4551c22c remove incompatibility release note for darkmode on macos 2021-03-25 15:28:32 +01:00
Wladimir J. van der Laan
23b15601df
Merge #17227: Qt: Add Android packaging support
246774e264 depends: fix Qt precompiled headers bug (Igor Cota)
8e7ad4146d depends: disable Qt Vulkan support on Android (Igor Cota)
ba46adaa1a CI: add Android APK build to cirrus (Igor Cota)
7563720e30 CI: add Android APK build script (Igor Cota)
ebfb10cb75 Qt: add Android packaging support (Igor Cota)

Pull request description:

  ![bitcoin-qt](https://user-images.githubusercontent.com/762502/67396157-62f3d000-f5a7-11e9-8a6f-9425823fcd6c.gif)
  This PR is the third and final piece of the basic Android support puzzle - it depends on https://github.com/bitcoin/bitcoin/pull/16110 and is related to https://github.com/bitcoin/bitcoin/pull/16883. It introduces an `android` directory under `qt` and a simple way to build an Android package of `bitcoin-qt`:

  1. Build depends for Android as described in the [README](https://github.com/bitcoin/bitcoin/blob/master/depends/README.md)
  2. Configure with one of the resulting prefixes
  3. Run `make && make apk` in `src/qt`

  The resulting APK files will be in `android/build/outputs/apk`. You can install them manually or with [adb](https://developer.android.com/studio/command-line/adb). One can also open the `android` directory in Android Studio for that integrated development and debugging experience. `BitcoinQtActivity` is your starting point.

  Under the hood makefile `apk` target:

  1. Renames the `bitcoin-qt` binary to `libbitcoin-qt.so` and copies it over to a folder under `android/libs` depending on which prefix and corresponding [ABI](https://developer.android.com/ndk/guides/abis.html#sa) `bitcoin-qt` was built for
  2. Takes `libc++_shared.so` from the Android NDK and puts in the same place. It [must be included](https://developer.android.com/ndk/guides/cpp-support) in the APK
  3. Extracts Qt for Android Java support files from the `qtbase` archive in `depends/sources` to `android/src`

  There is also just a tiny bit of `ifdef`'d code to make the Qt Widgets menus usable. It's not pretty but it works and is a stepping stone towards https://github.com/bitcoin/bitcoin/pull/16883.

ACKs for top commit:
  MarcoFalke:
    cr ACK 246774e264
  laanwj:
    Code review ACK 246774e264

Tree-SHA512: ba30a746576a167545223c35a51ae60bb0838818779fc152c210f5af1413961b2a6ab6af520ff92cbc8dcd5dcb663e81ca960f021218430c1f76397ed4cead6c
2021-03-24 19:02:01 +01:00
Larry Ruane
51eef4a03e doc: Add release notes for #18335 (rpc work queue exceeded error) 2021-03-23 10:14:13 -06:00
Michael Dietz
90ae3d8ca6
doc: Add release notes for -deprecatedrpc=addresses and bitcoin-tx 2021-03-23 10:51:46 -04:00
Michael Dietz
085b3a7299
rpc: deprecate addresses and reqSigs from rpc outputs
1) add a new sane "address" field (for outputs that have an
   identifiable address, which doesn't include bare multisig)
2) with -deprecatedrpc: leave "reqSigs" and "addresses" intact
   (with all weird/wrong behavior they have now)
3) without -deprecatedrpc: drop "reqSigs" and "addresses" entirely,
   always.
2021-03-23 10:51:43 -04:00
fanquake
180dc3c886
build: miniupnpc 2.2.2
Creating the dll subdir is no-longer required.
We can also drop our wingen patch.
2021-03-23 08:39:16 +08:00
Igor Cota
ebfb10cb75 Qt: add Android packaging support
Introduce an android directory under qt and allow one to package bitcoin-qt for Android by running make apk.
Add bitcoin-qt Android build instructions.
2021-03-21 22:33:27 +01:00
fanquake
05757aa860
Merge #21423: build: Cleanups and follow ups after bumping Qt to 5.12.10
e67c0122a4 doc: Update dependencies.md with a new Qt version (Hennadii Stepanov)
cc25f892d2 build: Cleanup libxkbcommon_postprocess_cmds (Hennadii Stepanov)
72fc043954 build, qt: Drop redundant -lxcb-static flag (Hennadii Stepanov)
cba4a7e416 build, qt: Always test plugins/subdir before adding to search paths (Hennadii Stepanov)

Pull request description:

  1) Always test `plugins/subdir` before adding to search paths as the existence of each subdir is not guaranteed for all platforms:
    - https://github.com/bitcoin/bitcoin/pull/21376#discussion_r591613489

  2) Drop redundant `-lxcb-static` flag as it has been already linked with `Qt5XcbQpa`:
    - https://github.com/bitcoin/bitcoin/pull/21363#discussion_r588881613

  3) Cleanup `libxkbcommon_postprocess_cmds` as there is no `share/` directory in the staging one:
    - https://github.com/bitcoin/bitcoin/pull/21376#discussion_r588867355
    - https://github.com/bitcoin/bitcoin/pull/21376#issuecomment-794010534

  4) Update `dependencies.md`

ACKs for top commit:
  fanquake:
    ACK e67c0122a4

Tree-SHA512: 9113ee97d5e7424290778154d62a68af804ee82efedbbe9776a7f692104d65b07d151e9f7f1f98ec08d18f6d63efef3e44b207bee67ad913f5dbc4eddbb8ea41
2021-03-19 16:58:13 +08:00
Wladimir J. van der Laan
8ec881d3b6
Merge #20861: BIP 350: Implement Bech32m and use it for v1+ segwit addresses
03346022d6 naming nits (Fabian Jahr)
2e7c80fb5b Add signet support to gen_key_io_test_vectors.py (Pieter Wuille)
fe5e495c31 Use Bech32m encoding for v1+ segwit addresses (Pieter Wuille)
25b1c6e13d Add Bech32m test vectors (Pieter Wuille)
da2bb6976d Implement Bech32m encoding/decoding (Pieter Wuille)

Pull request description:

  This implements [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki):
  * For segwit v1+ addresses, a new checksum algorithm called Bech32m is used.
  * Segwit v0 address keep using Bech32 as specified in [BIP 173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki).

ACKs for top commit:
  Sjors:
    utACK 0334602
  jnewbery:
    utACK 03346022d6
  achow101:
    ACK 0334602
  fjahr:
    re-ACK 0334602
  benthecarman:
    ACK 03346022d6

Tree-SHA512: 4424cfd44869d813d6152fb3ed867b204036736bc2344a039b93700b6f36a43e9110478f138eb81c97c77ab27ecb776dada5ba632cb5a3a9d244924d2540a557
2021-03-18 20:37:21 +01:00
fanquake
bf7c22f7ff
Merge #21435: doc: Update dependencies.md
bb3f79fbdc doc: Update libnatpmp info in dependencies.md (Hennadii Stepanov)
1a01a5dc8d doc: Update zlib info in dependencies.md (Hennadii Stepanov)

Pull request description:

  Update docs according to the recent changes in the code:
  - #21209 (zlib)
  - #21376 (libnatpmp)

ACKs for top commit:
  fanquake:
    ACK bb3f79fbdc - thanks for keeping this updated.

Tree-SHA512: 48350ad07700aa071ad6c34e4c161aaadc050488fc068cf478e9781d632828187962a4384c1b67c2344145a2c00c3e16cddd09259130af8e9e86cd76cd32900d
2021-03-18 11:40:45 +08:00
fanquake
d6e3ac89d4
Merge #21343: doc: revamp macOS build doc
c180c911b8 doc: revamp macOS build doc (Jarol Rodriguez)

Pull request description:

  This PR makes the macOS build-docs more informative and adds in the following information:
  - Proper descriptions and delineation of required/optional dependencies
  - walk-through of optional dependencies
  - configuration walk-through
  - various other tidbits of information

  This is a part of the efforts done in https://github.com/bitcoin/bitcoin/pull/20601 and https://github.com/bitcoin/bitcoin/pull/20610 to update the docs and introduce some consistency between them.

  This update does not add instructions for arm-based M1 Macbooks as I do not have one to test with. It would be nice to have someone follow up with an update containing instructions for arm-based Macs.

  **Before/Master:** [render](https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md)
  **After/PR:** [render](c180c911b8/doc/build-osx.md)

ACKs for top commit:
  fanquake:
    ACK c180c911b8 - I still think these are getting too verbose and we're duplicating information all over the place; dependencies, configure options, combinations of options etc. However if people are happy to maintain them, I guess it's fine for now, and this revamping has already happened for some of the other build READMEs.

Tree-SHA512: 1440046c723fe80d4158e4a429e3aa8bd93570acb84ad202d5d24c749ab9a89a3aca8b61b49e75e042a4bf4317acd632d3906e1b5808a9052e74209256528b45
2021-03-18 11:36:48 +08:00
fanquake
993ecafa5e
Merge #21417: Misc external signer improvement and HWI 2 support
57ff5a42ab doc: specify minimum HWI version (Sjors Provoost)
03308b2bfa rpc: don't require wallet for enumeratesigners (Sjors Provoost)

Pull request description:

  HWI just released 2.0. See https://github.com/bitcoin-core/HWI/releases/tag/2.0.0

  As of #16546 we already rely on features that are in 2.0 and not in the previous 1.* releases:
  * `--chain` param

  This shouldn't be a problem, because HWI 2.0 has been released before we release v22.

  Misc improvements:
  * document that HWI 2.0 is required
  * drop wallet requirement for `enumeratesigners`

ACKs for top commit:
  achow101:
    Code Review ACK 57ff5a42ab

Tree-SHA512: 3fb6ba20894e52a116f89525a5f5a1f61d363ccd904e1cffd0e6d095640fc6d2edf0388cd6ae20f83bbc31e5f458255ec090b6e823798d426eba3e45b4336bf9
2021-03-17 09:54:27 +08:00
Pieter Wuille
fe5e495c31 Use Bech32m encoding for v1+ segwit addresses
This also includes updates to the Python test framework implementation,
test vectors, and release notes.
2021-03-16 10:48:36 -07:00
Hennadii Stepanov
bb3f79fbdc
doc: Update libnatpmp info in dependencies.md 2021-03-16 19:46:15 +02:00
MarcoFalke
3ba195aa48
Merge #21398: doc: Update fuzzing docs for afl-clang-lto
fab633d2db doc: Update fuzzing docs for afl-clang-lto (MarcoFalke)

Pull request description:

  Update the docs to default to `afl-clang-lto`. The afl-gcc (and other afl legacy fuzz engines) are still supported, though discouraged.

ACKs for top commit:
  fanquake:
    ACK fab633d2db - seems to work for me. Compiled and ran some fuzzers using Clang 11 on Bionic. Set `llvm-config` so that `clang-11` would be used over `clang` (10).
  jarolrod:
    ACK fab633d2db, tested on Ubuntu Focal

Tree-SHA512: 3d1969c167bea45a9d691f3b757f51213d550c9c1b895bed1fcf3c2f7345791787cfb13c376291b94eb3181caf4ae3126f4d01c7cebda7b2bb1c40a1294e9a68
2021-03-15 18:52:58 +01:00
Hennadii Stepanov
1a01a5dc8d
doc: Update zlib info in dependencies.md 2021-03-14 13:13:13 +02:00
Hennadii Stepanov
e67c0122a4
doc: Update dependencies.md with a new Qt version
Qt version is bumped to 5.12.10 in #21376.
2021-03-12 14:51:11 +02:00
Sjors Provoost
57ff5a42ab
doc: specify minimum HWI version 2021-03-11 15:26:50 +01:00
fanquake
1a6323bdbe
doc: update developer notes for removal of MakeUnique 2021-03-11 13:45:50 +08:00
MarcoFalke
fab633d2db
doc: Update fuzzing docs for afl-clang-lto 2021-03-09 19:00:10 +01:00
Jon Atack
4a285107c1
doc: add signet to doc/bitcoin-conf.md 2021-03-08 00:44:54 +01:00
Jarol Rodriguez
c180c911b8 doc: revamp macOS build doc
This pr makes the macOS build docs more informative and adds in the following information:
- Proper descriptions and delineation of required/optional dependencies
- walk-through of optional dependencies
- configuration walk-through
- various other tid-bits of information
2021-03-03 16:09:52 -05:00
Wladimir J. van der Laan
b1a457ab1d
Merge #21324: doc: Update build instructions for Fedora
4899fa3abd doc: Update build instructions for Fedora (Hennadii Stepanov)

Pull request description:

  This PR updates build instructions for Fedora, as Fedora 33 has no `libdb4-devel` and `libdb4-cxx-devel` packages in its default repos.

ACKs for top commit:
  practicalswift:
    ACK 4899fa3abd

Tree-SHA512: 0c23e2ce0ea690ed5eeaa56514d4246e0057a77b7c71f28af4ee1e480521d465122f81cea37cc773ce2db4fc189d5ab3c8f8ffdd65f150cc006390aa1e2a4ac8
2021-03-03 12:49:59 +01:00
fanquake
bec7f2caf7
doc: install qt5 when building on macOS
Brew has updated such that qt now refers to Qt 6.0.1. If builders
install this, configure will not work pick up qt. For now, install
qt@5 (5.15.2), until required build system and likely source changes
are made.
2021-03-03 12:00:06 +08:00
Hennadii Stepanov
f1f63ac3f8
doc: Remove outdated comment
The removed commit is wrong since v0.21.0.
2021-03-02 22:14:18 +02:00
Hennadii Stepanov
4899fa3abd
doc: Update build instructions for Fedora
Fedora 33 requires adding the Cheese third-party repo to install
libdb4-devel and libdb4-cxx-devel packages.
2021-03-02 10:09:19 +02:00
Vasil Dimov
76c35c60f3
init: introduce I2P connectivity options
Introduce two new options to reach the I2P network:

* `-i2psam=<ip:port>` point to the I2P SAM proxy. If this is set then
  the I2P network is considered reachable and we can make outgoing
  connections to I2P peers via that proxy. We listen for and accept
  incoming connections from I2P peers if the below is set in addition to
  `-i2psam=<ip:port>`

* `-i2pacceptincoming` if this is set together with `-i2psam=<ip:port>`
  then we accept incoming I2P connections via the I2P SAM proxy.
2021-03-01 18:19:46 +01:00
Wladimir J. van der Laan
362e901a17
Merge #18466: rpc: fix invalid parameter error codes for {sign,verify}message RPCs
a5cfb40e27 doc: release note for changed {sign,verify}message error codes (Sebastian Falbesoner)
9e399b9b2d test: check parameter validity in rpc_signmessage.py (Sebastian Falbesoner)
e62f0c71f1 rpc: fix {sign,message}verify RPC errors for invalid address/signature (Sebastian Falbesoner)

Pull request description:

  RPCs that accept address parameters usually return the intended error code `RPC_INVALID_ADDRESS_OR_KEY` (-5) if a passed address is invalid. The two exceptions to the rule are `signmessage` and `verifymessage`, which return `RPC_TYPE_ERROR` (-3) in this case instead. Oddly enough `verifymessage` returns `RPC_INVALID_ADDRESS_OR_KEY` when the _signature_ was malformed, where `RPC_TYPE_ERROR` would be more approriate.

  This PR fixes these inaccuracies and as well adds tests to `rpc_signmessage.py` that check the parameter validity and error codes for the related RPCs `signmessagewithprivkey`, `signmessage` and `verifymessage`.

  master branch:
  ```
  $ ./bitcoin-cli signmessage invalid_addr message
  error code: -3
  error message:
  Invalid address
  $ ./bitcoin-cli verifymessage invalid_addr dummy_sig message
  error code: -3
  error message:
  Invalid address
  $ ./bitcoin-cli verifymessage 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX invalid_sig message
  error code: -5
  error message:
  Malformed base64 encoding
  ```
  PR branch:
  ```
  $ ./bitcoin-cli signmessage invalid_addr message
  error code: -5
  error message:
  Invalid address
  $ ./bitcoin-cli verifymessage invalid_addr dummy_sig message
  error code: -5
  error message:
  Invalid address
  $ ./bitcoin-cli verifymessage 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX invalid_sig message
  error code: -3
  error message:
  Malformed base64 encoding
  ```

ACKs for top commit:
  laanwj:
    Code review ACK a5cfb40e27
  meshcollider:
    utACK a5cfb40e27

Tree-SHA512: bae0c4595a2603cea66090f6033785601837b45fd853052312b3a39d8520566c581994b68f693dd247c22586c638c3b7689c849085cce548cc36b9bf0e119d2d
2021-03-01 11:45:42 +01:00
fanquake
e52ce9f2b3
Merge #21286: build: Bump minimum Qt version to 5.9.5
faa06ecc9c build: Bump minimum Qt version to 5.9.5 (Hennadii Stepanov)

Pull request description:

  Close #20104.

ACKs for top commit:
  laanwj:
    Code review ACK faa06ecc9c
  jarolrod:
    ACK faa06ecc9c
  fanquake:
    ACK faa06ecc9c - this should be ok to do now.

Tree-SHA512: 7295472b5fd37ffb30f044e88c39d375a5a5187d3f2d44d4e73d0eb0c7fd923cf9949c2ddab6cddd8c5da7e375fff38112b6ea9779da4fecce6f024d05ba9c08
2021-02-28 13:14:04 +08:00
Hennadii Stepanov
8b08d0f2a5
build, doc: Fix configure script output indentation and typos 2021-02-24 12:28:35 +02:00
Hennadii Stepanov
faa06ecc9c
build: Bump minimum Qt version to 5.9.5 2021-02-23 21:34:42 +02:00
Wladimir J. van der Laan
a9335e4f12
Merge #16546: External signer support - Wallet Box edition
f75e0c1edd doc: add external-signer.md (Sjors Provoost)
d4b0107d68 rpc: send: support external signer (Sjors Provoost)
245b4457cf rpc: signerdisplayaddress (Sjors Provoost)
7ebc7c0215 wallet: ExternalSigner: add GetDescriptors method (Sjors Provoost)
fc5da520f5 wallet: add GetExternalSigner() (Sjors Provoost)
259f52cc33 test: external_signer wallet flag is immutable (Sjors Provoost)
2655197e1c rpc: add external_signer option to createwallet (Sjors Provoost)
2700f09c41 rpc: signer: add enumeratesigners to list external signers (Sjors Provoost)
07b7c940a7 rpc: add external signer RPC files (Sjors Provoost)
8ce7767071 wallet: add ExternalSignerScriptPubKeyMan (Sjors Provoost)
157ea7c614 wallet: add external_signer flag (Sjors Provoost)
f3e6ce78fb test: add external signer test (Sjors Provoost)
8cf543f96d wallet: add -signer argument for external signer command (Sjors Provoost)
f7eb7ecc67 test: framework: add skip_if_no_external_signer (Sjors Provoost)
87a97941f6 configure: add --enable-external-signer (Sjors Provoost)

Pull request description:

  Big picture overview in [this gist](https://gist.github.com/Sjors/29d06728c685e6182828c1ce9b74483d).

  This PR lets `bitcoind` call an arbitrary command `-signer=<cmd>`, e.g. a hardware wallet driver,  where it can fetch public keys, ask to display an address, and sign a transaction (using PSBT under the hood).

  It's design to work with https://github.com/bitcoin-core/HWI, which supports multiple hardware wallets. Any command with the same arguments and return values will work. It simplifies the manual procedure described [here](https://github.com/bitcoin-core/HWI/blob/master/docs/bitcoin-core-usage.md).

  Usage is documented in [doc/external-signer.md](
  https://github.com/Sjors/bitcoin/blob/2019/08/hww-box2/doc/external-signer.md), which also describes what protocol a different signer binary should conform to.

  Use `--enable-external-signer` to opt in, requires Boost::Process:

  ```
  Options used to compile and link:
    with wallet     = yes
    with gui / qt   = no
    external signer = yes
  ```

  It adds the following RPC methods:
  * `enumeratesigners`: asks <cmd> for a list of signers (e.g. devices) and their master key fingerprint
  * `signerdisplayaddress <address>`:  asks <cmd> to display an address

  It enhances the following RPC methods:
  * `createwallet`: takes an additional `external_signer` argument and fetches keys from device
  * `send`: automatically sends transaction to device and waits

  Usage TL&DR:
  * clone HWI repo somewhere and launch `bitcoind -signer=../HWI/hwi.py`
  * check if you can see your hardware device: `bitcoin-cli enumeratesigners`
  * create wallet and auto import keys `bitcoin-cli createwallet "hww" true true "" true true true`
  * display address on device: `bitcoin-cli signerdisplayaddress ...`
  * to spend, use `send` RPC and approve transaction on device

  Prerequisites:
  - [x] #21127 load wallet flags before everything else
  - [x] #21182 remove mostly pointless BOOST_PROCESS macro

  Potentially useful followups:
  - GUI support: bitcoin-core/gui#4
  - bumpfee support
  - (automatically) verify (a subset of) keys on the device after import, through message signing

ACKs for top commit:
  laanwj:
    re-ACK f75e0c1edd

Tree-SHA512: 7db8afd54762295c1424c3f01d8c587ec256a72f34bd5256e04b21832dabd5dc212be8ab975ae3b67de75259fd569a561491945750492f417111dc7b6641e77f
2021-02-23 17:56:43 +01:00
Sjors Provoost
f75e0c1edd
doc: add external-signer.md 2021-02-23 14:34:32 +01:00
MarcoFalke
34d7030063
Merge #21202: [validation] Two small clang lock annotation improvements
25c57d6409 [doc] Add a note about where lock annotations should go. (Amiti Uttarwar)
ad5f01b960 [validation] Move the lock annotation from function definition to declaration (Amiti Uttarwar)

Pull request description:

  Based on reviewing #21188

  the first commit switches the lock annotations on `CheckInputScripts` to be on the function declaration instead of on the function definition. this ensures that all call sites are checked, not just ones that come after the definition.

  the second commit adds a note to the developer-notes section to clarify where the annotations should be applied.

ACKs for top commit:
  MarcoFalke:
    ACK 25c57d6409 🥘
  promag:
    Code review ACK 25c57d6409.

Tree-SHA512: 61b6ef856bf6c6016d535fbdd19daf57b9e59fe54a1f30d47282a071b9b9d60b2466b044ee57929e0320cb1bdef52e7a1687cacaa27031bbc43d058ffffe22ba
2021-02-22 09:47:15 +01:00
Sjors Provoost
87a97941f6
configure: add --enable-external-signer
This option replaces --with-boost-process

This prepares external signer support to be disabled by default.
It adds a configure option to enable this feature and to check
if Boost::Process is present.

This also exposes ENABLE_EXTERNAL_SIGNER to the test suite via test/config.ini
2021-02-21 16:27:10 +01:00
fanquake
04e01606e3
Merge #21205: build: actually fail when Boost is missing
c5da2749e2 build: actually stop configure if Boost isn't available (fanquake)
cad8b527ea build: explicitly install libboost-dev package (fanquake)

Pull request description:

  If Boost is not found via AX_BOOST_BASE, we don't actually stop
  configuring, only a warning is emitted:
  ```bash
  checking for boostlib >= 1.58.0 (105800)... configure: We could not detect the boost libraries (version MINIMUM_REQUIRED_BOOST or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
  ```

  Instead we usually fail when one of the other AX_BOOST_* macros fails to find a library. These macros are slowly being
  removed, and in any case, it makes more sense to fail earlier if Boost is missing.

  If Boost is unavailable, the failure now looks like:
  ```bash
  checking for boostlib >= 1.58.0 (105800)... configure: We could not detect the boost libraries (version 1.58.0 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
  configure: error: Boost is not available!
  ```

  Note that we now just pass the version into AX_BOOST_BASE, which fixes it's display in the output (rather than showing `MINIMUM_REQUIRED_BOOST`).

  This PR also has a commit that adds `libboost-dev` to our install instructions and CI. This package is currently installed as a side-effect of installing our other libboost-*-dev packages. However as those continue to disappear, it makes sense to install boost-dev explicitly.

ACKs for top commit:
  laanwj:
    Code review ACK c5da2749e2
  MarcoFalke:
    Concept ACK c5da2749e2

Tree-SHA512: f866062f9d7d3a2316b6c887f17c664b9cfff41fdc0cb99ca79d641240fb01a5ae0d34140e515bc465219e1b43d5ca84f7c55f48b9c5b45a80ff2795dafd072b
2021-02-19 17:45:19 +08:00
Amiti Uttarwar
25c57d6409 [doc] Add a note about where lock annotations should go. 2021-02-17 15:58:23 -08:00
MarcoFalke
7f831346cb
Merge #20380: doc: Add instructions on how to fuzz the P2P layer using Honggfuzz NetDriver
fd0be92cff doc: Add instructions on how to fuzz the P2P layer using Honggfuzz NetDriver (practicalswift)

Pull request description:

  Add instructions on how to fuzz the P2P layer using [Honggfuzz NetDriver](http://blog.swiecki.net/2018/01/fuzzing-tcp-servers.html).

  Honggfuzz NetDriver allows for very easy fuzzing of TCP servers such as Bitcoin Core without having to write any custom fuzzing harness. The `bitcoind` server process is largely fuzzed without modification.

  This makes the fuzzing highly realistic: a bug reachable by the fuzzer is likely also remotely triggerable by an untrusted peer.

Top commit has no ACKs.

Tree-SHA512: 9e98cb30f00664c00c8ff9fd224ff9822bff3fd849652172df48dbaeade1dd1a5fc67ae53203f1966a1d4210671b35656009a2d8b84affccf3ddf1fd86124f6e
2021-02-17 09:50:56 +01:00
fanquake
cad8b527ea
build: explicitly install libboost-dev package
This package is currently installed as a side-effect of installing our
other libboost-*-dev packages. However as those continue to dissapear,
it makes sense to install boost dev explicitly.
2021-02-17 09:04:20 +08:00
MarcoFalke
df8892dc9f
Merge #20986: docs: update developer notes to discourage very long lines
aa929abf8d [docs] Update developer notes to discourage very long lines (John Newbery)

Pull request description:

  Mandatory rules on line lengths are bad - there will always be cases where a longer line is more readable than the alternative.

  However, very long lines for no good reason _do_ hurt readability. For example, this declaration in validation.h is 274 chars:

  ```c++
      bool ConnectTip(BlockValidationState& state, const CChainParams& chainparams, CBlockIndex* pindexNew, const std::shared_ptr<const CBlock>& pblock, ConnectTrace& connectTrace, DisconnectedBlockTransactions& disconnectpool) EXCLUSIVE_LOCKS_REQUIRED(cs_main, m_mempool.cs);
  ```

  That won't fit on one line without wrapping on my 27" monitor with a comfortable font size. Much easier to read is something like:

  ```c++
      bool ConnectTip(BlockValidationState& state, const CChainParams& chainparams,
                      CBlockIndex* pindexNew, const std::shared_ptr<const CBlock>& pblock,
                      ConnectTrace& connectTrace, DisconnectedBlockTransactions& disconnectpool)
          EXCLUSIVE_LOCKS_REQUIRED(cs_main, m_mempool.cs);
  ```

  Therefore, _discourage_ (don't forbid) line lengths greater than 100 characters in our developer style guide.

  100 chars is somewhat arbitrary. The old standard was 80, but that seems very limiting with modern displays.

ACKs for top commit:
  fanquake:
    ACK aa929abf8d - this is basically just something to point too when a PR has unreasonably long lines for no particularly reason.
  practicalswift:
    ACK aa929abf8d
  amitiuttarwar:
    ACK aa929abf8d
  theStack:
    ACK aa929abf8d
  glozow:
    ACK aa929abf8d

Tree-SHA512: 17f1b11f811137497ede8851ede93fa612dc622922b5ad7ac8f065ea026d9a718db5b92325754b74d24012b4d45c4e2cd5cd439a6a8d34bbabf5da927d783970
2021-02-14 09:48:31 +01:00
Wladimir J. van der Laan
b08cbd09b8
Merge #21028: doc/bips: Add BIPs 43, 44, 49, and 84
c943326d3c doc/bips: Add BIPs 43, 44, 49, and 84 (Luke Dashjr)

Pull request description:

  If you don't like what they say, please suggest alternatives ;)

ACKs for top commit:
  prusnak:
    ACK c943326

Tree-SHA512: 7db93f8491289657ec45df30e557eb8572b35201eb29aed1b11bf3949924fce56b4e2d71e1f0acf5d24a01278c0dec99790d632f04c15117010c4ac564368d6b
2021-02-13 18:36:37 +01:00
Luke Dashjr
c943326d3c doc/bips: Add BIPs 43, 44, 49, and 84 2021-02-12 20:48:18 +00:00