Skip to content

Commit

Permalink
Merge remote-tracking branch 'bitcoin/25.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
lateminer committed Jan 28, 2024
2 parents 06ff56e + 8087626 commit a632d36
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 60 deletions.
64 changes: 8 additions & 56 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
25.1 Release Notes
25.x Release Notes
==================

Bitcoin Core version 25.1 is now available from:
Bitcoin Core version 25.x is now available from:

<https://bitcoincore.org/bin/bitcoin-core-25.1/>
<https://bitcoincore.org/bin/bitcoin-core-25.x/>

This release includes various bug fixes and performance
improvements, as well as updated translations.
Expand Down Expand Up @@ -40,69 +40,21 @@ unsupported systems.
Notable changes
===============

### P2P

- #27626 Parallel compact block downloads, take 3
- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED

### Fees

- #27622 Fee estimation: avoid serving stale fee estimate

### RPC

- #27727 rpc: Fix invalid bech32 address handling

### Rest

- #27853 rest: fix crash error when calling /deploymentinfo
- #28551 http: bugfix: allow server shutdown in case of remote client disconnection

### Wallet

- #28038 wallet: address book migration bug fixes
- #28067 descriptors: do not return top-level only funcs as sub descriptors
- #28125 wallet: bugfix, disallow migration of invalid scripts
- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted

### Build

- #27724 build: disable boost multi index safe mode in debug mode
- #28097 depends: xcb-proto 1.15.2
- #28543 build, macos: Fix qt package build with new Xcode 15 linker
- #28571 depends: fix unusable memory_resource in macos qt build

### Gui

- gui#751 macOS, do not process actions during shutdown

### Miscellaneous
- gui#774 Fix crash on selecting "Mask values" in transaction view

- #28452 Do not use std::vector = {} to release memory

### CI
### RPC

- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
- #27834 ci: Nuke Android APK task, Use credits for tsan
- #27844 ci: Use podman stop over podman kill
- #27886 ci: Switch to amd64 container in "ARM" task
- #29003 rpc: fix getrawtransaction segfault

Credits
=======

Thanks to everyone who directly contributed to this release:

- Abubakar Sadiq Ismail
- Andrew Chow
- Bruno Garcia
- Gregory Sanders
- Hennadii Stepanov
- MacroFake
- Matias Furszyfer
- Michael Ford
- Pieter Wuille
- stickies-v
- Will Clark
- Martin Zumsande
- Sebastian Falbesoner

As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
108 changes: 108 additions & 0 deletions doc/release-notes/release-notes-25.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
25.1 Release Notes
==================

Bitcoin Core version 25.1 is now available from:

<https://bitcoincore.org/bin/bitcoin-core-25.1/>

This release includes various bug fixes and performance
improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:

<https://github.com/bitcoin/bitcoin/issues>

To receive security and update notifications, please subscribe to:

<https://bitcoincore.org/en/list/announcements/join/>

How to Upgrade
==============

If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes in some cases), then run the
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
or `bitcoind`/`bitcoin-qt` (on Linux).

Upgrading directly from a version of Bitcoin Core that has reached its EOL is
possible, but it might take some time if the data directory needs to be migrated. Old
wallet versions of Bitcoin Core are generally supported.

Compatibility
==============

Bitcoin Core is supported and extensively tested on operating systems
using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.

Notable changes
===============

### P2P

- #27626 Parallel compact block downloads, take 3
- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED

### Fees

- #27622 Fee estimation: avoid serving stale fee estimate

### RPC

- #27727 rpc: Fix invalid bech32 address handling

### Rest

- #27853 rest: fix crash error when calling /deploymentinfo
- #28551 http: bugfix: allow server shutdown in case of remote client disconnection

### Wallet

- #28038 wallet: address book migration bug fixes
- #28067 descriptors: do not return top-level only funcs as sub descriptors
- #28125 wallet: bugfix, disallow migration of invalid scripts
- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted

### Build

- #27724 build: disable boost multi index safe mode in debug mode
- #28097 depends: xcb-proto 1.15.2
- #28543 build, macos: Fix qt package build with new Xcode 15 linker
- #28571 depends: fix unusable memory_resource in macos qt build

