Remove redundant -datacarrier option #29942

pull vostrnad wants to merge 1 commits into bitcoin:master from vostrnad:remove-datacarrier changing 11 files +21 −29
  1. vostrnad commented at 3:25 pm on April 23, 2024: none

    The -datacarrier option is redundant, as disabling the relay and mining of transactions creating OP_RETURN outputs can be accomplished by setting -datacarriersize=0. Its removal was supported by several people in the discussion of #27261 (e.g. #27261 (comment), #27261 (comment)) and implemented in #28130, but that PR was rejected due to making other, more controversial changes.

    Being a breaking change, this will of course need a release note. I’d recommend anyone concerned that they might accidentally start relaying and mining OP_RETURN transactions to proactively set -datacarriersize=0 now.

  2. DrahtBot commented at 3:25 pm on April 23, 2024: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept NACK luke-jr

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #30232 (refactor: policy: Pass kernel::MemPoolOptions to IsStandard[Tx] rather than long list of individual options by luke-jr)
    • #29520 (add -limitdummyscriptdatasize option by Retropex)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  3. maflcko commented at 3:34 pm on April 23, 2024: member

    Being a breaking change, this will of course need a release note. I’d recommend anyone concerned that they might accidentally start relaying and mining OP_RETURN transactions to proactively set -datacarriersize=0 now.

    Not sure about saving 4 lines of code for a breaking change. There are other redundant options such as -signet and -chain=signet, so I don’t see why this one should be removed?

    (Edit: I know I changed my opinion on this, compared to #27261 (comment), but I think it is clear that some users may be using this option and saving a few lines of code may not be worth it in the end, considering this is a breaking change. However, flattening the optional can still be done, because it is not a breaking change and comes with most of the benefits of what this pull is trying to achieve?)

  4. vostrnad commented at 3:49 pm on April 23, 2024: none

    The main benefit really is not having two options with similar names that can do the same thing. As you yourself said in the linked comment:

    Having two ways to achieve the same is just confusing and can lead to issues.

    Seems to me a one-time breaking change (with very little impact) is preferred to keeping the confusing set of options forever.

  5. vostrnad force-pushed on Apr 23, 2024
  6. DrahtBot added the label CI failed on Apr 23, 2024
  7. DrahtBot commented at 3:58 pm on April 23, 2024: contributor

    🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the documentation.

    Possibly this is due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    Leave a comment here, if you need help tracking down a confusing failure.

    Debug: https://github.com/bitcoin/bitcoin/runs/24160281628

  8. DrahtBot removed the label CI failed on Apr 23, 2024
  9. vostrnad commented at 10:26 pm on April 23, 2024: none

    Another difference from -chain is that it is possible to set both -datacarrier=0 and a positive -datacarriersize without so much as a warning (-chain immediately crashes when in conflict with another option).

    Here are also a few examples of users confused about the two options:

    https://twitter.com/FieldNas/status/1782498776671768807 https://twitter.com/betoche1984/status/1782452190063337681

  10. maflcko commented at 6:00 am on April 24, 2024: member

    Another difference from -chain is that it is possible to set both -datacarrier=0 and a positive -datacarriersize without so much as a warning (-chain immediately crashes when in conflict with another option).

    Right. However, after this pull request, the same is true if -datacarrier=0 is set in a config file. (See #15021). That is, it is possible that this is silently ignored for a user that has it intentionally set.

    Here are also a few examples of users confused about the two options:

    It looks like those are examples of users using the options, so their configs will be broken. If the docs are hard to understand, an alternative would be to improve the docs.

    I am happy to review the optional flattening, if you split it up into another pull request, but this pull request as-is will probably have a hard time finding reviewers.

  11. laanwj added the label TX fees and policy on Apr 24, 2024
  12. laanwj commented at 8:22 am on April 24, 2024: member
    This particular option was introduced 10 years ago (in e44fea55ea73f46bc9460597c7001e77acb58db7, v0.10.0 apparently). FWIW i think we would need a stronger reason to remove it than a bit of redundancy.
  13. maflcko commented at 9:29 am on May 4, 2024: member
    Are you still working on this?
  14. vostrnad commented at 9:42 pm on May 4, 2024: none
    What is there to work on? CI passes and there are no merge conflicts. I know you suggested alternative approaches, but those can be implemented in different PRs if this one gets closed.
  15. luke-jr commented at 2:53 am on May 7, 2024: member

    It seems there is a benefit to redundant options, in that we had to do the whole prune-prev thing to preserve the disabled size in the GUI (which is actually kindof weird, since disabling pruning is a pretty big change).

    But the confusion isn’t nothing either.

    Inclined to leave it alone since it’s been this way for years. = Weak Concept NACK.

  16. DrahtBot added the label Needs rebase on May 15, 2024
  17. Remove redundant `-datacarrier` option 4e86f9b9b5
  18. vostrnad force-pushed on May 15, 2024
  19. DrahtBot removed the label Needs rebase on May 15, 2024
  20. DrahtBot added the label CI failed on Jun 18, 2024
  21. DrahtBot removed the label CI failed on Jun 18, 2024
  22. maflcko commented at 6:37 am on June 27, 2024: member
    Not sure what to do here. So far it doesn’t look like there has been a single reviewer in support of this change, so maybe it can be closed for now? If need or support arises in the future, it would be trivial to pick up again, but until then I am not sure this needs to sit around in the open state.
  23. maflcko commented at 6:39 am on June 27, 2024: member
    Again, I’d be happy to review this change, if the changes to init.cpp and ./test/ were dropped and this was a refactor.
  24. achow101 commented at 3:01 pm on October 15, 2024: member

    This PR does not seem to have attracted much attention from reviewers. As such, it does not seem important enough right now to keep it sitting idle in the list of open PRs.

    Closing due to lack of interest.

  25. achow101 closed this on Oct 15, 2024


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-21 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me