Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap: Multi-Client Feature Gates #76

Open
6 tasks
buffalojoec opened this issue Oct 26, 2023 · 0 comments
Open
6 tasks

Roadmap: Multi-Client Feature Gates #76

buffalojoec opened this issue Oct 26, 2023 · 0 comments

Comments

@buffalojoec
Copy link
Contributor

buffalojoec commented Oct 26, 2023

Roadmap: Multi-Client Feature Gates

This outline serves to articulate procedural and engineering efforts to introduce a new & improved strategy for managing Solana protocol changes and activating their corresponding feature gates, particularly in an environment with multiple validator clients.

Procedural Changes

Desired procedure:

  1. SIMDs are changes to the Solana protocol, not any particular validator client. All Solana protocol features require a SIMD.

Ideally, SIMD merges should always be coupled to a relevant change to the Solana specification, however, at this time we do not have enough specifications published on Solana to enforce this.

  1. Structured SIMD review process:
  • Required reviews from members of each validator client on Solana.
  • Concept of "priority level" for proposals, for ease of review.
  • Ability to request validator reviews on proposals effecting validator economics.
  1. Tracking of feature implementation across clients after SIMD is merged:
  • Tracking development progress of merged proposals across each client.
  • Target dates for implementation and feature activation, agreed upon by all clients.
  • Linking of relevant code changes back to their corresponding original proposal.
  • Improved Feature Gate Activation Schedule integrated with development progress tracking.

Tasks

  • Enforce SIMDs for all feature gates.
  • Establish GitHub teams and review requirements for SIMDs.
  • Introduce priority labels on SIMD pull requests.
  • Establish a process for optionally requesting validator review on proposals.
  • Develop a project board for tracking implementation with targets, linked changes, and an improved Feature Gate Activation Schedule.
  • (Optional) Publish a public web page for observing SIMDs and their development progress. See Ethereum's EIP page.

Protocol Changes (SIMDs)

Desired architecture:

  1. Feature Creation: Anyone can create a new feature gate.
  2. Authorized Feature Queuing: An authority (multi-sig or governance) controls the queuing of features to be activated.
  3. Safeguards for Pending Activations: Expanded control over pending feature activations (ie. ability to revoke).
  4. Automated Network Partition Protection: Prevention of network partitions during feature activation via built-in runtime functionality.

✅ SIMD 1/4: Enable Core BPF Programs (#88)

  • Establish a robust process for migrating builtin (native) programs to Core BPF.

✅ SIMD 2/4: Programify Feature Gate Program (#89)

  • Migrate the (ephemeral) builtin Feature111111111111111111111111111111111111 to a Core BPF program.
  • Enable the RevokePendingActivation instruction on Feature111111111111111111111111111111111111 for revoking features queued for activation.

🟠 SIMD 3/4: Feature Gate Threshold Automation (#72)

  • Add functionality to the Feature Gate program to manage feature “recognition”, including:
    • Tracking a node’s recognized features on-chain
    • Recording this information through a well-defined program instruction
  • Implement an automated process for marking proposed features as "eligible" based on stake support, including:
    • Assessing stake support for particular features through Feature Gate program on-chain data
    • Marking eligible only those with the necessary support

SIMD 4/4: Governance for Queuing Feature Activations

  • Establish a validator governance process for queueing eligible runtime features, possibly using the existing Feature Proposal program.

✅ = SIMD merged
🟠 = SIMD pending review

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

No branches or pull requests

1 participant