public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Peter Todd <pete@petertodd•org>
To: bitcoin-dev@lists•linuxfoundation.org
Subject: [bitcoin-dev] Announcement: Full-RBF Miner Bounty
Date: Wed, 2 Nov 2022 05:26:27 -0400	[thread overview]
Message-ID: <Y2I3w8O5X55sD/3C@petertodd.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 2542 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

             reply	other threads:[~2022-11-02  9:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-02  9:26 Peter Todd [this message]
2022-11-02 19:02 ` alicexbt
2022-11-03 13:32   ` Erik Aronesty
2022-11-09 12:14     ` email
2022-11-08 18:16 ` Peter Todd
2022-11-15  5:36   ` Anthony Towns
2022-11-15 14:43     ` Peter Todd
2022-12-05 12:20       ` El_Hoy
2022-12-05 13:38         ` Greg Sanders
2022-12-05 14:12         ` Rijndael
2022-12-05 15:33           ` Michael Folkson
2022-12-05 17:00           ` Erik Aronesty
2022-12-06  4:48             ` El_Hoy
2022-12-05 17:25           ` El_Hoy
2022-12-06  5:39         ` Peter Todd
2022-12-06  7:37           ` Peter Todd
2022-12-09 16:04     ` 0xB10C
2022-12-09 21:16       ` Peter Todd
2022-12-10 11:59         ` 0xB10C
2022-12-10 18:07           ` Peter Todd
2022-12-13  4:01       ` Anthony Towns

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y2I3w8O5X55sD/3C@petertodd.org \
    --to=pete@petertodd$(echo .)org \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox