From 957cdc2810cd699deb0343dc6b2c66f5f420bcea Mon Sep 17 00:00:00 2001 From: hana <81144685+2501babe@users.noreply.github.com> Date: Wed, 4 Dec 2024 07:46:53 -0800 Subject: [PATCH] SIMD-0196: Migrate Stake to Core BPF (#196) --- proposals/0196-migrate-stake-to-core-bpf.md | 71 +++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 proposals/0196-migrate-stake-to-core-bpf.md diff --git a/proposals/0196-migrate-stake-to-core-bpf.md b/proposals/0196-migrate-stake-to-core-bpf.md new file mode 100644 index 000000000..e72e7e254 --- /dev/null +++ b/proposals/0196-migrate-stake-to-core-bpf.md @@ -0,0 +1,71 @@ +--- +simd: '0196' +title: Migrate Stake to Core BPF +authors: + - Hanako Mumei +category: Standard +type: Core +status: Review +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.