ltc: split advertised protocol version from accept-floor (3600/3301) - #234
Merged
Conversation
send_version advertised minimum_protocol_version (3301), so a crossing peer (.82) whose accept-floor has ratcheted up at high v36 saturation rejects us as "peer too old" despite our V36 capability. Separate a HIGH advertised PROTOCOL_VERSION from a LOW accept floor, as p2pool does: add coin_params::advertised_protocol_version (LTC 3600 = V36 capability), advertise it in send_version, and keep the accept-floor in handle_version at minimum_protocol_version (3301) so we still accept v35 (3502) peers for the AutoRatchet crossing. Connectivity floor stays decoupled from share-version acceptance.
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.
proto-version split: advertised (3600) vs accept-floor (3301)
Clean, pure-master follow-up to the live-deployed crossing-soak binary (
842ae99b). This is the upstreamable form of the fix already running on the #97 soak.Rationale
send_versionwas advertising our accept-floor (min_protocol_version) rather than a higher advertised protocol version. At high v36 saturation a crossing peer (e.g..82) whose own accept-floor has ratcheted up rejects us as "peer too old" — even though we are fully V36-capable. The split decouples the two:send_version(our true capability).Diff is 3 lines across 3 files:
src/core/coin_params.hpp(+1 field),src/impl/ltc/node.cpp(advertise the new field),src/impl/ltc/params.hpp(+1 const). Basedf9cfb0f.Evidence
Merge note
This is consensus-bearing (proto-version-gate values). Per policy it is NOT auto-merged — integrator surfaces it for a separate explicit operator merge-tap once full CI is green. This PR is for visibility + CI only; it does not touch the running soak (already on the deployed
842ae99b).