Skip to content

PR-0: bitcoin_family shared foundation (re-land off dash/pr0-foundation-clean @ edaf1dbf) - #83

Merged
frstrtr merged 2 commits into
masterfrom
dash/pr0-foundation-clean
Jun 12, 2026
Merged

PR-0: bitcoin_family shared foundation (re-land off dash/pr0-foundation-clean @ edaf1dbf)#83
frstrtr merged 2 commits into
masterfrom
dash/pr0-foundation-clean

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Re-opens the PR-0 foundation for landing. Prior PR #65 records a merge (c9c6d77, 2026-06-04) but none of its content is present in current master — both 4d9b57d (foundation) and edaf1db (delta-confinement fixup) are absent from master HEAD. This PR re-lands the branch tip so the work tracked since #65 has an open PR again.

Scope (5 files, +234/-29):

  • src/core/web_server.{cpp,hpp}: WebServer coin-driven API
  • src/core/address_validator.{cpp,hpp}
  • src/impl/bitcoin_family/CMakeLists.txt

Carries the ltc-doge NEEDS-CHANGE resolution: edaf1db confines the 3 stat-refactor deltas (D1 block_value_payments, D2 DOGE version-signaling, D3 LTC-testnet 0xc4) to DASH, preserving LTC/DOGE behavior.

CI on edaf1db: Linux x86_64 GREEN, ASan+UBSan GREEN, all coin smokes (ltc/doge/dash/btc) GREEN, CodeQL GREEN. macOS-arm64 + Windows red are the known base-inherited INetwork drift (resolved on dash @ 25fa819; never a live defect for this surface).

Foundation for #83 (dash-spv-embedded full import). Operator-gated merge.

frstrtr added 2 commits June 4, 2026 13:59
…ddress_validator)

Net shared-base delta over master collapsed from the 118-commit foundation:
5 files / +234 -29. socket.hpp + base_p2p_messages.hpp net-zero after
master-rebase; 8 src/core/* files net-zero after bucket-A (A1 d186a8b)
reconciliation. LTC-preserving defaults: set_protocol_version=3600,
set_dashboard_always_ready=false, set_coin_peer_info_fn opt-in.

Refs PR #43 umbrella.
ltc-doge live-diff (NEEDS-CHANGE) found three LTC/DOGE-affecting deltas
that rode along the rest_local_stats/update_stat_log refactor, outside the
LTC-preserving-defaults framing:

D1 rest_local_stats: block_value_payments regressed from block_value to 0
   for LTC and DOGE. Gate payment_amount to DASH; LTC/DOGE keep block_value.
D2 rest_version_signaling: returned {} for DOGE (v36, previously populated).
   Guard now admits LITECOIN and DOGECOIN, excludes only non-v36 chains.
D3 update_stat_log: LTC testnet p2sh tuple emitted 0x3a, diverging from the
   five sibling encoding sites (script_to_address is_ltc path, address_utils
   :230) that emit 0xc4. Restore 0xc4 here; any 5-site 0x3a migration is a
   separate deliberate PR, not buried in the foundation squash.

LTC mainnet (0x30/0x32) and the explicit asks (peer-info setters/call-paths,
bitcoin_family/CMakeLists.txt inert) remain byte-for-byte preserved.
@frstrtr

frstrtr commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

ltc-doge-production-steward verdict: APPROVE (operator redirect "ask-ltc-doge", exceptional shared-base path)

Head edaf1db is the identical SHA I signed FLIP-TO-PRESERVE for PR-0 (#65) on 06-04. Re-audited the full 5-file diff for LTC/DOGE preservation:

  • D1 block_value_payments (rest_local_stats): payment_amount defaults 0 for LTC/DOGE → block_value_miner = block_value*(1-fee) and block_value_payments = block_value, byte-identical to prior. ✓
  • D2 version-signaling: guarded to LITECOIN||DOGECOIN, returns early for others. LTC/DOGE path unchanged. ✓
  • D3 update_stat_log encoding: LTC mainnet 0x30/0x32/ltc, testnet 0x6f/0xc4/tltc — explicit tuples match the prior is_ltc bool overload. ✓
  • node_fee: LTC node_fee_ltc same value; DOGE additively gains node_fee_doge while keeping node_fee_ltc compat (same value). Additive, non-regressive. ✓
  • New shared members default to LTC/DOGE-preserving values: m_dashboard_always_ready{false}, m_protocol_version{3600}, m_coin_peer_info_fn null. DASH behavior only activates when a DASH target wires the setters. ✓
  • PPLNS cache cap 100→5000 is shared but only raises the eviction ceiling (non-regressive); .mjs mime + INTERFACE CMakeLists are additive.

CI note for the record: latest re-run at edaf1db (2026-06-12 01:02Z) is fully green — Linux x86_64, ASan+UBSan, all coin smokes (ltc/doge/dash/btc/bch/dgb), CodeQL, AND macOS arm64 + Windows x86_64. The 2 failures visible in the rollup are the STALE 06-04 runs (macOS/Windows), superseded green by the 06-12 re-run on this same SHA — not a live defect.

Merge is operator-gated; integrator executes.

@frstrtr
frstrtr merged commit eddb766 into master Jun 12, 2026
27 of 29 checks passed
@frstrtr
frstrtr deleted the dash/pr0-foundation-clean branch June 12, 2026 08:41
frstrtr added a commit that referenced this pull request Jun 25, 2026
Fresh-branch re-cut of the broadcaster_full keystone onto current master
(supersedes #456, whose stale multi-coin base would revert landed
btc/dgb/web work on merge). Dash-lane-only: embedded-P2P + dashd
submitblock dual-arm won-block broadcaster, 7/7 KATs.

src/impl/dash/broadcaster_full.hpp        — dual-arm keystone
test/test_dash_broadcaster_full.cpp       — 7/7 won-block KATs
test/CMakeLists.txt                       — test target registration
.github/workflows/build.yml               — CI allowlist (test_dash_broadcaster_full)
frstrtr added a commit that referenced this pull request Jun 25, 2026
dash(s8): broadcaster_full won-block keystone — dual-arm relay (#83) [fresh base, supersedes #456]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant