Commit Graph

25369 Commits

Author SHA1 Message Date
Konstantin Akimov
c23c25d00b
test: supress any_of suggestions in cppcheck-dash
even it maybe useful lint message for some particular case, sometimes it asks
to make an refactoring that will be over-complex.

For example, it asks to refactor external loop to std::any_of:
```
for (const auto& inner_entry : vecEntries) {
    if (ranges::any_of(inner_entry.vecTxDSIn,
                    [&txin](const auto& txdsin){
                            return txdsin.prevout == txin.prevout;
                    })) {
        LogPrint(BCLog::COINJOIN, "CCoinJoinServer::%s -- ERROR: already have this txin in entries\n", __func__);
        nMessageIDRet = ERR_ALREADY_HAVE;
        // Two peers sent the same input? Can't really say who is the malicious one here,
        // could be that someone is picking someone else's inputs randomly trying to force
        // collateral consumption. Do not punish.
        return false;
    }
}
```
That's possible to refactor, but that's unreasonable complexity to have an
lambda inside an lambda... That's unreasonable.
Some other suggestion are also non-trivial.

One more suppression for any_of in llmq/commitment which is false-alarm:

There's used index but linter doesn't see it:
```
for (const auto i : irange::range(members.size(), size_t(llmq_params.size))) {
    if (validMembers[i]) {
        LogPrintfFinalCommitment("q[%s] invalid validMembers bitset. bit %d should not be set\n", quorumHash.ToString(), i);
        return false;
    }
    if (signers[i]) {
        LogPrintfFinalCommitment("q[%s] invalid signers bitset. bit %d should not be set\n", quorumHash.ToString(), i);
        return false;
    }
}
```
2024-03-06 03:31:46 +07:00
Konstantin Akimov
7daa9bea9a
refactor: use std::any_of 2024-03-06 03:31:45 +07:00
Konstantin Akimov
3f1cb8d13d
test: add suppression for state.Invalid() which is widely used by cppcheck is unhappy 2024-03-06 03:31:43 +07:00
pasta
27736114a1
Merge #5924: refactor: subsume CGovernanceTriggerManager into CGovernanceManager
a1636d429a refactor: subsume CGovernanceTriggerManager into CGovernanceManager (Kittywhiskers Van Gogh)

