Commit graph

21585 commits

Author SHA1 Message Date
Andrew Poelstra
9933b7dae8 Merge 3ad1b8899b into merged_master (Bitcoin PR bitcoin-core/gui#297) 2021-07-17 14:07:56 +00:00
Andrew Poelstra
8b34c974c3 Merge 6b254814c0 into merged_master (Bitcoin PR bitcoin/bitcoin#17331)
This removes a lot of the craziness that was added during the 0.21
rebase 240f03f586 (Bitcoin PR #17290)
as well as a lot of other upstream craziness. It's a very positive
change but will probably be a bear to review.

There are two places where I (purposely) nontrivially changed the
logic beyond what the upstream PR did:

    1. When setting the change output positions, I used a uniform
       distribution for all change outputs and also obeyed the user's
       `change_position` choice. The old code was non-uniform and
       had a bug where it would offset the change position.

       For non-policy assets, I do not create zero-sized change
       since we would just remove them later. For the policy asset,
       I do sometimes create zero-sized change since the upstream
       logic expects it to exist.

    2. Rather than "reblinding whenever something changes" we blind
       once for size/fee estimation purposes and then again at the
       end after all potential adjustments have been made. The
       resulting code should be closer to upstream.

       We should really redo this code though because our use of the
       `BlindDetails` structure is very confusing and stateful.

    3. We consider whether or not we're using CT/CA when estimating
       the size of change outpust. This is because we now use branch
       and bound far more often (yay!) which selects coins such that
       there will be no change output. This is implemented however
       by adding a change output then dumping it to fees ... meaning
       that if we dramatically overestimate the size of a change out
       then we'll end up dramatically dumping too many coins to fees.

There are another couple small things, which I apologize for .. this
PR took me 2 hours to get compiling and 11 hours to get working(!!)
and some things got away from me.

One fun thing is that I changed CWallet::SelectCoinsMinConf to gate
an addition on coin_selection_params.m_subtract_fee_outputs ... this
is actually an upstream bug that I'll file whenever I get around to
producing a test that triggers it. (A bit hard as I have to gin up
a scenario where branch-and-bound fails to hit this codepath.)

Also, in test/functional/wallet_bumpfee.py I had to change the feerate
required to force selection to add another input from 500 to 800. I
don't know why and I don't care to figure it out.
2021-07-17 02:42:16 +00:00
Andrew Poelstra
76bb76c18c Merge 40f7a2891f into merged_master (Bitcoin PR bitcoin/bitcoin#22043) 2021-07-13 00:24:44 +00:00
Andrew Poelstra
53344c6b08 Merge db1aca01d5 into merged_master (Bitcoin PR bitcoin/bitcoin#22021) 2021-07-12 23:18:07 +00:00
Andrew Poelstra
916944ed6e Merge aeecb1c2eb into merged_master (Bitcoin PR bitcoin/bitcoin#21992) 2021-07-12 22:11:35 +00:00
Andrew Poelstra
4ccd7f4e36 Merge 2968417948 into merged_master (Bitcoin PR bitcoin/bitcoin#22013) 2021-07-12 18:51:11 +00:00
Andrew Poelstra
092f386da0 Merge d3fa42c795 into merged_master (Bitcoin PR bitcoin/bitcoin#21186) 2021-07-12 17:45:04 +00:00
Andrew Poelstra
d1bbcf2a0a Merge ce4a852475 into merged_master (Bitcoin PR bitcoin/bitcoin#21848) 2021-07-12 16:38:25 +00:00
Andrew Poelstra
29a8292858 Merge 599000903e into merged_master (Bitcoin PR bitcoin/bitcoin#21850)
Copied GetMainchainAuthCookieFile logic from GetAuthCookieFile, since
the former no longer compiled.
2021-07-12 15:20:15 +00:00
Andrew Poelstra
2a2bbdaee3 Merge be4171679b into merged_master (Bitcoin PR bitcoin/bitcoin#21953) 2021-07-12 03:35:40 +00:00
Andrew Poelstra
cfd16b90ca Merge eb4df9a628 into merged_master (Bitcoin PR bitcoin/bitcoin#22004) 2021-07-11 23:59:16 +00:00
Andrew Poelstra
d509636ace Merge ac5f7f47c1 into merged_master (Bitcoin PR bitcoin/bitcoin#21936) 2021-07-11 22:52:59 +00:00
Andrew Poelstra
b9027c994c Merge 1cc38d3e01 into merged_master (Bitcoin PR bitcoin/bitcoin#22003) 2021-07-11 21:46:30 +00:00
Andrew Poelstra
cf23962d62 Merge e2b55cd201 into merged_master (Bitcoin PR bitcoin-core/gui#335) 2021-07-11 19:33:23 +00:00
Andrew Poelstra
ed64f56509 Merge 710c8ba829 into merged_master (Bitcoin PR bitcoin-core/gui#281) 2021-07-11 18:27:24 +00:00
Andrew Poelstra
bae18ea9ed Merge 37e9f07996 into merged_master (Bitcoin PR bitcoin/bitcoin#21843) 2021-07-11 17:21:19 +00:00
Andrew Poelstra
a9a2cc0c10 Merge ea8b2e8e12 into merged_master (Bitcoin PR bitcoin/bitcoin#21913) 2021-07-11 16:14:30 +00:00
Andrew Poelstra
ff432ef70e Merge 7d19c85f4a into merged_master (Bitcoin PR bitcoin/bitcoin#21970) 2021-07-11 15:08:31 +00:00
Andrew Poelstra
ecd8430ff4 Merge ff438a1966 into merged_master (Bitcoin PR bitcoin/bitcoin#21996) 2021-07-11 08:44:26 +00:00
Andrew Poelstra
e552043a9a Merge d4c409cf09 into merged_master (Bitcoin PR bitcoin/bitcoin#20773) 2021-07-11 07:37:55 +00:00
Andrew Poelstra
ba0573cbe6 Merge 39d597d362 into merged_master (Bitcoin PR bitcoin/bitcoin#21659) 2021-07-11 06:31:37 +00:00
Andrew Poelstra
ad78587f9d Merge 087812864b into merged_master (Bitcoin PR bitcoin/bitcoin#21962) 2021-07-11 05:25:13 +00:00
Andrew Poelstra
3074da475f Merge 4da26fb85d into merged_master (Bitcoin PR bitcoin/bitcoin#21506) 2021-07-11 04:19:15 +00:00
Andrew Poelstra
eb4b376770 Merge 1ed859e90e into merged_master (Bitcoin PR bitcoin/bitcoin#21173) 2021-07-11 03:13:07 +00:00
Andrew Poelstra
1cb298ae73 Merge 2fc111b6e3 into merged_master (Bitcoin PR bitcoin/bitcoin#21985) 2021-07-11 02:06:30 +00:00
Andrew Poelstra
3ff7f7eadc Merge 1da36b49ab into merged_master (Bitcoin PR bitcoin/bitcoin#21983) 2021-07-10 23:53:28 +00:00
Andrew Poelstra
9f4f65bbbe Merge 6d1d33d334 into merged_master (Bitcoin PR bitcoin-core/gui#323) 2021-07-10 21:40:24 +00:00
Andrew Poelstra
f934d41627 Merge 7b87fca930 into merged_master (Bitcoin PR bitcoin/bitcoin#21756) 2021-07-10 19:10:15 +00:00
Andrew Poelstra
dda38f46bf Merge c857148636 into merged_master (Bitcoin PR bitcoin/bitcoin#21948) 2021-07-10 16:57:35 +00:00
Andrew Poelstra
7d5047620a Merge b82c3a0075 into merged_master (Bitcoin PR bitcoin/bitcoin#21929) 2021-07-10 14:44:01 +00:00
Andrew Poelstra
e8f85e9062 Merge b34bf2b42c into merged_master (Bitcoin PR bitcoin/bitcoin#21939) 2021-07-10 05:28:53 +00:00
Andrew Poelstra
7275a1732e Merge 4741aec1dd into merged_master (Bitcoin PR bitcoin/bitcoin#21914) 2021-07-10 04:22:47 +00:00
Andrew Poelstra
d9d4910a7d Merge a31a1ceec7 into merged_master (Bitcoin PR bitcoin/bitcoin#21907) 2021-07-10 03:16:24 +00:00
Andrew Poelstra
9096687c0e Merge 386ba92e83 into merged_master (Bitcoin PR bitcoin/bitcoin#21910) 2021-07-10 02:10:19 +00:00
Andrew Poelstra
1fd44e5dfc Merge ee9befe8b4 into merged_master (Bitcoin PR bitcoin/bitcoin#21584) 2021-07-09 21:14:15 +00:00
Andrew Poelstra
a7702d6ab5 Merge 6b49d88a5d into merged_master (Bitcoin PR bitcoin/bitcoin#21905) 2021-07-09 18:45:07 +00:00
Andrew Poelstra
e56472be53 Merge d2ec37221a into merged_master (Bitcoin PR bitcoin/bitcoin#21796) 2021-07-09 17:38:32 +00:00
Andrew Poelstra
d8f9c34946 Merge 91db985bc9 into merged_master (Bitcoin PR bitcoin/bitcoin#21927) 2021-07-09 16:21:26 +00:00
Andrew Poelstra
99cc7a5245 Merge 2e30e328a7 into merged_master (Bitcoin PR bitcoin/bitcoin#19064) 2021-07-09 13:03:17 +00:00
Andrew Poelstra
2d5af8c458 Merge 6754e1928b into merged_master (Bitcoin PR bitcoin/bitcoin#21922) 2021-07-09 07:45:40 +00:00
Andrew Poelstra
37dd8140a6 Merge f0a76b3dbc into merged_master (Bitcoin PR bitcoin/bitcoin#21892) 2021-07-09 06:40:31 +00:00
Andrew Poelstra
0c0d7cf29c Merge 88dc09d759 into merged_master (Bitcoin PR bitcoin/bitcoin#21909) 2021-07-09 05:35:04 +00:00
Andrew Poelstra
edd579466f Merge e175a20769 into merged_master (Bitcoin PR bitcoin/bitcoin#21644) 2021-07-09 04:29:45 +00:00
Andrew Poelstra
3402d0aa23 Merge 94f83534e4 into merged_master (Bitcoin PR bitcoin/bitcoin#21752) 2021-07-09 03:24:22 +00:00
Andrew Poelstra
87cb26b9f4 Merge 39e306009b into merged_master (Bitcoin PR bitcoin-core/gui#271) 2021-07-09 02:18:30 +00:00
Andrew Poelstra
56c25e5ac7 Merge d2f6d2976f into merged_master (Bitcoin PR bitcoin/bitcoin#21895) 2021-07-09 01:13:11 +00:00
Andrew Poelstra
9ea813efb8 Merge 4a26705761 into merged_master (Bitcoin PR bitcoin/bitcoin#21902) 2021-07-09 00:08:06 +00:00
Andrew Poelstra
8d570c2dcb Merge 4bc3b16349 into merged_master (Bitcoin PR bitcoin-core/gui#293) 2021-07-08 23:02:50 +00:00
Andrew Poelstra
77bd932406 Merge b49fe0a75a into merged_master (Bitcoin PR bitcoin-core/gui#280) 2021-07-08 21:57:18 +00:00
Andrew Poelstra
b3ee198bfb Merge a2bdbdb358 into merged_master (Bitcoin PR bitcoin-core/gui#194) 2021-07-08 20:52:32 +00:00