12023-11-20T00:16:31  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
  22023-11-20T00:21:10  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
  32023-11-20T00:22:40  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
  42023-11-20T00:39:04  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
  52023-11-20T00:45:16  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has quit IRC (Remote host closed the connection)
  62023-11-20T00:46:02  *** salvatoshi__ <salvatoshi__!~salvatosh@2001:818:e733:2700:7956:e36b:d97d:ef70> has joined #bitcoin-core-dev
  72023-11-20T00:46:10  *** zato <zato!~zato@user/zato> has quit IRC (Quit: Om mani padme hum)
  82023-11-20T00:48:57  *** salvatoshi_ <salvatoshi_!~salvatosh@193.203.13.180> has quit IRC (Ping timeout: 256 seconds)
  92023-11-20T00:51:43  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 102023-11-20T00:56:19  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
 112023-11-20T01:08:16  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 122023-11-20T01:12:55  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 132023-11-20T01:16:38  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has joined #bitcoin-core-dev
 142023-11-20T01:21:49  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has quit IRC (Ping timeout: 256 seconds)
 152023-11-20T01:24:22  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 162023-11-20T01:37:44  *** Guest41 <Guest41!~Guest41@2a0e:41a:89fc:0:58e5:e6ef:d76f:555f> has joined #bitcoin-core-dev
 172023-11-20T01:38:16  *** Guest41 <Guest41!~Guest41@2a0e:41a:89fc:0:58e5:e6ef:d76f:555f> has quit IRC (Client Quit)
 182023-11-20T02:00:21  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
 192023-11-20T02:00:56  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 202023-11-20T02:08:17  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
 212023-11-20T02:16:47  *** conman <conman!~con@180-150-21-3.b49615.mel.static.aussiebb.net> has quit IRC (Quit: Konversation terminated!)
 222023-11-20T02:35:23  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has joined #bitcoin-core-dev
 232023-11-20T03:02:53  *** Guest70 <Guest70!~Guest70@94.51.83.188> has joined #bitcoin-core-dev
 242023-11-20T03:08:23  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has quit IRC (Ping timeout: 264 seconds)
 252023-11-20T03:10:51  *** Guest70 <Guest70!~Guest70@94.51.83.188> has quit IRC (Quit: Client closed)
 262023-11-20T03:16:17  *** kevkevin <kevkevin!~kevkevin@98.226.43.69> has quit IRC (Remote host closed the connection)
 272023-11-20T03:17:44  *** kevkevin <kevkevin!~kevkevin@2601:241:8703:7b30:79da:d217:af0e:7e5b> has joined #bitcoin-core-dev
 282023-11-20T03:22:41  *** kevkevin <kevkevin!~kevkevin@2601:241:8703:7b30:79da:d217:af0e:7e5b> has quit IRC (Ping timeout: 268 seconds)
 292023-11-20T03:29:48  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 302023-11-20T03:37:43  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 312023-11-20T03:50:46  *** kevkevin <kevkevin!~kevkevin@2600:1700:b30:47c0:307c:11a6:5e85:ee66> has joined #bitcoin-core-dev
 322023-11-20T03:55:37  *** kevkevin <kevkevin!~kevkevin@2600:1700:b30:47c0:307c:11a6:5e85:ee66> has quit IRC (Ping timeout: 276 seconds)
 332023-11-20T04:01:51  *** gwillen <gwillen!gwillen@user/gwillen> has quit IRC (Ping timeout: 268 seconds)
 342023-11-20T04:02:10  *** gwillen <gwillen!gwillen@user/gwillen> has joined #bitcoin-core-dev
 352023-11-20T04:29:26  *** fearbeag <fearbeag!~seanicide@bras-base-clwdon2210w-grc-06-76-71-85-5.dsl.bell.ca> has quit IRC (Read error: Connection reset by peer)
 362023-11-20T04:30:14  *** fearbeag <fearbeag!~seanicide@76.71.85.5> has joined #bitcoin-core-dev
 372023-11-20T04:51:51  *** bitdex <bitdex!~bitdex@gateway/tor-sasl/bitdex> has quit IRC (Quit: = "")
 382023-11-20T05:01:01  *** cmirror <cmirror!~cmirror@4.53.92.114> has quit IRC (Remote host closed the connection)
 392023-11-20T05:01:36  *** cmirror <cmirror!~cmirror@4.53.92.114> has joined #bitcoin-core-dev
 402023-11-20T05:06:02  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has joined #bitcoin-core-dev
 412023-11-20T05:08:40  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 422023-11-20T05:18:41  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
 432023-11-20T05:23:11  *** bitdex <bitdex!~bitdex@gateway/tor-sasl/bitdex> has joined #bitcoin-core-dev
 442023-11-20T05:31:39  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 452023-11-20T05:36:11  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 252 seconds)
 462023-11-20T05:38:31  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has quit IRC (Ping timeout: 256 seconds)
 472023-11-20T05:54:35  *** benwestgate <benwestgate!~BenWestga@035-146-116-233.res.spectrum.com> has quit IRC (Remote host closed the connection)
 482023-11-20T05:59:21  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 492023-11-20T06:03:58  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 502023-11-20T06:09:46  *** Guest40 <Guest40!~Guest40@61.254.37.173> has joined #bitcoin-core-dev
 512023-11-20T06:10:19  *** Guest40 <Guest40!~Guest40@61.254.37.173> has quit IRC (Client Quit)
 522023-11-20T06:20:49  *** puchka <puchka!~puchka@185.203.122.118> has joined #bitcoin-core-dev
 532023-11-20T07:06:17  <bitcoin-git> [bitcoin] TaiseiLuette opened pull request #28914: Create staging tree (master...patch-1) https://github.com/bitcoin/bitcoin/pull/28914
 542023-11-20T07:06:22  <bitcoin-git> [bitcoin] TaiseiLuette closed pull request #28914: Create staging tree (master...patch-1) https://github.com/bitcoin/bitcoin/pull/28914
 552023-11-20T07:11:34  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 562023-11-20T07:16:09  *** kabaum <kabaum!~kabaum@92.60.40.214> has joined #bitcoin-core-dev
 572023-11-20T07:16:17  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 252 seconds)
 582023-11-20T07:26:59  *** lbia <lbia!~lbia@user/lbia> has quit IRC (Ping timeout: 264 seconds)
 592023-11-20T07:28:36  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 602023-11-20T07:33:10  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 612023-11-20T07:37:14  *** AaronvanW <AaronvanW!~AaronvanW@user/AaronvanW> has joined #bitcoin-core-dev
 622023-11-20T07:48:06  *** salvatoshi__ <salvatoshi__!~salvatosh@2001:818:e733:2700:7956:e36b:d97d:ef70> has quit IRC (Ping timeout: 260 seconds)
 632023-11-20T08:04:15  *** salvatoshi__ <salvatoshi__!~salvatosh@194.65.48.125> has joined #bitcoin-core-dev
 642023-11-20T08:12:23  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 652023-11-20T08:17:20  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 252 seconds)
 662023-11-20T08:40:19  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 672023-11-20T08:44:50  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 252 seconds)
 682023-11-20T08:51:45  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 692023-11-20T08:56:19  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 702023-11-20T09:25:40  *** ghost43 <ghost43!~ghost43@gateway/tor-sasl/ghost43> has quit IRC (Remote host closed the connection)
 712023-11-20T09:26:02  *** ghost43 <ghost43!~ghost43@gateway/tor-sasl/ghost43> has joined #bitcoin-core-dev
 722023-11-20T09:32:09  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 732023-11-20T09:32:59  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
 742023-11-20T09:35:49  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 752023-11-20T09:40:42  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 268 seconds)
 762023-11-20T10:05:39  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 772023-11-20T10:18:24  <bitcoin-git> [bitcoin] hethm999 opened pull request #28915: Update SECURITY.md (master...patch-1) https://github.com/bitcoin/bitcoin/pull/28915
 782023-11-20T10:19:41  <bitcoin-git> [bitcoin] fanquake closed pull request #28915: Update SECURITY.md (master...patch-1) https://github.com/bitcoin/bitcoin/pull/28915
 792023-11-20T10:20:30  *** lbia <lbia!~lbia@user/lbia> has joined #bitcoin-core-dev
 802023-11-20T10:21:34  *** abubakarsadiq <abubakarsadiq!uid602234@id-602234.hampstead.irccloud.com> has joined #bitcoin-core-dev
 812023-11-20T10:44:15  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
 822023-11-20T10:44:47  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 832023-11-20T10:49:43  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 842023-11-20T11:01:21  *** jespada <jespada!~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net> has quit IRC (Quit: Textual IRC Client: www.textualapp.com)
 852023-11-20T11:06:55  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 862023-11-20T11:10:57  *** vysn <vysn!~vysn@user/vysn> has joined #bitcoin-core-dev
 872023-11-20T11:11:43  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
 882023-11-20T11:29:05  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 892023-11-20T11:29:09  *** puchka <puchka!~puchka@185.203.122.118> has quit IRC (Ping timeout: 256 seconds)
 902023-11-20T11:30:49  *** kevkevin <kevkevin!~kevkevin@2600:1700:b30:47c0:307c:11a6:5e85:ee66> has joined #bitcoin-core-dev
 912023-11-20T11:31:19  *** vysn <vysn!~vysn@user/vysn> has quit IRC (Quit: WeeChat 4.0.3)
 922023-11-20T11:33:49  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
 932023-11-20T11:35:15  *** kevkevin <kevkevin!~kevkevin@2600:1700:b30:47c0:307c:11a6:5e85:ee66> has quit IRC (Ping timeout: 260 seconds)
 942023-11-20T11:51:36  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
 952023-11-20T11:55:55  *** TheRec <TheRec!~toto@user/therec> has quit IRC ()
 962023-11-20T11:56:29  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
 972023-11-20T12:08:23  *** jonatack <jonatack!~jonatack@user/jonatack> has quit IRC (Read error: Connection reset by peer)
 982023-11-20T12:09:04  *** jonatack <jonatack!~jonatack@user/jonatack> has joined #bitcoin-core-dev
 992023-11-20T12:13:26  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1002023-11-20T12:18:35  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 264 seconds)
