Skip to content

Conversation

@DrahtBot
Copy link
Contributor

DrahtBot commented Jan 12, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK instagibbs, hebasto, achow101

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

@fanquake
Copy link
Member Author

fanquake commented Jan 12, 2023

Added #26234 & #26388 to fix the no-longer available Intel macOS box in the CI. Will rebase on top of #26880 when it's merged.

maflcko pushed a commit that referenced this pull request Jan 12, 2023
95ec960 ci: Use `macos-ventura-xcode:14.1` image for "macOS native" task (Hennadii Stepanov)
50ad39d ci: Make `getopt` path architecture agnostic (Hennadii Stepanov)
ce2a072 ci: Allow PIP_PACKAGES on centos (MacroFake)
644c030 ci: Remove unused package (MacroFake)

Pull request description:

ACKs for top commit:
  fanquake:
    ACK 95ec960 did the same for 23.x & in #26878.

Tree-SHA512: 086fbe2f2a39e210cc41076d42fb911abdd720a2824fcaaacfaf50345c90d23b9f9f8b0a06e4f85cced0a8fdf0e5f5a7a3a00a05edbc267574893975dfc7c061
@fanquake fanquake added this to the 24.1 milestone Jan 19, 2023
theStack and others added 10 commits February 20, 2023 17:15
…lets

Currently `migratewallet` migrates the address book (i.e. labels and
purposes) for watchonly and solvable wallets only in RAM, but doesn't
persist them on disk. Fix this by adding another loop for both of the
special wallet types after which writes the corresponding NAME and
PURPOSE entries to the database in a single batch.

Github-Pull: bitcoin#26761
Rebased-From: d5f4ae7
If a wallet has key birthdates that are more recent than the currrent
chain tip, or a bestblock height higher than the current tip, we should
not attempt to rescan as there is nothing to scan for.

Github-Pull: bitcoin#26679
Rebased-From: 3784009
To be eligible for fee-bumping, a transaction must not have any
of its outputs (eg - change) spent in other unconfirmed transactions
in the wallet. However, this check should not apply to abandoned
transactions.

A new test case is added to cover this case.

Github-Pull: bitcoin#26675
Rebased-From: f9ce0ea
This class is the counterpart to CHashVerifier, in that it
writes data to an underlying source stream,
while keeping a hash of the written data.

Github-Pull: bitcoin#26909
Rebased-From: da6c7ae
The previous logic would call it once for serializing into the filestream,
and then again for serializing into the hasher. If AddrMan was changed
in between these calls by another thread, the resulting peers.dat would
be corrupt with non-matching checksum and data.
Fix this by using HashedSourceWriter, which writes the data
to the underlying stream and keeps track of the hash in one go.

Github-Pull: bitcoin#26909
Rebased-From: 5eabb61
The way that the main overview page limits the number
of transactions displayed (currently 5) is not
an appropriate use of Qt. If it's run with a DEBUG
build of Qt, it'll result in a segfault in certain
relatively common situations. Instead of artificially
limiting the rowCount() in the subclassed proxy
filter, we hide/unhide the rows in the displaying
QListView upon any changes in the sorted proxy filter.

Github-Pull: bitcoin-core/gui/pull/704
Rebased-From: 08209c0
When an encrypted wallet is locked (for instance via the
RPC `walletlock`), the docs indicate that the key is
removed from memory. However, the vector (with a secure
allocator) is merely cleared. This allows the key to persist
indefinitely in memory. Instead, manually fill the bytes with
zeroes before clearing.

Github-Pull: bitcoin#27080
Rebased-From: 3a11adc
vasild and others added 8 commits February 27, 2023 13:59
In the case of `i2pacceptincoming=0` we use transient addresses
(destinations) for ourselves for each outbound connection. It may
happen that we
* create the session (and thus our address/destination too)
* fail to connect to the particular peer (e.g. if they are offline)
* dispose the unused session.

This puts unnecessary load on the I2P network because session creation
is not cheap. Is exaggerated if `onlynet=i2p` is used in which case we
will be trying to connect to I2P peers more often.

To help with this, save the created but unused sessions and pick them
later instead of creating new ones.

Alleviates: bitcoin#26754

Github-Pull: bitcoin#26837
Rebased-From: b906b64
This will lower the load on the I2P network. Since we use one transient
session for connecting to just one peer, a higher number of tunnels is
unnecessary.

This was suggested in:
bitcoin#26754 (comment)
bitcoin#26754 (comment)

