0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-10 15:46:48 -04:00
bitcoin-core/src/wallet
Andrew Chow ef744c03e5
Merge bitcoin/bitcoin#25729: wallet: Check max transaction weight in CoinSelection
c7c7ee9d0b test: Check max transaction weight in CoinSelection (Aurèle Oulès)
6b563cae92 wallet: Check max tx weight in coin selector (Aurèle Oulès)

Pull request description:

  This PR is an attempt to fix #5782.

  I have added 4 test scenarios, 3 of them provided here https://github.com/bitcoin/bitcoin/issues/5782#issuecomment-73819058 (slightly modified to use a segwit wallet).

  Here are my benchmarks :
  ## PR
  |               ns/op |                op/s |    err% |          ins/op |          cyc/op |    IPC |         bra/op |   miss% |     total | benchmark
  |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
  |        1,466,341.00 |              681.97 |    0.6% |   11,176,762.00 |    3,358,752.00 |  3.328 |   1,897,839.00 |    0.3% |      0.02 | `CoinSelection`

  ## Master

  |               ns/op |                op/s |    err% |          ins/op |          cyc/op |    IPC |         bra/op |   miss% |     total | benchmark
  |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
  |        1,526,029.00 |              655.30 |    0.5% |   11,142,188.00 |    3,499,200.00 |  3.184 |   1,994,156.00 |    0.2% |      0.02 | `CoinSelection`

ACKs for top commit:
  achow101:
    reACK c7c7ee9d0b
  w0xlt:
    ACK c7c7ee9d0b
  furszy:
    diff ACK c7c7ee9d

Tree-SHA512: ef0b28576ff845174651ba494aa9adee234c96e6f886d0e032eceb7050296e45b099dda0039d1dfb9944469f067627b2101f3ff855c70353cf39d1fc7ee81828
2022-12-06 12:08:58 -05:00
..
rpc Fixup clang-tidy named argument comments 2022-12-05 15:51:46 +00:00
test Merge bitcoin/bitcoin#25729: wallet: Check max transaction weight in CoinSelection 2022-12-06 12:08:58 -05:00
bdb.cpp Merge bitcoin/bitcoin#25499: Use steady clock for all millis bench logging 2022-09-16 11:10:15 +01:00
bdb.h scripted-diff: replace non-standard fixed width integer types (u_int... -> uint`...) 2022-05-12 15:44:24 +02:00
coincontrol.cpp
coincontrol.h wallet: skip available coins fetch if "other inputs" are disallowed 2022-10-26 15:47:51 -03:00
coinselection.cpp wallet: Check max tx weight in coin selector 2022-12-05 19:32:11 +01:00
coinselection.h wallet: Check max tx weight in coin selector 2022-12-05 19:32:11 +01:00
context.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
context.h
crypter.cpp
crypter.h
db.cpp
db.h
dump.cpp Fixup clang-tidy named argument comments 2022-12-05 15:51:46 +00:00
dump.h
external_signer_scriptpubkeyman.cpp GetExternalSigner(): fail if multiple signers are found 2022-06-09 20:34:46 +02:00
external_signer_scriptpubkeyman.h
feebumper.cpp Merge bitcoin/bitcoin#25775: docs: remove non-signaling mentions of BIP125 2022-08-22 10:35:26 +01:00
feebumper.h bumpfee: be able to bump fee of a tx with external inputs 2022-08-19 11:27:01 -04:00
fees.cpp Fixup clang-tidy named argument comments 2022-12-05 15:51:46 +00:00
fees.h
init.cpp scripted-diff: Avoid incompatibility with CMake AUTOUIC feature 2022-06-14 10:38:51 +02:00
interfaces.cpp Fixup clang-tidy named argument comments 2022-12-05 15:51:46 +00:00
ismine.h
load.cpp wallet: trigger MaybeResendWalletTxs() every minute 2022-08-25 14:29:25 +01:00
load.h
receive.cpp Merge bitcoin/bitcoin#25707: refactor: Make const references to avoid unnecessarily copying objects and enable two clang-tidy checks 2022-08-19 17:11:06 +02:00
receive.h Merge bitcoin/bitcoin#25504: RPC: allow to track coins by parent descriptors 2022-08-16 13:08:05 -04:00
salvage.cpp
salvage.h
scriptpubkeyman.cpp psbt: Include output pubkey in additional pubkeys to sign 2022-10-28 20:03:22 -04:00
scriptpubkeyman.h wallet: add method for retrieving the end range for a ScriptPubKeyMan 2022-10-25 15:57:38 +02:00
spend.cpp Merge bitcoin/bitcoin#25729: wallet: Check max transaction weight in CoinSelection 2022-12-06 12:08:58 -05:00
spend.h refactor: make CoinsResult total amounts members private 2022-12-02 12:39:16 -03:00
sqlite.cpp scripted-diff: Convert global Mutexes to GlobalMutexes 2022-05-21 01:23:23 +10:00
sqlite.h
transaction.cpp
transaction.h wallet: Deduplicate Resend and ReacceptWalletTransactions 2022-08-29 12:38:06 -04:00
wallet.cpp Merge bitcoin/bitcoin#26238: clang-tidy: fixup named argument comments 2022-12-06 12:05:09 +01:00
wallet.h Merge bitcoin/bitcoin#26302: refactor: Use type-safe time point for CWallet::m_next_resend 2022-10-24 10:11:13 +08:00
walletdb.cpp Merge bitcoin/bitcoin#26462: wallet: fix crash on loading descriptor wallet containing legacy key type entries 2022-12-05 17:37:48 -05:00
walletdb.h wallet: throw error if legacy entries are present on loading descriptor wallets 2022-11-08 12:29:12 +01:00
wallettool.cpp Fixup clang-tidy named argument comments 2022-12-05 15:51:46 +00:00
wallettool.h
walletutil.cpp
walletutil.h Implement LegacyScriptPubKeyMan::MigrateToDescriptor 2022-08-25 16:25:53 -04:00