1012023-11-20T12:31:47  *** TheRec <TheRec!~toto@84-75-225-47.dclient.hispeed.ch> has joined #bitcoin-core-dev
1022023-11-20T12:35:49  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1032023-11-20T12:40:41  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
1042023-11-20T13:08:52  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1052023-11-20T13:13:27  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 268 seconds)
1062023-11-20T13:14:36  *** ghost43 <ghost43!~ghost43@gateway/tor-sasl/ghost43> has quit IRC (Remote host closed the connection)
1072023-11-20T13:14:54  *** ghost43 <ghost43!~ghost43@gateway/tor-sasl/ghost43> has joined #bitcoin-core-dev
1082023-11-20T13:23:14  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1092023-11-20T13:27:43  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
1102023-11-20T13:33:36  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1112023-11-20T13:37:55  *** jonatack <jonatack!~jonatack@user/jonatack> has quit IRC (Ping timeout: 256 seconds)
1122023-11-20T13:39:43  *** jonatack <jonatack!~jonatack@user/jonatack> has joined #bitcoin-core-dev
1132023-11-20T13:49:54  <bitcoin-git> [bitcoin] hebasto opened pull request #28919: build: Fix regression in "ARMv8 CRC32 intrinsics" test (master...231120-crc-arm64) https://github.com/bitcoin/bitcoin/pull/28919
1142023-11-20T14:12:05  *** salvatoshi__ <salvatoshi__!~salvatosh@194.65.48.125> has quit IRC (Remote host closed the connection)
1152023-11-20T14:12:31  *** salvatoshi <salvatoshi!~salvatosh@194.65.48.125> has joined #bitcoin-core-dev
1162023-11-20T14:17:25  *** benwestgate <benwestgate!~BenWestga@2603-8080-74f0-e960-9c6a-f2d7-0602-347d.res6.spectrum.com> has joined #bitcoin-core-dev
1172023-11-20T15:02:29  *** kevkevin <kevkevin!~kevkevin@2600:1700:b30:47c0:307c:11a6:5e85:ee66> has joined #bitcoin-core-dev
1182023-11-20T15:05:24  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
1192023-11-20T15:05:39  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1202023-11-20T15:10:16  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
1212023-11-20T15:27:35  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1222023-11-20T15:32:23  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
1232023-11-20T15:36:36  *** puchka <puchka!~puchka@185.203.122.121> has joined #bitcoin-core-dev
1242023-11-20T15:46:51  *** bitdex <bitdex!~bitdex@gateway/tor-sasl/bitdex> has quit IRC (Quit: = "")
1252023-11-20T16:01:21  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
1262023-11-20T16:06:01  <bitcoin-git> [bitcoin] furszy opened pull request #28920: wallet: birth time update during tx scanning (master...2023_wallet_birhtime_update) https://github.com/bitcoin/bitcoin/pull/28920
1272023-11-20T16:06:04  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
1282023-11-20T16:11:13  <sdaftuar> sjors: thanks for your comments on cluster mempool. regarding RBF and carveout i think it might be easier to discuss here
1292023-11-20T16:12:11  *** Sjors[m] <Sjors[m]!~provooste@2620:6e:a000:ce11::1f> has joined #bitcoin-core-dev
1302023-11-20T16:12:11  <Sjors[m]> sdaftuar: or even park them in a tracking issue
1312023-11-20T16:12:18  <sdaftuar> since i opened the draft pr, sipa and i have been doing a lot more thinking about rbf, and the rules i have proposed in the PR are going to change
1322023-11-20T16:13:02  <Sjors[m]> Do you have a tl&dr of those changes?
1332023-11-20T16:13:11  <sdaftuar> it turns out that even with the rules that I initially proposed, it's possible that the mempool might not get "strictly better" as a result of an RBF that satisfied those tests.
1342023-11-20T16:13:44  <sdaftuar> so the tldr is that I'm going to write up what it means for the mempool to be "strictly better", and then test for that condition directly when evaluating a potential replacement.
1352023-11-20T16:14:00  *** preimage <preimage!~halosghos@user/halosghost> has joined #bitcoin-core-dev
1362023-11-20T16:14:27  <sdaftuar> the quick summary of what "strictly better" means is: if you look at the mempool chunks sorted in descending feerate order, you want the new mempool (after a replacement happens) to contain the old one.
1372023-11-20T16:15:27  <sdaftuar> the implementation of this is still a work in progress, but i'll update the PR once I finish it.  it shouldn't change the algorithmic complexity of what we're doing.
1382023-11-20T16:15:44  <Sjors[m]> How do you mean "contain the old one"?
1392023-11-20T16:15:54  *** martinus <martinus!~martinus@2001:4bc9:814:3b9a:ce4:a0d6:761e:3> has joined #bitcoin-core-dev
1402023-11-20T16:16:33  <sdaftuar> imagine drawing a graph where you have accumulated fee on the y-axis, and cumulative size on the x-axis.
1412023-11-20T16:16:35  <sipa> Sjors[m]: you draw a diagram with the cumulative size and cumulative fee after every chunk in (the combination of) all the clusters
1422023-11-20T16:16:45  <sipa> connect those with straight lines
1432023-11-20T16:17:05  <sipa> the diagram of the new mempool has to be nowhere below that of the old mempool, and at least in some places above it
1442023-11-20T16:19:00  <Sjors[m]> So it has be a steeper hill and at every point at least as high as before?
1452023-11-20T16:19:11  *** martinus <martinus!~martinus@2001:4bc9:814:3b9a:ce4:a0d6:761e:3> has quit IRC (Client Quit)
1462023-11-20T16:19:19  <sdaftuar> yeah that's basically it
1472023-11-20T16:19:24  <sipa> not necessarily; just at every point at least as high
1482023-11-20T16:19:46  *** martinus_ <martinus_!~martinus@2001:4bc9:814:3b9a:ce4:a0d6:761e:3> has joined #bitcoin-core-dev
1492023-11-20T16:19:49  <sdaftuar> the idea is that for every size block that could be mined, you collect more fee in the new mempool than the old one.
1502023-11-20T16:19:55  <sdaftuar> (ignoring tail effects at the end of a block)
1512023-11-20T16:20:22  <sipa> the steepness of segments of the diagram is the feerate of the individual chunks; it's not necessary that all the feerates are higher - it's possible that the first chunk just takes you high enough so that further chunks don't need to be very steep anymore to always stay above
1522023-11-20T16:21:40  <Sjors[m]> Ok, I'll wait for that update.
1532023-11-20T16:22:04  <Sjors[m]> Regarding CPFP carveout, I think that's orthogonal to the above?
1542023-11-20T16:22:13  <sdaftuar> yes, separate topic
1552023-11-20T16:22:27  <Sjors[m]> My thinking is that we either need really large clusters, or allow eviction inside a cluster
1562023-11-20T16:22:58  <Sjors[m]> Otherwise afaik you're always at risk of pinning by maxing out a cluster.
1572023-11-20T16:22:59  <sdaftuar> the problem with allowing eviction within a cluster is that there's not a good way to do so that will avoid pinning problems in all adversarial scenarios
1582023-11-20T16:23:44  <sipa> some forms of pinning are inevitable regardless, because of a conflict between incentive-compatibility and dos protection
1592023-11-20T16:23:45  <sdaftuar> and so if your concern is that there's an adversarial scenario where your counterparty fills up a cluster to mess with you, that they can do that differently even if we allow eviction
1602023-11-20T16:24:17  <sdaftuar> basically because any form of eviction that i can conceive of would (to be DoS-resistant) still require that the total fee in the mempool must increase
1612023-11-20T16:24:45  <sdaftuar> and so therefore if you fill up a cluster with large transactions, evicting them will be expensive
1622023-11-20T16:25:31  <instagibbs> ephemeral anchors is the current constrained answer, that's how you get non-DoSy sibling eviction(via explicit RBF)
1632023-11-20T16:25:39  <sdaftuar> if we don't care about that, and just want to argue that allowing any form of same-cluster-eviction is valuable so that you always have some way to broadcast a transaction (by putting a sufficiently high fee on it), then i could agree with that.
1642023-11-20T16:25:41  <Sjors[m]> So this is a universal RBF rule 3?
1652023-11-20T16:26:24  <instagibbs> sdaftuar it makes everything basically fullrbf ;)
1662023-11-20T16:26:35  <instagibbs> well, in lots of scenarios
1672023-11-20T16:26:42  <sdaftuar> no, not transactions that are not in full clusters?
1682023-11-20T16:26:49  <sdaftuar> well you could argue it i guess
1692023-11-20T16:26:54  <Sjors[m]> instagibbs: that could also make sense, but does that imply we have to wait with (wide) cluster mempool deployment until ephemaral anchors work?
1702023-11-20T16:26:56  <instagibbs> attacker makes it full to replace it
1712023-11-20T16:26:58  <instagibbs> "attacker"
1722023-11-20T16:27:04  <Sjors[m]> Or does nobody use the CPFP carveout anyway?
1732023-11-20T16:27:11  <sdaftuar> you could also argue that everythign is full rbf anyway due to mempool eviction
1742023-11-20T16:27:19  <sdaftuar> \shrug
1752023-11-20T16:27:36  <instagibbs> psh :)
1762023-11-20T16:28:35  <instagibbs> Sjors[m] no, ephemeral anchors works today, it simplifies the problem to clusters of size 2
1772023-11-20T16:28:36  <sdaftuar> Sjors[m]: the problem with carveout is that it exists to deal with descendant limits, and descendant counts are a property that is local to a particular transaction. cluster size is a concept that is not specific to one transaction, so there's no way to allow a carveout to bypass that limit in any meaningful way
1782023-11-20T16:29:24  <Sjors[m]> instagibbs: "ephemeral anchors works today" ?? I thought it required package relay. Or is that deployed already?
1792023-11-20T16:29:25  <sdaftuar> our thought is to first deploy some form of v3 transaction policy, so that people relying on carveout could migrate to that first, and then we can get rid of carveout and deploy cluster mempool afterward
1802023-11-20T16:29:30  <instagibbs> Sjors[m] v3 shrinks the packages to size 2, ephemeral anchors allows dust outputs and provides a type of sibling eviction
1812023-11-20T16:29:41  <Sjors[m]> Oh
1822023-11-20T16:29:44  <instagibbs> Sjors[m] I meant it doesn't require clsuter mempool sorry
1832023-11-20T16:30:41  <Sjors[m]> Right, so if we drop the CPFP carveout before v3 is ready, that might be a problem
1842023-11-20T16:30:42  <instagibbs> https://github.com/bitcoin/bitcoin/issues/27463#issuecomment-1810836012 1 parent 1 child package relay/rbf, with v3/epehemeral anchors, wean people off cpfp carveout
1852023-11-20T16:31:01  <Sjors[m]> But the other around, v3 doesn't have to wait for cluster mempool.
1862023-11-20T16:31:06  <sdaftuar> Sjors[m]: yeah right now i'm assuming that cluster mempool is going to be delayed for v3
1872023-11-20T16:32:42  <instagibbs> practically speaking, the only users of cpfp carevout are LN implementations, so getting uptake there is key. Good news is it's a huge simplification of their state machines, security, and fee savings, so it's about getting going
1882023-11-20T16:33:46  <Sjors[m]> instagibbs: but it does suggest having one or two major releases in between the moment v3 is ready before clusters can be (at large scale) deployed, since LN folks need time.
1892023-11-20T16:34:58  <instagibbs> (not trying to go off topic) depends on uptake speed, most important imo is getting implementations using it done and deployed, as soon as parent-child package relay is considered deployed
1902023-11-20T16:35:23  <Sjors[m]> The other question I raised in the PR is we can drop RBF rule 5. But maybe we should wait for the new "better than before" mempool commits to be pushed.
1912023-11-20T16:35:25  <instagibbs> that's not this project's burden clearly, just noting
1922023-11-20T16:35:42  <sdaftuar> ah rule 5.  i have a few thoughts on that
1932023-11-20T16:35:55  <instagibbs> you need to constrain how many re-linearizations you do
1942023-11-20T16:36:02  <Sjors[m]> I haven't seen a clear illustration of the worst case abuse that rule prevents.
1952023-11-20T16:36:17  <sdaftuar> do you mean in the new cluster mempool model, or legacy model?
1962023-11-20T16:36:36  <sdaftuar> i wrote up an explanation on the mailing list of why that rule exists currently
1972023-11-20T16:37:24  <sdaftuar> in the new model, the concern is around avoiding too many re-linearizations, as instagibbs mentioned.  every cluster that is changed by a replacement needs to be re-linearized, which is a costly operation
1982023-11-20T16:37:46  <sdaftuar> the basic tradeoff here is that the more clusters you have that might be linearized at once, then the smaller clusters can be
1992023-11-20T16:38:53  <Sjors[m]> sdaftuar: in the new cluster model
2002023-11-20T16:38:54  <sdaftuar> so in theory, you could imagine that replacing a bunch of transactions that are in clusters which would disappear entirely may be ok, because those don't contribute linearization costs
2012023-11-20T16:38:59  <sdaftuar> Sjors[m]: right
2022023-11-20T16:40:17  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2032023-11-20T16:40:19  <sdaftuar> however i haven't exactly figured out what limits make sense when we switch from the RBF heuristic i originally proposed to the new one i described before, where we actually measure if the new mempool is "strictly better" in order to process a replacement.
2042023-11-20T16:40:34  <Sjors[m]> sdaftuar: this post? https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-November/021177.html
2052023-11-20T16:41:26  <sdaftuar> roughly speaking, it's the same issue, but i think the constants get bigger when we analyze the computational work being performed
2062023-11-20T16:41:29  <sdaftuar> Sjors[m]: yep that one
2072023-11-20T16:42:05  <sdaftuar> so, tldr: more to come on exactly how we can engineer that, and what the new limit or rule would be
2082023-11-20T16:42:07  <Sjors[m]> Whether it's useful to drop RBF rule 5 also depends on how big a cluster size is realistic. If the limit is ~100 anyway, then there's not much benefit other than just fewer rules.
2092023-11-20T16:42:27  <sdaftuar> no that's not true, because a single transaction can conflict with multiple clusters.
2102023-11-20T16:42:43  <sdaftuar> so regardless of what the cluster size limit is, it's useful to think about how many in-mempool transactions are being conflicted
2112023-11-20T16:43:02  *** martinus_ is now known as martinus
2122023-11-20T16:43:40  <sdaftuar> for instance a transaction might have 500 inputs -- that could conflict with 500 different unrelated transactions
2132023-11-20T16:44:22  *** martinus <martinus!~martinus@2001:4bc9:814:3b9a:ce4:a0d6:761e:3> has quit IRC (Quit: Konversation terminated!)
2142023-11-20T16:44:48  *** martinus <martinus!~martinus@2001:4bc9:814:3b9a:ce4:a0d6:761e:3> has joined #bitcoin-core-dev
2152023-11-20T16:44:49  <Sjors[m]> What I mean is: the RBF rule 5 limit makes it possible to pin something using just 100 transactions. If we dropped that limit, but if the cluster limit is 100, then you can still pin someone with just 100 transactions. Even though it would be a different kind of pinning attack.
2162023-11-20T16:45:13  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 276 seconds)
2172023-11-20T16:45:28  <instagibbs> I told sdaftuar that counting directly conflicts would be better, then a txn creator can "just not do that"
2182023-11-20T16:45:36  <instagibbs> it's in the PR I'm sure you saw
2192023-11-20T16:45:52  <sdaftuar> Sjors[m]: not sure i follow -- the cluster size limit is applied after the conflicting transactinos are removed.
2202023-11-20T16:46:01  <bitcoin-git> [bitcoin] dergoegge closed pull request #28882: fuzz: Delete wallet_notifications (master...2023-11-fuzz-nuke-wn) https://github.com/bitcoin/bitcoin/pull/28882
2212023-11-20T16:46:24  <sdaftuar> oh and yes, we should be able to just count direct conflicts i think.
2222023-11-20T16:46:48  <sdaftuar> or do better, and just count number-of-relinearized-clusters or something
2232023-11-20T16:47:39  <instagibbs> either works 👍
2242023-11-20T16:49:48  <Sjors[m]> sdaftuar: put another way, if the goal is to get rid of all pinning attacks that can be done with 100 transactions, you would need to drop/increase the RBF rule 5 limit AND increase the maximum cluster size. If we can't do the latter for performance reasons, then it's not very useful worry about the former.
2252023-11-20T16:50:46  <sdaftuar> ok i think i see your broader point.  the biggest RBF pinning vector that will remain is the one that we have today, which is that you have to pay a greater total fee than what is being evicted.
2262023-11-20T16:51:05  *** bugs_ <bugs_!~bugs@user/bugs/x-5128603> has joined #bitcoin-core-dev
2272023-11-20T16:51:49  <sdaftuar> i think maximum-cluster-size is not exactly an anti-RBF pinning vector? it seems like more of a vector to prevent spending some related unconfirmed output...
2282023-11-20T16:52:10  <sdaftuar> but yes, pinning vectors remain.
2292023-11-20T16:52:54  <Sjors[m]> It's a thorny problem.
2302023-11-20T16:54:29  <Sjors[m]> Last question, sipa are you planning any major changes to the linearize code?
2312023-11-20T16:55:30  <sdaftuar> sipa has discovered some stuff that i think will likely result in some additional changes (my best guess)
2322023-11-20T16:55:56  <Sjors[m]> It would be good to have some prose at the top of cluster_linearize.h to explain what's going on and where to start reading.
2332023-11-20T16:56:44  <sipa> Sjors[m]: i think my approach will be to create a python reimplementation of the same algorithm(s)
2342023-11-20T16:57:20  <sipa> so that it can abstract away the complexity that's due to data structures, and just explain it all as operations on feerates and sets
2352023-11-20T16:57:37  <Sjors[m]> Sounds good.
2362023-11-20T16:58:22  <sipa> Sjors[m]: i don't expect big changes to the algorithms compared to what's implemented there, and perhaps some optimizations that don't contribute much may be dropped to reduce review complexity
2372023-11-20T16:59:19  <sipa> i do have a nice O(n^2) linearization post-processing algorithm that just improves it, which can be run after normal linearization
2382023-11-20T16:59:26  <sipa> that's not implemented there
2392023-11-20T17:00:36  <Sjors[m]> One thing that's useful to clarify is which linearization is perfect and which is "merely" pretty good.
2402023-11-20T17:01:02  <Sjors[m]> At least my understanding was that for small clusters you can find the best result?
2412023-11-20T17:01:13  <sipa> yeah up to 10-15 transactions
2422023-11-20T17:01:27  <Sjors[m]> And is there some metric of goodness?
2432023-11-20T17:01:35  <sdaftuar> yes, the mempool fee-size diagram we discussed before
2442023-11-20T17:02:04  <sdaftuar> you can imagine applying that a single cluster, and comparing two cluster linearizations by their fee-size diagrams.
2452023-11-20T17:02:09  <Sjors[m]> I mean, is there a metric to determine if you found the optimum or (stastitically) how far away you are
2462023-11-20T17:02:10  <sipa> but it's only a partial ordering - it's possible to have two linearizations for which in some places one's diagram is on top, and in other places the other one is; such linearizations are incomparable
2472023-11-20T17:02:28  <sipa> Sjors[m]: nope, i don't even have a way to quickly tell if a linearization is optimal or not
2482023-11-20T17:02:35  <sipa> apart from recomputing it
2492023-11-20T17:02:40  <sdaftuar> Sjors[m]: so, we don't have a proof that there exists an optimal ordering always.
2502023-11-20T17:03:10  <sdaftuar> Sjors[m]: however, we believe the optimal ordering is the one you get by doing the naive thing: at every step, select the topologically valid subset of remaining transactions with highest feerate
2512023-11-20T17:03:28  <sipa> also, i also just came up with an algorithm that can given two incomparable linearizations, finds a third linearization that's strictly better than both
2522023-11-20T17:03:45  <Sjors[m]> Are there any papers that explain the general problem?
2532023-11-20T17:03:55  <sipa> i have no clue what keywords to even look for
2542023-11-20T17:04:07  <sdaftuar> Sjors[m]: research links would be welcome!
2552023-11-20T17:17:22  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2562023-11-20T17:22:47  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 264 seconds)
2572023-11-20T17:35:01  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2582023-11-20T17:40:13  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
2592023-11-20T17:43:58  *** micha_ <micha_!uid14316@user/micha/x-4648593> has joined #bitcoin-core-dev
2602023-11-20T17:46:54  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2612023-11-20T17:48:23  *** salvatoshi <salvatoshi!~salvatosh@194.65.48.125> has quit IRC (Ping timeout: 256 seconds)
2622023-11-20T17:49:11  *** kabaum <kabaum!~kabaum@92.60.40.214> has quit IRC (Ping timeout: 264 seconds)
2632023-11-20T17:51:49  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
2642023-11-20T17:53:03  *** benwestgate <benwestgate!~BenWestga@2603-8080-74f0-e960-9c6a-f2d7-0602-347d.res6.spectrum.com> has quit IRC (Quit: Leaving.)
2652023-11-20T18:01:57  *** kabaum <kabaum!~kabaum@169.150.196.38> has joined #bitcoin-core-dev
2662023-11-20T18:03:36  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2672023-11-20T18:08:13  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 256 seconds)
2682023-11-20T18:11:54  *** Talkless <Talkless!~Talkless@mail.dargis.net> has joined #bitcoin-core-dev
2692023-11-20T18:26:05  *** szkl <szkl!uid110435@id-110435.uxbridge.irccloud.com> has joined #bitcoin-core-dev
2702023-11-20T18:49:05  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2712023-11-20T19:09:17  *** abubakarsadiq <abubakarsadiq!uid602234@id-602234.hampstead.irccloud.com> has quit IRC (Quit: Connection closed for inactivity)
2722023-11-20T19:09:24  *** dviola <dviola!~diego@user/dviola> has joined #bitcoin-core-dev
2732023-11-20T19:18:59  *** Guest77 <Guest77!~Guest77@2804:431:cff5:9c8:1d01:4909:9a32:1caa> has joined #bitcoin-core-dev
2742023-11-20T19:20:03  *** Guest77 <Guest77!~Guest77@2804:431:cff5:9c8:1d01:4909:9a32:1caa> has quit IRC (Client Quit)
2752023-11-20T19:31:32  *** pablomartin <pablomartin!~pablomart@185.216.146.35> has joined #bitcoin-core-dev
2762023-11-20T19:53:59  *** Talkless <Talkless!~Talkless@mail.dargis.net> has quit IRC (Remote host closed the connection)
2772023-11-20T20:03:13  *** Guest14 <Guest14!~Guest80@2a02:e840:303:9600:a9ba:914c:9137:5983> has quit IRC (Quit: Client closed)
2782023-11-20T20:10:57  *** cryptapus_ <cryptapus_!~cryptapus@user/cryptapus> has joined #bitcoin-core-dev
2792023-11-20T20:11:06  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has quit IRC (Ping timeout: 256 seconds)
2802023-11-20T20:16:51  *** mudsip <mudsip!~mudsip@user/mudsip> has joined #bitcoin-core-dev
2812023-11-20T20:23:40  *** micha_ <micha_!uid14316@user/micha/x-4648593> has quit IRC (Quit: Connection closed for inactivity)
2822023-11-20T20:25:19  *** micha_ <micha_!uid14316@user/micha/x-4648593> has joined #bitcoin-core-dev
2832023-11-20T20:26:37  *** cryptapus_ <cryptapus_!~cryptapus@user/cryptapus> has quit IRC (Ping timeout: 255 seconds)
2842023-11-20T20:27:10  *** mudsip <mudsip!~mudsip@user/mudsip> has quit IRC ()
2852023-11-20T20:30:35  *** jon_atack <jon_atack!~jonatack@user/jonatack> has joined #bitcoin-core-dev
2862023-11-20T20:30:53  *** jonatack <jonatack!~jonatack@user/jonatack> has quit IRC (Ping timeout: 256 seconds)
2872023-11-20T20:34:50  *** mudsip <mudsip!~mudsip@user/mudsip> has joined #bitcoin-core-dev
2882023-11-20T20:35:01  *** mudsip <mudsip!~mudsip@user/mudsip> has quit IRC (Client Quit)
2892023-11-20T21:17:26  *** cryptapus_ <cryptapus_!~cryptapus@user/cryptapus> has joined #bitcoin-core-dev
2902023-11-20T21:21:52  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has joined #bitcoin-core-dev
2912023-11-20T21:21:58  *** cryptapus_ <cryptapus_!~cryptapus@user/cryptapus> has quit IRC (Ping timeout: 255 seconds)
2922023-11-20T21:22:23  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
2932023-11-20T21:23:24  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2942023-11-20T21:31:46  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
2952023-11-20T21:32:21  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2962023-11-20T21:37:16  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
2972023-11-20T21:53:03  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
2982023-11-20T21:53:25  *** abubakarsadiq <abubakarsadiq!uid602234@id-602234.hampstead.irccloud.com> has joined #bitcoin-core-dev
2992023-11-20T21:57:37  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
3002023-11-20T22:01:41  *** pablomartin <pablomartin!~pablomart@185.216.146.35> has quit IRC (Ping timeout: 256 seconds)
3012023-11-20T22:05:17  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has quit IRC (Read error: Connection reset by peer)
3022023-11-20T22:08:37  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has joined #bitcoin-core-dev
3032023-11-20T22:09:30  *** pablomartin <pablomartin!~pablomart@89.37.175.80> has joined #bitcoin-core-dev
3042023-11-20T22:12:17  <bitcoin-git> [bitcoin] ryanofsky opened pull request #28921: multiprocess: Add basic type conversion hoois (master...pr/ipcc) https://github.com/bitcoin/bitcoin/pull/28921
3052023-11-20T22:15:26  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
3062023-11-20T22:20:23  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 264 seconds)
3072023-11-20T22:25:28  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
3082023-11-20T22:26:22  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
3092023-11-20T22:26:55  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
3102023-11-20T22:34:14  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has quit IRC (Ping timeout: 252 seconds)
3112023-11-20T22:37:49  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Remote host closed the connection)
3122023-11-20T22:38:21  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has joined #bitcoin-core-dev
3132023-11-20T22:41:37  *** cryptapus <cryptapus!~cryptapus@user/cryptapus> has joined #bitcoin-core-dev
3142023-11-20T22:47:01  *** brunoerg <brunoerg!~brunoerg@187.183.43.117> has quit IRC (Ping timeout: 255 seconds)
3152023-11-20T22:53:23  *** pablomartin <pablomartin!~pablomart@89.37.175.80> has quit IRC (Ping timeout: 264 seconds)
3162023-11-20T23:04:12  *** bugs_ <bugs_!~bugs@user/bugs/x-5128603> has quit IRC (Quit: Leaving)
3172023-11-20T23:15:19  *** vasild <vasild!~vd@user/vasild> has quit IRC (Ping timeout: 240 seconds)
3182023-11-20T23:33:40  *** micha_ <micha_!uid14316@user/micha/x-4648593> has quit IRC (Quit: Connection closed for inactivity)