public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [bitcoin-dev] Announcement: Full-RBF Miner Bounty
@ 2022-11-02  9:26 Peter Todd
  2022-11-02 19:02 ` alicexbt
  2022-11-08 18:16 ` Peter Todd
  0 siblings, 2 replies; 21+ messages in thread
From: Peter Todd @ 2022-11-02  9:26 UTC (permalink / raw)
  To: bitcoin-dev

[-- 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 --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-12-13  4:01 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-02  9:26 [bitcoin-dev] Announcement: Full-RBF Miner Bounty Peter Todd
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox