Commit Graph

39616 Commits

Author SHA1 Message Date
Luke Dashjr
3a0c587541 Merge 29441 via ci_parallel_pr29441-26 2024-03-25 17:26:53 +00:00
Luke Dashjr
9877ca00d7 Merge ci_knots-26 2024-03-25 17:26:53 +00:00
Luke Dashjr
8b38251873 Merge 15155 via test_external_bcli 2024-03-25 17:26:53 +00:00
Luke Dashjr
403091bbbd Merge 13789 via bugfix_asm_pragmas 2024-03-25 17:26:53 +00:00
Luke Dashjr
e7e2b68d62 Merge 5416 via sys_libsecp256k1 2024-03-25 17:26:53 +00:00
Luke Dashjr
0003d8e602 Merge 2241 via sys_leveldb 2024-03-25 17:26:53 +00:00
Luke Dashjr
bff25d2f97 Merge fix_evhttp_util_nodep-25 2024-03-25 17:26:53 +00:00
Luke Dashjr
1f0ca2cea8 Merge 29362 via fix_objcxxflags_pr29362-26 2024-03-25 17:26:53 +00:00
Luke Dashjr
517e84c15d Merge 5872 via subdir_incl_compat 2024-03-25 17:26:53 +00:00
fanquake
0b4aa31c34
Merge bitcoin/bitcoin#29719: [26.x] final changes for 26.1
cc0553d0d6 [doc] add manual pages for 26.1 (glozow)
785242dd4c [doc] update release notes 26.1 (glozow)
5f06dcf9c9 [build] bump version to 26.1 final (glozow)
b53bf22c72 ci, macos: Use `--break-system-packages` with Homebrew's python (Hennadii Stepanov)
324e562399 ci: Add workaround for Homebrew's python link error (Hennadii Stepanov)

Pull request description:

  Final changes for `v26.1`.

  Bins for rc2 have been available for 10 days and I haven't seen any bug reports or new things to add.
  Includes #29610 backport for the CI, which has no effect on what goes into the release.
  Website PR: https://github.com/bitcoin-core/bitcoincore.org/pull/1009

ACKs for top commit:
  hebasto:
    ACK cc0553d0d6.
  fanquake:
    ACK cc0553d0d6
  stickies-v:
    ACK cc0553d0d6 (modulo CI passing)

Tree-SHA512: d032157c7cdf07a474e40b947f7e51bfc6a8e280e43345522bad67b6ad449d473f29bf03ee845b2e403693c1c81078589d042337c895eceb8a59cb4340432887
2024-03-25 16:51:08 +00:00
glozow
cc0553d0d6 [doc] add manual pages for 26.1 2024-03-25 10:01:44 +00:00
glozow
785242dd4c [doc] update release notes 26.1 2024-03-25 10:01:43 +00:00
glozow
5f06dcf9c9 [build] bump version to 26.1 final 2024-03-25 10:01:13 +00:00
Hennadii Stepanov
b53bf22c72 ci, macos: Use --break-system-packages with Homebrew's python
Homebrew's python@3.12 is marked as externally managed (PEP 668),
necessitating different approaches for installing Python packages.

For more details, please refer to https://github.com/orgs/Homebrew/discussions/3404.

Github-Pull: #29610
Rebased-From: acc06bc91f
2024-03-25 09:59:31 +00:00
Hennadii Stepanov
324e562399 ci: Add workaround for Homebrew's python link error
Promoting Homebrew's python@3.12 to the default python3 breaks symbolic
links on macOS x86_64.

This change adds a workaround for that issue.

Also see: https://github.com/actions/runner-images/issues/9471 etc.

Github-Pull: #29610
Rebased-From: ae5f72027f
2024-03-25 09:59:07 +00:00
Luke Dashjr
279c4ee734 doc/release-process: Correct m_assumed_*_size to GB 2024-03-19 16:34:00 +00:00
Luke Dashjr
87471d26bf Bugfix: init: For first-run disk space check, advise user of correct pruned size rather than full blockchain size 2024-03-19 15:47:51 +00:00
Luke Dashjr
99632e59cd Bugfix: init: Correct conversion of AssumedBlockchainSize to use GB 2024-03-19 15:47:26 +00:00
brunoerg
51251355eb fuzz: coinselection, improve min_viable_change/change_output_size
Change it to use same approach from
`CreateTransactionInternal`.

