Repository navigation
Conversation
BitcoinPR
pushed a commit
that referenced
this pull request
Jul 11, 2026
Owner
Author
|
Closing: BIP-110 (RDTS) did not gain consensus and has been removed from the codebase entirely (see the 0.1.111 changelog entry on The detection logic itself is independent of the softfork and still has standalone value as a |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Ordinals (ord#4545) has announced a BIP-110-compatible envelope shape: since BIP-110 disables
OP_IF/OP_NOTIFin tapscript, the classicOP_FALSE OP_IF … OP_ENDIFinscription envelope dies — so they adapt to a bare envelope:<marker> <data> <data> … OP_2DROP … OP_DROP, a contiguous push run balanced by drops with no conditional. Ourrejectparasitesfilter only recognizes the classic OP_IF shape, so the adapted shape would relay freely.This PR mirrors Bitcoin Knots PR #319 (
DatacarrierBytescounting of drop-balanced push/pushnum runs).Changes
bare_envelope_scan(script.rs): counts contiguous runs of pushes and pushnums (OP_1NEGATE,OP_1..OP_16— ord's parser accepts pushnums as payload, so an interleaved pushnum must not strand earlier pushes from the count) terminated byOP_DROP/OP_2DROP, spanning run start through the drop opcode. Byte accounting matches Knots' unit vectors exactly (the 25- and 26-byte cases).tx_first_inscription_inputnow takes thedatacarriersizethreshold: classic OP_IF envelopes stay rejected at any size (unambiguous dead code); bare envelopes are rejected only when counted bytes exceeddatacarriersize— so legitimate commit-and-drop tapscripts (a 32-byte commitment dropped before a key check = 34 counted bytes) stay standard under the default 83, and<locktime> OP_CLTV OP_DROPcounts nothing (the non-push opcode breaks the run).tx_token_protocolalso scans bare-envelope payloads, so a BRC-20 mint in the new shape is still caught byrejecttokens.rejectparasitesflag; policy only — block validation is untouched.docs/relay-policy.mdupdated with the bare-envelope section.Verification
--all-features)rejectparasites=0opt-outLeave unmerged until BIP-110 activation is confirmed. The filter is harmless pre-activation, but this is deliberately parked to track the actual threat. Before merging: rebase onto main if needed and run the interop suite via the recreate-only-bitcoinpr procedure (see
docs/relay-policy.md/ TODO).🤖 Generated with Claude Code