### Gui

- gui#751 macOS, do not process actions during shutdown

### Miscellaneous

- #28452 Do not use std::vector = {} to release memory

### CI

- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
- #27834 ci: Nuke Android APK task, Use credits for tsan
- #27844 ci: Use podman stop over podman kill
- #27886 ci: Switch to amd64 container in "ARM" task

Credits
=======

Thanks to everyone who directly contributed to this release:

- Abubakar Sadiq Ismail
- Andrew Chow
- Bruno Garcia
- Gregory Sanders
- Hennadii Stepanov
- MacroFake
- Matias Furszyfer
- Michael Ford
- Pieter Wuille
- stickies-v
- Will Clark

As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
3 changes: 3 additions & 0 deletions src/qt/transactionview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,9 @@ void TransactionView::showDetails()
TransactionDescDialog *dlg = new TransactionDescDialog(selection.at(0));
dlg->setAttribute(Qt::WA_DeleteOnClose);
m_opened_dialogs.append(dlg);
connect(dlg, &QObject::destroyed, [this, dlg] {
m_opened_dialogs.removeOne(dlg);
});
dlg->show();
}
}
Expand Down
3 changes: 1 addition & 2 deletions src/rpc/rawtransaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ static RPCHelpMan getrawtransaction()
LOCK(cs_main);
blockindex = chainman.m_blockman.LookupBlockIndex(hash_block);
}
if (verbosity == 1) {
if (verbosity == 1 || !blockindex) {
TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate());
return result;
}
Expand All @@ -318,7 +318,6 @@ static RPCHelpMan getrawtransaction()
CBlock block;

if (tx->IsCoinBase() ||
!blockindex ||
!(UndoReadFromDisk(blockUndo, blockindex) && ReadBlockFromDisk(block, blockindex, Params().GetConsensus()))) {
TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate());
return result;
Expand Down
13 changes: 11 additions & 2 deletions test/functional/rpc_rawtransaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
assert_greater_than,
assert_raises_rpc_error,
)
from test_framework.wallet import (
Expand Down Expand Up @@ -70,7 +71,7 @@ def set_test_params(self):
self.extra_args = [
["-txindex"],
["-txindex"],
[],
["-fastprune", "-prune=1"],
]
# whitelist all peers to speed up tx relay / mempool sync
for args in self.extra_args:
Expand All @@ -85,7 +86,6 @@ def run_test(self):
self.wallet = MiniWallet(self.nodes[0])

self.getrawtransaction_tests()
self.getrawtransaction_verbosity_tests()
self.createrawtransaction_tests()
self.sendrawtransaction_tests()
self.sendrawtransaction_testmempoolaccept_tests()
Expand All @@ -94,6 +94,8 @@ def run_test(self):
if self.is_specified_wallet_compiled() and not self.options.descriptors:
self.import_deterministic_coinbase_privkeys()
self.raw_multisig_transaction_legacy_tests()
self.getrawtransaction_verbosity_tests()


def getrawtransaction_tests(self):
tx = self.wallet.send_self_transfer(from_node=self.nodes[0])
Expand Down Expand Up @@ -243,6 +245,13 @@ def getrawtransaction_verbosity_tests(self):
coin_base = self.nodes[1].getblock(block1)['tx'][0]
gottx = self.nodes[1].getrawtransaction(txid=coin_base, verbosity=2, blockhash=block1)
assert 'fee' not in gottx
# check that verbosity 2 for a mempool tx will fallback to verbosity 1
# Do this with a pruned chain, as a regression test for https://github.com/bitcoin/bitcoin/pull/29003
self.generate(self.nodes[2], 400)
assert_greater_than(self.nodes[2].pruneblockchain(250), 0)
mempool_tx = self.wallet.send_self_transfer(from_node=self.nodes[2])['txid']
gottx = self.nodes[2].getrawtransaction(txid=mempool_tx, verbosity=2)
assert 'fee' not in gottx

def createrawtransaction_tests(self):
self.log.info("Test createrawtransaction")
Expand Down

0 comments on commit a632d36

Please sign in to comment.