Pull request description:

  ## Issue being fixed or feature implemented
  Having a dedicated manager to manipulate one variable, that relies almost exclusively on another manager doesn't make much sense. Rather than converting it into a unique_ptr, creating an alias and deglob'ing it, it's much easier to subsume it into its dependent manager.

  ## What was done?
  See commit

  ## How Has This Been Tested?
  Built locally; kudos @kwvg. Good idea!

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [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 _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 782aa7861e55675c77cd4ce3ebf5fdf8cfc953e535c6c3d5e98373a89611a86f14cdba0757df153b936ddb77b711472ec78c5b1a64fe596c85e6efcd49dec8fa
2024-03-05 13:16:14 -06:00
Kittywhiskers Van Gogh
a1636d429a
refactor: subsume CGovernanceTriggerManager into CGovernanceManager
Having a dedicated manager to manipulate one variable, that relies
almost exclusively on another manager doesn't make much sense. Rather
than converting it into a unique_ptr, creating an alias and deglob'ing
it, it's much easier to subsume it into its dependent manager.
2024-03-05 13:15:59 -06:00
pasta
8459820478
Merge #5854: refactor: move HD code from CWallet to LegacyScriptPubKeyMan
b5f4411d11 fix: extra logs to distinct WriteHDChain for encrypted/raw batches (Konstantin Akimov)
e8f84afd3e refactor: move BIP39 related code to wallet (Konstantin Akimov)
fa6519f320 refactor: move hdchain to wallet/ because it belongs there (Konstantin Akimov)
392b51b197 refactor: obsolete hdCryptedChain from ScriptPubKeyMan (Konstantin Akimov)
a0389e181f refactor: rename EncryptHDChain to EncryptAndSetHDChain (Konstantin Akimov)
b2143f9346 refactor: re-order public and private methods in scriptpubkeyman (Konstantin Akimov)
a219748f5e refactor: make SetHDChain private in ScriptPubKeyManager (Konstantin Akimov)
f418b9ac62 refactor: move Encrypt chain call inside ScriptPubKeyMan::Encrypt (Konstantin Akimov)
c3754d5183 refactor: move DecryptHDChain from public to private (Konstantin Akimov)
e08b64a1bb refactor: unify SetHDChainSingle and SetCryptedHDChainSingle (Konstantin Akimov)
59a998843b refactor: unify ScriptPubKeyMan's SetHDChain nad SetHDCryptedChain (Konstantin Akimov)
a180d73e5c refactor: unify WalletBatch's WriteHDChain and WriteCryptedHDChain (Konstantin Akimov)
9c8e4584ae refactor: unify SetHDChain and SetCryptedHDChain helpers (Konstantin Akimov)
7b72726b3e refactor: SetCryptedHDChain moved to scriptpubkeyman (Konstantin Akimov)
6993d112f3 feat: extra check failure case CWallet::GenerateNewHDChainEncrypted (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  During backport bitcoin#17261 significant part of HD chain has been forgotten in CWallet due to our own implementation.

  This PR do not change behaviour of HD wallets, it's just refactoring.

  ## What was done?
  This PR refactor HD wallets implementation:
   - key related stuff is moved from CWallet to LegacyScriptPubKeyMan (to follow-up bitcoin#17261)
   - refactored duplicated code between hdChain and hdCryptedChain
   - modules hdchain and bip39 related moved to wallet/ module

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

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [ ] 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

Top commit has no ACKs.

Tree-SHA512: 763ea6dd9af902dfc4dd99896c1cb16a75e3c0322e806e37ff05bc9229923057c544732ebf9fca705da870568643370867d3f81a46cab1e9d229b2949016c484
2024-03-05 13:10:56 -06:00
pasta
2441489c1a
Merge #5919: backport: bitcoin#18937, #19390, #19473, #19478, #19489, #19596, #19657, #19727, #19816, partial #18638
4e46e6101c Merge #19478: Remove CTxMempool::mapLinks data structure member (MarcoFalke)
be5662a785 Merge #19596: Deduplicate parent txid loop of requested transactions and missing parents of orphan transactions (Wladimir J. van der Laan)
9c3ecd167e Merge #19473: net: Add -networkactive option (MarcoFalke)
0593c1ffcb Merge #19390: doc/REST-interface: Remove stale info (fanquake)
8368bd795e Merge #19816: test: Rename wait until helper to wait_until_helper (fanquake)
063c9b744d Merge #19727: test: Remove unused classes from p2p_leak.py (fanquake)
941b39d9a9 Merge #18937: refactor: s/command/msg_type/ in CNetMsgMaker and CSerializedNetMsg (MarcoFalke)
a89bd562fd Merge #19657: test: Wait until is_connected in add_p2p_connection (Wladimir J. van der Laan)
a11743f009 Merge #19489: test: Fail wait_until early if connection is lost (MarcoFalke)
ad3f424b4d partial Merge #18638: net: Use mockable time for ping/pong, add tests (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Just regular backports from bitcoin v21

  ## What was done?
   - partial bitcoin/bitcoin#18638
   - bitcoin/bitcoin#19489
   - bitcoin/bitcoin#19657
   - bitcoin/bitcoin#18937
   - bitcoin/bitcoin#19727
   - bitcoin/bitcoin#19816
   - bitcoin/bitcoin#19390
   - bitcoin/bitcoin#19473
   - bitcoin/bitcoin#19596
   - bitcoin/bitcoin#19478

  ## How Has This Been Tested?
  Run unit/functional 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

Top commit has no ACKs.

Tree-SHA512: a656c7f8b39b0220250268e15e2c1d08272cb0253df555559f21ee142ce9ec9d4807ab3aafb0167c4ed79cc3ca73dc9c5aefd279b75b5901e1cc592f4df74bb0
2024-03-05 13:09:22 -06:00
Konstantin Akimov
b5f4411d11
fix: extra logs to distinct WriteHDChain for encrypted/raw batches 2024-03-06 02:04:25 +07:00
Konstantin Akimov
e8f84afd3e
refactor: move BIP39 related code to wallet 2024-03-06 02:04:25 +07:00
Konstantin Akimov
fa6519f320
refactor: move hdchain to wallet/ because it belongs there 2024-03-06 02:04:25 +07:00
Konstantin Akimov
392b51b197
refactor: obsolete hdCryptedChain from ScriptPubKeyMan 2024-03-06 02:04:24 +07:00
Konstantin Akimov
a0389e181f
refactor: rename EncryptHDChain to EncryptAndSetHDChain 2024-03-06 02:04:24 +07:00
Konstantin Akimov
b2143f9346
refactor: re-order public and private methods in scriptpubkeyman 2024-03-06 02:04:24 +07:00
Konstantin Akimov
a219748f5e
refactor: make SetHDChain private in ScriptPubKeyManager 2024-03-06 02:04:23 +07:00
Konstantin Akimov
f418b9ac62
refactor: move Encrypt chain call inside ScriptPubKeyMan::Encrypt 2024-03-06 02:04:23 +07:00
Konstantin Akimov
c3754d5183
refactor: move DecryptHDChain from public to private 2024-03-06 02:04:23 +07:00
Konstantin Akimov
e08b64a1bb
refactor: unify SetHDChainSingle and SetCryptedHDChainSingle 2024-03-06 02:04:22 +07:00
Konstantin Akimov
59a998843b
refactor: unify ScriptPubKeyMan's SetHDChain nad SetHDCryptedChain 2024-03-06 02:04:22 +07:00
Konstantin Akimov
a180d73e5c
refactor: unify WalletBatch's WriteHDChain and WriteCryptedHDChain 2024-03-06 02:04:21 +07:00
Konstantin Akimov
9c8e4584ae
refactor: unify SetHDChain and SetCryptedHDChain helpers 2024-03-06 02:04:21 +07:00
Konstantin Akimov
7b72726b3e
refactor: SetCryptedHDChain moved to scriptpubkeyman 2024-03-06 02:04:21 +07:00
Konstantin Akimov
6993d112f3
feat: extra check failure case CWallet::GenerateNewHDChainEncrypted
To unify code with GenerateNewHDChain
2024-03-06 02:04:20 +07:00
MarcoFalke
4e46e6101c
Merge #19478: Remove CTxMempool::mapLinks data structure member
296be8f58e02b39a58f017c52294aceed22c3ffd Get rid of unused functions CTxMemPool::GetMemPoolChildren, CTxMemPool::GetMemPoolParents (Jeremy Rubin)
46d955d196043cc297834baeebce31ff778dff80 Remove mapLinks in favor of entry inlined structs with iterator type erasure (Jeremy Rubin)

Pull request description:

  Currently we have a peculiar data structure in the mempool called maplinks. Maplinks job is to track the in-pool children and parents of each transaction. This PR can be primarily understood and reviewed as a simple refactoring to remove this extra data structure, although it comes with a nice memory and performance improvement for free.

  Maplinks is particularly peculiar because removing it is not as simple as just moving it's inner structure to the owning CTxMempoolEntry. Because TxLinks (the class storing the setEntries for parents and children) store txiters to each entry in the mempool corresponding to the parent or child, it means that the TxLinks type is "aware" of the boost multiindex (mapTx) it's coming from, which is in turn, aware of the entry type stored in mapTx. Thus we used maplinks to store this entry associated data we in an entirely separate data structure just to avoid a circular type reference caused by storing a txiter inside a CTxMempoolEntry.

  It turns out, we can kill this circular reference by making use of iterator_to multiindex function and std::reference_wrapper. This allows us to get rid of the maplinks data structure and move the ownership of the parents/child sets to the entries themselves.

  The benefit of this good all around, for any of the reasons given below the change would be acceptable, and it doesn't make the code harder to reason about or worse in any respect (as far as I can tell, there's no tradeoff).

  ### Simpler ownership model
  No longer having to consistency check that mapLinks did have records for our CTxMempoolEntry, impossible to have a mapLinks entry outlive or incorrectly die before a CTxMempoolEntry.

  ### Memory Usage
  We get rid of a O(Transactions) sized map in the mempool, which is a long lived data structure.

  ### Performance
  If you have a CTxMemPoolEntry, you immediately know the address of it's children/parents, rather than having to do a O(log(Transactions)) lookup via maplinks (which we do very often). We do it in *so many* places that a true benchmark has to look at a full running node, but it is easy enough to show an improvement in this case.

  The ComplexMemPool shows a good coherence check that we see the expected result of it being 12.5% faster / 1.14x faster.
  ```
  Before:
  # Benchmark, evals, iterations, total, min, max, median
  ComplexMemPool, 5, 1, 1.40462, 0.277222, 0.285339, 0.279793

  After:
  # Benchmark, evals, iterations, total, min, max, median
  ComplexMemPool, 5, 1, 1.22586, 0.243831, 0.247076, 0.244596
  ```
  The ComplexMemPool benchmark only checks doing addUnchecked and TrimToSize for 800 transactions. While this bench does a good job of hammering the relevant types of function, it doesn't test everything.

  Subbing in 5000 transactions shows a that the advantage isn't completely wiped out by other asymptotic factors (this isn't the only bottleneck in growing the mempool), but it's only a bit proportionally slower (10.8%, 1.12x), which adds evidence that this will be a good change for performance minded users.

  ```
  # Benchmark, evals, iterations, total, min, max, median
  ComplexMemPool, 5, 1, 59.1321, 11.5919, 12.235, 11.7068

  # Benchmark, evals, iterations, total, min, max, median
  ComplexMemPool, 5, 1, 52.1307, 10.2641, 10.5206, 10.4306
  ```
  I don't think it's possible to come up with an example of where a maplinks based design would have better performance, but it's something for reviewers to consider.

  # Discussion
  ## Why maplinks in the first place?

  I spoke with the author of mapLinks (sdaftuar) a while back, and my recollection from our conversation was that it was implemented because he did not know how to resolve the circular dependency at the time, and there was no other reason for making it a separate map.

  ## Is iterator_to weird?

  iterator_to is expressly for this purpose, see https://www.boost.org/doc/libs/1_51_0/libs/multi_index/doc/tutorial/indices.html#iterator_to

  >  iterator_to provides a way to retrieve an iterator to an element from a pointer to the element, thus making iterators and pointers interchangeable for the purposes of element pointing (not so for traversal) in many situations. This notwithstanding, it is not the aim of iterator_to to promote the usage of pointers as substitutes for real iterators: the latter are specifically designed for handling the elements of a container, and not only benefit from the iterator orientation of container interfaces, but are also capable of exposing many more programming bugs than raw pointers, both at compile and run time. iterator_to is thus meant to be used in scenarios where access via iterators is not suitable or desireable:
  >
  >     - Interoperability with preexisting APIs based on pointers or references.
  >     - Publication of pointer-based interfaces (for instance, when designing a C-compatible library).
  >     - The exposure of pointers in place of iterators can act as a type erasure barrier effectively decoupling the user of the code from the implementation detail of which particular container is being used. Similar techniques, like the famous Pimpl idiom, are used in large projects to reduce dependencies and build times.
  >     - Self-referencing contexts where an element acts upon its owner container and no iterator to itself is available.

  In other words, iterator_to is the perfect tool for the job by the last reason given. Under the hood it should just be a simple pointer cast and have no major runtime overhead (depending on if the function call is inlined).

  Edit by laanwj: removed at sign from the description

ACKs for top commit:
  jonatack:
    re-ACK 296be8f per `git range-diff ab338a19 3ba1665 296be8f`, sanity check gcc 10.2 debug build is clean.
  hebasto:
    re-ACK 296be8f58e02b39a58f017c52294aceed22c3ffd, only rebased since my [previous](https://github.com/bitcoin/bitcoin/pull/19478#pullrequestreview-482400727) review (verified with `git range-diff`).

Tree-SHA512: f5c30a4936fcde6ae32a02823c303b3568a747c2681d11f87df88a149f984a6d3b4c81f391859afbeb68864ef7f6a3d8779f74a58e3de701b3d51f78e498682e
2024-03-06 02:00:40 +07:00
Wladimir J. van der Laan
be5662a785
Merge #19596: Deduplicate parent txid loop of requested transactions and missing parents of orphan transactions
4c0731f9c50b0556f8a57b912c8f295c7a9ea89c Deduplicate missing parents of orphan transactions (Suhas Daftuar)
81961762439fb72fc2ef168164689ddc29d7ef94 Rewrite parent txid loop of requested transactions (Suhas Daftuar)

Pull request description:

  I noticed a couple of places recently where we loop over all inputs of a transaction in order to do some processing on the txids we find in those inputs.  There may be thousands of inputs in a transaction, and the same txid may appear many times.  In a couple of places in particular, we loop over those txids and add them to a rolling bloom filter; doing that multiple times for the same txid wastes entries in that filter.

  This PR fixes that in two places relating to transaction relay: one on the server side, where we look for parent transactions of a tx that we are delivering to a peer to ensure that getdata requests for those parents will succeed; and the other on the client side, where when we process an orphan tx we want to loop over the parent txids and ensure that all are eventually requested from the peer who provided the orphan.

  This addresses a couple of [related](https://github.com/bitcoin/bitcoin/pull/19109#discussion_r455197217) [comments](https://github.com/bitcoin/bitcoin/pull/19109#discussion_r456820373) left in #19109.

ACKs for top commit:
  laanwj:
    Code review ACK 4c0731f9c50b0556f8a57b912c8f295c7a9ea89c
  jonatack:
    ACK 4c0731f9c50b0556f8a57b912c8f295c7a9ea89c
  ajtowns:
    ACK 4c0731f9c50b0556f8a57b912c8f295c7a9ea89c

Tree-SHA512: 8af9df7f56c6e54b5915519d7d5465e081473ceb1bcc89bbebf83e78722cf51ff58145e588cf57126bce17071a8053273f4bcef0ad8166bec83ba14352e40f5d
2024-03-06 02:00:40 +07:00
MarcoFalke
9c3ecd167e
Merge #19473: net: Add -networkactive option
2aac093a3d60e446b85eebdf170ea6bed77bec92 test: Add test coverage for -networkactive option (Hennadii Stepanov)
3c58129b1293742a49aa196cb210ff345a7339e6 net: Log network activity status change unconditionally (Hennadii Stepanov)
62fe6aa87e4cdd8b06207abc1387c68d7bfc04c1 net: Add -networkactive option (Hennadii Stepanov)

Pull request description:

  Some Bitcoin Core activity is completely local (offline), e.g., reindexing.

  The `setnetworkactive` RPC command is already present. This PR adds the corresponding command-line argument / config option, and allows to start the client with disabled p2p network by providing `-networkactive=0` or `-nonetworkactive`.

  This was done while reviewing #16981.

ACKs for top commit:
  MarcoFalke:
    re-ACK 2aac093a3d60e446b85eebdf170ea6bed77bec92 🏠
  LarryRuane:
    ACK 2aac093a3d60e446b85eebdf170ea6bed77bec92

Tree-SHA512: 446d791b46d7b556d7694df7b1f88cd4fbc09301fe4eaf036b45cb8166ed806156353cc03788a07b633d5887d5eee30a7c02a2d4307141c8ccc75e0a88145636
2024-03-06 02:00:39 +07:00
fanquake
0593c1ffcb
Merge #19390: doc/REST-interface: Remove stale info
fd9c213c6e42cedd8a03c2f721ff46790cded76b doc/REST-interface: Remove stale info (Luke Dashjr)

Pull request description:

  Clean merge to 0.19+

ACKs for top commit:
  fanquake:
    ACK fd9c213c6e42cedd8a03c2f721ff46790cded76b
  MarcoFalke:
    ACK fd9c213c6e42cedd8a03c2f721ff46790cded76b

Tree-SHA512: ac3ffaa72226380ed8b8ab505518d0dc4350bfcc4625dfd27a2350fbb972a8d2bb4255307926eb331c49232023bcb283a659f0d87e4ecbf654982341242f7d36
2024-03-06 02:00:39 +07:00
fanquake
8368bd795e
Merge #19816: test: Rename wait until helper to wait_until_helper
fa1cd9e1ddc6918c3d600d36eadea71eebb242b6 test: Remove unused lock arg from BitcoinTestFramework.wait_until (MarcoFalke)
fad2794e93b4f5976e81793a4a63aa03a2c8c686 test: Rename wait until helper to wait_until_helper (MarcoFalke)
facb41bf1d1b7ee552c627f9829b4494b817ce28 test: Remove unused p2p_lock in VersionBitsWarningTest (MarcoFalke)

Pull request description:

  This avoids confusion with the `wait_until` member functions, which should be preferred because they take the appropriate locks and scale the timeout appropriately on their own.

ACKs for top commit:
  laanwj:
    Code review ACK fa1cd9e1ddc6918c3d600d36eadea71eebb242b6
  hebasto:
    ACK fa1cd9e1ddc6918c3d600d36eadea71eebb242b6, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 319d400085606a4c738e314824037f72998e6657d8622b363726842aba968744f23c56d27275dfe506b8cbbb6e97fc39ca1d325db05d4d67df0e8b35f2244d5c
2024-03-06 02:00:39 +07:00
fanquake
063c9b744d
Merge #19727: test: Remove unused classes from p2p_leak.py
ed5cd12869e0691a785199d2d977ce5879095180 test: Distinguish between nodes(bitcoind) and peers(mininodes) in p2p_leak.py (Dhruv Mehta)
f6f082b9343522bc8005f23937ac6ecf56548c98 test: remove `CNodeNoVersionIdle` from p2p_leak.py (Dhruv Mehta)
45cf55ccac94689e48dd0648ed2401918a778024 test: remove `CNodeNoVersionMisbehavior` from p2p_leak.py (Dhruv Mehta)

Pull request description:

  - Removes `CNodeNoVersionMisbehavior` per recommendation at https://github.com/bitcoin/bitcoin/pull/19657#issuecomment-669926458
  - Removes `CNodeNoVersionIdle` because it is similarly unnecessary
  - As someone new to the codebase, I found it easier to understand it if `no_version_disconnect_node` tries to overwhelm the peer with any message that is not version/verack.
  - Per recommendation at https://github.com/bitcoin/bitcoin/pull/19727#pullrequestreview-468093555, made a clear distinction between nodes(bitcoind) and peers(mininode interface implementations)

ACKs for top commit:
  jnewbery:
    tested ACK ed5cd12869e0691a785199d2d977ce5879095180
  amitiuttarwar:
    utACK ed5cd12869

Tree-SHA512: 310a24c91fd837e7f65177edb55fe6142fb3559fae7867c5cdd9c9a23b1a02202b935ca9a82633fa7649f3de2fa221f6da906a7b5e499fc20f7254085033757d
2024-03-06 02:00:38 +07:00
MarcoFalke
941b39d9a9
Merge #18937: refactor: s/command/msg_type/ in CNetMsgMaker and CSerializedNetMsg
51e9393c1f6c9eaac554f821f5327f63bd09c8cf refactor: s/command/msg_type/ in CNetMsgMaker and CSerializedNetMsg (Sebastian Falbesoner)

Pull request description:

  Follow-up PR for #18533 -- another small step towards getting rid of the confusing "command" terminology. Also see PR #18610 which tackled the functional tests.

ACKs for top commit:
  MarcoFalke:
    ACK 51e9393c1f6c9eaac554f821f5327f63bd09c8cf

Tree-SHA512: bb6f05a7be6823d5c4eab1d05b31fee944e700946827ad9425d59a3957fd879776c88c606319cbe9832d9451b275baedf913b71429ea3e01e4e82bf2d419e819
2024-03-06 02:00:38 +07:00
Wladimir J. van der Laan
a89bd562fd
Merge #19657: test: Wait until is_connected in add_p2p_connection
fa4dfd215f62e88d668311701735c332c264fa2a test: Wait until is_connected in add_p2p_connection (MarcoFalke)

Pull request description:

  Moving the wait_until from the individual test scripts to the test framework simplifies two tests

ACKs for top commit:
  jnewbery:
    Code review ACK fa4dfd215f62e88d668311701735c332c264fa2a
  theStack:
    ACK fa4dfd215f 

Tree-SHA512: 36eda7eb323614a4c4f9215f1d7b40b9f9c4036d1c08eb701ea705f3e2986fdabd2fc558965a6aadabeed861034aeaeef3c00f968ca17ed7a27e42e506cda87d
2024-03-06 02:00:38 +07:00
MarcoFalke
a11743f009
Merge #19489: test: Fail wait_until early if connection is lost
faa9a74c9e99eb43ba0d27fa906767ee88011aeb test: Fail wait_until early if connection is lost (MarcoFalke)

Pull request description:

  Calling `minonode.wait_until` needs a connection to make progress (e.g. waiting for an inv), unless the mininode waits for the initial connection or for a disconnection. So for test development and failure debugging, fail early in all `wait_until`, unless opted out.

ACKs for top commit:
  jnewbery:
    Code review ACK faa9a74c9e99eb43ba0d27fa906767ee88011aeb.

Tree-SHA512: 4be850b96e23b87bc2ff42c028a5045d6f5cdbc9482ce6a6ba01cc5eb26710dab9e2ed547c363aac4bd5825151ee9996fb797261420b631bceeddbfa698d1dec
2024-03-06 02:00:37 +07:00
MarcoFalke
ad3f424b4d
partial Merge #18638: net: Use mockable time for ping/pong, add tests
fa3365430c5fb57d7c0b5f2bce9fbbe290be93c3 net: Use mockable time for ping/pong, add tests (MarcoFalke)
faab4aaf2fa1153c6d76efc8113fa01b06943ece util: Add count_microseconds helper (MarcoFalke)

Pull request description:

  Switch `CNode::m_ping_start` and `CNetMessage::m_time` to mockable time, so that tests can be added.

  Mockable time is also type-safe, since it uses `std::chrono`

ACKs for top commit:
  jonatack:
    Code review re-ACK fa33654 re-read code, verified rebase per `git range-diff 4b5c919 fa94d6f fa33654`, previous tested ACKs still valid
  troygiorshev:
    ACK fa3365430c5fb57d7c0b5f2bce9fbbe290be93c3

Tree-SHA512: 7d632bd6019ce7c882029e71b667a61517e783af82755a85dd979ef09380934e172dec8b8f91d57b200a30a6e096aeaf01f19fee7f3aed0e0e871c72eb44d70e
2024-03-06 02:00:30 +07:00
pasta
2616454c22
Merge #5925: chore: merge master back into develop
0737d7e8db chore: set IS_RELEASE to true (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  No-diff merge master back into develop

  ## What was done?
  `git checkout develop && git merge master --no-commit` then `git reset` to suppress changes and finally `git commit -m "Merge branch 'master' into develop" --allow-empty`

  ## How Has This Been Tested?

  ## Breaking Changes

  ## 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

Top commit has no ACKs.

Tree-SHA512: 8f80bee5d42ee9adc8de2091f2ab6095d4c7cca1e98e856731be5e11c01507fbb944dcb22fa8a19462be11e3f20e19df36784258fb472d9063bc06829d5fb392
2024-03-05 12:40:22 -06:00
pasta
5b03156f36
Merge branch 'master' into develop 2024-03-05 12:15:23 -06:00
pasta
47a8f75c16
Merge #5922: chore: bump version to v21.0.0; allow breaking changes from here out
ef8c951eb0 chore: bump version to v21.0.0; allow breaking changes from here out (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Now that v20.1 has been branched; bump to v21; allow us to start merging in breaking changes

  ## What was done?
  Bumped version

  ## How Has This Been Tested?

  ## Breaking Changes

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [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 _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 8f80bee5d42ee9adc8de2091f2ab6095d4c7cca1e98e856731be5e11c01507fbb944dcb22fa8a19462be11e3f20e19df36784258fb472d9063bc06829d5fb392
2024-03-05 12:09:39 -06:00
pasta
ef8c951eb0
chore: bump version to v21.0.0; allow breaking changes from here out 2024-03-05 12:09:15 -06:00
pasta
f41a113263
Merge #5916: backport: trivial 2024 03 01
2018b459cc Merge bitcoin-core/gui#683: doc: Drop no longer relevant comment (Hennadii Stepanov)
5d666eba1b Merge bitcoin/bitcoin#25548: gui: Check for readlink buffer overflow and handle gracefully (fanquake)
76b31fcf60 Merge bitcoin/bitcoin#26377: test: Make `system_tests/run_command` test locale and platform agnostic (MacroFake)
462498a365 Merge bitcoin/bitcoin#26394: Fix typo in comment SHA256->SHA512 (glozow)
e308de0dac Merge bitcoin/bitcoin#26206: test: check importing wallets when blocks are pruned throw an error (MacroFake)
d509165193 Merge bitcoin/bitcoin#24467: doc: minor improvements in getutxos REST endpoint synopsis (fanquake)
c70aa4218e Merge bitcoin/bitcoin#26188: test: silence TSAN false positive in coinstatsindex_initial_sync (fanquake)
1c66022e18 Merge bitcoin/bitcoin#25322: build: Fix `capnp` package build for Android (fanquake)
ee44732376 Merge bitcoin/bitcoin#26284: Fix comment typos (MacroFake)
f9b526bd31 Merge bitcoin/bitcoin#26209: Update leveldb subtree (fanquake)
233429a784 Merge bitcoin/bitcoin#24084: doc: add information about status code 404 for some endpoints (rest) (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  Trivial backports

  ## What was done?
    _Describe your changes in detail_

  ## How Has This Been Tested?
  Haven't; waiting for CI

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

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

Top commit has no ACKs.

Tree-SHA512: 8a8cea121fe4f89dc72176f15aee728f913e7d6dba01182e6da7568bda775ed6005346cb481478a62880b39caff82b6e242d0282ff95eb73cfad21c7c7c4f445
2024-03-05 10:48:00 -06:00
Hennadii Stepanov
2018b459cc
Merge bitcoin-core/gui#683: doc: Drop no longer relevant comment
5d332da2cfdc67d69a165119c6ff598e29b28afa doc: Drop no longer relevant comment (Hennadii Stepanov)

Pull request description:

  The comment was introduced in 4cf3411056, and since 7e4bd19785ff9120b7242ff9f15231868aaf7db4 it has been no longer relevant.

ACKs for top commit:
  jarolrod:
    ACK 5d332da2cfdc67d69a165119c6ff598e29b28afa

Tree-SHA512: 6d32561336993b1ff7d7c524d090ac52aefb40078ed706ca4c6d5026cc3f63244c49c0e00e45ff192ba0e9f1527faf63249aa18bc8aa677b9e053d387e0f4027
2024-03-05 10:40:38 -06:00
fanquake
5d666eba1b
Merge bitcoin/bitcoin#25548: gui: Check for readlink buffer overflow and handle gracefully
e049fd76f0d57c1e6400fbfbaf4cc6ebe540f16f Bugfix: Check for readlink buffer overflow and handle gracefully (Luke Dashjr)

Pull request description:

  If readlink returns the size of the buffer, an overflow may have (safely) occurred.
  Pass a buffer size of MAX_PATH+1 (the size of the actual buffer) to detect this scenario.

ACKs for top commit:
  hebasto:
    ACK e049fd76f0d57c1e6400fbfbaf4cc6ebe540f16f.

Tree-SHA512: 188bace79cbe556efe7782e46b870c02729b07b104a9316b0f7d50013504972e85baf507403d2d6060bb2bf3e13f40d735bddd18255d97a60810208c3de87691
2024-03-05 10:40:38 -06:00
MacroFake
76b31fcf60
Merge bitcoin/bitcoin#26377: test: Make system_tests/run_command test locale and platform agnostic
884304e6c6a250719a64752fe52d1283cd5e36ab test: Make `system_tests/run_command` locale agnostic (Hennadii Stepanov)

Pull request description:

  Fixes bitcoin/bitcoin#26368.

ACKs for top commit:
  Sjors:
    tACK 884304e6c6a250719a64752fe52d1283cd5e36ab

Tree-SHA512: 76d4941e02b3b119dcf4dacbe60ef45a9dc8cf775bdb31b5291cd8147665285d41caaf1f5688abdfc9a47c393ddb535af7b11af839660d30ef30f1ca0d936133
2024-03-05 10:40:38 -06:00
glozow
462498a365
Merge bitcoin/bitcoin#26394: Fix typo in comment SHA256->SHA512
0cc23fc60374512b3c4be888d98a7dbdd3a0c931 Fix typo in comment SHA256->SHA512 (Elichai Turkel)

Pull request description:

  The comment says it's the SHA-256 state, while it's actually the SHA-512 state

ACKs for top commit:
  andrewtoth:
    ACK 0cc23fc60374512b3c4be888d98a7dbdd3a0c931
  aureleoules:
    ACK 0cc23fc60374512b3c4be888d98a7dbdd3a0c931

Tree-SHA512: 4e390ceefb847d3bbe4f5caab390a4fdd14892fe443f58c32b08b3444fccd611cff22938c3dfa611dfd2497736f779fae4165497b4208e48aa8fc9d2236f943b
2024-03-05 10:40:37 -06:00
MacroFake
e308de0dac
Merge bitcoin/bitcoin#26206: test: check importing wallets when blocks are pruned throw an error
4aff7a48a4e0f1075306f181a276b8a74c857022 test: check importing wallets when blocks are pruned throw an error (brunoerg)

Pull request description:

  This PR adds test coverage for the following error:
  437b608df2/src/wallet/rpc/backup.cpp (L513-L518)

ACKs for top commit:
  andrewtoth:
    ACK 4aff7a48a4e0f1075306f181a276b8a74c857022

Tree-SHA512: fbbf6056cb3759f726b8a5ff25fca51bf47e973e5d655ec164e2bec88e2dbd3b243677869d2cf33af268ea635ca0f2e9f737c4734077fc5a936ac3a24ad4b88b
2024-03-05 10:40:37 -06:00
fanquake
d509165193
Merge bitcoin/bitcoin#24467: doc: minor improvements in getutxos REST endpoint synopsis
c456302d4258e3abc4b8afde20fba808632771b2 doc: minor improvements in getutxos REST endpoint synopsis (Sebastian Falbesoner)

Pull request description:

  Describing an optional sub-path as `<checkmempool>` in the synopsis could be misleading as the angle brackets normally indicate that the field has to be replaced a custom value. Clarify that by showing two variants instead, similar to the `block` endpoint with the `notxdetails` option:
  ```
  #### Blocks
  `GET /rest/block/<BLOCK-HASH>.<bin|hex|json>`
  `GET /rest/block/notxdetails/<BLOCK-HASH>.<bin|hex|json>`
  ```

  Further improvements:
  - uppercase `<TXID>` and `<N>`, to match the description of the other endpoints
  - s/getutxo command/getutxos endpoint/
  - describe what the `checkmempool` option does
  - s/serialisation/serialization/ (the US spelling is more dominant than the UK spelling in the project, and there is indeed no other instance of the string "serialis*" in the source tree, except once in a release note)
  - link to BIP64 within the text instead of only showing bare URL
  - mention that BIP64 is only relevant for `bin` and `hex` output formats
  - show two endpoint formats of the block section as list

ACKs for top commit:
  stickies-v:
    ACK c456302d4258e3abc4b8afde20fba808632771b2 - also checked that current master (cc12b8947) doesn't have any other lines changes that would require updates as per the outlined improvement points.

Tree-SHA512: b025aac0812397f5fbf78c805c13aeb5afa6862a049d13c0b101178799cdaff1ccd3abc368a5c103ea6ebf17cdff76584c54638d0f8d303d81ade2d71443d305
2024-03-05 10:40:37 -06:00
fanquake
c70aa4218e
Merge bitcoin/bitcoin#26188: test: silence TSAN false positive in coinstatsindex_initial_sync
861cb3fadce88cfaee27088185a48f03fb9dafe7 test: move SyncWithValidationInterfaceQueue() before Stop() in txindex_tests (Vasil Dimov)
6526dc3b78d9ca2b5c67564b04dcacbc75b857e1 test: silence TSAN false positive in coinstatsindex_initial_sync (Vasil Dimov)

Pull request description:

  Silence false positives from TSAN about unsynchronized calls to `BaseIndex::~BaseIndex()` and `BaseIndex::SetBestBlockIndex()`. They are synchronized, but beyond the comprehension of TSAN - by `SyncWithValidationInterfaceQueue()`, called from `BaseIndex::BlockUntilSyncedToCurrentChain()`.

  Fixes https://github.com/bitcoin/bitcoin/issues/25365

ACKs for top commit:
  MarcoFalke:
    review ACK 861cb3fadce88cfaee27088185a48f03fb9dafe7
  ryanofsky:
    Code review ACK 861cb3fadce88cfaee27088185a48f03fb9dafe7. Just comment change since last review.

Tree-SHA512: 8c30fdf2fd11d54e9adfa68a67185ab820bd7bd9f7f3ad6456e7e6d219fa9cf6d34b41e98e723eae86cb0c1baef7f3fc57b1b011a13dc3fe3d78334b9b5596de
2024-03-05 10:40:37 -06:00
fanquake
1c66022e18
Merge bitcoin/bitcoin#25322: build: Fix capnp package build for Android
8b8edc25c13a3e613770bf38b21a2556192e6315 build: Specify native binaries explicitly when building `capnp` package (Hennadii Stepanov)
a413595c37f51557f9506e0a279cd80fc9a6fb36 build: Fix `capnp` package build for Android (Hennadii Stepanov)

Pull request description:

  On master (e3c08eb620a2f317fc09fdf20969fa26f02afb91):
  ```
  $ make -C depends capnp MULTIPROCESS=1 HOST=aarch64-linux-android ANDROID_SDK=$ANDROID_HOME ANDROID_NDK=$ANDROID_HOME/ndk/23.2.8568313 ANDROID_API_LEVEL=28 ANDROID_TOOLCHAIN_BIN=$ANDROID_HOME/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin
  ...
  ld: error: unable to find library -lkj
  ...
  ```

  This PR fixes this error, and also improves configuring according to the docs.

ACKs for top commit:
  ryanofsky:
    Code review ACK 8b8edc25c13a3e613770bf38b21a2556192e6315. I'd be a little curious to know what causes the error and how `--disable-shared` fixes it, but these changes all look good

Tree-SHA512: 1b07b75f2a83932d8dc1f007e42a67d8327bd5fe4566f554dab4599e2a1e04b0144648790a1fd2ab1c295dba728586035aa0ebdbe5cf49df048ec87736895aaf
2024-03-05 10:40:36 -06:00
MacroFake
ee44732376
Merge bitcoin/bitcoin#26284: Fix comment typos
adb1714426365fb72f73097610ba217ac94ea560 Fix comment typos in scriptpubkeyman.cpp, wallet.cpp, wallet.h (Dimitris Tsapakidis)

Pull request description:

  Fixes a number of comment typos found in the code.

Top commit has no ACKs.

Tree-SHA512: c2c996b66d33ecf0ee734b76303a0f2444e184d2f3ff6931768712ca51011ad51e54336c33a2ff55133766d20ae6adcbb14ddc754dde58b1fe9167d68f54fec5
2024-03-05 10:40:36 -06:00
fanquake
f9b526bd31
Merge bitcoin/bitcoin#26209: Update leveldb subtree
1a463c70a368fb20316e03efac273438cf47baa3 Squashed 'src/leveldb/' changes from 22f1e4a02f..e2f10b4e47 (fanquake)

Pull request description:

  Pulls in https://github.com/bitcoin-core/leveldb-subtree/pull/34: win32: fix -Wmissing-field-initializers warnings
  Related to #26090, #25972.

  Guix Build:
  ```bash
  a8c49e700309e9268ad0a503e7813775f58daf37813501775ae5831eab0cf26a  guix-build-13601da17e7a/output/aarch64-linux-gnu/SHA256SUMS.part
  3a1722403f8daf8ea152c72004fb1021f8a7241ee7f51fb0e6adeeb50881f001  guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu-debug.tar.gz
  3b7c1f2361ef4832c305ff4b0d9eb7419f787f8cf537952d7c20be549debe0af  guix-build-13601da17e7a/output/aarch64-linux-gnu/bitcoin-13601da17e7a-aarch64-linux-gnu.tar.gz
  329cb5bc932621785a6aeca43af307279c47d87a4983ee3d59636f8e3dc27afa  guix-build-13601da17e7a/output/arm-linux-gnueabihf/SHA256SUMS.part
  4030f344c4c31cc0877c11d3b89f6ea93f930a4ae7e7976d49ad5123cc31a367  guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf-debug.tar.gz
  ab50945c416b256b4c92ea0a50c0b7ec241e4c1f5803a4e7cb4ba83a6c5db888  guix-build-13601da17e7a/output/arm-linux-gnueabihf/bitcoin-13601da17e7a-arm-linux-gnueabihf.tar.gz
  604557cc73c4065697255c6971547a46cd0d6ad1cdf74261d4c73d002abe8c46  guix-build-13601da17e7a/output/arm64-apple-darwin/SHA256SUMS.part
  11e781c64fab7933df4a9b4f56357ad18dd8f149b3c9195bf2d310b58355851d  guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.dmg
  e3fe9e278310f3dc97f463bb8cf2b930b587dba5095e18a7f38c4ef76338daad  guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin-unsigned.tar.gz
  00828a9bfd74013a439b7f0254bd72904b99ff1e3a9503ef6307ee57de81c5eb  guix-build-13601da17e7a/output/arm64-apple-darwin/bitcoin-13601da17e7a-arm64-apple-darwin.tar.gz
  d80032d2509a982dc81790b3ef3cd8d44551b41047082ebc506f01bbb8830de1  guix-build-13601da17e7a/output/dist-archive/bitcoin-13601da17e7a.tar.gz
  61655cdf7c081c43275da57e5b42c21e33d7864378f3784652969ffdf7c3c2b2  guix-build-13601da17e7a/output/powerpc64-linux-gnu/SHA256SUMS.part
  3d213e2f25ca72dc0c3d372c0ad3f6803865825a233b29dd80b5cff3e3963621  guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu-debug.tar.gz
  ef8cad747428b6b46c5d2c598fb7896b320a5321cf9a0c9dba2209c638bfbc7b  guix-build-13601da17e7a/output/powerpc64-linux-gnu/bitcoin-13601da17e7a-powerpc64-linux-gnu.tar.gz
  2302e022394ca46570c70bc5977f35bbed258bfbb19c2c6d80f1982a725c9e35  guix-build-13601da17e7a/output/powerpc64le-linux-gnu/SHA256SUMS.part
  5ca3104b7d546c7d905f82dfd92b5350af754e3973b533adc50c6cbde8f59f96  guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu-debug.tar.gz
  2781824d8d08f8ac6663925db8b2d1b50b80165e67ed69df86580438284f0c3b  guix-build-13601da17e7a/output/powerpc64le-linux-gnu/bitcoin-13601da17e7a-powerpc64le-linux-gnu.tar.gz
  24a73f91c5ab9e72f2471cd7b31482c702a3de8dade9aff6b76af34253748cec  guix-build-13601da17e7a/output/riscv64-linux-gnu/SHA256SUMS.part
  b09658af4bd24eb5e76bacbfc7f8750a8941f117511b5c55a44ef1beffec8367  guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu-debug.tar.gz
  56bde3f3df115dbf801944e4f923a08752fd05cda0bbf0e0e3c915387f98e4a8  guix-build-13601da17e7a/output/riscv64-linux-gnu/bitcoin-13601da17e7a-riscv64-linux-gnu.tar.gz
  ca9a5acb332fb2ffda42e44d84b58e273a769e94f0abaaa0623ed1d1c5267dde  guix-build-13601da17e7a/output/x86_64-apple-darwin/SHA256SUMS.part
  ccae805bca5d4075d1bccbaeca7ac40bb4dac0a97f4fd4c3c80b2d6134d6acb0  guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.dmg
  b12c9682b69b3662150abd6680bb60f9fef656a1fdc3cd21951c2da571be40cc  guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin-unsigned.tar.gz
  fd3378e4d60f0ef3ae1b18f526e96ed9e838df4def021de332dd0b6cd20ed0c4  guix-build-13601da17e7a/output/x86_64-apple-darwin/bitcoin-13601da17e7a-x86_64-apple-darwin.tar.gz
  47c7af42153850a94d70de6489389f6faf8772d6adc88269705a12e6b894e84e  guix-build-13601da17e7a/output/x86_64-linux-gnu/SHA256SUMS.part
  876898d116041680ea6fa3bbce1becb05e45ea5bdbaf973a1465fde4bd2df26d  guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu-debug.tar.gz
  56671e22f25ba695c7315de916c6a2d1b57d5f00982b331c68a43912ac3ebc44  guix-build-13601da17e7a/output/x86_64-linux-gnu/bitcoin-13601da17e7a-x86_64-linux-gnu.tar.gz
  f5b9b7d83ad34b7b6c3cb98b9d7878795a1f6fb7b422ffb02b23266beb76d3a6  guix-build-13601da17e7a/output/x86_64-w64-mingw32/SHA256SUMS.part
  a72cfb4ce41cad3bb24df2e4bb318edd05370e12fc31f9ba21637b3fd412dccd  guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-debug.zip
  4b175eac7355715884be279dd4595665912b62815f1d0186ca9874cb9e6424cb  guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-setup-unsigned.exe
  c45d927f0adedc3eb0a01cee0f9fa734c17d9e9a6692b0f416a3830c007b52cc  guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64-unsigned.tar.gz
  360a5b8806c72dbfcfed616d5cec78606461d664e21fb28a44bd473a2b7c9326  guix-build-13601da17e7a/output/x86_64-w64-mingw32/bitcoin-13601da17e7a-win64.zip
  ```

ACKs for top commit:
  hebasto:
    ACK 13601da17e7af08133861a86c295356c173b5bf5, I have reviewed the code and it looks OK, I agree it can be merged.
  theuni:
    ACK 13601da17e7af08133861a86c295356c173b5bf5

Tree-SHA512: 1450618714a456d8969fa5bfc3ed700452e0737213af50656a0a1e0764e6063390fb528eb1889d8bf1e02e451f601f0a5bc63a02ac34ef10aeb7dc80fe41acd1
2024-03-05 10:40:36 -06:00
fanquake
233429a784
Merge bitcoin/bitcoin#24084: doc: add information about status code 404 for some endpoints (rest)
0811cbfc2868ee80c522fd426f188f10b06cd421 doc: add info about status code 404 for some rest endpoints (brunoerg)

Pull request description:

  This PR adds an explanation about status code 404 for 2 endpoints (`/rest/tx/ `and `/rest/blockhashbyheight/`) in`REST-interface.md`. There are other endpoints that already cover it.

ACKs for top commit:
  [deleted]:
    reACK 0811cbfc28
  shaavan:
    ACK 0811cbfc2868ee80c522fd426f188f10b06cd421

Tree-SHA512: a01ac6653f706b7a7e4a4679a2b81e448381f31460ac4bcfc179af6186401cffae7b49a82f3a52c89e556acd5c16c159ce752c7a678177900ddf2e4e5c72fe6b
2024-03-05 10:40:33 -06:00
pasta
a56b95b1fb
Merge #5917: refactor: various minor refactors
a1ff8d3e54 refactor: add const (PastaPastaPasta)
521fefb98a refactor: simplify if block (PastaPastaPasta)
66351aaaf9 refactor: use try_emplace over emplace (pasta)
b6907d2bea refactor: additional if-init (pasta)
c1ee599c74 refactor: remove unneeded potentially problematic std::move (pasta)
f77a1f7bce refactor: use if-init; ensure we std::move; use try_emplace (pasta)
37080c880e refactor: remove a temporary; this should enable better optimization as the type is && insteas of & now (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  various minor refactors, see commits

  ## What was done?
  see commits

  ## How Has This Been Tested?
  Building

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [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 _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: 76fa01f4437c80fc6667cc7e4e7c2f6fb77d3c0fc033f03f172adfb483a71c8c04ff6c3fe51e089e55868ecbdbeea88ec3161c6d2a939d9de3dc7cd4a9a6d4b2
2024-03-04 20:35:04 -06:00
PastaPastaPasta
a1ff8d3e54
refactor: add const
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2024-03-04 20:34:04 -06:00