Commit Graph

27069 Commits

Author SHA1 Message Date
pasta
801c4fc24a
build: followup to 29488 applied to gmp 2024-09-27 10:22:36 -05:00
fanquake
4b704a60ad
Merge bitcoin/bitcoin#28627: depends: zeromq 4.3.5
986d7fed057b995a720787cbbd21e1c41763fb83 depends: zeromq 4.3.5 (fanquake)

Pull request description:

  First new point release of zeromq in two and a half years. Mostly bug fixes; the project also completed a relicense to the "Mozilla Public License".

  See https://github.com/zeromq/libzmq/releases/tag/v4.3.5.

ACKs for top commit:
  hebasto:
    ACK 986d7fed057b995a720787cbbd21e1c41763fb83, I have reviewed the code and it looks OK.
  TheCharlatan:
    ACK 986d7fed057b995a720787cbbd21e1c41763fb83

Tree-SHA512: cdd6abfbbe10873c1ca267fed648c2e6ff17a4aff50c414924006e63fa39d501e803f8893a5cd966a2078b5c077f2578e482483e6723ea6f5760f16211d40998
2024-09-26 22:44:19 -05:00
fanquake
0e6cb989a7
Merge bitcoin/bitcoin#26421: build: copy config.{guess,sub} post autogen in zmq package
1914e470e327091c625f627b4447beb336f7fe5a build: copy config.{guess,sub} post autogen in zmq package (fanquake)

Pull request description:

  Otherwise our config.guess and config.sub will be copied over. This problem has been masked by the fact that modern systems ship with versions that recognise all the triplets we use (namely arm64-apple-darwin). However building on ubuntu 20.04 surfaces the issue.

  Fixes #26420.

ACKs for top commit:
  hebasto:
    ACK 1914e470e327091c625f627b4447beb336f7fe5a, tested on Ubuntu 18.04.

Tree-SHA512: dff64c3c62d9f8fc205e5a4dffe8befd58838418d073a15dfe304a0f64b182dfffd9dcf98b53df44bfab905c12a62d03cd5c0f91fa7c4b246ac21ae5f20540fd
2024-09-26 22:44:15 -05:00
fanquake
cd33b69bfd
Merge bitcoin/bitcoin#29488: depends: always configure with --with-pic
e037c4fe0914d8fa9149ce7532c0d70f738e79e9 depends: always configure with --with-pic (fanquake)

Pull request description:

  We currently do this sporadically. Not only amongst packages, but across OS's, i.e sometimes it's done for BSDs/Android, and sometimes not.

  Configure with `--with-pic` globally instead. I think this generally makes more sense, and should not have any downsides.

  See related discussion in https://github.com/bitcoin/bitcoin/pull/28846#discussion_r1399123100.

ACKs for top commit:
  hebasto:
    ACK e037c4fe0914d8fa9149ce7532c0d70f738e79e9.

Tree-SHA512: efc743ff92f9f99f3ac16514e98363ad395c6f956cd4be7e785b5c573685baf7fcd68c51d6a705ee8761fc676eb045b7e61676595be0eb0f70f34e99174cddc0
2024-09-26 22:38:53 -05:00
fanquake
1b88674815
Merge bitcoin/bitcoin#29287: depends: Do not override CFLAGS when building SQLite with DEBUG=1
5fb8f0f80fc41cc636da56864195244d8fd9116e depends: Do not override CFLAGS when building SQLite with DEBUG=1 (Hennadii Stepanov)
2b0dd88f1ce9084324dc54db578fade9c926fd71 depends: Ensure definitions are passed when building SQLite with DEBUG=1 (Hennadii Stepanov)

Pull request description:

  The `--enable-debug` configure option for the SQLite package does two things:
  ```autoconf
  #-----------------------------------------------------------------------
  #   --enable-debug
  #
  AC_ARG_ENABLE(debug, [AS_HELP_STRING(
    [--enable-debug], [build with debugging features enabled [default=no]])],
    [], [])
  AC_MSG_CHECKING([Build type])
  if test x"$enable_debug" = "xyes"; then
    BUILD_CFLAGS="$BUILD_CFLAGS -DSQLITE_DEBUG -DSQLITE_ENABLE_SELECTTRACE -DSQLITE_ENABLE_WHERETRACE"
    CFLAGS="-g -O0"
    AC_MSG_RESULT([debug])
  else
    AC_MSG_RESULT([release])
  fi
  #-----------------------------------------------------------------------
  ```

  It adds three preprocessor definitions and overrides `CFLAGS` with `"-g -O0"`. The latter breaks the user's ability to provide sanitizer and LTO flags.

  This PR might be especially useful for OSS-Fuzz where `DEBUG=1` has been used since https://github.com/google/oss-fuzz/pull/10503.

  Also it makes a workaround for building SQLite for 32-bit unneeded. For details, please refer to https://github.com/hebasto/oss-fuzz/tree/240120-sqlite.

  Changes in https://github.com/bitcoin/bitcoin/pull/29282 might not be strictly required now. However, I consider them an improvement.

ACKs for top commit:
  fanquake:
    ACK 5fb8f0f80fc41cc636da56864195244d8fd9116e - downstream is also green, so i'll fixup the PR there.

Tree-SHA512: 8593d8a0237ebb270d5da763fb65ed642ab8ed0d44e57704a34154621f49e3d5c58b462cc0070251fa1ba556c58a3c7d3620530d6839dc6dc9e0887010330eca
2024-09-26 22:37:07 -05:00
Andrew Chow
f50fb6e627
Merge bitcoin/bitcoin#26998: depends: ensure we are appending to sqlite cflags
56a03f1834a7437e3357923a1e45e512c9b2e6fc depends: ensure we are appending to sqlite cflags (fanquake)

Pull request description:

  Otherwise we'll just override other flags passed in (i.e msan).

  Should fix https://cirrus-ci.com/task/6598922274078720?logs=ci#L3661.

ACKs for top commit:
  achow101:
    ACK 56a03f1834a7437e3357923a1e45e512c9b2e6fc
  TheCharlatan:
    ACK 56a03f1834a7437e3357923a1e45e512c9b2e6fc

Tree-SHA512: 5890018cfc5deaef18b0f01a3a0396f803e97f9a9785bf6873ef48bc13b74b644315f0f29cf11d3522964a6396f74e1f080bb4e412bc302956a651fed28b27df
2024-09-26 22:37:04 -05:00
Andrew Chow
25a594f46e
Merge bitcoin/bitcoin#25987: build: compile depends sqlite with more recommended options
dee690257c7948510a0661e23c9e398a13e20659 build: pass --enable-debug to sqlite when DEBUG=1 (fanquake)
807b61fcca6d301286ae43d00f88d986a985ea38 build: use more recommended sqlite3 compile options (fanquake)

