Commit Graph

26942 Commits

Author SHA1 Message Date
pasta
8cef87d81d
Merge #6276: backport: merge bitcoin#22817, #23042, #22777, #23774, #25443, #26138, #26854, #27128, #27761, #27863, #28287, #30118, partial bitcoin#22778 (auxiliary backports: part 16)
e458adb61c merge bitcoin#30118: improve robustness of connect_nodes() (UdjinM6)
ac94de23ae merge bitcoin#28287: add `sendmsgtopeer` rpc and a test for net-level deadlock situation (Kittywhiskers Van Gogh)
d1fce0b7ca fix: ensure that deadlocks are actually resolved (Kittywhiskers Van Gogh)
19e7bf64c8 merge bitcoin#27863: do not break when addr is not from a distinct network group (Kittywhiskers Van Gogh)
1adb9a232c merge bitcoin#27761: Log addresses of stalling peers (Kittywhiskers Van Gogh)
2854a6aa5a merge bitcoin#27128: fix intermittent issue in `p2p_disconnect_ban` (Kittywhiskers Van Gogh)
d4b0faeae1 merge bitcoin#26854: Fix intermittent timeout in p2p_permissions.py (Kittywhiskers Van Gogh)
892e329ada merge bitcoin#26138: Avoid race in disconnect_nodes helper (Kittywhiskers Van Gogh)
d6ce037814 merge bitcoin#25443: Fail if connect_nodes fails (Kittywhiskers Van Gogh)
60b5392d92 partial bitcoin#22778: Reduce resource usage for inbound block-relay-only connections (Kittywhiskers Van Gogh)
85c4aef9cb merge bitcoin#23774: Add missing assert_equal import to p2p_add_connections.py (Kittywhiskers Van Gogh)
03544175d9 merge bitcoin#22777: don't request tx relay on feeler connections (Kittywhiskers Van Gogh)
7229eb0ae2 merge bitcoin#23042: Avoid logging AlreadyHaveTx when disconnecting misbehaving peer (Kittywhiskers Van Gogh)
05395ff37b merge bitcoin#22817: Avoid race after connect_nodes (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Depends on https://github.com/dashpay/dash/pull/6286

  * Depends on https://github.com/dashpay/dash/pull/6287

  * Depends on https://github.com/dashpay/dash/pull/6289

  * When backporting [bitcoin#28287](https://github.com/bitcoin/bitcoin/pull/28287), `p2p_net_deadlock.py` relies on the function, `random_bytes()`, that is introduced in [bitcoin#25625](https://github.com/bitcoin/bitcoin/pull/25625). Backporting [bitcoin#25625](https://github.com/bitcoin/bitcoin/pull/25625) would attract changes outside the scope of this PR.

    In the interest of brevity, the changes that introduce `random_bytes()` have been included in [bitcoin#28287](https://github.com/bitcoin/bitcoin/pull/28287) instead.

  ## Breaking Changes

  None expected.

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK e458adb61c
  PastaPastaPasta:
    utACK e458adb61c

Tree-SHA512: 48494004dddecb31c53f5e19ab0114b92ed7b4381c7977800fd49b7403222badbfdcfe46241e854f5b086c6f54a35f6483f91c6f047b7ac9b1e88e35bb32ad02
2024-10-04 14:09:12 -05:00
pasta
251f16b82b
Merge #6267: feat(stats): split off transmission to RawSender, implement batching and queueing support, add streamlined prefix and suffix support
cc1a75ab3a docs: add release notes (Kittywhiskers Van Gogh)
39625f16f0 stats: drop copyright notice from `stats/client.cpp` (Kittywhiskers Van Gogh)
18a2e48eb9 stats: rename `statsns` to clearer `statsprefix` (Kittywhiskers Van Gogh)
42918c2cdc stats: rename `statshostname` to more appropriate `statssuffix` (Kittywhiskers Van Gogh)
f3a4844b0a stats: implicitly treat stats as enabled if `statshost` is specified (Kittywhiskers Van Gogh)
69603a83fa stats: miscellaneous changes and housekeeping (Kittywhiskers Van Gogh)
3e12ac0e09 stats: deduplicate `send` and `sendDouble` logic (Kittywhiskers Van Gogh)
bf44fc3bf6 feat(stats): introduce support for batching messages (Kittywhiskers Van Gogh)
38b1643fe6 feat(stats): introduce support for queuing messages (Kittywhiskers Van Gogh)
fc4a736e2a stats: move message sending logic to `RawSender` (Kittywhiskers Van Gogh)
92690685be stats: move `statsd_client` to `stats` directory (Kittywhiskers Van Gogh)
f782dfd562 stats: remove double indentation in header file (Kittywhiskers Van Gogh)

Pull request description:

  ## Motivation

  This pull request achieves the goal originally set out in [dash#5167](https://github.com/dashpay/dash/pull/5167), to migrate the base of our Statsd client implementation to one that is actively maintained. Statoshi ([source](54c3ffdcf0/src/statsd_client.cpp)) utilizes [talebook/statsd-client-cpp](https://github.com/talebook/statsd-client-cpp), which in turn is inherited by Dash.

  As Statsd is the only cross-platform reporting mechanism available (USDT requires a Linux host with superuser privileges and RPCs don't provide as much flexibility as desired), emphasis is placed on using Statsd as the primary way for the Dash daemon to report metrics related to node and network health.

  As part of maintaining our Statsd client, this PR aims to migrate the base of our implementation to [vthiery/cpp-statsd-client](https://github.com/vthiery/cpp-statsd-client), a streamlined implementation that embraces C++11 with a thread-safe implementation of queueing and batching, which reduces the number of packets used to transmit stats.

  These capabilities are optional and users can opt not to use them by setting `-statsduration=0` to disable queueing (which will also disable batching) or `-statsbatchsize=0`, which will disable batching (but will not disable queueing unless requested explicitly).

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/5167
  * `RawSender` (and by extension, `RawMessage`) strive to remain as unopinionated as possible, moving the responsibility to construct valid Statsd messages onto `StatsdClient`. This is to ensure that  `RawSender` can be reused down the line or independently extended without impacting the Statsd client.
    * `RawMessage` exists to provide extensions to `std::vector<uint8_t>` that make it easier to abstract away strings while also implementing some of its semantics like `append()` (and its alias, `+=`).
  * `InitStatsClient()` was introduced to keep `StatsdClient` indifferent to _how_ arguments are obtained and sanitized before they're supplied to the constructor. This is to keep it indifferent to all the backwards-compatibility code for deprecated arguments still work.
  * When constructing the Statsd message, we can use `%f` without having to specify a precision as tinyformat automatically assumes a precision of 6 ([source](17110f50b3/src/tinyformat.h (L673))) and problems don't seem to be observed when using `%f` with integers ([source](https://github.com/dashpay/dash/pull/6267#issuecomment-2345592051)).
    * As a guardrail, there is a `static_assert` to ensure that a specialization of `send()` involving a non-arithmetic type will raise alarm when compiling ([source](a0ce720207/src/stats/client.cpp (L145))).

  ## Breaking changes

  * `-statsenabled` (replaced with specifying `-statshost`), `-statshostname` (replaced by `-statssuffix`) and `-statsns` (replaced by `-statsprefix`) have been deprecated and will be removed in a future release.

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK cc1a75ab3a
  UdjinM6:
    utACK cc1a75ab3a

Tree-SHA512: b038419f2b6d807dac40a04d23c5046fbaa95beedb88f5a9e4c06a7042c2f5da7e01c72c4a2744bce10878cafc747136d6599dcd86ae1be0782ad4194d5b7bec
2024-10-04 14:07:13 -05:00
Kittywhiskers Van Gogh
cc1a75ab3a
docs: add release notes 2024-10-04 08:48:30 +00:00
Kittywhiskers Van Gogh
39625f16f0
stats: drop copyright notice from stats/client.cpp
This marks the completion of our transition from code based on
`talebook/statsd-client-cpp` to code based on `vthiery/cpp-statsd-client`.

Also, we long stopped using `snprintf`, remove it from exclusions list.
2024-10-04 08:48:30 +00:00
Kittywhiskers Van Gogh
18a2e48eb9
stats: rename statsns to clearer statsprefix
`statsns`, aside from being an unclear name, in its default behaviour,
doesn't use the namespace delimiter contaminates the root namespace
of the key.

Let's take care of that by deprecating `statsns` with its replacement,
`statsprefix`, that behaves properly.
2024-10-04 08:48:30 +00:00
Kittywhiskers Van Gogh
42918c2cdc
stats: rename statshostname to more appropriate statssuffix
`statshostname` implies that alongside specifying the host, the user
needs to specify a separate "hostname" field in order to connect when
in fact, it is an entirely optional suffix field applied to stats keys.

Rename it to `statssuffix` and deprecate `statshostname`, the latter
will be removed in a subsequent major release.
2024-10-04 08:48:23 +00:00
Kittywhiskers Van Gogh
f3a4844b0a
stats: implicitly treat stats as enabled if statshost is specified
This is to avoid the odd circumstance where stats don't work because you
specified everything but didn't explicitly enable it. Using
`-statsenabled` has been deprecated and will be removed in the next
major release.
2024-10-04 08:48:11 +00:00
Kittywhiskers Van Gogh
69603a83fa
stats: miscellaneous changes and housekeeping
- `timing` cannot contain a negative value, change to `uint64_t`
- remove `sendDouble`, use template specialization of `Send` instead,
  that can be reused as `send`
- rename `value` in `count()` to `delta`
- add more comments

`gaugeDouble` has been kept around because utilizing templates for it
would require us to either write template specializations for every kind
of `gauge` value (implicit conversions will not save us from this) or
move all logic to the header, neither option seems desirable.
2024-10-04 08:48:11 +00:00
Kittywhiskers Van Gogh
3e12ac0e09
stats: deduplicate send and sendDouble logic
Additionally, let's remove the key sanitation logic since keys are
hardcoded.

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2024-10-04 08:48:11 +00:00
Kittywhiskers Van Gogh
bf44fc3bf6
feat(stats): introduce support for batching messages
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2024-10-04 08:47:57 +00:00
Kittywhiskers Van Gogh
38b1643fe6
feat(stats): introduce support for queuing messages 2024-10-04 08:47:48 +00:00
Kittywhiskers Van Gogh
fc4a736e2a
stats: move message sending logic to RawSender
`RawSender` is inspired by `UDPSender` from `vthiery/cpp-statsd-client`
and separating it out of `StatsdClient` is needed to implement queueing
and batching support in upcoming commits.

This is the start of migrating our Statsd codebase to `cpp-statsd-client`.
2024-10-04 08:47:36 +00:00
UdjinM6
e458adb61c
merge bitcoin#30118: improve robustness of connect_nodes() 2024-10-03 21:40:28 +00:00
pasta
4c1e0348b3
Merge #6290: chore: update pasta gpg key to reflect new subkeys
c3f2474898 chore: update pasta gpg key to reflect new subkeys (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  I've added 2 subkeys to my GPG key `29590362EC878A81FD3C202B52527BEDABE87984` to better follow best practices, which avoids using your primary key whenever possible. All future git commit signing, and potentially releases will be signed by a subkey instead of the primary key.

  These updated subkeys keys are now included on all the major keyservers
  hkps://keyserver.ubuntu.com
  hkps://pgp.mit.edu
  hkps://keyserver.ubuntu.com

  keybase has 1 of the 2 subkeys already, will add the other soon.

  ## What was done?

  ## How Has This Been Tested?

  ## Breaking Changes
  Users who validate my signatures may have to refresh the key from keyservers via `gpg --refresh-keys` or pull down from keybase via `curl https://keybase.io/pasta/pgp_keys.asc | gpg --import`

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK c3f2474898

Tree-SHA512: 87d33caceb1973a54877c5d5a8b85a48e1373b7709698efc793598bf7453608979bfe1c75e4ea0c9ec852c0343b43b06357c58f6c4fbf72915eb910788cc705f
2024-10-03 11:45:07 -05:00
pasta
7c0d44c13c
Merge #6295: backport: cmake prereq 3
1b622944c4 Merge bitcoin/bitcoin#30743: depends: build libevent with `-D_GNU_SOURCE` (merge-script)
0f135dd233 Merge bitcoin/bitcoin#30522: ci: Add missing qttools5-dev install to Asan task (merge-script)
d46e16c023 Merge bitcoin/bitcoin#30490: depends: bump libmultiprocess for CMake fixes (merge-script)
7a63c20c47 Merge bitcoin/bitcoin#29276: depends: Update libmultiprocess library to fix C++20 macos build error (fanquake)
630e767be7 Merge bitcoin/bitcoin#28907: depends: bump libmultiprocess to fix capnproto deprecation warnings (fanquake)
318471d599 Merge bitcoin/bitcoin#28735: depends: Bump to capnproto-c++-1.0.1 (fanquake)
ad0c279ac8 Merge bitcoin/bitcoin#26672: build: Update libmultiprocess library (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  depends on https://github.com/dashpay/dash/pull/6294

  ## What was done?
  Batch of backports

  ## How Has This Been Tested?

  ## Breaking Changes

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 1b622944c4

Tree-SHA512: a0a01b1b4844725aa6c96304a4cddae61ec29b677a760f35648e7f39fb36f6f462d3a6d5e411e99f4db1fa59c01f6fffd87158cbef5e1ba1edb43e68fc362c77
2024-10-03 01:15:37 -05:00
pasta
42c613ca4d
Merge #6298: test: extend and refactor DIP0020 activation test
c91ba8ac14 fix: no crashes allowed (UdjinM6)
a4cd1d6423 fix: explicitly test no tx in mempool after invalidateblock (UdjinM6)
04b5db9417 test: extend and refactor DIP0020 activation test (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  ~23590 backport in #6256 results in node crashes (for dashd compiled with `--enable-debug`) when we try to spend coins locked via disabled opcodes in `feature_dip0020_activation.py`. Also,~ there is only rpc part and no tests for relaying such txes via p2p.

  ## What was done?

  ## How Has This Been Tested?
  run test on develop and on top of #6256 + #6299 with and without `--enable-debug`

  ## Breaking Changes

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  PastaPastaPasta:
    utACK c91ba8ac14
  knst:
    utACK c91ba8ac14

Tree-SHA512: 2ba16d6a6bb58cb98c01234ed60a8eecd4ff214d3d8386a4b8ed10f4776e0862d7794747791d82345d6031678a308df39c2dbdd361a902ee1e56cf7f05a73c1a
2024-10-02 23:11:50 -05:00
Kittywhiskers Van Gogh
ac94de23ae
merge bitcoin#28287: add sendmsgtopeer rpc and a test for net-level deadlock situation
`random_bytes()` is introduced in bitcoin#25625 but the function def
alone doesn't warrant a full backport, so we'll only implement the
section relevant to this PR.
2024-10-02 08:31:49 +00:00
Kittywhiskers Van Gogh
d1fce0b7ca
fix: ensure that deadlocks are actually resolved
The fix introduced in bitcoin#27981 (8c986d6b, dash#6067) is not
validated to work until bitcoin#28287, an upcoming backport.

As the latter has identified the former backport didn't pass validation,
let's fix it so that the latter tests succeed when they're backported
in an upcoming commit.
2024-10-02 08:31:49 +00:00
Kittywhiskers Van Gogh
19e7bf64c8
merge bitcoin#27863: do not break when addr is not from a distinct network group 2024-10-02 08:31:49 +00:00
Kittywhiskers Van Gogh
1adb9a232c
merge bitcoin#27761: Log addresses of stalling peers 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
2854a6aa5a
merge bitcoin#27128: fix intermittent issue in p2p_disconnect_ban 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
d4b0faeae1
merge bitcoin#26854: Fix intermittent timeout in p2p_permissions.py 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
892e329ada
merge bitcoin#26138: Avoid race in disconnect_nodes helper 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
d6ce037814
merge bitcoin#25443: Fail if connect_nodes fails 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
60b5392d92
partial bitcoin#22778: Reduce resource usage for inbound block-relay-only connections
includes:
- 290a8dab0288344fa5731ec2ffd09478e9420a2f
2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
85c4aef9cb
merge bitcoin#23774: Add missing assert_equal import to p2p_add_connections.py 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
03544175d9
merge bitcoin#22777: don't request tx relay on feeler connections 2024-10-02 08:31:15 +00:00
merge-script
1b622944c4
Merge bitcoin/bitcoin#30743: depends: build libevent with -D_GNU_SOURCE
556775408797d8e27154c3edaf139820b0979cce depends: build libevent with -D_GNU_SOURCE (fanquake)

Pull request description:

  Currently, builds of libevent in depends, using CMake, fail on some systems, like Alpine, with the following:
  ```bash
  /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c: In function 'evmap_signal_add_':
  /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c:456:31: error: 'NSIG' undeclared (first use in this function)
    456 |         if (sig < 0 || sig >= NSIG)
  ```

  From what I can tell the `GNU_SOURCE` "detection" in libevents CMake build system, never? really worked, primarily relies on looking for a deprecated define, and it's not clear what a nice fix is. For now, always build with `_GNU_SOURCE`, to match the autotools behaviour.

ACKs for top commit:
  TheCharlatan:
    ACK 556775408797d8e27154c3edaf139820b0979cce

Tree-SHA512: 4552b4a92867e8fa2af0ffa39b2be6c994bf739de7ce6a7c581590be486da81f7d93fca816854548c1e912347d33a35218c441b5058c3cbd3e82c74a9b7c78d9
2024-10-01 22:54:14 -05:00
Kittywhiskers Van Gogh
7229eb0ae2
merge bitcoin#23042: Avoid logging AlreadyHaveTx when disconnecting misbehaving peer 2024-10-01 19:40:51 +00:00
Kittywhiskers Van Gogh
05395ff37b
merge bitcoin#22817: Avoid race after connect_nodes
Due to stricter checks, we can no longer start masternodes in parallel,
as entities used to process `to_connection` checks are reused before the
previous check is completed, resulting in an exception. Since we're
now validating the establishment of a two-way connection, we have to do
it one at a time.
2024-10-01 19:40:51 +00:00
pasta
5a0479fe53
Merge #6275: feat: bury mn_rr fork - fire up test chains by first block - 6/n
9a9d0d5b79 feat: drop SPORK 24 (EHF) so far as this feature works on testnet / mainnet (Konstantin Akimov)
da0dc06eea perf: optimize feature_mnehf.py by generating less blocks (Konstantin Akimov)
0de3923b06 feat: bury fork mn_rr (masternode reward reallocation) (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  MN_RR is activated on mainnet: time to bury it!

  ## What was done?
  Hard-fork mn_rr is buried. Prior fixes are done here: https://github.com/dashpay/dash/pull/6270 and https://github.com/dashpay/dash/pull/6269

  ## How Has This Been Tested?
  Run unit and functional tests

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    light ACK 9a9d0d5b79
  PastaPastaPasta:
    utACK 9a9d0d5b79

Tree-SHA512: 73ea0ca1270f15f6f1193efbaf402d476c84e9a843af85b7eae3e40199f4c943ad40f58e062b8db20e1c5c69c1a85579ebaf0722f1044ee2e1a4e7f96c58e645
2024-10-01 13:45:45 -05:00
UdjinM6
c91ba8ac14
fix: no crashes allowed 2024-10-01 21:13:02 +03:00
UdjinM6
a4cd1d6423
fix: explicitly test no tx in mempool after invalidateblock 2024-10-01 21:11:47 +03:00
merge-script
0f135dd233
Merge bitcoin/bitcoin#30522: ci: Add missing qttools5-dev install to Asan task
faa359877270121b3cd442e1e5e865586ce7e530 ci: Add missing qttools5-dev install to Asan task (MarcoFalke)

Pull request description:

  This is required, according to the docs:

  ```
  $ git grep --line-number 'qtbase5-dev qttools5-dev qttools5-dev-tools' doc
  doc/build-unix.md:84:    sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
  ```

  Also, needed for cmake.

ACKs for top commit:
  hebasto:
    ACK faa359877270121b3cd442e1e5e865586ce7e530.

Tree-SHA512: c986908f757d70d958267c1e902b5d7d94589360db61ddf7b9b398cd635b2172e83510c0c77fd6032810166342a286c0f95225b6c6639acd869e1e51c3348ea7
2024-10-01 09:46:26 -05:00
merge-script
d46e16c023
Merge bitcoin/bitcoin#30490: depends: bump libmultiprocess for CMake fixes
d318c4ef56465ccad1a1d4d27c52216e0b69ad4e depends: bump libmultiprocess for CMake fixes (Cory Fields)

Pull request description:

  Broken out of #30454 . Bumped [even further](4883197abc (r1684802528)) after https://github.com/chaincodelabs/libmultiprocess/pull/98 was merged upstream.

  hebasto Presumably this approach works now with the CMake branch?

ACKs for top commit:
  ryanofsky:
    Code review ACK d318c4ef56465ccad1a1d4d27c52216e0b69ad4e.

Tree-SHA512: 4b5491f73c0063d09e8339829cd831b1f4c441dd7b55a22037c9337c80cce19bb00a3e5cf925efa77d6d4e89ab45482f40f5799bc14948f8cabcbad3c3549430
2024-10-01 09:46:26 -05:00
fanquake
7a63c20c47
Merge bitcoin/bitcoin#29276: depends: Update libmultiprocess library to fix C++20 macos build error
b8105b3ed7c97cd6545dba99d0e13c33f183e450 depends: Update libmultiprocess library to fix C++20 macos build error (Ryan Ofsky)

Pull request description:

  Fixes #29248

  The std::result_of type was removed in c++20, but was being referenced in some old, unused code in the library. The issue was fixed in:

  - https://github.com/chaincodelabs/libmultiprocess/pull/91

  This update also includes other recent libmultiprocess changes to improve C++20 support and fix build issues:

  - https://github.com/chaincodelabs/libmultiprocess/pull/89
  - https://github.com/chaincodelabs/libmultiprocess/pull/90
  - https://github.com/chaincodelabs/libmultiprocess/pull/93

ACKs for top commit:
  fanquake:
    ACK b8105b3ed7c97cd6545dba99d0e13c33f183e450.

Tree-SHA512: 2ca64b5fc27be752baba38df4b4faf62152e18c70ead6e0e063f1cb0c25dd5d924dec7ebfd7f8bbd651ae50eb35e8d8b591a9847c36f22558b5f5effccf56536
2024-10-01 09:46:26 -05:00
fanquake
630e767be7
Merge bitcoin/bitcoin#28907: depends: bump libmultiprocess to fix capnproto deprecation warnings
21bfee0720ba72935d4f9fc4c2a2887ae5b54092 depends: bump libmultiprocess to fix capnproto deprecation warnings (Ryan Ofsky)

Pull request description:

  This incorporates PR chaincodelabs/libmultiprocess#88 and reverts the NO_WERROR CI workaround added in #28735

  Upstream diff: 61d5a0e661...414542f81e

  ---

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/issues/28722).

ACKs for top commit:
  maflcko:
    lgtm ACK 21bfee0720ba72935d4f9fc4c2a2887ae5b54092
  hebasto:
    ACK 21bfee0720ba72935d4f9fc4c2a2887ae5b54092, I have reviewed the code and it looks OK. I've also skimmed through the related changes in the https://github.com/chaincodelabs/libmultiprocess repository.

Tree-SHA512: b5addb0deed694eeec62a0ae08b4715a811110201f39f3e6cadee8fc4e6231b0e66c844a98512072a1445bac122ab561dc1711e27fb4d7ac5c08ac46780a4acf
2024-10-01 09:46:26 -05:00
fanquake
318471d599
Merge bitcoin/bitcoin#28735: depends: Bump to capnproto-c++-1.0.1
BACKPORT NOTICE: excludes ci/test/00_setup_env_i686_multiprocess.sh changes, however, these do not satisfy enough this to be partial to me

3333f14efac815ba3c885398a6795c7e8ce68d08 depends: Bump to capnproto-c++-1.0.1 (MarcoFalke)

Pull request description:

  Reasons:
  * Debian is starting to ship this version in Trixie (https://packages.debian.org/trixie/capnproto), which will likely become the version shipped with Ubuntu 24.04 LTS. So testing with this version will help to find any issues before real users start to use those distro packages.
  * The feature is currently experimental, so bumping the version shouldn't cause any production issues.
  * With multiprocess begin a priority project for 27.0, it seems better to do build system changes/bumps early, rather than later, to allow for more time testing them.

ACKs for top commit:
  TheCharlatan:
    Re-ACK 3333f14efac815ba3c885398a6795c7e8ce68d08
  fanquake:
    ACK 3333f14efac815ba3c885398a6795c7e8ce68d08 - the response from upstream is that [if we submit a PR, they can take a look](https://github.com/capnproto/capnproto/issues/1833#issuecomment-1792582206), so if anyone would like this to work for Windows, I'd suggest sending a patch.
  ryanofsky:
    Code review ACK 3333f14efac815ba3c885398a6795c7e8ce68d08

Tree-SHA512: 7d53ad1536f042ab43dbc7847126b826e7fc76694f173c348b835fd1067b8f3dd682c5bcb4887f09ee85bab69130721cd7f8fb96b2e82053d4e28bd5c38bdc5f
2024-10-01 09:46:26 -05:00
fanquake
ad0c279ac8
Merge bitcoin/bitcoin#26672: build: Update libmultiprocess library
1986f129c6af7644d238c76f032713731d7afcac build: Update `libmultiprocess` library (Hennadii Stepanov)

Pull request description:

  This update in particular includes:
  - https://github.com/chaincodelabs/libmultiprocess/pull/78 which is [required](https://github.com/bitcoin/bitcoin/pull/25972#issuecomment-1246812573) for https://github.com/bitcoin/bitcoin/pull/25972
  - https://github.com/chaincodelabs/libmultiprocess/pull/74
  - https://github.com/chaincodelabs/libmultiprocess/pull/70

ACKs for top commit:
  ryanofsky:
    Code review ACK 1986f129c6af7644d238c76f032713731d7afcac

Tree-SHA512: 2d9fa72df5de7d5be37d77d479702cba36c45e9fa9d9fc27e58aac0437c39e4a1054c0ac53b612cb43e830982e444d98c7d3e651d093ac68344e66f4734227bb
2024-10-01 09:46:26 -05:00
pasta
a285fff311
Merge #6291: backport: merge bitcoin#23037, #23047, #23102, #23209, #23210, #23501, #23392, #23799, #24195, #24324 (test backports)
51e1170f8f merge bitcoin#24324: refactor: remove unneeded bytes<->hex conversions in `byte_to_base58` (Kittywhiskers Van Gogh)
473ee8ef18 merge bitcoin#24195: Fix failfast option for functional test runner (Kittywhiskers Van Gogh)
64dd46764c merge bitcoin#23799: Let test_runner.py start multiple jobs per timeslot (Kittywhiskers Van Gogh)
1b241a2832 merge bitcoin#23392: move check_node_connections to util (Kittywhiskers Van Gogh)
f6fa0c06b8 merge bitcoin#23501: various feature_nulldummy.py improvements (Kittywhiskers Van Gogh)
851dae7b29 merge bitcoin#23210: Replace satoshi_round with int() or Decimal() (Kittywhiskers Van Gogh)
739394df18 merge bitcoin#23209: Avoid RPC roundtrip in MiniWallet get_descriptor() (Kittywhiskers Van Gogh)
c96b9aa3d9 merge bitcoin#23102: Add missing re.escape() to feature_addrman test (Kittywhiskers Van Gogh)
4db9108b74 merge bitcoin#23047: Use MiniWallet in mempool_persist (Kittywhiskers Van Gogh)
234f22a72e merge bitcoin#23037: fix confusing off-by-one nValue in feature_coinstatsindex.py (Kittywhiskers Van Gogh)

Pull request description:

  ## Breaking Changes

  None expected.

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK 51e1170f8f
  UdjinM6:
    utACK 51e1170f8f

Tree-SHA512: 54ffbb2a44ad411d8602a7a752a05527faa65199da6cfa585f953892017c4d9e906c86c0b5b5e5d151d76eb0649aa76a7d17104ab0b3797a111d364ca52d716b
2024-10-01 09:43:52 -05:00
pasta
e493d591ca
Merge #6289: test: avoid node (dis)connections in functional tests that are invalid or likely to fail
40f2ab906c test: don't attempt to reconnect already connected nodes (Kittywhiskers Van Gogh)
4a0fc8b69e test: don't attempt to (dis)connect nodes to/from themselves (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependency for https://github.com/dashpay/dash/pull/6276

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 40f2ab906c

Tree-SHA512: aaaeedabeb6b8ef77187fc14db1888c39863daf66afda93b8c8bc1dbbdf3ff6734445fd296d5b1034da6104e2d7cfcacf26b97b7be0a697b7a99f3671b6cb9a2
2024-10-01 09:41:46 -05:00
pasta
9612287e91
Merge #6294: backport: cmake prereq 2
ae6e0ada9b Merge bitcoin/bitcoin#29725: depends: build libqrencode with CMake (fanquake)
1522896f9f fix mingw32 build (UdjinM6)
7bb1d0ef5e Merge bitcoin/bitcoin#22724: windres: use PACKAGE_VERSION rather than building more version numbers (fanquake)
6bee8e25f7 Merge bitcoin/bitcoin#27496: depends: reuse _config_opts for CMake options (fanquake)
24973ee34c Merge bitcoin/bitcoin#30488: depends: Fix CMake-generated `libevent*.pc` files (merge-script)
a27b08ed7a Merge bitcoin/bitcoin#29835: depends: build libevent with CMake (merge-script)
a204616446 Merge bitcoin/bitcoin#30464: test, refactor: Fix MSVC warning C4101 "unreferenced local variable" (merge-script)
02aee122de Merge bitcoin/bitcoin#30508: depends: Fix CMake-generated `libzmq.pc` file (merge-script)
e2b24461d4 Merge bitcoin/bitcoin#29723: depends: build zeromq with CMake (merge-script)
685b7a7a1b Merge bitcoin/bitcoin#23611: build: add `LTO` option to depends (laanwj)
d2b8c6bbc9 Merge bitcoin/bitcoin#19952: build, ci: Add file-based logging for individual packages (laanwj)
fc1c29caf0 partial Merge bitcoin/bitcoin#23478: build: Add support for Android NDK r23 LTS (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  depends on https://github.com/dashpay/dash/pull/6293

  ## What was done?
    _Describe your changes in detail_

  ## How Has This Been Tested?
    _Please describe in detail how you tested your changes._

    _Include details of your testing environment, and the tests you ran
  to see how your change affects other areas of the code, etc._

  ## Breaking Changes
    _Please describe any breaking changes your code introduces_

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK ae6e0ada9b
  knst:
    utACK ae6e0ada9b
  knst:
    utACK ae6e0ada9b

Tree-SHA512: 0606c7596394155417ad0fea96ce7e1f905109ce2978987e1c4132e8b0f5a8593c5c62ea7217510169228e8238ba42b418a74635ded01f5d674f62495ad3b3a9
2024-10-01 09:39:32 -05:00
UdjinM6
04b5db9417
test: extend and refactor DIP0020 activation test 2024-10-01 17:10:04 +03:00
Kittywhiskers Van Gogh
51e1170f8f
merge bitcoin#24324: refactor: remove unneeded bytes<->hex conversions in byte_to_base58 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
473ee8ef18
merge bitcoin#24195: Fix failfast option for functional test runner 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
64dd46764c
merge bitcoin#23799: Let test_runner.py start multiple jobs per timeslot 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
1b241a2832
merge bitcoin#23392: move check_node_connections to util 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
f6fa0c06b8
merge bitcoin#23501: various feature_nulldummy.py improvements 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
851dae7b29
merge bitcoin#23210: Replace satoshi_round with int() or Decimal() 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
739394df18
merge bitcoin#23209: Avoid RPC roundtrip in MiniWallet get_descriptor() 2024-09-30 09:03:27 +00:00