Skip to content

ltc: lower minimum_protocol_version floor 3600->3301 (admit v35 for crossing) - #111

Merged
frstrtr merged 1 commit into
masterfrom
ltc-doge/ltc-minproto-3301
Jun 17, 2026
Merged

ltc: lower minimum_protocol_version floor 3600->3301 (admit v35 for crossing)#111
frstrtr merged 1 commit into
masterfrom
ltc-doge/ltc-minproto-3301

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 16, 2026

Copy link
Copy Markdown
Owner

What

src/impl/ltc/params.hpp:64: p.minimum_protocol_version 3600 -> 3301. LTC tree only. One file.

Why

The live LTC peer-admission gate is CoinParams.minimum_protocol_version (params.hpp:64), read at ltc/node.cpp:307. Hardcoded 3600 (== our ADVERTISED v36) rejects every v35 (3502) peer at handshake. A 3600 hard floor defeats the v35->v36 transition by construction: AutoRatchet needs a mixed v35/v36 population to ratchet against, and the constant comment itself says "accept v35".

Completes 0f99754, which lowered the vestigial config_pool.hpp:37 constant to 3301 but missed the runtime struct that ltc/node.cpp actually gates on. (Confirmed: ltc/node.cpp:307 reads m_params->minimum_protocol_version; the PoolConfig constant is NOT consulted on the LTC path.) Conformance, not a posture change.

Routing / scope notes (per integrator constraints)

  • Per-coin isolation: touches only src/impl/ltc/. No DOGE/DGB/BTC trees.
  • DOGE floor naming flag: there is no src/impl/doge/ pool floor — src/impl/doge/ contains only coin/ (the merged-mining coin def). DOGE rides this same LTC sharechain, so this PR covers the LTC+DOGE crossing. The 3600 floor at src/impl/dgb/config_pool.hpp:34 belongs to DigiByte (DGB), a separate coin/sharechain (and DGB gates via the PoolConfig constant, not params) — handled as a separate decision, not bundled here.
  • v36<->v36 unaffected: both prod peers advertise 3600 >= 3301; runtime-behavior-preserving for the live crossing soak.

Gating

Per-coin LTC smoke. HOLD merge for operator approval (standing rule).

The live LTC peer-admission gate is params.hpp:64 (CoinParams.minimum_protocol_version), read at ltc/node.cpp:307. It was hardcoded to 3600 (== ADVERTISED v36), which rejects every v35 (3502) peer at handshake. A 3600 floor defeats the v35->v36 transition by construction: AutoRatchet needs a mixed v35/v36 population to ratchet against.

This completes 0f99754, which lowered the vestigial config_pool.hpp:37 constant to 3301 but missed the runtime struct in params.hpp that ltc/node.cpp actually gates on. Conformance fix, not a posture change (the constant comment already says accept v35). Runtime-behavior-preserving for v36<->v36 (both prod peers advertise 3600 >= 3301).

LTC tree only; DOGE rides this same LTC sharechain (no separate doge pool floor).
@frstrtr
frstrtr merged commit b570185 into master Jun 17, 2026
16 checks passed
@frstrtr
frstrtr deleted the ltc-doge/ltc-minproto-3301 branch June 17, 2026 06:24
@frstrtr
frstrtr restored the ltc-doge/ltc-minproto-3301 branch June 17, 2026 06:34
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