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

SIMD Roadmap: Multi-Client Feature Gates #3

Closed
buffalojoec opened this issue Nov 9, 2023 · 0 comments
Closed

SIMD Roadmap: Multi-Client Feature Gates #3

buffalojoec opened this issue Nov 9, 2023 · 0 comments

Comments

@buffalojoec
Copy link
Owner

buffalojoec commented Nov 9, 2023

SIMD Roadmap: Multi-Client Feature Gates

This outline serves to articulate engineering efforts to introduce a new mechanism for activating Solana runtime features, particularly in an environment where multiple validator clients exist in significant capacity.

Goals:

  • An official process for upgrading core BPF programs and migrating native
    programs to core BPF
  • Expanded control over pending feature activations
  • Automatic feature activation selection based on stake weight with supporting
    software
  • Decentralized control over queuing new runtime features

Resulting Architecture:

  1. Core BPF Programs: Enshrined BPF programs responsible for integral
    cluster operations, including managing feature gates.
  2. Feature Control: Features can be created by anyone. Each is owned by the
    core BPF Feature Gate program at
    Feature111111111111111111111111111111111111, which gives core contributors
    added control over pending activations.
  3. Feature Recognition & Activation: Features qualify for activation based
    on stake support of nodes who recognize the feature in their software
    version.
  4. Feature Queuing: A governance process nominates eligible features that
    should be queued for activation.

Delivering this end result will comprise at least four SIMDs. The first two SIMDs must be completed in sequence, while the remaining two can be developed in parallel.

SIMD 1/4: Enable Core BPF Programs (solana-foundation#88)

Goals:

  • Establish a robust process for:
    • Migrating native programs to "core" BPF programs
    • Managing upgrades of these core BPF programs

This SIMD must be completed first.

SIMD 2/4: Programify Feature Gate Program (solana-foundation#77)

Goals:

  • Add a new native Feature Gate program at address Feature111111111111111111111111111111111111 with a RevokePendingActivation instruction for revoking features queued for activation
  • Use the new migration process to convert this program from native to core BPF

This SIMD must be completed second.

SIMD 3/4: Feature Gate Threshold Automation (solana-foundation#72)

Goals:

  • 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

This SIMD can be completed in parallel with the next SIMD in the outline, since the functionality added to the Feature Gate Program would be isolated from any functionality developed in SIMD 4/4. Also, should the next SIMD (4/4) be completed first, the governance process for queueing can easily be places after threshold automation.

SIMD 4/4: Governance for Queuing Feature Activations

Goals:

  • Establish a governance system for queueing eligible runtime features
  • Upgrade and leverage the Feature Proposal program for voting on queueing eligible features
  • Add functionality to the runtime for consuming feature proposals under this new process, including:
    • Cleanup of spam feature accounts (non-proposals)
    • Reading proposed feature accounts instead of created

This SIMD can be completed in parallel with the previous SIMD in the outline because, again, functionality added to the Feature Gate Program would be isolated from any functionality developed in SIMD 3/4.
In the case of this SIMD, the runtime changes for evaluating votes on eligible features can be implemented without SIMD 3/4 and later moved behind threshold automation.

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