Skip to content

fix: replicate rent and features at reset boundaries - #201

Merged
bmuddha merged 4 commits into
masterfrom
fix/replicate-runtime-config
Nov 6, 2026
Merged

bmuddha merged 4 commits into
masterfrom
fix/replicate-runtime-config

Conversation

@bmuddha

@bmuddha bmuddha commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

Extend the existing signed reset record with the leader-selected lamports-per-byte rate and complete active feature set. Recovery uses the configuration stored at its execution boundary; only after replay does a leader publish its requested startup rent and Engine-default features. Lagging followers switch configuration when they reach that reset.

Quiesce execution and simulation during the transition and refresh dependent SVM environments. Persist sysvars, feature accounts, and locally supplied native and SBF program images as read-only Runtime state. Seed features and sysvars only at genesis. Native builtins, precompiles, and supplied SBF programs use the common insert-if-missing startup path, including on initialized databases; existing account images are preserved.

Fresh followers start from the newest completed snapshot even when their initial ledger segment is retained. Replaying that segment alone cannot reconstruct migrated or startup-seeded accounts. Established followers continue resuming retained history.

Closes #200

Impact

Reset and account-mode encodings change without migration or backward compatibility; protocol version remains 1. Deprecated Rent fields are not replicated. Rent and feature accessors now return current values rather than startup-fixed references.

Changing locally supplied program bytes at startup does not replace existing account images. Base-chain program mirrors remain volatile and resettable. Followers must start after the source has completed its first snapshot; an unavailable snapshot rejects the fresh connection rather than falling back to replay.

Reviewer notes

The accepted reset-only crash window remains: if a reset becomes durable before its account-state application, existing slot/transaction recovery checks can miss that unapplied tail. Tracking applied-record progress is deferred.

Local Engine, Keeper, Ledger, and Replicator tests passed. The final simplified change passed Replicator tests, workspace Clippy with all features and targets, and formatting checks. Cross-host validator/verifier qualification has not been rerun.

@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@bmuddha
bmuddha marked this pull request as ready for review November 6, 2026 16:31
@bmuddha
bmuddha merged commit 9c8aec7 into master Nov 6, 2026
6 checks passed
@bmuddha
bmuddha deleted the fix/replicate-runtime-config branch November 6, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Leader-selected rent is not replicated at restart boundaries

1 participant