Skip to content

Commit 2fbbf8f

Browse files
committed
Normalize P2WPKH scripts in merged mining weight computation
During V35→V36 transition, miners using bech32/P2WPKH LTC addresses had their raw SegWit scriptPubKey (0014{hash20}) used as weight keys in DOGE PPLNS. DOGE does not support SegWit — this produced invalid address keys. Normalize weight keys in all 4 merged mining paths: - compute_merged_payout_hash (consensus commitment) - V36-only merged weights skiplist (ensure_v36_skiplist) - Per-chain merged skiplist V35 branch (ensure_merged_skiplist) - Per-chain merged skiplist V36 Tier 2 fallback P2WPKH (22b) → P2PKH conversion, P2PKH/P2SH passthrough, P2TR/P2WSH skipped (unconvertible). Share data unchanged on wire. Also adds chain_h and best share hash to FORK-DIAG logging for chain depth divergence diagnostics.
1 parent 07c2934 commit 2fbbf8f

2 files changed

Lines changed: 262 additions & 44 deletions

File tree

src/impl/ltc/node.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1533,7 +1533,13 @@ void NodeImpl::clean_tracker()
15331533
<< " gap=" << (chain.size() - verified.size())
15341534
<< " best_h=" << (m_best_share_hash.IsNull() ? 0
15351535
: (verified.contains(m_best_share_hash)
1536-
? verified.get_height(m_best_share_hash) : -1));
1536+
? verified.get_height(m_best_share_hash) : -1))
1537+
<< " chain_h=" << (m_best_share_hash.IsNull() ? 0
1538+
: (chain.contains(m_best_share_hash)
1539+
? chain.get_height(m_best_share_hash) : -1))
1540+
<< " best=" << (m_best_share_hash.IsNull()
1541+
? std::string("null")
1542+
: m_best_share_hash.GetHex().substr(0, 16));
15371543
}
15381544
}
15391545
}

0 commit comments

Comments
 (0)