btc(donation): clarify combined P2SH is intentional unified v36 target (FLAG6) - #128
Merged
Merged
Conversation
…t (FLAG6) The comment above COMBINED_DONATION_SCRIPT wrongly claimed the combined 1-of-2 P2SH was LTC-only inert byte data and that BTC v36 stays on V35 P2PK. That is stale: BTC v36 coinbases intentionally pay the combined P2SH via get_donation_script(>=36), as do ltc/bch/dgb (identical hash160 8c627262..8e85). Rewrite the comment to state the combined P2SH is the deliberate unified cross-coin v36 donation target; per-coin baseline conformance still governs every other consensus aspect. Comment-only. No gentx behavior change.
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.
Comment-only. No gentx behavior change → CI trivially green.
FLAG6 decision (operator 2026-06-17, option-b)
The v36 donation target is a deliberate unified cross-coin combined P2SH (1-of-2 multisig: forrestv + c2pool dev key) for ALL coins — not a bug, not reverted to per-coin P2PK. PR #127 (option-a P2PK revert) was closed.
Change
Rewrites the stale/misleading comment above
COMBINED_DONATION_SCRIPTinsrc/impl/btc/config_pool.hpp. The old comment claimed the combined P2SH was "LTC-only ... inert byte data" for BTC and that BTC v36 stays on V35 P2PK. That is false: the live pathshare_check.hpp:2940get_donation_script(36) -> COMBINED_DONATION_SCRIPTmeans BTC v36 coinbases intentionally pay the combined P2SH. New comment states this plainly and notes per-coin baseline conformance still governs every other consensus aspect; the donation target is the deliberate exception.Uniformity verification (step 3)
Confirmed the unified P2SH path is applied uniformly across all coins v36 gentx, not BTC-only:
All route through
PoolConfig::get_donation_script(share_version)via each coin'sdonation_consensus.hpp. The 20-byte redeem hash160 is byte-identical across btc/ltc/bch/dgb. No coin diverges from the combined P2SH.Live path — unchanged (left as-is per decision)
src/impl/btc/share_check.hpp:2940:write_txout(donation_amount, PoolConfig::get_donation_script(int64_t(36))).