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">=
&nbsp;</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">=
&nbsp;</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">=
&nbsp;</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">=
&nbsp;</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">=
&nbsp;</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 />&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundatio=
n.org">bitcoin-dev@lists.linuxfoundation.org</a>&gt; 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 &lt;<a href=3D"mailto:bitcoin-dev@lists.li=
nuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>&gt; 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&amp; 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-&gt;=
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>
&nbsp;<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--