Github-Pull: #28372
Rebased-From: cd810075ed
2024-03-17 12:43:11 +00:00
Luke Dashjr
581215006e CI: Extend macOS native timeout to 6 hours
Actual run took 3h31m, largely due to wallet_notifications fuzzer which ran for 2h28m
2024-03-17 12:40:44 +00:00
Luke Dashjr
d1ed09a764 Bugfix: GUI: Help messages already have a trailing newline, so don't add an extra one 2024-03-15 00:38:33 +00:00
Luke Dashjr
90bbe65ebc CI: Disable libbitcoinkernel build (not supported for now) 2024-03-15 00:38:01 +00:00
Lőrinc
2435c39a6c Reserve memory for ToLower/ToUpper conversions
Github-Pull: #29606
Rebased-From: 6f2f4a4d09
2024-03-14 22:57:13 +00:00
Luke Dashjr
8d738f9101 CI: Disable MSVC task (MSVC is not supported) 2024-03-14 22:47:58 +00:00
Luke Dashjr
58de91d9fe Bugfix: Move common/url to libbitcoin_util.a for now 2024-03-14 22:46:21 +00:00
furszy
8a16b8f6a4 wallet: default wallet migration, modify inconvenient backup filename
On default legacy wallets, the backup filename starts with an "-" due
to the wallet name being empty. This is inconvenient for systems who
treat what follows the initial "-" character as flags.

Github-Pull: #29586
Rebased-From: a951dba3a9
2024-03-14 22:42:53 +00:00
furszy
0fe33c82e8 test: wallet, coverage for concurrent db transactions
Verifying that a database handler can't commit/abort changes
occurring in a different database handler.

Github-Pull: #29112
Rebased-From: cfcb9b1ecf
2024-03-14 21:58:14 +00:00
Ava Chow
4c3b187547 tests: Test for concurrent writes with db tx
There are occasions where a multi-statement tx is begun in one batch,
and a second batch is created which does a normal write (without a
multi-statement tx). These should not conflict with each other and all
of the data should end up being written to disk.

Github-Pull: #29112
Rebased-From: 548ecd1155
2024-03-14 21:58:14 +00:00
Ava Chow
56df513e43 sqlite: Ensure that only one SQLiteBatch is writing to db at a time
A SQLiteBatch need to wait for any other batch to finish writing before
it can begin writing, otherwise db txn state may be incorrectly
modified. To enforce this, each SQLiteDatabase has a semaphore which
acts as a lock and is acquired by a batch when it begins a write, erase,
or a transaction, and is released by it when it is done.

To avoid deadlocking on itself for writing during a transaction,
SQLiteBatch also keeps track of whether it has begun a transaction.

Github-Pull: #29112
Rebased-From: 395bcd2454
2024-03-14 21:58:14 +00:00
Luke Dashjr
223543d6cc Merge branch 'fix_wallet_dbguard_pr29253-26' into fix_wallet_single_batch_only-26+knots 2024-03-14 21:58:08 +00:00
furszy
bb3bb898c3 test: sqlite, add coverage for dangling to-be-reverted db txns
Github-Pull: #29253
Rebased-From: b298242c8d
2024-03-14 21:57:22 +00:00
Luke Dashjr
9aa46570fa QA: bitcoin_test/validation_block_tests: Check sanity of CBlock cache, but not behaviour/when it is present 2024-03-14 18:31:06 +00:00
Evan Klitzke
2afeb2db85 Try to use posix_fadvise with CBufferedFile
This primarily affects blocks when bitcoin is launched with -reindex, as
that causes the block files to be loaded as CBufferedFile objects one at
a time as the reindex progresses.

Co-Authored-By: Luke Dashjr <luke-jr+git@utopios.org>
2024-03-14 14:53:46 +00:00
Luke Dashjr
8cb5b507a7 Merge branch 'bufferedfile_fclose-26' into fadvise-26+knots 2024-03-14 14:53:43 +00:00
Luke Dashjr
6fc3f886e2 BufferedFile: fclose at destruction
This is currently indirectly implied by src/bench/load_external.cpp:LoadExternalBlockFile
	"The file will be closed by LoadExternalBlockFile()."

Github-Pull: #29614
Rebased-From: 0fa3a0c893a672e810c6d95a10429fd3213ae4eb
2024-03-14 14:53:19 +00:00
furszy
cb49b56f95 sqlite: guard against dangling to-be-reverted db transactions
If the handler that initiated the database transaction is destroyed,
the ongoing transaction cannot be left dangling when the db txn fails
to abort. It must be forcefully reversed; otherwise, any subsequent
db handler executing a write operation will dump the dangling,
to-be-reverted transaction data to disk.

This not only breaks the database isolation property but also results
in the improper storage of incomplete information on disk, impacting
the wallet consistency.

Github-Pull: #29253
Rebased-From: fc0e747192
2024-03-14 00:37:27 +00:00
furszy
9a238c50a3 sqlite: introduce HasActiveTxn method
Util function to clean up code and let us
verify, in the following-up commit, that dangling,
to-be-reverted db transactions cannot occur anymore.

Github-Pull: #29253
Rebased-From: 472d2ca981
2024-03-14 00:37:26 +00:00
furszy
a1f955eac6 sqlite: add ability to interrupt statements
By encapsulating sqlite3_exec into its own standalone method
and introducing the 'SQliteExecHandler' class, we enable the
ability to test db statements execution failures within the
unit test framework.

