policy: uncap datacarrier by default #32406

pull instagibbs wants to merge 5 commits into bitcoin:master from instagibbs:2025-05-uncap_datacarrier changing 24 files +125 −94
  1. instagibbs commented at 3:41 pm on May 2, 2025: member

    Retains the -datacarrier* args, marks them as deprecated, and does not require another argument for multiple OP_RETURN outputs.

    If a user has set -datacarriersize the value is “budgeted” across all seen OP_RETURN output scriptPubKeys. In other words the total script bytes stays the same, but can be spread across any number of outputs. This is done to not introduce an additional argument to support multiple outputs.

    I do not advise people use the option with custom arguments and it is marked as deprecated to not mislead as a promise to offer it forever. The argument itself can be removed in some future release to clean up the code and minimize footguns for users.

  2. DrahtBot commented at 3:41 pm on May 2, 2025: contributor

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

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32406.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #32359 (Remove arbitrary limits on OP_Return (datacarrier) outputs by petertodd)
    • #29954 (RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo by kristapsk)

    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.

    LLM Linter (✨ experimental)

    Possible typos and grammar issues:

    Requires -maxmempool=5 and assumes -minrelaytxfee ⇒ Requires -maxmempool=5 and assumes -minrelaytxfee is 1 sat/vbyte

    If it is custom set to 83, the historical value, ⇒ # If it is custom-set to 83 (the historical value):

  3. DrahtBot added the label TX fees and policy on May 2, 2025
  4. bitcoin locked this on May 2, 2025
  5. ajtowns added the label Needs release note on May 2, 2025
  6. instagibbs force-pushed on May 2, 2025
  7. DrahtBot added the label CI failed on May 2, 2025
  8. policy: uncap datacarrier by default
    Datacarrier output script sizes and output counts are now
    uncapped by default.
    
    To avoid introducing another startup argument, we modify the
    OP_RETURN accounting to "budget" the spk sizes.
    
    If a user has set a custom default, this results in that
    budget being spent over the sum of all OP_RETURN outputs'
    scripts in the transaction, no longer capping the number
    of OP_RETURN outputs themselves. This should allow a
    superset of current behavior while respecting the passed
    argument in terms of total arbitrary data storage.
    
    Co-authored-by: Anthony Towns <aj@erisian.com.au>
    3ba7449f6c
  9. datacarrier: deprecate startup arguments for future removal 34c3ef7160
  10. test: remove unnecessary -datacarriersize args from tests 0971509ec8
  11. instagibbs force-pushed on May 2, 2025
  12. Init: warn if -datacarrier{size} are set 201b76101f
  13. Add more OP_RETURN mempool acceptance functional tests
    Credit: Sjors Provoost and Antoine Poinsot
    664ae315f4
  14. instagibbs force-pushed on May 2, 2025
  15. DrahtBot removed the label CI failed on May 2, 2025

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: 2025-05-05 12:12 UTC

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