1

Whenever I try to review P2P and mempool (default) policy proposals I end up going round in circles around this maze of docs, mailing list posts and pull requests. Some of them are outdated, some present the latest state of proposal(s), sometimes two proposals are presented together, sometimes presented separately. Some docs I found really useful in the past I can't find anymore. Can you answer these questions and provide a link to the latest state of the proposal?

What is BIP 125? Which BIP 125 rules are still being enforced in default policy in Core today? Which aren't? Which BIP 125 rules have been replaced with alternative rules in Core today?

What (and where) is the proposed replacement for BIP 125?

What is V3 Policy? Is the proposed replacement for BIP 125 part of V3 Policy?

What is package RBF and is this part of V3 Policy or a separate proposal to V3 Policy? Is the intention that package RBF will (eventually) be enabled at the same time as V3 Policy or can they be enabled at different times?

I get the proposals are evolving over time (and so no criticism necessarily directed towards the authors) but this confusion makes it really hard for me to follow what is going on.

1
  • 1
    These questions are more than needed. Thanks.
    – dev7ba
    Feb 23 at 10:14

1 Answer 1

-1

This is a work in progress answer taken mostly from the notes of the Bitcoin Core PR review club on February 22nd 2023 on "nVersion=3 and Package RBF". As always alternative answers are welcome.

What is BIP 125? Which BIP 125 rules are still being enforced in default policy in Core today? Which aren't? Which BIP 125 rules have been replaced with alternative rules in Core today?

BIP 125 outlined how a transaction could signal that it was replaceable by a replace-by-fee (RBF) transaction. It was later discovered that the signaling rules as described in BIP 125 didn't match what was implemented in Bitcoin Core. Hence although a versioning system for BIP 125/RBF rules hasn't currently been introduced I'll use a RBF rule versioning system in this answer to be clear on exactly what rule I'm referring to.

Although the original Bitcoin Core implementation predated BIP 125 I will call the BIP "version 1" and the original Bitcoin Core implementation "version 2" because later changes and future versions ("version 3" and later) were made from the Bitcoin Core implementation and not from the BIP. This versioning system I am introducing is distinct to the "V3" transaction proposal which would set the nVersion field in the transaction to 3.

Issues with BIP 125: https://gist.github.com/instagibbs/b3095752d6289ab52166c04df55c1c19

Current RBF rules (BIP 125 v3) in Bitcoin Core: https://github.com/bitcoin/bitcoin/blob/master/doc/policy/mempool-replacements.md#current-replace-by-fee-policy

What (and where) is the proposed replacement for BIP 125?

I'm not sure this exists yet. We'll call this BIP 125 v4 to differentiate from what is currently implemented in Core (BIP 125 v3) today.

What is V3 Policy? Is the proposed replacement for BIP 125 part of V3 Policy?

Link: https://github.com/bitcoin-core-review-club/bitcoin/blob/7198dac47279967be1a5d97c5423df60ff3b7df5/doc/policy/version3_transactions.md

What is package RBF and is this part of V3 Policy or a separate proposal to V3 Policy? Is the intention that package RBF will (eventually) be enabled at the same time as V3 Policy or can they be enabled at different times.

2
  • 2
    There is no versioning of BIP125. BIP125 describes a set of rules and it has not changed. V3 refers to a completely separate set of policies to apply to transactions with nVersion set to 3.
    – glozow
    Feb 23 at 16:11
  • @glozow: There isn't. It does make it hard to follow without them. Whenever I see say "Rule 3" I have no idea whether it is referring to Rule 3 in BIP 125, Rule 3 as originally implemented in Core, today's Rule 3 in Core, a proposed future change to Rule 3 in Core etc. I get "V3" is not referring to BIP 125 version 3 (which as you say hasn't been versioned) Feb 23 at 16:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.