-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SIMD-XXXX: Migrate Stake to Core BPF
- Loading branch information
Showing
1 changed file
with
71 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
--- | ||
simd: 'XXXX' | ||
title: Migrate Stake to Core BPF | ||
authors: | ||
- Hanako Mumei | ||
category: Standard | ||
type: Core | ||
status: Draft | ||
created: 2024-11-14 | ||
feature: (fill in with feature tracking issues once accepted) | ||
--- | ||
|
||
## Summary | ||
|
||
Migrate the Stake program to Core BPF. | ||
|
||
## Motivation | ||
|
||
BPF programs offer less complexity than native programs for other clients, such | ||
as Firedancer, since developers will no longer have to keep up with program | ||
changes in their runtime implementations. Instead, the program can just be | ||
updated once. | ||
|
||
In this spirit, the Stake program should be migrated to Core BPF. | ||
|
||
## Alternatives Considered | ||
|
||
The Stake program could instead remain a builtin program. This would mean each | ||
validator client implementation would have to build and maintain this program | ||
alongside their runtime, including any future changes. | ||
|
||
## New Terminology | ||
|
||
N/A. | ||
|
||
## Detailed Design | ||
|
||
The Stake program will be reimplemented in order to be compiled to BPF and | ||
executed by the BPF loader. | ||
|
||
The reimplemented program's ABI will exactly match that of the original. | ||
|
||
The reimplemented program's functionality will exactly match that of the | ||
original, differing only in compute usage. Instead it will have dynamic compute | ||
usage based on the VM's compute unit meter. | ||
|
||
The program will be migrated to Core BPF using the procedure outlined in | ||
[SIMD 0088](./0088-enable-core-bpf-programs.md). | ||
|
||
The program will have no upgrade authority. If changes are required, for | ||
essential network operations, the program will be updated using feature-gates. | ||
|
||
## Impact | ||
|
||
Validator client teams are no longer required to implement and maintain the | ||
Stake program within their runtime. | ||
|
||
All validator client teams can work to maintain the single Stake program | ||
together. | ||
|
||
## Security Considerations | ||
|
||
The program's reimplementation poses no new security considerations compared to | ||
the original builtin version. | ||
|
||
The greatest security concern is a mistake in the reimplementation. | ||
|
||
## Backwards Compatibility | ||
|
||
The Core BPF implementation is 100% backwards compatible with the original | ||
builtin implementation. |