Skip to content

release: prepare v1.1.0 community maintenance release#7

Open
takologi wants to merge 1 commit into
Rin-coin:masterfrom
takologi:release-v1.1.0-community-maintenance
Lines changed: 1609 additions & 26 deletions
Open

release: prepare v1.1.0 community maintenance release#7
takologi wants to merge 1 commit into
Rin-coin:masterfrom
takologi:release-v1.1.0-community-maintenance

Conversation

@takologi
Copy link
Copy Markdown

Summary

This PR prepares Rincoin Core v1.1.0 as a conservative community-maintenance release.

The release introduces a RinHash activations table backed by JSON source data, JSON schema validation, a code generator, and a generated-header consistency guard. It also adds a scheduled min_peer_protocol_version floor at activation 0, bumps PROTOCOL_VERSION from 70017 to 70018, exposes the effective RinHash parameters through RPC, adds a new preview chain for activation rehearsal, fixes the MWEB HogEx empty-vin transaction shape, and updates documentation.

This PR does not change the consensus rules currently in force on mainnet. Block validation, PoW, transaction format, subsidy rules, chain selection, existing blocks, wallets, and datadirs remain compatible with the v1.0.x line.

Main changes

  • RinHash activations table:
    • JSON source data (src/consensus/rinhash_consensus.json)
    • JSON schema validation
    • Python code generator (src/consensus/gen_rinhash_consensus.py)
    • Generated header (src/consensus/rinhash_consensus_data.h) with --check consistency guard suitable for CI
  • Activation-0 min_peer_protocol_version = 70018 scheduled at:
    • mainnet: 840000
    • testnet: 4200
    • regtest: 600
    • preview: 600
  • Bump PROTOCOL_VERSION from 70017 to 70018.
  • New getrinhashparams RPC exposing the network's effective RinHash parameters.
  • Extend getblockchaininfo with an effective RinHash parameters section.
  • Add preview chain (public test-oriented network with real PoW and accelerated activation schedule).
  • Fix MWEB HogEx empty-vin handling.
  • Document v1.1.0 release behavior and upgrade considerations (doc/rinhash-activations.md, release-notes-rincoin.md, README.md).

Compatibility

v1.1.0 preserves consensus compatibility with the currently deployed Rincoin network.

The peer-protocol floor affects network reachability at and after the configured activation height; it does not affect historical block validity. Pre-v1.1.0 nodes will no longer satisfy the handshake requirements once the active chain reaches the overlay's activation_height, but their on-disk chainstate remains valid.

Testing performed

The following checks were run successfully on this branch:

  • python3 src/consensus/gen_rinhash_consensus.py --check — generated header matches JSON source
  • make -j32 — clean build
  • test/functional/feature_min_peer_proto_floor.py — exercises the regtest activation-height-gated handshake floor
  • src/test/test_litecoin full suite

Live network validation

  • This code has been running successfully as a daemon node on the live Rincoin mainnet for more than one week without consensus divergence, crashes, or peer-handshake regressions against the existing v1.0.x network.

Next steps before tagging v1.1.0

  • Extended live mainnet soak (additional weeks of uptime on multiple independent nodes).
  • Previewnet rehearsal of the activation height crossing (verify min_peer_protocol_version overlay engages and pre-v1.1.0 peers are cleanly dropped at handshake).
  • Testnet rehearsal at height 4200.
  • Qt wallet testing: build and exercise rincoin-qt against a v1.1.0 daemon (send/receive, descriptor & legacy wallets, encryption, MWEB peg-in/out, RPC console surface for getrinhashparams / getblockchaininfo).
  • Compatibility tests against the surrounding ecosystem:
    • Block explorers (verify block/tx ingestion remains uninterrupted across the protocol bump).
    • Fulcrum (electrum-protocol server) — confirm header subscription, mempool, and address history stay correct.
    • BasicSwap — confirm Rincoin coin module continues to perform atomic swaps against a v1.1.0 backend.
  • Re-run full functional test suite (test/functional/test_runner.py) on the tip.
  • Re-run cargo-style lint pass for the C++ side: make check and clang-tidy on changed translation units.
  • Confirm reproducible builds via depends/ and Guix recipes (no dependency changes introduced, but worth re-verifying).
  • Sign and publish release notes; tag v1.1.0.

Risk assessment

Low. The only consensus-touching surface is the codegen-backed RinHash parameters table, which on every supported network reproduces the pre-existing hardcoded parameters and preserves v1.0.x consensus behavior until a future activation entry is added. The protocol-version bump and min_peer_protocol_version overlay only affect peer-handshake gating at and after the per-network activation height.

Add a preview network combining testnet-like parameters with an accelerated activation schedule and regtest halving interval for rehearsing future protocol transitions.

Introduce the RinHash activations table with JSON source data, code generation, and generated consensus-header verification. Add a scheduled min_peer_protocol_version floor for activation 0 (mainnet 840000, testnet 4200, regtest 600, preview 600), bump PROTOCOL_VERSION from 70017 to 70018, expose effective RinHash parameters through RPC, add the preview chain for activation rehearsal, exempt MWEB HogEx transactions from the empty-vin consensus check, and document the release.

This release does not change the consensus rules currently in force on mainnet. It introduces infrastructure for future community-reviewed protocol transitions. The peer-protocol floor affects network reachability at and after the per-network activation height, not historical block validity.
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.

None yet

1 participant