Pull request description:

  https://www.sqlite.org/compile.html

  [SQLITE_DQS](https://www.sqlite.org/compile.html#dqs)
  > This setting disables the double-quoted string literal misfeature.

  [SQLITE_DEFAULT_MEMSTATUS](https://www.sqlite.org/compile.html#default_memstatus)
  > This setting causes the sqlite3_status() interfaces that track
  > memory usage to be disabled.
  > This helps the sqlite3_malloc() routines run much faster, and since
  > SQLite uses sqlite3_malloc() internally, this helps to make the
  > entire library faster.

  [SQLITE_OMIT_DEPRECATED](https://www.sqlite.org/compile.html#omit_deprecated)
  > Omitting deprecated interfaces and features will not help SQLite
  > to run any faster.
  > It will reduce the library footprint, however. And it is the
  > right thing to do.

  [SQLITE_OMIT_SHARED_CACHE](https://www.sqlite.org/compile.html#omit_shared_cache)
  > Omitting the possibility of using shared cache allows many
  > conditionals in performance-critical sections of the code to be
  > eliminated. This can give a noticeable improvement in performance.

  Also: https://www.sqlite.org/sharedcache.html
  > Shared-cache mode is an obsolete feature.
  > The use of shared-cache mode is discouraged.
  > Most use cases for shared-cache are better served by WAL mode.
  > Applications that build their own copy of SQLite from source code
  > are encouraged to use the -DSQLITE_OMIT_SHARED_CACHE compile-time
  > option, as the resulting binary will be both smaller and faster.

  [SQLITE_OMIT_JSON](https://www.sqlite.org/compile.html#omit_json)
  > Starting with sqlite 3.38.0 the JSON extension became opt-out rather
  than opt-in, so we disable it here.

  --disable-rtree
  > An R-Tree is a special index that is designed for doing range queries.
  > R-Trees are most commonly used in geospatial systems...
  https://www.sqlite.org/rtree.html

  --disable-fts4 --disable-fts5
  > FTS5 is an SQLite virtual table module that provides full-text
  > search functionality to database applications.

  DSQLITE_LIKE_DOESNT_MATCH_BLOBS
  > simplifies the implementation of the LIKE optimization and allows
  > queries that use the LIKE optimization to run faster.

  DSQLITE_OMIT_DECLTYPE
  > By omitting the (seldom-needed) ability to return the declared type of
  > columns from the result set of query, prepared statements can be made
  > to consume less memory.

  DSQLITE_OMIT_PROGRESS_CALLBACK
  > By omitting this interface, a single conditional is removed from the
  > inner loop of the bytecode engine, helping SQL statements to run slightly
  > faster.

  DSQLITE_OMIT_AUTOINIT
  > with the SQLITE_OMIT_AUTOINIT option, the automatic initialization is omitted.
  > This helps many API calls to run a little faster
  > it also means that the application must call sqlite3_initialize()
  manually.

  On my Linux box this results in a `libsqlite3.a` that shrinks from ~1.7mb to ~1.3mb.
  On macOS, `libsqlite3.a` shrinks from ~2.2mb to ~1.3mb.

  Guix Build:
  ```bash
  04626ec7b64086103bfb5537397d7953d0699b31da1b1bc100003c7d30991fdf  guix-build-dee690257c79/output/aarch64-linux-gnu/SHA256SUMS.part
  a77c72052266788e890a0d3d89cc6eee9dd72db6a1b6fdc8aab882b35a315284  guix-build-dee690257c79/output/aarch64-linux-gnu/bitcoin-dee690257c79-aarch64-linux-gnu-debug.tar.gz
  86d782f185ee0fae8e8733ab8a511de2ca2500f02eb3d4aaa20d65b4434dcd77  guix-build-dee690257c79/output/aarch64-linux-gnu/bitcoin-dee690257c79-aarch64-linux-gnu.tar.gz
  d81874ecd378470b01a429f2a4be07fcb4824b56ace146226b77088cc3c41baa  guix-build-dee690257c79/output/arm-linux-gnueabihf/SHA256SUMS.part
  8f24076800e5a19ac9005af8c6e4987b32e0a857a83af84931958505228ef58d  guix-build-dee690257c79/output/arm-linux-gnueabihf/bitcoin-dee690257c79-arm-linux-gnueabihf-debug.tar.gz
  b913f2b0d8f0e32a176bc0e9330106cf1973afe6e8ee955f3eeb89918ab9d565  guix-build-dee690257c79/output/arm-linux-gnueabihf/bitcoin-dee690257c79-arm-linux-gnueabihf.tar.gz
  034b47d8a60a19391e0e18f6fcc8fb3a87be78a9707e3ac3e7ee45eb37687bb7  guix-build-dee690257c79/output/arm64-apple-darwin/SHA256SUMS.part
  9efc5c0ceac05f6efce03fcde0cbe8b79bae43fe0d98aecb817908e76f5c39b7  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin-unsigned.dmg
  a549cdcbd311d9b025971b13987290f6cd2b93e16c8389e8a7a2ccd3608326ed  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin-unsigned.tar.gz
  3dd9e26a41596151022aa4288d778dc335a2b38bd391e3f65c0575dd6eb47b54  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin.tar.gz
  a71685a3ff62fbf456fc1d3c0f78ab7ab1d5a4a094c1f43d3829730d65a3ec51  guix-build-dee690257c79/output/dist-archive/bitcoin-dee690257c79.tar.gz
  d5c74167b2260b7de72fdbac77eedacbbb929214e279e07f41c3236ea20116b6  guix-build-dee690257c79/output/powerpc64-linux-gnu/SHA256SUMS.part
  03c043daa971f70886805c9e4174acd600e5cda03ae0e827043c4df81a6a6426  guix-build-dee690257c79/output/powerpc64-linux-gnu/bitcoin-dee690257c79-powerpc64-linux-gnu-debug.tar.gz
  3884423f67d48f671a90169962f9568dcbd8df582cd269df29a4399dc9c70e99  guix-build-dee690257c79/output/powerpc64-linux-gnu/bitcoin-dee690257c79-powerpc64-linux-gnu.tar.gz
  cee2847d4feeadebfdf4d37110faafa250824c68cfefc3bfa289ae8b09599a20  guix-build-dee690257c79/output/powerpc64le-linux-gnu/SHA256SUMS.part
  ca9f1085184b50e7bd377b68a58afd42ac4055ffe214eede8c6ca7291e00b45a  guix-build-dee690257c79/output/powerpc64le-linux-gnu/bitcoin-dee690257c79-powerpc64le-linux-gnu-debug.tar.gz
  b9cadff5b30244f6cb4f277e1ac610841332cb0d732637fe438fd51c88adf5a4  guix-build-dee690257c79/output/powerpc64le-linux-gnu/bitcoin-dee690257c79-powerpc64le-linux-gnu.tar.gz
  db6e45d9fc8868e5cb25fa3d0789247db10a6bab2a6f3866a27d641ae00bd03b  guix-build-dee690257c79/output/riscv64-linux-gnu/SHA256SUMS.part
  751e90c0aefa249f175c0c1707dc5eee3637e2b9657a9ee1b2068479e9830ff0  guix-build-dee690257c79/output/riscv64-linux-gnu/bitcoin-dee690257c79-riscv64-linux-gnu-debug.tar.gz
  8dd87bb24f1fbdba67fb6b72ab5fc93532452eada8c2942463100b8ed8118ae3  guix-build-dee690257c79/output/riscv64-linux-gnu/bitcoin-dee690257c79-riscv64-linux-gnu.tar.gz
  b53fe650f431e394a5af6bd809401551e3c36e4f7d90c31f39f51c5fe236efaf  guix-build-dee690257c79/output/x86_64-apple-darwin/SHA256SUMS.part
  b35b4ae345a625e42b8315acd9b75bb651f60265f67ec6f7d78a41c8d21c635e  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin-unsigned.dmg
  6748e4c64ae069632624cbec20de7f03eca1a7578fcef96607f3e8cb0ac4106e  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin-unsigned.tar.gz
  6415cbecfa18002a1e4865b996268558b4f26121118fd73b0ef4ca44967f34c7  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin.tar.gz
  f0a8d8837e80e42b5d77c3efc9d746c11ffc9909aece16dcba0a10726e1be7e0  guix-build-dee690257c79/output/x86_64-linux-gnu/SHA256SUMS.part
  418f4607159387ee17657120beda1c741fa6060e4457b304b857aa6c33859e6a  guix-build-dee690257c79/output/x86_64-linux-gnu/bitcoin-dee690257c79-x86_64-linux-gnu-debug.tar.gz
  d384fe8f2d6515c256a371ad84ae76ac9727ffd49887c0e22bb5ada4cd890092  guix-build-dee690257c79/output/x86_64-linux-gnu/bitcoin-dee690257c79-x86_64-linux-gnu.tar.gz
  3f441eb2d68ddd530b32f56a16ff639b27dcc58b5ba395e40f4c2be805f6cd8b  guix-build-dee690257c79/output/x86_64-w64-mingw32/SHA256SUMS.part
  d3d22479adc554ced965c4bde79f4c919e6b216acfca598fac4ebfc3b0e2d39d  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-debug.zip
  89de153f5d839df6cd1266f8b3cb3ad455b2f6c43cee7644889da1e3efc7b2f1  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-setup-unsigned.exe
  ba30708b9551b3794e4d2726aff27775dd4f1b347ea71b3fe1b00e39e8b7a594  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-unsigned.tar.gz
  ab6a2b7a3e899fc58030a44b555e449d64aa69b5215d761bc550946b14f93515  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64.zip
  ```

ACKs for top commit:
  Sjors:
    tACK dee690257c7948510a0661e23c9e398a13e20659
  achow101:
    ACK dee690257c7948510a0661e23c9e398a13e20659
  hebasto:
    ACK dee690257c7948510a0661e23c9e398a13e20659, I have reviewed the code and it looks OK.

Tree-SHA512: e0605f049404905db94ea61473b2b68df008ceb86b9a09d8562ca3acc1f3a3be3893149fc62d189a6fbf24cfc76c393f2d1a1215292e9ae5dc4afc199e876821
2024-09-26 22:35:05 -05:00
fanquake
d725c5880d
Merge bitcoin/bitcoin#27312: depends: qrencode 4.1.1
eb1c3adf38cb71c3e6f298a61871738c4919b4a1 depends: qrencode 4.1.1 (fanquake)

Pull request description:

  Upgrade to the latest qrencode, and disable some warnings that cause compile failures with newer compilers (clang-15+).

  I haven't tested this (from a GUI perspective) at all. This is just "good enough" to keep things compiling, and uses some similar work-arounds as we have with other older packages, i.e bdb.

  Note that upstream, libqrencode is effectively unmaintained. No code changes for > 2 years. No responses to issues/PRs. Seems like the author has mostly dropped off of GitHub as well.

  This fixes part of #27299.

ACKs for top commit:
  TheCharlatan:
    Code review ACK eb1c3adf38cb71c3e6f298a61871738c4919b4a1

Tree-SHA512: 898eaac3e9915dfcdc0a011b736fff685a3b46990bd27f6038ef4d3e7cb6a276206438ea50d45908a051ce55c9b0779347d4be1d35271b67f76f409a7dc21fed
2024-09-26 22:34:13 -05:00
fanquake
482e5bbc49
Merge bitcoin/bitcoin#27462: depends: fix compiling bdb with clang-16 on aarch64
f8b8458276983f8fc1e2a47c4d00c1e30633067d depends: fix compiling bdb with clang-16 on aarch64 (fanquake)

Pull request description:

  Compiling bdb with clang-16 on aarch64 (hardware) currently fails:
  ```bash
  make -C depends/ bdb CC=clang CXX=clang++
  ...
  checking for mutexes... UNIX/fcntl
  configure: WARNING: NO SHARED LATCH IMPLEMENTATION FOUND FOR THIS PLATFORM.
  configure: error: Unable to find a mutex implementation
  ```

  Looking at config.log we've got:
  ```bash
  configure:18704: checking for mutexes
  configure:18815: clang -o conftest -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security    -I/bitcoin/depends/aarch64-unknown-linux-gnu/include -D_GNU_SOURCE -D_REENTRANT   -L/bitcoin/depends/aarch64-unknown-linux-gnu/lib conftest.c  -lpthread >&5
  conftest.c:45:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
  main() {
  ^
  int
  conftest.c:50:2: warning: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          exit (
          ^
  conftest.c:50:2: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
  1 warning and 1 error generated.
  ```

  Clang-16 changed `-Wimplicit-function-declaration` and `-Wimplicit-int`
  warnings into errors, see:
  https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html#potentially-breaking-changes.

  > The -Wimplicit-function-declaration and -Wimplicit-int warnings now
  > default to an error in C99, C11, and C17. As of C2x, support for implicit
  > function declarations and implicit int has been removed, and the
  > warning options will have no effect. Specifying -Wimplicit-int in
  > C89 mode will now issue warnings instead of being a noop.

ACKs for top commit:
  hebasto:
    ACK f8b8458276983f8fc1e2a47c4d00c1e30633067d, tested on Ubuntu Lunar (`aarch64`) with:

Tree-SHA512: 5ca078b1c00915446e9f0f2ecaa4342295a2097996554345753315d1c81c23000c57be14e1ac5506a87820f5114aba748456f2c2b6426b0810504d62d761a787
2024-09-26 22:33:26 -05:00
merge-script
f0a53c99e9
Merge bitcoin/bitcoin#26994: depends: define __BSD_VISIBLE for FreeBSD bdb build
0e02f725482dd30b9f03903074a481af1164411d depends: define `__BSD_VISIBLE` for FreeBSD bdb build (fanquake)

Pull request description:

  Required for additional definitions (`IPC_R` & friends), to be available, when compiling under C11, which would otherwise cause compile fails.

  See: https://github.com/MarcoFalke/btc_nightly/pull/4.

ACKs for top commit:
  hebasto:
    ACK 0e02f725482dd30b9f03903074a481af1164411d, tested on FreeBSD 13.1:

Tree-SHA512: 885d4aa341d9668da360cf6dfafb97ce816803c54e76c0a06e448db39a723666d42cd14b3e713d17ecbe33163f5af69924567cf449d679a2db95b36357005d43
2024-09-26 22:32:03 -05:00
fanquake
b1ac9926e7
Merge bitcoin/bitcoin#26073: build: fix depends bdb compilation for BSDs
5b2529b2697e9b2675783c98a32a41e28c72e076 build: fix depends bdb compilation for BSDs (fanquake)

Pull request description:

  Currently, building bdb for *BSD HOSTs in depends fails with:
  ```bash
  libtool: compile:  clang -m64 -c -I. -I../dist/./.. -I/home/ubuntu/bitcoin/depends/x86_64-unknown-freebsd/include -D_THREAD_SAFE -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security ../dist/./../mutex/mut_tas.c  -fPIC -DPIC -o mut_tas.o
  In file included from ../dist/./../mutex/mut_tas.c:11:
  In file included from ./db_int.h:884:
  In file included from ../dist/./../dbinc/mutex.h:15:
  ../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
          MUTEX_FIELDS                    /* Opaque thread mutex structures. */
          ^
  ../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                  pthread_rwlock_t rwlock;        /* Read/write lock */   \
                  ^
  1 error generated.
  ```

  Defining `_XOPEN_SOURCE` >=600 fixes access to the missing `pthread_rwlock_t` definitions.

ACKs for top commit:
  jarolrod:
    ACK 5b2529b2697e9b2675783c98a32a41e28c72e076

Tree-SHA512: 76584bfef7a86c69a095eb722657aa681b95658a031ef2da79d91a616e5370da292a65e7d67cdf641711791422b8a407b647b630ad497ffb9908683479e6cfb6
2024-09-26 22:31:03 -05:00
fanquake
45e0f6e56d
Merge bitcoin/bitcoin#25763: bdb: disable Werror for format-security
b46c6ec52e1501b8c4337cead0301ef2c3777dd6 bdb: disable Werror for format-security (fanquake)

Pull request description:

  This is causing build failures in some build environments, like NixOS.
  I don't think we are going to patch bdb at this point, and this warning
  has existed for as long as we've used bdb.

  Fixes #25211.

  Tested (in Docker) with:
  ```bash
  docker run -it nixos/nix
  nix-shell -p gitMinimal gcc12 libtool pkg-config curl gnumake patch autoconf automake
  git clone https://github.com/bitcoin/bitcoin
  make -C bitcoin/depends bdb
  ```

  Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

  Guix Build (x86_64):
  ```bash
  25981417fe09fa9e6f7b30875dac709a1de1146d77ec3c04bbf18eace16932b7  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/SHA256SUMS.part
  9edc248dad9508ff7ec1ddc121caa606a2da27f5b36f664cb54b17bcdcfa407e  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu-debug.tar.gz
  e3bac816e7b1ef69927a818e6d882af0bf2dae69930181d4a144bfe309078391  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu.tar.gz
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  d2b13313b5e638d54c77026c8e383c93e32c677fe9b48c457b16d872bf034219  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  21dc8ac4f0a1535c9459e9be43d65151e4affd7cdd0a65d2e95f6f8fb0960a71  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  2dfb444497b71a546e56e0dbc1dc560860006489edfe0cf2e418378ac36c5780  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  22ebb15f5bec1f5d610dc4706ebbb0977ed013209d73077a3c601e27db6bc37c  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  f699f38a59bc888d5b728c934d1bf2a30dc46e6e0dfe4f6109c90c1e557b6334  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  e60d6ea30c18bfc948e146f6e8a6d9d53c84500c2117472999bc60e1bfa2dc4a  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  8f5693a12671ea789e885b40dfeefdf076dd6f9856bfa867f33b7e1005779dd4  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  a56b01ad6bf161f4cd7e3f89faea5b464460093131400df8f89c3b78839a72a9  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

ACKs for top commit:
  ryanofsky:
    Code review ACK b46c6ec52e1501b8c4337cead0301ef2c3777dd6. Thanks for addressing build issue. Probably there is no real security issue, but could look into that
  jarolrod:
    Code Review ACK b46c6ec52e1501b8c4337cead0301ef2c3777dd6

Tree-SHA512: 4b6b98e225e9b98fe1426a6402dae28e30327c932268d9bec31bf84aee12ec609ce97bd89a592a1f2cfd4d031ba520130bfef95006f7e09c0692af233f9614bb
2024-09-26 22:30:03 -05:00
pasta
750475ffaa
Merge #6285: backport: bitcoin-core/gui#29, gui#123, #164, gui#256, gui#309, gui#313, gui#329, gui#331, gui#333, gui#346, gui#393
6431f71b3a Merge bitcoin-core/gui#393: Fix regression in "Encrypt Wallet" menu item (Hennadii Stepanov)
fc900a8aea Merge bitcoin-core/gui#333: refactor: Signal-slot connections cleanup (Hennadii Stepanov)
9ca2aad0b3 Merge bitcoin-core/gui#164: Handle peer addition/removal in a right way (Hennadii Stepanov)
7d9ce32562 Merge bitcoin-core/gui#29: refactor: Optimize signal-slot connections logic (Hennadii Stepanov)
3be79a9ed9 Merge bitcoin-core/gui#256: Save/restore column sizes of the tables in the Peers tab (Hennadii Stepanov)
f4fccd31cb Merge bitcoin-core/gui#329: Make console buttons look clickable (Hennadii Stepanov)
5a0d524506 Merge bitcoin-core/gui#123: rpc: Do not accept command while executing another one (Hennadii Stepanov)
19310646e0 Merge bitcoin-core/gui#331: Make RPC console welcome message translation-friendly (Hennadii Stepanov)
69a1305978 Merge bitcoin-core/gui#309: Add access to the Peers tab from the network icon (Hennadii Stepanov)
c858325d40 Merge bitcoin-core/gui#346: English translations update (Hennadii Stepanov)
412445afb5 Merge bitcoin-core/gui#313: qt: Optimize string concatenation by default (W. J. van der Laan)

Pull request description:

  ## Issue being fixed or feature implemented
  Gui related backports from bitcoin v22

  ## What was done?
  See commits

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

  See also:

  <img alt="right menu" src="https://user-images.githubusercontent.com/32963518/116794314-d64b9b80-aad4-11eb-89ca-7f75c7442ba8.gif"/>

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] 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

ACKs for top commit:
  UdjinM6:
    light ACK 6431f71b3a
  PastaPastaPasta:
    utACK 6431f71b3a

Tree-SHA512: bb14de71c9375b10da695db6c521c26686815b8b5ca2748bfe3bd2eafa9d332acd60acd85a1f2eed3aa831d16e5741ecc7570130ce9cf5bff011c065b55d62b2
2024-09-26 20:20:13 -05:00
pasta
9b21aef29e
Merge #6269: feat: improvements for v19, v20 and dip3 - fire up test chains by first block 5/n
603061141f style: apply clang format for new changes (Konstantin Akimov)
f01338f607 feat: drop requirement of v20 for Asset Unlock transactions (Konstantin Akimov)
b3e9e5c981 feat: drop v20 requirement for special EHF transaction (Konstantin Akimov)
8639298e16 refactor: drop fast_dip3_enforcement=True from functional tests. (Konstantin Akimov)
0add6bc823 feat: removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests (Konstantin Akimov)
3fffb0cab9 refactor: moves evo-deterministicmns_tests specific code from header (Konstantin Akimov)
1d96fbf091 feat: let asset-unlock transactions be available since v20 on all networks (Konstantin Akimov)
4b4001bbe7 perf: activate v20 on the same block as v19 for Reg Test (Konstantin Akimov)
e0d97cf7ac feat: let asset locks be mined before v20 (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  This PR is 5th in the achieving ultimate goal to activate old forks from block 1.
  It helps to run unit and functional tests faster; it helps for platform's dev-environment to start faster.

  ## What was done?
   - v20 on RegTest is activated from same block as v19 (height 1200 changed to 900)
   - relaxed condition for special transactions Asset Lock (can be mined any block so far as v20 is activated long time ago).
   - unify code for regtest, mainnet, testnet for Asset Unlock validation
   - removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests which make further changes for forks easier
   - enforced flag `fast_dip3_enforcement=True` from functional tests which is always true

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

  `tsan` job runs  500 seconds faster of real time and 2000seconds faster for "accumulated time"
  https://gitlab.com/dashpay/dash/-/jobs/7817453421 - this PR
  https://gitlab.com/dashpay/dash/-/jobs/7805625816 - some old PR for reference

  No breakdown per tests here, because they affect each other and runs in parallel.

  ## Breaking Changes
  Regtest has v20 activated on same block as v19 if otherwise is not specified with `-testactivationheight=v20@1200`

  ## 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:
    utACK 603061141f
  PastaPastaPasta:
    utACK 603061141f

Tree-SHA512: 5a1e15a32931682240ecd8e5bab8a0bba67eebf0409ea7b7556018240c48d59ec8daab8859a2fb883154aac95813553c2835a0527269fcf4e81f1edb1b2ed0ac
2024-09-26 20:12:40 -05:00
pasta
d8da09401d
Merge #6247: feat: drop deprecated protx *_hpmn RPC entry points in favor of protx *_evo
6f0b546fc2 feat: drop deprecated protx_*_hpmn RPC entry points in favor of protx_*_evo (Konstantin Akimov)

Pull request description:

  ## What was done?

  Drop deprecated protx *_hpmn RPC entry points in favor of protx *_evo

  Full list of removed composite RPC:

    - protx register_fund_hpmn
    - protx register_hpmn
    - protx register_prepare_hpmn
    - protx update_service_hpmn

  ## How Has This Been Tested?
  **platform still uses it, need to replace `_hpmn` suffixes to `_evo` and remove -deprecated_hpmn from dash.conf**

  shumkov please be notified that mentioned RPC are going to be removed in Dash Core v22 as deprecated, this PR requires your approval

  ## Breaking Changes
  Removed RPC:
    - protx register_fund_hpmn
    - protx register_hpmn
    - protx register_prepare_hpmn
    - protx update_service_hpmn

  ## Checklist:
  - [x] 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

ACKs for top commit:
  UdjinM6:
    utACK 6f0b546fc2
  PastaPastaPasta:
    utACK 6f0b546fc2

Tree-SHA512: 6667c34da5e9879b0d0bc326f6e42de4ee886c3b3e61fe4e76e80e3dbd16a8e27aa98435465ba9e41d5097557d2f924948031b0fe5099121b742106d45869426
2024-09-26 17:38:51 -05:00
Kittywhiskers Van Gogh
40f2ab906c
test: don't attempt to reconnect already connected nodes 2024-09-26 20:43:23 +00:00
Kittywhiskers Van Gogh
4a0fc8b69e
test: don't attempt to (dis)connect nodes to/from themselves 2024-09-26 20:43:22 +00:00
Konstantin Akimov
c200175ebf
Merge #6250: backport: Merge bitcoin#22217, 23025, 22362
bd67f80634 Merge bitcoin/bitcoin#22362: Drop only invalid entries when reading banlist.json (W. J. van der Laan)
8b3a486702 Merge bitcoin/bitcoin#23025: bench: update nanobench add `-min_time` (W. J. van der Laan)
d7a20b3ee6 Merge bitcoin/bitcoin#22217: refactor: Avoid wallet code writing node settings file (Samuel Dobson)

Pull request description:

  btc backport

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

Tree-SHA512: c487760c7b4946c21103978625076dd276344c831e99452031fae9b5c6cf954a1a0d3109725ab10f3d6837a5fd1833886a7e28c88b28429c6638c82f06f54f3d
2024-09-27 00:32:20 +07:00
Konstantin Akimov
67b5d86d8c
Merge #6287: test: fixes and improvements for feature_llmq_simplepose.py
a656d2f14f feat: more logging (UdjinM6)
cedd3d52be refactor: make expected_connections optional (UdjinM6)
fd2fbe06a3 fix: check mn state after each mined quorum (UdjinM6)
cce87a662a fix: should have at least 2 connections when testing isolate_mn (UdjinM6)
793f4b739f fix: connect repaired mns only (UdjinM6)
8597acd0dc fix: remember mns that don't listen and avoid them (UdjinM6)
2069625759 fix: calculate expected_complaints correctly (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  Fix some general mistakes and also `connect_nodes` related issues discovered while debugging #6276. Add some logging to make debugging a bit easier.

  ~NOTE: builds on top of #6278 to avoid conflicts, will rebase~ done

  ## What was done?
  pls see individual commits

  ## How Has This Been Tested?
  run tests

  ## Breaking Changes
  n/a

  ## 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:
  kwvg:
    LGTM, ACK a656d2f14f
  knst:
    ACK a656d2f14f
  PastaPastaPasta:
    utACK a656d2f14f

Tree-SHA512: 30f657218ce0338f9a5a09d9a839cca9c4605740265d2182a1e143ec6ece739fecf748f7b60ccec065c17d9f6d893c0c47893be05c44bb8d34624fb4bf3c2a58
2024-09-27 00:00:10 +07:00
Konstantin Akimov
603061141f
style: apply clang format for new changes 2024-09-26 14:17:06 +07:00
Konstantin Akimov
f01338f607
feat: drop requirement of v20 for Asset Unlock transactions
This fork already happened and no versioning is required
2024-09-26 14:17:06 +07:00
Konstantin Akimov
b3e9e5c981
feat: drop v20 requirement for special EHF transaction
It is not a breaking changes, because this fork is already happened in past
and no EHF transaction is in blockchain at that moment which requires versioning
2024-09-26 14:17:06 +07:00
Konstantin Akimov
8639298e16
refactor: drop fast_dip3_enforcement=True from functional tests.
It also change dip3params default from 30:50 to 2:2
De facto, that always equals True, so, there's no meaning to have it
2024-09-26 14:17:05 +07:00
Konstantin Akimov
0add6bc823
feat: removed 2 checkpoints: TestChainDIP3Setup and TestChainV19Setup from unit tests
It takes time to update each checkpoint if any forks changes in unit tests: new height,
new bit, and extra params. Reduced scope of changes for future updates
2024-09-26 14:16:38 +07:00
Konstantin Akimov
3fffb0cab9
refactor: moves evo-deterministicmns_tests specific code from header 2024-09-26 14:16:38 +07:00
Konstantin Akimov
1d96fbf091
feat: let asset-unlock transactions be available since v20 on all networks
It simplify implementation and unify RegTest, Mainnet and Testnet
No asset-unlock transaction has actually be mined yet, but v20 and mn_rr are activated long time ago.
So, this changes are not breaking changes
2024-09-26 14:16:38 +07:00
Konstantin Akimov
4b4001bbe7
perf: activate v20 on the same block as v19 for Reg Test 2024-09-26 14:16:38 +07:00
Konstantin Akimov
e0d97cf7ac
feat: let asset locks be mined before v20
V20 is activated long time on mainnet and testnet, so, it doesn't matter anymore
2024-09-26 14:16:38 +07:00
Konstantin Akimov
6f0b546fc2
feat: drop deprecated protx_*_hpmn RPC entry points in favor of protx_*_evo
Full list of removed composite RPC:
  protx register_fund_hpmn
  protx register_hpmn
  protx register_prepare_hpmn
  protx update_service_hpmn
2024-09-26 14:06:08 +07:00
Konstantin Akimov
e2c66ae3e9
chore: deprecate a setting platform-user in favour of whitelist 2024-09-26 14:01:44 +07:00
Hennadii Stepanov
6431f71b3a
Merge bitcoin-core/gui#393: Fix regression in "Encrypt Wallet" menu item
d54d94959869b0c363939163b99ba0475751dcb6 qt: Fix regression in "Encrypt Wallet" menu item (Hennadii Stepanov)

Pull request description:

  Fix #392.

  Adding a new item to the `m_wallet_selector` must follow the establishment of a connection between the `WalletView::encryptionStatusChanged` signal and the `BitcoinGUI::updateWalletStatus` slot.

  This was a regression introduced in 20e2e24e90 (#29).

  ---

  An _encrypted_ wallet being auto-loaded at the GUI startup:
  - on master (eaf09bda4ab21f79f89822d2c6fa3d7a3ce57b0d)

  ![Screenshot from 2021-08-03 22-38-49](https://user-images.githubusercontent.com/32963518/128075837-cdbb2047-5327-43ea-b2d5-2dcdef67cdc0.png)

  - with this PR

  ![Screenshot from 2021-08-03 22-34-58](https://user-images.githubusercontent.com/32963518/128075572-cb727652-ad44-4b85-bf64-edcd19f9dea1.png)

ACKs for top commit:
  achow101:
    ACK d54d94959869b0c363939163b99ba0475751dcb6
  jarolrod:
    ACK d54d94959869b0c363939163b99ba0475751dcb6

Tree-SHA512: 669615ec8e1517c2f4cdf59bd11a7c85be793ba0dda112361cf95e6c2f0636215fed331d26a86dc9b779a49defae1b248232f98dab449584376c111c288e87bb
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
fc900a8aea
Merge bitcoin-core/gui#333: refactor: Signal-slot connections cleanup
f507681baa406046c9c3d44be39e99124a2d6e5f qt: Connect WalletView signal to BitcoinGUI slot directly (Hennadii Stepanov)
bd50ff9290ea9ec8b482db11314a6fd658373f23 qt: Drop redundant OverviewPage::handleOutOfSyncWarningClicks slot (Hennadii Stepanov)
793f19599b6d9009c2fb11e4c07e0872ff00defe qt: Drop redundant WalletView::requestedSyncWarningInfo slot (Hennadii Stepanov)

Pull request description:

  This PR:
  - removes slots whose only job is to emit a signal, since we can use the signal as a slot
  - connects the`WalletView::outOfSyncWarningClicked` signal to the `BitcoinGUI::showModalOverlay` slot directly, and removes intermediate `WalletFrame` slot and signal
  - split from #29

  This PR does not change behavior.

ACKs for top commit:
  Talkless:
    tACK f507681baa406046c9c3d44be39e99124a2d6e5f, tested on Debian Sid with Qt 5.15.2, no any behavioral changes noticed.
  promag:
    Code review ACK f507681baa406046c9c3d44be39e99124a2d6e5f.

Tree-SHA512: cd636a7e61881b2cbee84d5425d2107a8e39683b8eb32d79dc9ea942db55d5c1979be2f70da1660eaee5de622d10ed5a92f11fc2351de21b84324b10b23d0c96
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
9ca2aad0b3
Merge bitcoin-core/gui#164: Handle peer addition/removal in a right way
ecbd91153875c8cdd5b92b840afc116f65e457fb qt: Handle peer addition/removal in a right way (Hennadii Stepanov)
1b66f6e556631a1a2d89aefba70a79894bd14fcd qt: Drop PeerTablePriv class (Hennadii Stepanov)
efb7e5aa962d4a4047061996bbb50b6da4592cbc qt, refactor: Use default arguments for overridden functions (Hennadii Stepanov)

Pull request description:

  This PR makes `PeerTableModel` handle a peer addition/removal in a right way. See:
  - https://doc.qt.io/qt-5/model-view-programming.html#inserting-and-removing-rows
  - https://doc.qt.io/qt-5/model-view-programming.html#resizable-models

  Fixes #160.

  Fixes #191.

ACKs for top commit:
  jarolrod:
    re-ACK ecbd911
  promag:
    reACK ecbd91153875c8cdd5b92b840afc116f65e457fb just improvements to the comment since last review.

Tree-SHA512: 074935d67f78561724218e8b33822e2de16749f873c29054926b720ffcd642f08249a222b563983cf65a9b716290aa14e2372c47fc04e5f401f759db25ca710f
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
7d9ce32562
Merge bitcoin-core/gui#29: refactor: Optimize signal-slot connections logic
62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce qt: Drop BitcoinGUI* WalletFrame data member (Hennadii Stepanov)
f73e5c972ab096e0f80cb9e753fa221d17313358 qt: Move CreateWalletActivity connection from WalletFrame to BitcoinGUI (Hennadii Stepanov)
20e2e24e90d782219e853ef0676ac66dc6a9de6a qt: Move WalletView connections from WalletFrame to BitcoinGUI (Hennadii Stepanov)

Pull request description:

  This PR:
  - implements an idea from https://github.com/bitcoin/bitcoin/pull/17937#issuecomment-575991765
  - simplifies `WalletFrame` class interface
  - as a side effect, removes `bitcoingui` -> `walletframe` -> `bitcoingui` circular dependency
  - is an alternative to https://github.com/bitcoin/bitcoin/pull/17500

ACKs for top commit:
  promag:
    Tested ACK 62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce on macos 11.2.3 with depends build.
  jarolrod:
    ACK 62cb8d98d27e7f316f01f177f35ad0ed6f8cd9ce

Tree-SHA512: 633b526a8499ba9ab4b16928daf4de4f6d610284bb9fa51891cad35300a03bde740df3466a71b46e87a62121330fcc9e606eac7666ea5e45fa6d5785b60dcbbd
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
3be79a9ed9
Merge bitcoin-core/gui#256: Save/restore column sizes of the tables in the Peers tab
fb1b1e0f3eae32b087347889ed7502b7f2c48549 qt: Save/restore column sizes of the tables in the Peers tab (Hennadii Stepanov)

Pull request description:

ACKs for top commit:
  jonatack:
    ACK fb1b1e0f3eae32b087347889ed7502b7f2c48549 code review, debug-built and tested
  jarolrod:
    ACK fb1b1e0f3eae32b087347889ed7502b7f2c48549

Tree-SHA512: f93495ecd13e4202aba61b407fffbeec855f5b0c1cc027197c78edddd7d11c87ebdb0fcb1daac242f0407323b31f4e7e0313bd76113a5241e4c868a8829af20a
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
f4fccd31cb
Merge bitcoin-core/gui#329: Make console buttons look clickable
8b419b5163d41c0caef7b9fa6d3008b73917e8ee qt: make console buttons look clickable (Jarol Rodriguez)

Pull request description:

  On master, for macOS, the console buttons' hitboxes are quite small. This makes clicking on the button with your mouse a little more tedious than it should be. The Issue is related to recent versions of Qt (>5.9.8) not playing so nice on macOS when there are "incorrect" `width` and `height` values set for a `QPushButton` (here is another example: https://github.com/bitcoin-core/gui/pull/319#pullrequestreview-652907740).

  This fixes this small hitbox issue by converting the buttons from `QPushButton` to `QToolButton`, which in turn makes the buttons look explicitly clickable. This approach was chosen as it helps us avoid having to play around with `width` and `height` values until we find values that play nice with macOS and look good on Linux & Windows. Also, `QToolButton` is an appropriate class for these buttons.

  Per [Qt Docs](https://doc.qt.io/qt-5/qtoolbutton.html#details):
  > A tool button is a special button that provides quick-access to specific commands or options. As opposed to a normal command button, a tool button usually doesn't show a text label, but shows an icon instead.

  Since we are changing the type of the buttons, we need to change the respective actions connection logic in `rpcconsole`. Instead of plugging in `QToolButton`, we abstract it to the base class: `QAbstractButton`.

  per [Qt Dev Notes](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Developer-Notes-for-Qt-Code#inherited-signals-and-slot)
  > Use base class functions as this makes the code more general, e.g., use QAbstractButton::clicked instead of QPushButton::clicked.

  While here, we also update the size of the icons to `22x22` to be consistent with other tool buttons.

  **macOS: Master vs PR:**

  | Master        | PR               |
  | ----------- | ----------- |
  | ![master-ss-macos](https://user-images.githubusercontent.com/23396902/118339460-e9079c80-b4e6-11eb-864b-d394aca5df61.png) | ![pr-ss-macos](https://user-images.githubusercontent.com/23396902/118339468-ec9b2380-b4e6-11eb-9a9e-30620216750e.png) |

  **Linux: Master vs PR:**

  | Master        | PR               |
  | ----------- | ----------- |
  | ![master-ss-linux](https://user-images.githubusercontent.com/23396902/118339520-13595a00-b4e7-11eb-86d0-96dd1264c198.png) | ![pr-ss-linux](https://user-images.githubusercontent.com/23396902/118339533-1c4a2b80-b4e7-11eb-8d7f-f733d999c8fd.png) |

ACKs for top commit:
  hebasto:
    ACK 8b419b5163d41c0caef7b9fa6d3008b73917e8ee, tested on Linux Mint 20.1 (Qt 5.12.8).
  promag:
    Tested ACK 8b419b5163d41c0caef7b9fa6d3008b73917e8ee on macOS Big Sur M1, this drops only relevant usages to `flat` buttons.

Tree-SHA512: 3f3cdcbe83398136a1d1ee8fc2835be8681f2ed39e79db1e939cab6a00a779f528343d54992807a845cc84d9ef13591affb7a6dbca9e5753a2b8665b0af4d611
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
5a0d524506
Merge bitcoin-core/gui#123: rpc: Do not accept command while executing another one
38eb37c0bd29b4cb825de905e8eec87636a5221b qt, rpc: Do not accept command while executing another one (Hennadii Stepanov)
0c32b9c5273a4933bda90aa9eb9b7eace6dcaa14 qt, rpc: Accept stop RPC even another command is executing (Hennadii Stepanov)
ccf790287c53edbc7b18983e07f520823436c003 qt, rpc, refactor: Return early in RPCConsole::on_lineEdit_returnPressed (Hennadii Stepanov)
5b9c8c9cdd8e12d2e477840df9d6ab809a613c12 qt, rpc: Add "Executing…" message (Hennadii Stepanov)

Pull request description:

  On master (3f512f3d563954547061ee743648b57a900cbe04) it is possible to enter another command while the current command is still being executed. That makes a mess in the output.

  With this PR:
  ![Screenshot from 2020-10-29 20-48-55](https://user-images.githubusercontent.com/32963518/97619690-329c0880-1a29-11eb-9f5b-6ae3c02c13b2.png)

  Some previous context: https://github.com/bitcoin-core/gui/pull/59#issuecomment-715275185

  ---

  It is still possible to enter and execute the `stop` command any time.

ACKs for top commit:
  jarolrod:
    ACK  38eb37c
  promag:
    Tested ACK 38eb37c0bd29b4cb825de905e8eec87636a5221b.

Tree-SHA512: 2b37a4b6838bf586b1b5c878192106721f713caeb6252514a6540356aab898986396e0777e73891d331b1be797a4926c20d3f9f38ba2c984ea90d55b0c34f664
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
19310646e0
Merge bitcoin-core/gui#331: Make RPC console welcome message translation-friendly
0f3d955a38fe59a4e8cc4bf9f4442e6e1fd8bcbb qt: Make RPC console welcome message translation-friendly (Hennadii Stepanov)

Pull request description:

  The best practice is do not split a translatable multi-line message into single lines. This helps translators to follow the context.

ACKs for top commit:
  jarolrod:
    re-ACK 0f3d955a38fe59a4e8cc4bf9f4442e6e1fd8bcbb

Tree-SHA512: 30911ff3a972a7787804bb8b27d0b77bfff15939bb478c199261866bfb55d9acd12ab4d44b8b9fc1d4898222cabc4007cc897f9b65728924d121f31e914c44ac
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
69a1305978
Merge bitcoin-core/gui#309: Add access to the Peers tab from the network icon
d29ea72393ac1d9b32a6976062e9c9fb75876295 gui: Add access to the Peers tab from the network icon (Hennadii Stepanov)

Pull request description:

  This PR add a small context menu to the network activity icon that provides an access to the Peers tab:

  ![gui-network-icon](https://user-images.githubusercontent.com/32963518/116794314-d64b9b80-aad4-11eb-89ca-7f75c7442ba8.gif)

  Closes #93.

ACKs for top commit:
  Sjors:
    re-ACK d29ea72393ac1d9b32a6976062e9c9fb75876295
  kristapsk:
    re-ACK d29ea72393ac1d9b32a6976062e9c9fb75876295
  promag:
    Code review ACK d29ea72393ac1d9b32a6976062e9c9fb75876295.

Tree-SHA512: dd871415fe514a19c6a22100d58f31954d9e55b80585d5a3f26e17a8d51dadf912441786fc0d23beabd812f1b501658fec1dbe345cd41beae5832a8eda890f77
2024-09-26 12:55:50 +07:00
Hennadii Stepanov
c858325d40
Merge bitcoin-core/gui#346: English translations update
df4c81fda490e556775f6006f3d4f7d54f61073b English translations update (Hennadii Stepanov)
bfb53ddda9a31bbeb8697e65ff9987e61dac136f scripted-diff: Fix ellipsis after pr20773 (Hennadii Stepanov)

Pull request description:

  Update for Transifex.

  After changing translator comments in #332 this update will show if Transifex triggers strings to be re-translated.

ACKs for top commit:
  laanwj:
    ACK df4c81fda490e556775f6006f3d4f7d54f61073b
  jarolrod:
    ACK df4c81fda490e556775f6006f3d4f7d54f61073b

Tree-SHA512: 1e54812bc04db6ae39e0b4d735b220ed8730a9941b17a0a2d09e21bcdd08e829adba86c35cf43c9be5e492ccb13e53a90149fcd7d6c0f5fdd022b978a1ff785c
2024-09-26 12:55:38 +07:00
pasta
85764c4b73
Merge #6286: feat(rpc): introduce and use setmnthreadactive (regtest-only)
1e17b74207 test: no longer connect nodes in parallel in `start_masternodes` (UdjinM6)
be72ef5592 test: use `setmnthreadactive` to get controlable `connect_nodes` behaviour (UdjinM6)
e2ed82a7ae feat(rpc): introduce `setmnthreadactive` (regtest-only) (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  This adds a new rpc command to enable/disable automatic masternode connections creation. We need this for #6276. 1e17b74207 is extracted from ede1833ba4 to avoid multiple jobs calling `setmnthreadactive` on the same node in parallel.

  ## What was done?
  Add `setmnthreadactive` rpc and use it

  ## How Has This Been Tested?
  run tests

  ## Breaking Changes
  n/a

  ## Checklist:
  - [x] 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

ACKs for top commit:
  kwvg:
    LGTM, ACK 1e17b74207
  PastaPastaPasta:
    utACK 1e17b74207

Tree-SHA512: 83c1c07d0066e26202fd21942a09e41c3560c4d32229b44390946c4acb22319b32aa61a13b9106d20fc8cc197dd2a8ab5fdfcfdeaf3da76af062fc0fd7646972
2024-09-25 18:27:41 -05:00
pasta
4e72902474
Merge #6245: backport: bitcoin#18275, #20220, #20305, #20410, #20426, #20573, #21083, #21201, #21786, #21787 (fee backports)
d6946aaba1 fix: offset fee for 1 duff in commission in wallet_basic.py due to missing bitcoin/bitcoin#22949 (Konstantin Akimov)
3ba99b9c42 Merge bitcoin/bitcoin#21786: wallet: ensure sat/vB feerates are in range (mantissa of 3) (MarcoFalke)
22435f1898 Merge bitcoin/bitcoin#21787: test: fix off-by-ones in rpc_fundrawtransaction assertions (W. J. van der Laan)
ccac35c89c Merge #21083: wallet: Avoid requesting fee rates multiple times during coin selection (Samuel Dobson)
9e9975f83b Merge #21201: rpc: Disallow sendtoaddress and sendmany when private keys disabled (Samuel Dobson)
5ad8a489a5 Merge #20573: wallet, bugfix: allow send with string fee_rate amounts (MarcoFalke)
db4a2169bb Merge #20410: wallet: Do not treat default constructed types as None-type (MarcoFalke)
01e41aa1fb Merge #20426: wallet: allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes (MarcoFalke)
f436c20bc4 Merge #20305: wallet: introduce fee_rate sat/vB param/option (MarcoFalke)
0fa19226cb Merge #20220: wallet, rpc: explicit fee rate follow-ups/fixes for 0.21 (Samuel Dobson)
d530b73016 Merge #18275: wallet: error if an explicit fee rate was given but the needed fee rate differed (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Just regular backports from bitcoin v0.21, v22; mostly wallet+fee related

  ## What was done?
   - bitcoin/bitcoin#18275
   - bitcoin/bitcoin#20220
   - bitcoin/bitcoin#20305
   - bitcoin/bitcoin#20426
   - bitcoin/bitcoin#20410
   - bitcoin/bitcoin#20573
   - bitcoin/bitcoin#21201
   - bitcoin/bitcoin#21083
   - bitcoin/bitcoin#21787

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

  ## Breaking Changes
  Some wallet rpc (sendtoaddress, sendmany, send) have a new argument `fee_rate` which is inserted before `verbose`.
  Release notes will be provided in a new PR once scope of backports and fixes in this PR is finalized by merging it to develop/

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] 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

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

Tree-SHA512: 8826e1453fe84e3d21f789fab62c23ea13299ce13a7bf1132f70831c3255e823437b6ddd63f69a8e8a0dae95a2638a4454d727e91177b53a5d331872528b92e8
2024-09-25 12:23:55 -05:00
W. J. van der Laan
8f06ac9dfa
Merge bitcoin/bitcoin#22172: doc: update tor.md, release notes with removal of tor v2 support
2ad034a89095bc1b148bdeeacfa5b75ec23b8a21 doc: update release notes with removal of tor v2 support (Jon Atack)
49938eee9c338cd96e357a0dd51dcce934ceb212 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 2ad034a89095bc1b148bdeeacfa5b75ec23b8a21

Tree-SHA512: 0f13f9d1db7e11f1e3d9967b6d17b8dc3144b3ab3a258c706464c5e6ac5cbcf2ce2db4ea54be9939f05a82ebd1e7f325f50b435f9822c08b4f21ed4ac58de0af
2024-09-25 22:53:41 +07:00
MarcoFalke
9b22501a4d
Merge bitcoin/bitcoin#22122: ci: Bump macOS image to big-sur-xcode-12.5
faa8dfd6a1fcd4df3624aabb3ff08c1f2be198e7 ci: Bump macOS image to big-sur-xcode-12.5 (MarcoFalke)

Pull request description:

  Closes #22068

ACKs for top commit:
  hebasto:
    ACK faa8dfd6a1fcd4df3624aabb3ff08c1f2be198e7, I have reviewed the code and it looks OK, I agree it can be merged, and the Cirrus CI is green.

Tree-SHA512: e29f6290163f3727f3603a3d6b4cf47677f6b02fff370e8d9073962a42bd7ab1ae8d247306e4c41bcadf0a208784344a6229627fe1a883b1e5112df30ea88635
2024-09-25 22:53:41 +07:00
fanquake
3b05a99b50
Merge bitcoin/bitcoin#22106: refactor: address ProcessNewBlock comments from #21713
e12f287498e5836bb5e32de5abaef02f3d20d868 net: cleanup newly added PeerManagerImpl::ProcessNewBlock (fanquake)
610151f5b076d4b1ab90c0dd2717e5410aba6b19 validation: change ProcessNewBlock() to take a CBlock reference (fanquake)

Pull request description:

  Addresses some [post-merge comments](https://github.com/bitcoin/bitcoin/pull/21713#pullrequestreview-638777410) from #21713. Also makes `ChainstateManager::ProcessNewBlock` take a const reference argument, as it [was asked](https://github.com/bitcoin/bitcoin/pull/21713#discussion_r615229548) why it was not the case in that PR.

ACKs for top commit:
  jnewbery:
    Code review ACK e12f287498e5836bb5e32de5abaef02f3d20d868
  MarcoFalke:
    review ACK e12f287498e5836bb5e32de5abaef02f3d20d868 🚚

Tree-SHA512: 9c3e7353240c862d50bce2a0f58741c109dd628040b56ed46250103f8ebe9009238b131da710486791e28e3a83c985057b7be0a32aed1a929269b43097c7425b
2024-09-25 22:53:41 +07:00
MarcoFalke
c8725560c9
Merge bitcoin/bitcoin#21856: doc: add OSS-Fuzz section to fuzzing.md doc
47c3ea021e867206172cdb6546a76d23baa958bb 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 47c3ea021e867206172cdb6546a76d23baa958bb

Tree-SHA512: 87bf0146fb74d1e4b3b8839e6c8f3d53046008a6d5b926ffe5b95be3c396a5e47e47967533422f60b04c4446482f49d210ada410b742f69781a7afde623d704d
2024-09-25 22:53:41 +07:00
fanquake
facf685285
Merge bitcoin/bitcoin#22261: [p2p/mempool] Two small fixes to node broadcast logic
5a77abd4e657458852875a07692898982f4b1db5 [style] Clean up BroadcastTransaction() (John Newbery)
7282d4c0363ab5152baa34af626cb49afbfddc32 [test] Allow rebroadcast for same-txid-different-wtxid transactions (glozow)
cd48372b67d961fe661990a2c6d3cc3d91478924 [mempool] Allow rebroadcast for same-txid-different-wtxid transactions (John Newbery)
847b6ed48d7bacec9024618922e9b339d2d97676 [test] Test transactions are not re-added to unbroadcast set (Duncan Dean)
2837a9f1eaa2c6bf402d1d9891d9aa84c4a56033 [mempool] Only add a transaction to the unbroadcast set when it's added to the mempool (John Newbery)

Pull request description:

  1. Only add a transaction to the unbroadcast set when it's added to the mempool

      Currently, if BroadcastTransaction() is called to rebroadcast a
      transaction (e.g. by ResendWalletTransactions()), then we add the
      transaction to the unbroadcast set. That transaction has already been
      broadcast in the past, so peers are unlikely to request it again,
      meaning RemoveUnbroadcastTx() won't be called and it won't be removed
      from m_unbroadcast_txids.

      Net processing will therefore continue to attempt rebroadcast for the
      transaction every 10-15 minutes. This will most likely continue until
      the node connects to a new peer which hasn't yet seen the transaction
      (or perhaps indefinitely).

      Fix by only adding the transaction to the broadcast set when it's added to the mempool.

  2. Allow rebroadcast for same-txid-different-wtxid transactions

      There is some slightly unexpected behaviour when:

      - there is already transaction in the mempool (the "mempool tx")
      - BroadcastTransaction() is called for a transaction with the same txid
        as the mempool transaction but a different witness (the "new tx")

      Prior to this commit, if BroadcastTransaction() is called with
      relay=true, then it'll call RelayTransaction() using the txid/wtxid of
      the new tx, not the txid/wtxid of the mempool tx. For wtxid relay peers,
      in SendMessages(), the wtxid of the new tx will be taken from
      setInventoryTxToSend, but will then be filtered out from the vector of
      wtxids to announce, since m_mempool.info() won't find the transaction
      (the mempool contains the mempool tx, which has a different wtxid from
      the new tx).

      Fix this by calling RelayTransaction() with the wtxid of the mempool
      transaction in this case.

  The third commit is a comment/whitespace only change to tidy up the BroadcastTransaction() function.

ACKs for top commit:
  duncandean:
    reACK 5a77abd
  naumenkogs:
    ACK 5a77abd4e657458852875a07692898982f4b1db5
  theStack:
    re-ACK 5a77abd4e657458852875a07692898982f4b1db5
  lsilva01:
    re-ACK 5a77abd4e6

Tree-SHA512: d1a46d32a9f975220e5b432ff6633fac9be01ea41925b4958395b8d641680500dc44476b12d18852e5b674d2d87e4d0160b4483e45d3d149176bdff9f4dc8516
2024-09-25 22:53:41 +07:00
MarcoFalke
1430897fc4
Merge bitcoin/bitcoin#22445: fuzz: Move implementations of non-template fuzz helpers from util.h to util.cpp
a2aca207b1ad00ec05d7533dbd75bbff830e1d75 Move implementations of non-template fuzz helpers (Sriram)

Pull request description:

  There are 78 cpp files that include `util.h` (`grep -iIr "#include <test/fuzz/util.h>" src/test/fuzz | wc -l`). Modifying the implementation of a fuzz helper in `src/test/fuzz/util.h` will cause all fuzz tests to be recompiled. Keeping the declarations of these non-template fuzz helpers in `util.h` and moving their implementations to `util.cpp` will skip the redundant recompilation of all the fuzz tests, and builds these helpers only once in `util.cpp`.

  Functions moved from `util.h` to `util.cpp`:
  - `ConsumeTxMemPoolEntry`
  - `ContainsSpentInput`
  - `ConsumeNetAddr`
  - Methods of `FuzzedFileProvider::(open, read, write, seek, close)`

ACKs for top commit:
  MarcoFalke:
    review ACK a2aca207b1ad00ec05d7533dbd75bbff830e1d75 🍂

Tree-SHA512: e7037ebb86d0fc56048e4f3d8733eefc21da11683b09d2b22926bda410719628d89c52ddd9b4c18aa243607a66fdb4d13a63e62ca010e66b3ec9174fd18107f0
2024-09-25 22:53:36 +07:00
UdjinM6
a656d2f14f
feat: more logging 2024-09-25 17:39:31 +03:00
UdjinM6
cedd3d52be
refactor: make expected_connections optional 2024-09-25 17:39:31 +03:00