Merge bitcoin/bitcoin#32644: doc: miscellaneous changes

e50312eab0 doc: fix typos (fanquake)
c797e50dda ci: update codespell to 2.4.1 (fanquake)
21ee656337 doc: Remove obselete link in notificator.cpp (strmfos)
ee4406c04a doc: update URLs (fanquake)

Pull request description:

  A round up of #32629 + some other changes that had previously been PR'd.

ACKs for top commit:
  maflcko:
    review ACK e50312eab0 🥗

Tree-SHA512: 8fa3e14fdfa0cf65a42debc9cbb1f8b379aba44aa185e2e27337431e884d169bf1e811655c3a884d918e65ea28c5767ddaabaf25c862ebd9b4b38a0229ec5a93
This commit is contained in:
merge-script committed 2025-06-03 09:10:49 +01:00
commit e872a566f2
31 files changed
+42 -45

No files matched your search

+4 -4
View File
@@ -80,7 +80,7 @@ facilitates social contribution, easy testing and peer review.
To contribute a patch, the workflow is as follows: To contribute a patch, the workflow is as follows:
1. Fork repository ([only for the first time](https://docs.github.com/en/get-started/quickstart/fork-a-repo)) 1. Fork repository ([only for the first time](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo))
1. Create topic branch 1. Create topic branch
1. Commit patches 1. Commit patches
@@ -121,7 +121,7 @@ Commit messages should be verbose by default consisting of a short subject line
paragraph(s), unless the title alone is self-explanatory (like "Correct typo paragraph(s), unless the title alone is self-explanatory (like "Correct typo
in init.cpp") in which case a single title line is sufficient. Commit messages should be in init.cpp") in which case a single title line is sufficient. Commit messages should be
helpful to people reading your code in the future, so explain the reasoning for helpful to people reading your code in the future, so explain the reasoning for
your decisions. Further explanation [here](https://chris.beams.io/posts/git-commit/). your decisions. Further explanation [here](https://cbea.ms/git-commit/).
If a particular commit references another issue, please add the reference. For If a particular commit references another issue, please add the reference. For
example: `refs #1234` or `fixes #4321`. Using the `fixes` or `closes` keywords example: `refs #1234` or `fixes #4321`. Using the `fixes` or `closes` keywords
@@ -182,7 +182,7 @@ for more information on helping with translations.
### Work in Progress Changes and Requests for Comments ### Work in Progress Changes and Requests for Comments
If a pull request is not to be considered for merging (yet), please If a pull request is not to be considered for merging (yet), please
prefix the title with [WIP] or use [Tasks Lists](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#task-lists) prefix the title with [WIP] or use [Tasks Lists](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#task-lists)
in the body of the pull request to indicate tasks are pending. in the body of the pull request to indicate tasks are pending.
### Address Feedback ### Address Feedback
@@ -401,7 +401,7 @@ about:
- It may be because your code is too complex for all but a few people, and those people - It may be because your code is too complex for all but a few people, and those people
may not have realized your pull request even exists. A great way to find people who may not have realized your pull request even exists. A great way to find people who
are qualified and care about the code you are touching is the are qualified and care about the code you are touching is the
[Git Blame feature](https://docs.github.com/en/github/managing-files-in-a-repository/managing-files-on-github/tracking-changes-in-a-file). Simply [Git Blame feature](https://docs.github.com/en/repositories/working-with-files/using-files/viewing-and-understanding-files). Simply
look up who last modified the code you are changing and see if you can find look up who last modified the code you are changing and see if you can find
them and give them a nudge. Don't be incessant about the nudging, though. them and give them a nudge. Don't be incessant about the nudging, though.
- Finally, if all else fails, ask on IRC or elsewhere for someone to give your pull request - Finally, if all else fails, ask on IRC or elsewhere for someone to give your pull request
+1 -1
View File
@@ -37,7 +37,7 @@ command -v python3
python3 --version python3 --version
${CI_RETRY_EXE} pip3 install \ ${CI_RETRY_EXE} pip3 install \
codespell==2.2.6 \ codespell==2.4.1 \
lief==0.13.2 \ lief==0.13.2 \
mypy==1.4.1 \ mypy==1.4.1 \
pyzmq==25.1.0 \ pyzmq==25.1.0 \
+1 -1
View File
@@ -54,7 +54,7 @@ def run():
out_sdktgz_path = pathlib.Path("./{}.tar.gz".format(out_name)) out_sdktgz_path = pathlib.Path("./{}.tar.gz".format(out_name))
def tarfp_add_with_base_change(tarfp, dir_to_add, alt_base_dir): def tarfp_add_with_base_change(tarfp, dir_to_add, alt_base_dir):
"""Add all files in dir_to_add to tarfp, but prepent alt_base_dir to the files' """Add all files in dir_to_add to tarfp, but prepend alt_base_dir to the files'
names names
e.g. if the only file under /root/bazdir is /root/bazdir/qux, invoking: e.g. if the only file under /root/bazdir is /root/bazdir/qux, invoking:
+1 -1
View File
@@ -152,7 +152,7 @@ if res:
elif res.status_code == 404: elif res.status_code == 404:
print('The specified faucet URL does not exist. Please check for any server issues/typo.') print('The specified faucet URL does not exist. Please check for any server issues/typo.')
elif res.status_code == 429: elif res.status_code == 429:
print('The script does not allow for repeated transactions as the global faucet is rate-limitied to 1 request/IP/day. You can access the faucet website to get more coins manually') print('The script does not allow for repeated transactions as the global faucet is rate-limited to 1 request/IP/day. You can access the faucet website to get more coins manually')
else: else:
print(f'Returned Error Code {res.status_code}\n{res.text}\n') print(f'Returned Error Code {res.status_code}\n{res.text}\n')
print('Please check the provided arguments for their validity and/or any possible typo.') print('Please check the provided arguments for their validity and/or any possible typo.')
+1 -1
View File
@@ -19,7 +19,7 @@ The former is assumed hereinafter.
### 2. Git ### 2. Git
Download and install [Git for Windows](https://git-scm.com/download/win). Once installed, Git is available from PowerShell or the Command Prompt. Download and install [Git for Windows](https://git-scm.com/downloads/win). Once installed, Git is available from PowerShell or the Command Prompt.
### 3. Clone Bitcoin Repository ### 3. Clone Bitcoin Repository
+1 -1
View File
@@ -98,7 +98,7 @@ Subdirectory | File | Description
## GUI settings ## GUI settings
`bitcoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored). `bitcoin-qt` uses [`QSettings`](https://doc.qt.io/qt-6/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-6/qsettings.html#locations-where-application-settings-are-stored).
## Legacy subdirectories and files ## Legacy subdirectories and files
+1 -1
View File
@@ -194,7 +194,7 @@ You can do:
git range-diff master previously-reviewed-head new-head git range-diff master previously-reviewed-head new-head
``` ```
Note that `git range-diff` also work for rebases: Note that `git range-diff` also works for rebases:
``` ```
P1--P2--P3--P4--P5 <-- previously-reviewed-head P1--P2--P3--P4--P5 <-- previously-reviewed-head
+1 -1
View File
@@ -1,4 +1,4 @@
- Logs now include which peer sent us a header. Additionaly there are fewer - Logs now include which peer sent us a header. Additionally there are fewer
redundant header log messages. A side-effect of this change is that for redundant header log messages. A side-effect of this change is that for
some untypical cases new headers aren't logged anymore, e.g. a direct some untypical cases new headers aren't logged anymore, e.g. a direct
`BLOCK` message with a previously unknown header and `submitheader` RPC. (#27826) `BLOCK` message with a previously unknown header and `submitheader` RPC. (#27826)
+1 -1
View File
@@ -45,7 +45,7 @@ The two main eBPF front-ends with support for USDT are [bpftrace] and
`bpftrace` is preferred for one-liners and shorter scripts. Examples for both can `bpftrace` is preferred for one-liners and shorter scripts. Examples for both can
be found in [contrib/tracing]. be found in [contrib/tracing].
[bpftrace]: https://github.com/iovisor/bpftrace [bpftrace]: https://github.com/bpftrace/bpftrace
[BPF Compiler Collection (BCC)]: https://github.com/iovisor/bcc [BPF Compiler Collection (BCC)]: https://github.com/iovisor/bcc
[contrib/tracing]: ../contrib/tracing/ [contrib/tracing]: ../contrib/tracing/
+3 -3
View File
@@ -8,7 +8,7 @@ Transifex is setup to monitor the GitHub repo for updates, and when code contain
Multiple language support is critical in assisting Bitcoin’s global adoption, and growth. One of Bitcoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated. Multiple language support is critical in assisting Bitcoin’s global adoption, and growth. One of Bitcoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated.
See the [Transifex Bitcoin project](https://www.transifex.com/bitcoin/bitcoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below. See the [Transifex Bitcoin project](https://explore.transifex.com/bitcoin/bitcoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below.
### Writing code with translations ### Writing code with translations
We use automated scripts to help extract translations in both Qt, and non-Qt source files. It is rarely necessary to manually edit the files in `src/qt/locale/`. The translation source files must adhere to the following format: We use automated scripts to help extract translations in both Qt, and non-Qt source files. It is rarely necessary to manually edit the files in `src/qt/locale/`. The translation source files must adhere to the following format:
@@ -39,9 +39,9 @@ git commit
``` ```
### Creating a Transifex account ### Creating a Transifex account
Visit the [Transifex Signup](https://www.transifex.com/signup/) page to create an account. Take note of your username and password, as they will be required to configure the command-line tool. Visit the [Transifex Signup](https://app.transifex.com/signup/open-source/) page to create an account. Take note of your username and password, as they will be required to configure the command-line tool.
You can find the Bitcoin translation project at [https://www.transifex.com/bitcoin/bitcoin/](https://www.transifex.com/bitcoin/bitcoin/). You can find the Bitcoin translation project at [https://www.transifex.com/bitcoin/bitcoin/](https://explore.transifex.com/bitcoin/bitcoin/).
### Installing the Transifex client command-line tool ### Installing the Transifex client command-line tool
The client is used to fetch updated translations. Please check installation instructions and any other details at https://developers.transifex.com/docs/cli. The client is used to fetch updated translations. Please check installation instructions and any other details at https://developers.transifex.com/docs/cli.
+2 -2
View File
@@ -127,7 +127,7 @@ serialized transaction.
Notifies about all transactions, both when they are added to mempool or when a new block Notifies about all transactions, both when they are added to mempool or when a new block
arrives. This means a transaction could be published multiple times: first when it enters arrives. This means a transaction could be published multiple times: first when it enters
mempool and then again in each block that includes it. The body part of the mesage is the mempool and then again in each block that includes it. The body part of the message is the
32-byte transaction hash in reversed byte order. 32-byte transaction hash in reversed byte order.
#### rawblock #### rawblock
@@ -154,7 +154,7 @@ The 8-byte LE uints correspond to _mempool sequence number_ and the types of bod
### Implementing ZMQ client ### Implementing ZMQ client
ZeroMQ endpoint specifiers for TCP (and others) are documented in the ZeroMQ endpoint specifiers for TCP (and others) are documented in the
[ZeroMQ API](http://api.zeromq.org/4-0:_start). [ZeroMQ API](https://libzmq.readthedocs.io/en/zeromq4-x/).
Client side, then, the ZeroMQ subscriber socket must have the Client side, then, the ZeroMQ subscriber socket must have the
ZMQ_SUBSCRIBE option set to one or either of these prefixes (for ZMQ_SUBSCRIBE option set to one or either of these prefixes (for
+1 -1
View File
@@ -309,7 +309,7 @@ std::vector<CNetAddr> GetLocalAddresses()
if (status != NO_ERROR) { if (status != NO_ERROR) {
// This includes ERROR_NO_DATA if there are no addresses and thus there's not even one PIP_ADAPTER_ADDRESSES // This includes ERROR_NO_DATA if there are no addresses and thus there's not even one PIP_ADAPTER_ADDRESSES
// record in the returned structure. // record in the returned structure.
LogPrintLevel(BCLog::NET, BCLog::Level::Error, "Could not get local adapter addreses: %s\n", NetworkErrorString(status)); LogPrintLevel(BCLog::NET, BCLog::Level::Error, "Could not get local adapter addresses: %s\n", NetworkErrorString(status));
return addresses; return addresses;
} }
+1 -1
View File
@@ -182,7 +182,7 @@ bool CNetAddr::SetInternal(const std::string &name)
} }
namespace torv3 { namespace torv3 {
// https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt?id=7116c9cdaba248aae07a3f1d0e15d9dd102f62c5#n2175 // https://gitlab.torproject.org/tpo/core/torspec/-/tree/main/spec/rend-spec
static constexpr size_t CHECKSUM_LEN = 2; static constexpr size_t CHECKSUM_LEN = 2;
static const unsigned char VERSION[] = {3}; static const unsigned char VERSION[] = {3};
static constexpr size_t TOTAL_LEN = ADDR_TORV3_SIZE + CHECKSUM_LEN + sizeof(VERSION); static constexpr size_t TOTAL_LEN = ADDR_TORV3_SIZE + CHECKSUM_LEN + sizeof(VERSION);
-1
View File
@@ -141,7 +141,6 @@ QVariant FreedesktopImage::toVariant(const QImage &img)
void Notificator::notifyDBus(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout) void Notificator::notifyDBus(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout)
{ {
// https://developer.gnome.org/notification-spec/
// Arguments for DBus "Notify" call: // Arguments for DBus "Notify" call:
QList<QVariant> args; QList<QVariant> args;
+3 -3
View File
@@ -23,8 +23,8 @@
* but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were * but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were
* unspecified (HTTP errors and contents of 'error'). * unspecified (HTTP errors and contents of 'error').
* *
* 1.0 spec: http://json-rpc.org/wiki/specification * 1.0 spec: https://www.jsonrpc.org/specification_v1
* 1.2 spec: http://jsonrpc.org/historical/json-rpc-over-http.html * 1.2 spec: https://jsonrpc.org/historical/json-rpc-over-http.html
* *
* If the server receives a request with the JSON-RPC 2.0 marker `{"jsonrpc": "2.0"}` * If the server receives a request with the JSON-RPC 2.0 marker `{"jsonrpc": "2.0"}`
* then Bitcoin will respond with a strictly specified response. * then Bitcoin will respond with a strictly specified response.
@@ -35,7 +35,7 @@
* *
* 2.0 spec: https://www.jsonrpc.org/specification * 2.0 spec: https://www.jsonrpc.org/specification
* *
* Also see http://www.simple-is-better.org/rpc/#differences-between-1-0-and-2-0 * Also see https://www.simple-is-better.org/rpc/#differences-between-1-0-and-2-0
*/ */
UniValue JSONRPCRequestObj(const std::string& strMethod, const UniValue& params, const UniValue& id) UniValue JSONRPCRequestObj(const std::string& strMethod, const UniValue& params, const UniValue& id)
+1 -1
View File
@@ -7,7 +7,7 @@
["The following is 23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63"], ["The following is 23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63"],
["It is of particular interest because it contains an invalidly-encoded signature which OpenSSL accepts"], ["It is of particular interest because it contains an invalidly-encoded signature which OpenSSL accepts"],
["See http://r6.ca/blog/20111119T211504Z.html"], ["See https://r6.ca/blog/20111119T211504Z.html"],
["It is also the first OP_CHECKMULTISIG transaction in standard form"], ["It is also the first OP_CHECKMULTISIG transaction in standard form"],
[[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]], [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],
"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "DERSIG,LOW_S,STRICTENC"], "0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "DERSIG,LOW_S,STRICTENC"],
+2 -2
View File
@@ -198,7 +198,7 @@ FUZZ_TARGET(muhash)
muhash3.Finalize(out2); muhash3.Finalize(out2);
}, },
[&] { [&] {
// Test that dividing a MuHash by itself brings it back to it's initial state // Test that dividing a MuHash by itself brings it back to its initial state
// See note about clang + self-assignment in test/uint256_tests.cpp // See note about clang + self-assignment in test/uint256_tests.cpp
#if defined(__clang__) #if defined(__clang__)
@@ -216,7 +216,7 @@ FUZZ_TARGET(muhash)
out2 = initial_state_hash; out2 = initial_state_hash;
}, },
[&] { [&] {
// Test that removing all added elements brings the object back to it's initial state // Test that removing all added elements brings the object back to its initial state
muhash.Remove(data); muhash.Remove(data);
muhash.Remove(data2); muhash.Remove(data2);
muhash.Finalize(out); muhash.Finalize(out);
+2 -2
View File
@@ -32,9 +32,9 @@ public:
PeerManager::Options peerman_opts; PeerManager::Options peerman_opts;
node::ApplyArgsManOptions(*m_node.args, peerman_opts); node::ApplyArgsManOptions(*m_node.args, peerman_opts);
peerman_opts.max_headers_result = FUZZ_MAX_HEADERS_RESULTS; peerman_opts.max_headers_result = FUZZ_MAX_HEADERS_RESULTS;
// The peerman's rng is a global that is re-used, so it will be re-used // The peerman's rng is a global that is reused, so it will be reused
// and may cause non-determinism between runs. This may even influence // and may cause non-determinism between runs. This may even influence
// the global RNG, because seeding may be done from the gloabl one. For // the global RNG, because seeding may be done from the global one. For
// now, avoid it influencing the global RNG, and initialize it with a // now, avoid it influencing the global RNG, and initialize it with a
// constant instead. // constant instead.
peerman_opts.deterministic_rng = true; peerman_opts.deterministic_rng = true;
+1 -1
View File
@@ -27,7 +27,7 @@ FUZZ_TARGET(policy_estimator_io, .init = initialize_policy_estimator_io)
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider}; FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider};
AutoFile fuzzed_auto_file{fuzzed_file_provider.open()}; AutoFile fuzzed_auto_file{fuzzed_file_provider.open()};
// Re-using block_policy_estimator across runs to avoid costly creation of CBlockPolicyEstimator object. // Reusing block_policy_estimator across runs to avoid costly creation of CBlockPolicyEstimator object.
static CBlockPolicyEstimator block_policy_estimator{FeeestPath(*g_setup->m_node.args), DEFAULT_ACCEPT_STALE_FEE_ESTIMATES}; static CBlockPolicyEstimator block_policy_estimator{FeeestPath(*g_setup->m_node.args), DEFAULT_ACCEPT_STALE_FEE_ESTIMATES};
if (block_policy_estimator.Read(fuzzed_auto_file)) { if (block_policy_estimator.Read(fuzzed_auto_file)) {
block_policy_estimator.Write(fuzzed_auto_file); block_policy_estimator.Write(fuzzed_auto_file);
+1 -1
View File
@@ -104,7 +104,7 @@ void utxo_snapshot_fuzz(FuzzBufferType buffer)
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
SetMockTime(ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)); // regtest genesis block timestamp SetMockTime(ConsumeTime(fuzzed_data_provider, /*min=*/1296688602)); // regtest genesis block timestamp
auto& setup{*g_setup}; auto& setup{*g_setup};
bool dirty_chainman{false}; // Re-use the global chainman, but reset it when it is dirty bool dirty_chainman{false}; // Reuse the global chainman, but reset it when it is dirty
auto& chainman{*setup.m_node.chainman}; auto& chainman{*setup.m_node.chainman};
const auto snapshot_path = gArgs.GetDataDirNet() / "fuzzed_snapshot.dat"; const auto snapshot_path = gArgs.GetDataDirNet() / "fuzzed_snapshot.dat";
+1 -1
View File
@@ -53,7 +53,7 @@ static std::string TempPath(std::string_view pattern)
//! on the object through FooInterface (defined in ipc_test.capnp). //! on the object through FooInterface (defined in ipc_test.capnp).
void IpcPipeTest() void IpcPipeTest()
{ {
// Setup: create FooImplemention object and listen for FooInterface requests // Setup: create FooImplementation object and listen for FooInterface requests
std::promise<std::unique_ptr<mp::ProxyClient<gen::FooInterface>>> foo_promise; std::promise<std::unique_ptr<mp::ProxyClient<gen::FooInterface>>> foo_promise;
std::function<void()> disconnect_client; std::function<void()> disconnect_client;
std::thread thread([&]() { std::thread thread([&]() {
+1 -1
View File
@@ -563,7 +563,7 @@ BOOST_FIXTURE_TEST_CASE(calc_feerate_diagram_rbf, TestChain100Setup)
BOOST_CHECK(replace_two_chunks_single_cluster->second == expected_new_chunks); BOOST_CHECK(replace_two_chunks_single_cluster->second == expected_new_chunks);
} }
// You can have more than two direct conflicts if the there are multiple affected clusters, all of size 2 or less // You can have more than two direct conflicts if there are multiple affected clusters, all of size 2 or less
const auto conflict_1 = make_tx(/*inputs=*/ {m_coinbase_txns[2]}, /*output_values=*/ {10 * COIN}); const auto conflict_1 = make_tx(/*inputs=*/ {m_coinbase_txns[2]}, /*output_values=*/ {10 * COIN});
AddToMempool(pool, entry.Fee(low_fee).FromTx(conflict_1)); AddToMempool(pool, entry.Fee(low_fee).FromTx(conflict_1));
const auto conflict_1_entry = pool.GetIter(conflict_1->GetHash()).value(); const auto conflict_1_entry = pool.GetIter(conflict_1->GetHash()).value();
+1 -1
View File
@@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE(ForgetPeerTest)
TxReconciliationTracker tracker(TXRECONCILIATION_VERSION); TxReconciliationTracker tracker(TXRECONCILIATION_VERSION);
NodeId peer_id0 = 0; NodeId peer_id0 = 0;
// Removing peer after pre-registring works and does not let to register the peer. // Removing peer after pre-registering works and does not let to register the peer.
tracker.PreRegisterPeer(peer_id0); tracker.PreRegisterPeer(peer_id0);
tracker.ForgetPeer(peer_id0); tracker.ForgetPeer(peer_id0);
BOOST_CHECK_EQUAL(tracker.RegisterPeer(peer_id0, true, 1, 1), ReconciliationRegisterResult::NOT_FOUND); BOOST_CHECK_EQUAL(tracker.RegisterPeer(peer_id0, true, 1, 1), ReconciliationRegisterResult::NOT_FOUND);
+1 -1
View File
@@ -324,7 +324,7 @@ private:
ChunkIndex m_main_chunkindex; ChunkIndex m_main_chunkindex;
/** Number of index-observing objects in existence (BlockBuilderImpls). */ /** Number of index-observing objects in existence (BlockBuilderImpls). */
size_t m_main_chunkindex_observers{0}; size_t m_main_chunkindex_observers{0};
/** Cache of discarded ChunkIndex node handles to re-use, avoiding additional allocation. */ /** Cache of discarded ChunkIndex node handles to reuse, avoiding additional allocation. */
std::vector<ChunkIndex::node_type> m_main_chunkindex_discarded; std::vector<ChunkIndex::node_type> m_main_chunkindex_discarded;
/** A Locator that describes whether, where, and in which Cluster an Entry appears. /** A Locator that describes whether, where, and in which Cluster an Entry appears.
+1 -1
View File
@@ -2506,7 +2506,7 @@ bool Chainstate::ConnectBlock(const CBlock& block, BlockValidationState& state,
// If such overwrites are allowed, coinbases and transactions depending upon those // If such overwrites are allowed, coinbases and transactions depending upon those
// can be duplicated to remove the ability to spend the first instance -- even after // can be duplicated to remove the ability to spend the first instance -- even after
// being sent to another address. // being sent to another address.
// See BIP30, CVE-2012-1909, and http://r6.ca/blog/20120206T005236Z.html for more information. // See BIP30, CVE-2012-1909, and https://r6.ca/blog/20120206T005236Z.html for more information.
// This rule was originally applied to all blocks with a timestamp after March 15, 2012, 0:00 UTC. // This rule was originally applied to all blocks with a timestamp after March 15, 2012, 0:00 UTC.
// Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the // Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the
// two in the chain that violate it. This prevents exploiting the issue against nodes during their // two in the chain that violate it. This prevents exploiting the issue against nodes during their
+1 -1
View File
@@ -61,7 +61,7 @@ bool DumpWallet(const ArgsManager& args, WalletDatabase& db, bilingual_str& erro
// Write out the file format // Write out the file format
std::string format = db.Format(); std::string format = db.Format();
// BDB files that are opened using BerkeleyRODatabase have it's format as "bdb_ro" // BDB files that are opened using BerkeleyRODatabase have its format as "bdb_ro"
// We want to override that format back to "bdb" // We want to override that format back to "bdb"
if (format == "bdb_ro") { if (format == "bdb_ro") {
format = "bdb"; format = "bdb";
+2 -2
View File
@@ -1042,7 +1042,7 @@ bool DescriptorScriptPubKeyMan::TopUpWithDB(WalletBatch& batch, unsigned int siz
const CPubKey& pubkey = pk_pair.second; const CPubKey& pubkey = pk_pair.second;
if (m_map_pubkeys.count(pubkey) != 0) { if (m_map_pubkeys.count(pubkey) != 0) {
// We don't need to give an error here. // We don't need to give an error here.
// It doesn't matter which of many valid indexes the pubkey has, we just need an index where we can derive it and it's private key // It doesn't matter which of many valid indexes the pubkey has, we just need an index where we can derive it and its private key
continue; continue;
} }
m_map_pubkeys[pubkey] = i; m_map_pubkeys[pubkey] = i;
@@ -1447,7 +1447,7 @@ void DescriptorScriptPubKeyMan::SetCache(const DescriptorCache& cache)
const CPubKey& pubkey = pk_pair.second; const CPubKey& pubkey = pk_pair.second;
if (m_map_pubkeys.count(pubkey) != 0) { if (m_map_pubkeys.count(pubkey) != 0) {
// We don't need to give an error here. // We don't need to give an error here.
// It doesn't matter which of many valid indexes the pubkey has, we just need an index where we can derive it and it's private key // It doesn't matter which of many valid indexes the pubkey has, we just need an index where we can derive it and its private key
continue; continue;
} }
m_map_pubkeys[pubkey] = i; m_map_pubkeys[pubkey] = i;
+1 -1
View File
@@ -1090,7 +1090,7 @@ static util::Result<CreatedTransactionResult> CreateTransactionInternal(
// Get size of spending the change output // Get size of spending the change output
int change_spend_size = CalculateMaximumSignedInputSize(change_prototype_txout, &wallet, /*coin_control=*/nullptr); int change_spend_size = CalculateMaximumSignedInputSize(change_prototype_txout, &wallet, /*coin_control=*/nullptr);
// If the wallet doesn't know how to sign change output, assume p2sh-p2wpkh // If the wallet doesn't know how to sign change output, assume p2sh-p2wpkh
// as lower-bound to allow BnB to do it's thing // as lower-bound to allow BnB to do its thing
if (change_spend_size == -1) { if (change_spend_size == -1) {
coin_selection_params.change_spend_size = DUMMY_NESTED_P2WPKH_INPUT_SIZE; coin_selection_params.change_spend_size = DUMMY_NESTED_P2WPKH_INPUT_SIZE;
} else { } else {
+1 -1
View File
@@ -211,7 +211,7 @@ class MempoolUpdateFromBlockTest(BitcoinTestFramework):
# Last tx fits now # Last tx fits now
self.nodes[0].sendrawtransaction(chain[-1]["hex"]) self.nodes[0].sendrawtransaction(chain[-1]["hex"])
# Finally, reorg to empty chain kick everything back into mempool # Finally, reorg to empty chain to kick everything back into mempool
# at normal chain limits # at normal chain limits
for block in fork_blocks: for block in fork_blocks:
self.nodes[0].submitblock(block.serialize().hex()) self.nodes[0].submitblock(block.serialize().hex())
+1 -1
View File
@@ -105,7 +105,7 @@ class MiningTest(BitcoinTestFramework):
wallet_sigops = MiniWallet(node, mode=MiniWalletMode.RAW_P2PK) wallet_sigops = MiniWallet(node, mode=MiniWalletMode.RAW_P2PK)
self.generate(wallet_sigops, 1, sync_fun=self.no_op) self.generate(wallet_sigops, 1, sync_fun=self.no_op)
# Mature with regular coinbases to prevent inteference with other tests # Mature with regular coinbases to prevent interference with other tests
self.generate(self.wallet, 100, sync_fun=self.no_op) self.generate(self.wallet, 100, sync_fun=self.no_op)
# Generate three transactions that must be mined in sequence # Generate three transactions that must be mined in sequence
+2 -4
View File
@@ -1,15 +1,13 @@
afile afile
amountIn amountIn
asend anc
blockin blockin
bu bu
cachable cachable
clen clen
crypted
debbugs debbugs
deques deques
fo fo
fpr
hashIn hashIn
hights hights
incomin incomin
@@ -18,8 +16,8 @@ lief
mor mor
nd nd
nin nin
ot
outIn outIn
re-use
requestor requestor
ser ser
siz siz