--- Log opened Mon Feb 03 00:00:07 2025 00:37 -!- PaperSword [~Thunderbi@securemail.qrsnap.io] has joined #bitcoin-core-pr-reviews 01:23 -!- PaperSword [~Thunderbi@securemail.qrsnap.io] has quit [Ping timeout: 260 seconds] 01:23 -!- PaperSword [~Thunderbi@160.250.164.0] has joined #bitcoin-core-pr-reviews 01:27 -!- PaperSword [~Thunderbi@160.250.164.0] has quit [Ping timeout: 248 seconds] 01:28 -!- PaperSword [~Thunderbi@securemail.qrsnap.io] has joined #bitcoin-core-pr-reviews 01:30 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 252 seconds] 02:50 -!- pyth [~pyth@user/pyth] has quit [Remote host closed the connection] 02:51 -!- pyth [~pyth@user/pyth] has joined #bitcoin-core-pr-reviews 03:00 -!- PaperSword [~Thunderbi@securemail.qrsnap.io] has quit [Quit: PaperSword] 04:21 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 04:29 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 245 seconds] 04:53 < glozow> Notes and questions for wednesday's meeting are up: https://bitcoincore.reviews/31363 04:54 < glozow> If you have some ramping up to do, the notes should help 05:16 -!- abubakarsadiq [uid602234@id-602234.hampstead.irccloud.com] has joined #bitcoin-core-pr-reviews 05:29 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 05:34 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 252 seconds] 05:35 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 05:43 < sipa> glozow: i struggle with some of the questions! 05:45 < glozow> sipa: oh no! 05:45 < glozow> the whole vibe was supposed to be accessible 05:45 < sipa> that's perhaps because i've never used git stash 05:46 < glozow> Hm I suppose stash might also not be that accurate since you can’t just get it back 05:47 < glozow> hit reset HEAD~1 maybe? 05:47 < glozow> git* 06:01 < glozow> and to be fair, some of the questions there are “i would like to know the answer to this” 06:02 < sipa> glozow: i messaged you some questions about the questions privately 06:13 < pyth> glozow: `git stash pop 0` can unstash last stashed changes 06:14 < glozow> sipa: 👍 06:14 < glozow> I think just `git stash pop` works 06:14 < instagibbs> i didnt know it even took a numebred arg 06:14 < glozow> But is there an equivalent for `AbortStaging`? If you `StartStaging` again do you get some of the `m_removed` stuff back? I didn't really understand that part yet 06:15 < sipa> glozow: in txgraph, or in an envisioned analogy with git? 06:16 < glozow> in txgraph 06:17 < sipa> m_removed is a member of ClusterSet, so if you AbortStaging(), the m_removed variable just disappears 06:18 < sipa> thr main ClusterSet does not change at all while staging exists (with the exception of calling the Ref destructor, which removes a transaction potentially in both main and staging simultaenously) 06:18 < glozow> hm ok. There's a part in `AbortStaging` "Mark are removed transactions as Missing (so the stage_level locator for these transactions can be reused if another staging is created)." that I didn't really understand 06:24 < sipa> so there are 3 states Locators can be in: (P)resent (added/existing om an actual Cluster at this level), (M)issing: not in any Cluster at this level, but "inherited" from main if staging, (R)emoved explicitly removed in this level (only possible in staging) 06:26 < sipa> when you only have a main graph, the possibilities are PM (for existing transactions) and MM (for.non-existing transactions) 06:29 < sipa> when staging exists, PM means exists in main not modified in staging, PR means exists in main and removed in staging, PP means exists in main and replaced in staging, MP means added in staging 06:33 < glozow> ah that’s super helpful! 06:36 < sipa> when staging aborts, all PP and PR need to be converted to PM 06:36 < sipa> and all MP becomes MM 06:36 < sipa> the PR to PM conversion is what you're asking about 06:37 < sipa> conversion from PM to PP is what PullIn foes 06:37 < sipa> *does 06:37 < glozow> ah so. it goes from PR to PM, and PM is how this transaction should start out if we make a new staging 06:38 < sipa> right, we keep the 2nd level in locators at M when staging does not exist at all times, so that StartStaging doesn't need to do anything 06:38 < glozow> that makes sense! 06:42 < sipa> an alternative would be to just not care about the 2nd level when there is no staging, and set it to PM on startstaging, but that means O(n) work to start staging in n = the size of the mempool 06:44 < glozow> right, seems better to proactively clean it up when we `AbortStaging` 06:45 < sipa> question: when can MM exist? 06:45 < glozow> like washing your dishes right after you eat, instead of leaving them for the next time you have a meal 06:50 < sipa> the proper analogy would be washing the dishes after you eat before putting them back, or putting them back without washing, so that the next time you want to cook you need to go through _all_ your dishes just to find out which ones might be dirty 06:51 < glozow> 👍 got it 06:52 -!- kevkevin [~kevkevin@209.242.39.30] has joined #bitcoin-core-pr-reviews 06:53 < glozow> Hm, but in `StartStaging`, we `ApplyDependencies` first... 06:53 < sipa> that accomplishes two things 06:54 < sipa> (1) it's just efficient to do it only once, as otherwise staging would need to inherit a copy of m_deps_to_add, and the same work may need to be done main and staging 06:56 < sipa> the other is know conclusively before staging is created whether main is oversized or not, because after the changes in "destroying Ref means removing transaction", we don't modify main's oversizedness while staging exists 07:02 < sipa> this is probably the part of the logic i struggled most with to make work; the problem is when staging exists, and you destroy a ref... the transaction can't remain in existence because there is no way to refer to it anymore (e.g. GetAncestors cannot return it), which means it may need to be removed from main, while staging already exists 07:03 < sipa> but what if main was oversized, and had outstanding dependencies to be applied, but this removal from main makes it not-oversized anymore, so GetMainChunKFeerate can be called on it, which may mean merging of clusters in main, all while staging exists 07:04 < sipa> and then someone makes a change to staging which causes a cluster to be pulled in from main to staging, except that cluster was merged with another one that was already pulled in, no you're in an inconsistent state because part of the cluster is already there and part is not 07:05 < sipa> so the solution was: if you start staging while main is oversized, main will remain oversized until staging is removed, even if Ref destructions remove the cause of oversizedness from main, so that no cluster merging will ever happen in main while staging exists 07:06 < sipa> (i would never have considered anything remotely as complicated at this without fuzz test...) 07:31 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 07:32 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Client Quit] 07:37 -!- PaperSword [~Thunderbi@securemail.qrsnap.io] has joined #bitcoin-core-pr-reviews 07:41 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 07:43 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 08:13 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 08:13 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 08:22 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 08:24 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 08:32 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 265 seconds] 09:02 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 09:03 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Client Quit] 09:10 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 09:18 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 09:40 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 09:51 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 09:52 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Client Quit] 09:53 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 244 seconds] 09:55 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 09:56 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Client Quit] 10:17 -!- Talkless [~Talkless@mail.dargis.net] has joined #bitcoin-core-pr-reviews 10:40 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 10:55 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 260 seconds] 10:56 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 11:00 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 252 seconds] 11:17 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 12:15 -!- Talkless [~Talkless@mail.dargis.net] has quit [Quit: Konversation terminated!] 12:24 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 244 seconds] 12:41 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 12:42 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Client Quit] 12:48 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 13:06 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has joined #bitcoin-core-pr-reviews 13:10 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 13:11 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 13:18 -!- pyth [~pyth@user/pyth] has quit [Ping timeout: 246 seconds] 13:18 -!- pyth [~pyth@user/pyth] has joined #bitcoin-core-pr-reviews 13:20 -!- kevkevin [~kevkevin@209.242.39.30] has quit [Remote host closed the connection] 13:21 -!- kevkevin [~kevkevin@209.242.39.30] has joined #bitcoin-core-pr-reviews 13:25 -!- b10c [~quassel@user/b10c] has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.] 13:26 -!- b10c [~quassel@static.33.106.217.95.clients.your-server.de] has joined #bitcoin-core-pr-reviews 13:26 -!- b10c [~quassel@user/b10c] has changed host 13:27 -!- pyth [~pyth@user/pyth] has quit [Ping timeout: 260 seconds] 13:28 -!- pyth [~pyth@user/pyth] has joined #bitcoin-core-pr-reviews 13:35 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 13:57 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 14:03 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 252 seconds] 18:13 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 18:30 -!- jonatack [~jonatack@user/jonatack] has quit [Read error: Connection reset by peer] 18:33 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 18:48 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 260 seconds] 18:56 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 19:03 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 272 seconds] 19:09 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 19:20 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 272 seconds] 19:58 -!- kevkevin [~kevkevin@209.242.39.30] has quit [Remote host closed the connection] 19:59 -!- grettke [~grettke@syn-184-055-133-000.res.spectrum.com] has quit [Quit: grettke] 21:39 -!- kevkevin [~kevkevin@209.242.39.30] has joined #bitcoin-core-pr-reviews 21:44 -!- kevkevin [~kevkevin@209.242.39.30] has quit [Ping timeout: 252 seconds] 22:41 -!- jonatack [~jonatack@user/jonatack] has joined #bitcoin-core-pr-reviews 22:47 -!- jonatack [~jonatack@user/jonatack] has quit [Ping timeout: 248 seconds] 23:59 -!- S3RK_ [~S3RK@user/s3rk] has joined #bitcoin-core-pr-reviews --- Log closed Tue Feb 04 00:00:08 2025