Return-Path: <email@yancy.lol> Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2B4AEC002D for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 9 Nov 2022 12:14:58 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id EA8474035D for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 9 Nov 2022 12:14:57 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org EA8474035D X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.1 X-Spam-Level: X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, PDS_BTC_ID=0.499, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G1oikoWwNRbK for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 9 Nov 2022 12:14:56 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 1D21D4028D Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by smtp2.osuosl.org (Postfix) with ESMTPS id 1D21D4028D for <bitcoin-dev@lists.linuxfoundation.org>; Wed, 9 Nov 2022 12:14:55 +0000 (UTC) Received: (Authenticated sender: email@yancy.lol) by mail.gandi.net (Postfix) with ESMTPA id DBEDB1BF20D; Wed, 9 Nov 2022 12:14:52 +0000 (UTC) MIME-Version: 1.0 Date: Wed, 09 Nov 2022 13:14:52 +0100 From: email@yancy.lol To: Erik Aronesty <erik@q32.com>, Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org> In-Reply-To: <CAJowKgKGsAGQyCmx24fRZWrAWCVi91QKxXaQGiXLJ6zEFXnneg@mail.gmail.com> References: <Y2I3w8O5X55sD/3C@petertodd.org> <fMZWicZXp5SM0ON8jgYuykBydOXcbgePbPfGKA0DQYtEDdiIr4bWljL_TqQHKtVKZRhvRXkEab47aaZw17OxGaSgOP2_w9_Owjb9WnTmsQ0=@protonmail.com> <CAJowKgKGsAGQyCmx24fRZWrAWCVi91QKxXaQGiXLJ6zEFXnneg@mail.gmail.com> Message-ID: <72fe7342314b5ea419f5c83cc3bc164a@yancy.lol> X-Sender: email@yancy.lol Content-Type: multipart/alternative; boundary="=_a423313e4beb0aef66b9c1dab28dea4f" X-Mailman-Approved-At: Wed, 09 Nov 2022 13:02:06 +0000 Subject: Re: [bitcoin-dev] Announcement: Full-RBF Miner Bounty X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> X-List-Received-Date: Wed, 09 Nov 2022 12:14:58 -0000 --=_a423313e4beb0aef66b9c1dab28dea4f Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed > technically, all we need is for *miners* to consistently mine "full > rbf" There's another important point I think: technically, all we need is for *miners* to consistently mine the highest fee-rate transaction (or the one with the most incentive). Miners could probably be incentivized to mine transactions that double spend a previous transaction that isn't rbf, also. Cheers, -Yancy On 2022-11-03 14:32, Erik Aronesty via bitcoin-dev wrote: > actually, peter makes an important point here > > technically, all we need is for *miners* to consistently mine "full > rbf" > > as long as they do, businesses that accept 0conf will have to adjust > their risk accordingly, and the problem of misaligned incentives is > resolved > > i don't think it matters what non-mining users do nearly as much > > On Wed, Nov 2, 2022 at 3:05 PM alicexbt via bitcoin-dev > <bitcoin-dev@lists.linuxfoundation.org> wrote: > > Hi Peter, > > tl;dr: I'm broadcasting full-RBF replacements paying extremely high > fees to reward miners that turn on full-RBF. I'm starting small, just > ~$100/block in times of congestion. Miner and pool profit margins are > pretty small, on the order of $1k/block in many cases, so I know it > doesn't take that much more money to make a difference. > I appreciate this effort and perhaps this was all that was needed in > addition to Bitcoin Core's inclusion of full rbf support. Making it > default right away or enabling preferential peering with service > flag in a bitcoin core release was unnecessary. > > If you'd like to donate to this effort, send BTC to > bc1qagmufdn6rf80kj3faw4d0pnhxyr47sevp3nj9m > Sorry, I don't trust you based on some of the things you support on > Twitter. Hopefully, others will donate and help this bounty. > > /dev/fd0 > > Sent with Proton Mail secure email. > > ------- Original Message ------- > On Wednesday, November 2nd, 2022 at 2:56 PM, Peter Todd via > bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote: > > I'm now running a full-RBf bounty program for miners. > > tl;dr: I'm broadcasting full-RBF replacements paying extremely high > fees to reward miners that turn on full-RBF. I'm starting small, just > ~$100/block in times of congestion. Miner and pool profit margins are > pretty small, on the order of $1k/block in many cases, so I know it > doesn't take that much more money to make a difference. > > Why should you do this? Full-RBF/zeroconf has been discussed to death. > But tl;dr: You'll earn more money, and help transition Bitcoin to a > more secure mempool policy based on economic incentives rather than > trust. > > If you're a miner and want to participate, the easiest way to so is to > use the mempoolfullrbf=1 option in the upcoming Bitcoin Core v24 > release (eg the 24.0rc3 tag), or use the mempoolreplacement=fee option > in Bitcoin Knots. > You can also just modify the code yourself by removing the opt-in RBF > check. For example against the v23.0 tag: > > $ git diff > diff --git a/src/validation.cpp b/src/validation.cpp > index 214112e2b..44c364623 100644 > --- a/src/validation.cpp > +++ b/src/validation.cpp > @@ -736,7 +736,7 @@ bool MemPoolAccept::PreChecks(ATMPArgs& args, > Workspace& ws) // check all unconfirmed ancestors; otherwise an opt-in > ancestor > // might be replaced, causing removal of this descendant. > if (!SignalsOptInRBF(*ptxConflicting)) { > - return state.Invalid(TxValidationResult::TX_MEMPOOL_POLICY, > "txn-mempool-conflict"); + // return > state.Invalid(TxValidationResult::TX_MEMPOOL_POLICY, > "txn-mempool-conflict"); } > > ws.m_conflicts.insert(ptxConflicting->GetHash()); > > Once you've enabled full-RBF, you need a full-RBF peer. I'm running a > few of them: > > cup.nop.lol > mug.nop.lol > jar.nop.lol > jug.nop.lol > > These nodes run a preferential peering patch > (https://github.com/bitcoin/bitcoin/pull/25600) to ensure that full-RBF > nodes are interconnected to each other and replacements can easily > propagate. Also feel free to contact me if you'd like to peer with a > private node. > > If you'd like to donate to this effort, send BTC to > bc1qagmufdn6rf80kj3faw4d0pnhxyr47sevp3nj9m > > ...and yes, I'm well aware that miners could collect this bounty in > other ways, eg by raising minimum fees. Doing that also breaks > zeroconf, so I'm not too concerned. > > -- > https://petertodd.org 'peter'[:-1]@petertodd.org [1 [1]] > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Links: ------ [1] http://petertodd.org _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev Links: ------ [1] http://petertodd.org --=_a423313e4beb0aef66b9c1dab28dea4f Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; charset= =3DUTF-8" /></head><body style=3D'font-size: 10pt; font-family: Verdana,Gen= eva,sans-serif'> <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0"> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= technically, all we need is for *miners* to consistently mine "full<br />rb= f"</div> </blockquote> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= </div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= There's another important point I think:</div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= </div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= technically, all we need is for *miners* to consistently mine the highest f= ee-rate transaction (or the one with the most incentive).</div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= </div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= Miners could probably be incentivized to mine transactions that double spen= d a previous transaction that isn't rbf, also.</div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= </div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= Cheers,</div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= -Yancy</div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= </div> <div class=3D"pre" style=3D"margin: 0; padding: 0; font-family: monospace">= On 2022-11-03 14:32, Erik Aronesty via bitcoin-dev wrote: <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">actually, peter makes an important point here<br /><br= />technically, all we need is for *miners* to consistently mine "full<br /= >rbf"<br /><br />as long as they do, businesses that accept 0conf will have= to adjust<br />their risk accordingly, and the problem of misaligned incen= tives is<br />resolved<br /><br />i don't think it matters what non-mining = users do nearly as much<br /><br />On Wed, Nov 2, 2022 at 3:05 PM alicexbt = via bitcoin-dev<br /><<a href=3D"mailto:bitcoin-dev@lists.linuxfoundatio= n.org">bitcoin-dev@lists.linuxfoundation.org</a>> wrote:<br /><br /> <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">Hi Peter,<br /><br /> <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">tl;dr: I'm broadcasting full-RBF replacements paying e= xtremely</blockquote> high fees to <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">reward miners that turn on full-RBF. I'm starting smal= l, just</blockquote> ~$100/block in <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">times of congestion. Miner and pool profit margins are= pretty</blockquote> small, on the <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">order of $1k/block in many cases, so I know it doesn't= take that</blockquote> much more <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">money to make a difference.</blockquote> <br />I appreciate this effort and perhaps this was all that was needed in<= br />addition to Bitcoin Core's inclusion of full rbf support. Making it<br= />default right away or enabling preferential peering with service<br />fl= ag in a bitcoin core release was unnecessary.<br /><br /> <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">If you'd like to donate to this effort, send BTC to<br= />bc1qagmufdn6rf80kj3faw4d0pnhxyr47sevp3nj9m</blockquote> <br />Sorry, I don't trust you based on some of the things you support on<b= r />Twitter. Hopefully, others will donate and help this bounty.<br /><br /= >/dev/fd0<br /><br />Sent with Proton Mail secure email.<br /><br />-------= Original Message -------<br />On Wednesday, November 2nd, 2022 at 2:56 PM,= Peter Todd via<br />bitcoin-dev <<a href=3D"mailto:bitcoin-dev@lists.li= nuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>> wrote:<br = /><br /> <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">I'm now running a full-RBf bounty program for miners.<= br /><br />tl;dr: I'm broadcasting full-RBF replacements paying extremely</= blockquote> high fees to <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">reward miners that turn on full-RBF. I'm starting smal= l, just</blockquote> ~$100/block in <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">times of congestion. Miner and pool profit margins are= pretty</blockquote> small, on the <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">order of $1k/block in many cases, so I know it doesn't= take that</blockquote> much more <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">money to make a difference.<br /><br />Why should you = do this? Full-RBF/zeroconf has been discussed to</blockquote> death. But <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">tl;dr: You'll earn more money, and help transition Bit= coin to a</blockquote> more secure <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">mempool policy based on economic incentives rather tha= n trust.<br /><br /><br />If you're a miner and want to participate, the ea= siest way to so</blockquote> is to use the <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">mempoolfullrbf=3D1 option in the upcoming Bitcoin Core= v24 release</blockquote> (eg the <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">24.0rc3 tag), or use the mempoolreplacement=3Dfee opti= on in Bitcoin</blockquote> Knots. <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0"><br />You can also just modify the code yourself by re= moving the opt-in</blockquote> RBF check. <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">For example against the v23.0 tag:<br /><br />$ git di= ff<br />diff --git a/src/validation.cpp b/src/validation.cpp<br />index 214= 112e2b..44c364623 100644<br />--- a/src/validation.cpp<br />+++ b/src/valid= ation.cpp<br />@@ -736,7 +736,7 @@ bool MemPoolAccept::PreChecks(ATMPArgs&a= mp; args,</blockquote> Workspace& ws) <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">// check all unconfirmed ancestors; otherwise an opt-i= n ancestor<br />// might be replaced, causing removal of this descendant.<b= r />if (!SignalsOptInRBF(*ptxConflicting)) {<br />- return state.Invalid(Tx= ValidationResult::TX_MEMPOOL_POLICY,</blockquote> "txn-mempool-conflict"); <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">+ // return state.Invalid(TxValidationResult::TX_MEMPO= OL_POLICY,</blockquote> "txn-mempool-conflict"); <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">}<br /><br />ws.m_conflicts.insert(ptxConflicting->= GetHash());<br /><br /><br />Once you've enabled full-RBF, you need a full-= RBF peer. I'm</blockquote> running a few of <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">them:<br /><br />cup.nop.lol<br />mug.nop.lol<br />jar= =2Enop.lol<br />jug.nop.lol<br /><br />These nodes run a preferential peeri= ng patch</blockquote> (<a href=3D"https://github.com/bitcoin/bitcoin/pull/25600" target=3D"_blank= " rel=3D"noopener noreferrer">https://github.com/bitcoin/bitcoin/pull/25600= </a>) <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">to ensure that full-RBF nodes are interconnected to ea= ch other and</blockquote> replacements <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">can easily propagate. Also feel free to contact me if = you'd like</blockquote> to peer with a <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">private node.<br /><br /><br />If you'd like to donate= to this effort, send BTC to<br />bc1qagmufdn6rf80kj3faw4d0pnhxyr47sevp3nj9= m<br /><br /><br />...and yes, I'm well aware that miners could collect thi= s bounty</blockquote> in other ways, <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">eg by raising minimum fees. Doing that also breaks zer= oconf, so</blockquote> I'm not too <blockquote type=3D"cite" style=3D"padding: 0 0.4em; border-left: #1010ff 2= px solid; margin: 0">concerned.<br /><br />--<br /><a href=3D"https://peter= todd.org" target=3D"_blank" rel=3D"noopener noreferrer">https://petertodd.o= rg</a> 'peter'[:-1]@petertodd.org [<a href=3D"http://petertodd.org" target= =3D"_blank" rel=3D"noopener noreferrer">1</a>]<br />_______________________= ________________________<br />bitcoin-dev mailing list<br /><a href=3D"mail= to:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation= =2Eorg</a><br /><a href=3D"https://lists.linuxfoundation.org/mailman/listin= fo/bitcoin-dev" target=3D"_blank" rel=3D"noopener noreferrer">https://lists= =2Elinuxfoundation.org/mailman/listinfo/bitcoin-dev</a></blockquote> _______________________________________________<br />bitcoin-dev mailing li= st<br /><a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-de= v@lists.linuxfoundation.org</a><br /><a href=3D"https://lists.linuxfoundati= on.org/mailman/listinfo/bitcoin-dev" target=3D"_blank" rel=3D"noopener nore= ferrer">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a><= /blockquote> <br /><br />Links:<br />------<br />[1] <a href=3D"http://petertodd.o= rg" target=3D"_blank" rel=3D"noopener noreferrer">http://petertodd.org</a><= br />_______________________________________________<br />bitcoin-dev maili= ng list<br /><a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitco= in-dev@lists.linuxfoundation.org</a><br /><a href=3D"https://lists.linuxfou= ndation.org/mailman/listinfo/bitcoin-dev" target=3D"_blank" rel=3D"noopener= noreferrer">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev= </a></blockquote> </div> </body></html> --=_a423313e4beb0aef66b9c1dab28dea4f--