--- Log opened Thu Aug 26 00:00:49 2021 01:29 -!- DeanGuss [~dean@nonplayercharacter.me] has joined #bitcoin-core-pr-reviews 01:29 -!- DeanGuss [~dean@nonplayercharacter.me] has quit [Changing host] 01:29 -!- DeanGuss [~dean@user/deanguss] has joined #bitcoin-core-pr-reviews 01:52 -!- Henrik [~textual@84.212.107.177] has joined #bitcoin-core-pr-reviews 02:21 -!- hex17or [~hex17or@gateway/tor-sasl/hex17or] has quit [Ping timeout: 276 seconds] 02:28 -!- hex17or [~hex17or@gateway/tor-sasl/hex17or] has joined #bitcoin-core-pr-reviews 02:33 -!- Henrik [~textual@84.212.107.177] has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…] 02:43 -!- Talkless [~Talkless@mail.dargis.net] has joined #bitcoin-core-pr-reviews 04:31 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has joined #bitcoin-core-pr-reviews 04:51 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has quit [Ping timeout: 240 seconds] 05:47 < jnewbery> harding: > the person who made the mistake which led to this mess 05:47 < jnewbery> You're being very unfair on yourself. People asked for a BIP to document the RBF behavior and you volunteered (https://www.erisian.com.au/meetbot/bitcoin-dev/2015/bitcoin-dev.2015-12-03-18.59.log.html#l-147). Your proposed write-up (https://github.com/bitcoin/bips/pull/261) was reviewed by both the author of the proposal/PR and a reviewer of that code, and neither of them noticed the 05:47 < jnewbery> discrepency between the BIP and the implementation. 05:47 < jnewbery> I disagree that rule 1 of BIP125 as you wrote it is ambiguous. It seems very clear to me that it means that the descendants of unconfirmed RBF-signalling transactions are themselves replaceable using BIP125. That's what you intended when you wrote it, and it's what any reasonable reader of the BIP would conclude. 05:47 < jnewbery> The original mailing list post (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-November/011783.html) states "Nodes that respect the opt-in will allow such opt-in transactions (and their descendents) to be replaced in the mempool if they meet the economic replacement criteria. To detect if a transaction may be replaced check if it or any unconfirmed ancestors have set 05:47 < jnewbery> nSequence < 0xFFFFFFFF-1 on any inputs." 05:47 < jnewbery> That's exactly the same as what BIP125 says, which is that signalling can be inherited. But it's not the same as what the author implemented in https://github.com/bitcoin/bitcoin/pull/6871. 05:48 < jnewbery> So I don't think you need to fall on your sword for this. You faithfully documented what the mailing list post said about inherited replaceability, not noticing the discrepency with the implementation. None of the reviewers noticed that discrepency either. Contributing to Bitcoin is a team effort, and we have review to catch errors and improve each others' contributions. 05:48 < jnewbery> I'm certain that if it was someone else who had volunteered and written BIP125, you wouldn't say "that person who made the mistake which led to this mess". Please be equally understanding and empathetic towards yourself as I know you would be with any other contributor :) 05:51 < michaelfolkson> ^ 100 percent agree on the self blame. It is inevitable even with the most competent that needles in haystacks will be found years after BIPs were written or software was written 06:02 < laanwj> yes, it's incredibly difficult to have docs match the behavior of code or hardware exactly, it's inevitable there are mistakes in that, it happens to everyone, thanks for trying and generally doing a very good job harding 06:02 < laanwj> and yes reviewers which didn't notice are just as much to blame if you really want to play the blame game 06:29 < pinheadmz> I noticed the discrepancy when implementing bip125 for bcoin, in 2019: https://bitcoin.stackexchange.com/questions/88813/is-inherited-replace-by-fee-signaling-implemented-as-described-in-bip125 06:29 < pinheadmz> I should've posted somehwere more visible! This never got answered... 06:37 < jnewbery> pinheadmz: ha! I didn't realise you'd discovered this back in 2019 06:38 < pinheadmz> yeah I wish i was more confident back then to ask the core developers on IRC directly 06:39 < pinheadmz> I will say, if nothing else, this is one benefit of alt implementations: different perspective looking at specs like bip125 and looking at code 06:39 < pinheadmz> in bcoin I just copied the core behavior instead of trying to add the missing rule from the BIP 06:44 < michaelfolkson> Some of the Lightning guys say the same. There is definitely a benefit and new perspective that comes from someone trying to reimplement a feature from scratch. It doesn't make it into the BOLTs without two implementations implementing it first 06:45 < michaelfolkson> (Obviously Bitcoin alternative implementations are seen in very different light to Lightning alternative implementations, ignoring that) 06:46 < sipa> it depends for what, for many things i think that's a very reasonable rule 06:46 < sipa> but not consensus rules, at least 06:47 < michaelfolkson> Right 07:42 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 07:42 < harding> jnewbery: I don't feel like I'm impaling myself, just performing a postmortem (why are these metaphors so fatal?) about what could've been done better. I also disagree with your reading of petertodd's mailing list post: I think the same ambiguity exists there that exists in BIP125; he meant it one way (a child can be replaced by replacing its parent), other people (myself included) read it a different way (if parent replacable, child 07:42 < harding> can be *independently* replaced). As for specifics, the original draft of the BIP I sent to petertodd included a section with a copy of the most relevant portions of the patch; Pete suggested I not include that, saying he thought that was only useful for consensus changes, and I accept that suggestion; in retrospect I think it could've helped uncover this issue earlier than pinheadmz's discovery if I had kept that patch in. Fair point 07:42 < harding> , though, about my describing myself in worse terms than I'd use for anyone else having made a similar mistake; I'll try not to embellish my self criticism in the future. :-) 07:56 < jnewbery> harding: oh wow, even though you'd already told me that the wording was ambiguous, I still understood the mailing list post as unambiguously saying that the child could be replaced (as I was writing out my response earlier, I originally wrote "the mailing list post was ambiguous", but then scrubbed it after reading the second sentence "To detect if a transaction may be replaced check if 07:56 < jnewbery> it or any 07:56 < jnewbery> unconfirmed ancestors have set nSequence < 0xFFFFFFFF-1 on any inputs.") 10:27 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has joined #bitcoin-core-pr-reviews 11:01 -!- Henrik [~textual@84.212.107.177] has joined #bitcoin-core-pr-reviews 11:03 -!- raj [~raj_@103.77.139.233] has quit [Quit: Leaving] 11:16 -!- Henrik [~textual@84.212.107.177] has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…] 12:12 -!- Talkless [~Talkless@mail.dargis.net] has quit [Quit: Konversation terminated!] 13:58 -!- dongcarl4 [~dongcarl@96.224.58.144] has joined #bitcoin-core-pr-reviews 14:01 -!- dongcarl [~dongcarl@96.224.58.144] has quit [Quit: Ping timeout (120 seconds)] 14:01 -!- dongcarl4 is now known as dongcarl 14:19 -!- common [~common@096-033-221-075.res.spectrum.com] has joined #bitcoin-core-pr-reviews 15:54 -!- biteskola [~biteskola@184.76.76.188.dynamic.jazztel.es] has joined #bitcoin-core-pr-reviews 15:55 -!- biteskola [~biteskola@184.76.76.188.dynamic.jazztel.es] has quit [Remote host closed the connection] 15:55 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has joined #bitcoin-core-pr-reviews 15:58 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has quit [Client Quit] 16:19 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has joined #bitcoin-core-pr-reviews 17:01 -!- aitorjs [~aitorjs@184.76.76.188.dynamic.jazztel.es] has quit [Remote host closed the connection] 18:56 -!- common [~common@096-033-221-075.res.spectrum.com] has quit [Ping timeout: 240 seconds] 19:10 -!- common [~common@096-033-221-075.res.spectrum.com] has joined #bitcoin-core-pr-reviews 19:12 -!- muhblockchain [~muhblockc@user/muhblockchain] has quit [Ping timeout: 250 seconds] 19:13 -!- muhblockchain [~muhblockc@user/muhblockchain] has joined #bitcoin-core-pr-reviews 19:22 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has quit [Quit: My MacBook has gone to sleep. ZZZzzz…] 19:44 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has joined #bitcoin-core-pr-reviews 19:48 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has quit [Client Quit] 19:49 -!- grettke [~grettke@cpe-65-29-228-30.wi.res.rr.com] has joined #bitcoin-core-pr-reviews 21:09 -!- common [~common@096-033-221-075.res.spectrum.com] has quit [Remote host closed the connection] 21:10 -!- common [~common@096-033-221-075.res.spectrum.com] has joined #bitcoin-core-pr-reviews 21:35 -!- belcher [~belcher@user/belcher] has quit [Ping timeout: 252 seconds] 21:47 -!- belcher [~belcher@user/belcher] has joined #bitcoin-core-pr-reviews 22:59 -!- muhblockchain [~muhblockc@user/muhblockchain] has quit [Ping timeout: 248 seconds] 23:41 -!- jarolrod [sid475272@id-475272.highgate.irccloud.com] has quit [Ping timeout: 250 seconds] 23:44 -!- jarolrod [sid475272@id-475272.highgate.irccloud.com] has joined #bitcoin-core-pr-reviews 23:56 -!- raj [~raj_@103.77.139.233] has joined #bitcoin-core-pr-reviews --- Log closed Fri Aug 27 00:00:51 2021