The options are documented in:
https://geti2p.net/en/docs/protocol/i2cp#options

A tunnel is unidirectional, so even if we make a single outbound
connection we still need an inbound tunnel to receive the messages sent
to us over that connection.

Alleviates: bitcoin#26754

Github-Pull: bitcoin#26837
Rebased-From: 801b405
The default number of tunnels in the Java implementation is 2 and in the
C++ i2pd it is 5. Pick a mid-number (3) and explicitly set it in order
to get a consistent behavior with both routers. Do this for persistent
sessions which are created once at startup and can be used to open up
to ~10 outbound connections and can accept up to ~125 incoming
connections. Transient sessions already set number of tunnels to 1.

Suggested in:
bitcoin#26754 (comment)
https://geti2p.net/en/docs/api/samv3

Alleviates: bitcoin#26754

Github-Pull: bitcoin#26837
Rebased-From: 3c1de03
An overload of MigrateLegacyToDescriptor is added which takes the wallet
name. The original that took a wallet pointer is still available, it
just gets the name, closes the wallet, and calls the new overload.

Github-Pull: bitcoin#26595
Reabsed-From: dbfa345
Since migration reloads the wallet, the wallet will always be locked
unless the passphrase is given. migratewallet can now take the
passphrase in order to unlock the wallet for migration.

Github-Pull: bitcoin#26595
Rebased-From: 7fd125b
@instagibbs
Copy link
Member

ACK 784a754

trivial backports as far as I can see

Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 784a754, I've made backporting locally and got a diff between my branch and this PR as follows:

--- a/test/functional/wallet_importdescriptors.py
+++ b/test/functional/wallet_importdescriptors.py
@@ -484,8 +484,8 @@ class ImportDescriptorsTest(BitcoinTestFramework):
         assert_equal(addr, 'bcrt1qp8s25ckjl7gr6x2q3dx3tn2pytwp05upkjztk6ey857tt50r5aeqn6mvr9') # Derived at m/84'/0'/0'/1
         change_addr = wmulti_pub.getrawchangeaddress('bech32') # uses change 2
         assert_equal(change_addr, 'bcrt1qp6j3jw8yetefte7kw6v5pc89rkgakzy98p6gf7ayslaveaxqyjusnw580c') # Derived at m/84'/1'/0'/2
-        assert(send_txid in self.nodes[0].getrawmempool(True))
-        assert(send_txid in (x['txid'] for x in wmulti_pub.listunspent(0)))
+        assert send_txid in self.nodes[0].getrawmempool(True)
+        assert send_txid in (x['txid'] for x in wmulti_pub.listunspent(0))
         assert_equal(wmulti_pub.getwalletinfo()['keypoolsize'], 999)
 
         # generate some utxos for next tests

which tracks down to 459cb63 from #26257 which, in turn, is not backported here.


trivial backports as far as I can see

bitcoin-core/gui#704 and #27053 are not trivial to backport.

@hebasto hebasto closed this Feb 27, 2023
@hebasto hebasto reopened this Feb 27, 2023
@achow101
Copy link
Member

ACK 784a754

@glozow glozow merged commit c8c85ca into bitcoin:24.x Feb 27, 2023
@fanquake fanquake deleted the 24_x_backports branch February 27, 2023 18:34
fanquake added a commit that referenced this pull request Mar 13, 2023
932a609 doc: add initial release notes for v24.1 (fanquake)
cc4e315 doc: update manual pages for v24.1rc1 (fanquake)
787affb doc: update version in bips.md to v24.1 (fanquake)
5077e02 build: bump version to v24.1rc1 (fanquake)

Pull request description:

  Bump the version number to v24.1rc1.
  Regenerate the man pages.
  Update the version number in bips.md.
  Move the v24.0.1 release notes to doc/release-notes.
  Add initial release notes for v24.1.

  Merged changes to the 24.x branch since v24.0.1:
  - #26457
  - #26735
  - #26878
  - #26880

ACKs for top commit:
  achow101:
    ACK 932a609

Tree-SHA512: b90fd7c8f22c8fb096864e47cb79eaf5878524739a3b5c1d495c8c196b70d08c7b95fbfb1dfcdddf507bd8a72a5d133ecbe6ae898bbe70931f404afd0807b707
@brunoerg
Copy link
Contributor

post merge ACK 784a754

@bitcoin bitcoin locked and limited conversation to collaborators Feb 26, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.