bitcoinops/bitcoinops.github.io

Compatibility Matrix: revise RBF columns

OttoAllmendinger opened this issue · 1 comments

The current compatibility matrix table for RBF has the following columns:

  • "Notification"
    {% case rbf.receive.notification %}
    {% when "true" %}{:.feature-yes}
    - **Notification notes RBF**<br>
    Notification of incoming transaction notes that the transaction signals RBF.
    {% when "false" %}{:.feature-no}
    - **Notification does not note RBF**<br>
    Notification of incoming transaction does not note that the transaction signals RBF.
    {% when "na" %}{:.feature-neutral}
    - **No notification**<br>
    There are no incoming transaction notifications for this service.
    {% when "untested" %}{:.feature-neutral}
    - **Not tested: Does transaction notification show whether transaction signals RBF?**<br>
    We either didn’t test this or could not appropriately determine the results.
    {% else %}{% include ERROR_42_UNEXPECTED_VALUE %}
    {% endcase %}
    (Notification of incoming transaction notes that the transaction signals RBF.)
  • "List"
    {:id="receive-list"}
    {% case rbf.receive.list %}
    {% when "true" %}{:.feature-yes}
    - **Received transaction labeled replaceable in list**<br>
    Visually indicates that an incoming transaction has signaled RBF.
    {% when "false" %}{:.feature-no}
    - **Received transaction not labeled replaceable in list**<br>
    Does not visually indicate that an incoming transaction has signaled RBF.
    {% when "na" %}{:.feature-neutral}
    - **This services does not handle incoming transactions**<br>
    Does not support incoming transactions.
    {% when "untested" %}{:.feature-neutral}
    - **Not tested: Does transaction list show whether received transactions signal RBF?**<br>
    We either didn’t test this or could not appropriately determine the results.
    {% else %}{% include ERROR_42_UNEXPECTED_VALUE %}
    {% endcase %}
    (Received transaction labeled replaceable in list)

In light of growing full-rbf adoption, these columns and the visual indicators might not be appropriate anymore. The difference between signalling and non-signalling transactions is diminishing.

Explicitly highlighting the "RBF" field suggests a significant difference between transactions that have opted in and those that have not. The wording in the "List" column does not even use "signals RBF" and just uses "replaceable". To some readers it could suggest that only RBF transactions are replaceable, when this is not true.

The easiest solution to this might be to remove these two columns.

I think you are bringing up some great points. With some adoption of mempoolfullrbf, it is a lot less important for wallets and services to notify that a transaction is marked as non-final. Essentially all transactions should be treated as non-final and replaceable.

We currently have someone looking into reworking the "Compatibility Matrix" into a "Best Practice Adoption Tracker". I will bring up the point there. Thank you for raising the issue.