This is used in the following-up commit to exercise a deadlock
and improve our wallet db error handling code.

Moreover, the future encapsulation of other sqlite functions
within this class will contribute to minimize the impact of
any future API changes.

Github-Pull: #29253
Rebased-From: dca874e838
2024-03-14 00:37:26 +00:00
furszy
967571ddc8 test: wallet db, exercise deadlock after write failure
Github-Pull: #29253
Rebased-From: fdf9f66909
2024-03-14 00:37:26 +00:00
Luke Dashjr
9f35a5bd12 RPC/Blockchain: Demote loadtxoutset to hidden/debug-only for now (not supported on mainnet) 2024-03-14 00:26:34 +00:00
Luke Dashjr
178617e7b6 GUI: Avoid unnecessary BIP 21 reference (Knots supports BIP 20 also) 2024-03-13 23:30:12 +00:00
John Moffett
0eeaae8f28 gui: Show error if unrecognized command line args are present
Starting bitcoin-qt with non-dash ("-") arguments causes it to
silently ignore any later valid options. This change makes the
client exit with an error message if any such "loose" arguments
are encountered.

However, allow BIP-21 'bitcoin:' URIs only if no other options
follow.

Github-Pull: gui#742
Rebased-From: 51e4dc49f5
2024-03-13 23:30:12 +00:00
Luke Dashjr
3276aa7d35 Diff-minimise 2024-03-13 15:45:06 +00:00
ishaanam
a20609e70a test: test sendall and send do anti-fee-sniping
Github-Pull: #28944
Rebased-From: fa1fa35158
2024-03-13 15:45:00 +00:00
ishaanam
13e36c822b wallet, rpc: add anti-fee-sniping to send and sendall
Github-Pull: #28944
Rebased-From: 8e5778a9fb
2024-03-13 15:44:58 +00:00
brunoerg
f76c89c7ef fuzz: call lookup functions before calling Ban
Also, compare banmaps only if there are no invalid
entries.

Github-Pull: #27935
Rebased-From: f9b286353f
2024-03-13 15:40:10 +00:00
Luke Dashjr
7aabdde13c Ensure new_tip_block cache gets cleared when pindexNewTip is updated 2024-03-13 14:31:18 +00:00
glozow
c33e83a53a
Merge bitcoin/bitcoin#29509: [26.x] backports and final changes for v26.1rc2
c68d4d0ac5 [doc] update manual pages for v26.1rc2 (glozow)
bd715bfb30 [build] bump version to v26.1rc2 (glozow)
b6d006d2a2 update release notes 26.1 (glozow)
fce992b38e fuzz: restrict fopencookie usage to Linux & FreeBSD (fanquake)
40c56a4d13 test: make sure keypool sizes do not change on `getrawchangeaddress`/`getnewaddress` failures (UdjinM6)
7c82b2758c wallet: Avoid updating `ReserveDestination::nIndex` when `GetReservedDestination` fails (UdjinM6)
b5419ce6b6 p2p: Don't consider blocks mutated if they don't connect to known prev block (Greg Sanders)
0535c253fe [test] IsBlockMutated unit tests (dergoegge)
8141498f3a [validation] Cache merkle root and witness commitment checks (dergoegge)
0c5c5962cb [test] Add regression test for #27608 (dergoegge)
24736350e9 [net processing] Don't process mutated blocks (dergoegge)
50c0b61a9d [validation] Merkle root malleation should be caught by IsBlockMutated (dergoegge)
aff368fa81 [validation] Introduce IsBlockMutated (dergoegge)
076c67c3aa [refactor] Cleanup merkle root checks (dergoegge)
97a1d0a459 [validation] Isolate merkle root checks (dergoegge)
4ac0eb543d test: Drop `x` modifier in `fsbridge::fopen` call for mingw builds (Hennadii Stepanov)

Pull request description:

  Includes:
  - #29357
  - #29412
  - #29524
  - #29510
  - #29529

  Also does:
  - update to release notes
  - bump to rc2
  - manpages
  - (no changes to bitcoin.conf)

ACKs for top commit:
  achow101:
    ACK c68d4d0ac5

Tree-SHA512: 2f8c3dd705e3f9f33403b3cc17e8006510ff827d7dbd609b09732a1669964e9b001cfecdc63d8d8daeb8f39c652e1e4ad0aac873d44d259c21803de85688ed2b
2024-03-11 09:54:18 +00:00
Luke Dashjr
3959f204e6 Diff-minimise 2024-03-10 19:06:23 +00:00
w0xlt
f77f522f25 test: add test for dump human-readable dumptxoutset
Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
Co-authored-by: brunoerg <brunoely.gc@gmail.com>
2024-03-10 19:06:23 +00:00