|
| 1 | +--- |
| 2 | +simd: '0128' |
| 3 | +title: Migrate Address Lookup Table to Core BPF |
| 4 | +authors: |
| 5 | + - Joe Caulfield - Anza Technology |
| 6 | +category: Standard |
| 7 | +type: Core |
| 8 | +status: Draft |
| 9 | +created: 2024-03-13 |
| 10 | +feature: (fill in with feature tracking issues once accepted) |
| 11 | +--- |
| 12 | + |
| 13 | +## Summary |
| 14 | + |
| 15 | +Migrate the Address Lookup Table program to Core BPF. |
| 16 | + |
| 17 | +## Motivation |
| 18 | + |
| 19 | +BPF programs offer less complexity than native programs for other clients, such |
| 20 | +as Firedancer, since developers will no longer have to keep up with program |
| 21 | +changes in their runtime implementations. Instead, the program can just be |
| 22 | +updated once. |
| 23 | + |
| 24 | +In this spirit, Address Lookup Table should be migrated to Core BPF. |
| 25 | + |
| 26 | +## Alternatives Considered |
| 27 | + |
| 28 | +The Address Lookup Table program could instead remain a builtin program. This |
| 29 | +would mean each validator client implementation would have to build and maintain |
| 30 | +this program alongside their runtime, including any future changes. |
| 31 | + |
| 32 | +## New Terminology |
| 33 | + |
| 34 | +N/A. |
| 35 | + |
| 36 | +## Detailed Design |
| 37 | + |
| 38 | +The Address Lookup Table program is reimplemented in order to be compiled |
| 39 | +to BPF and executed by the BPF loader. |
| 40 | + |
| 41 | +The reimplemented program's ABI exactly matches that of the original. |
| 42 | + |
| 43 | +The reimplemented program's functionality exactly matches that of the |
| 44 | +original, differing only in compute usage. Instead it has dynamic compute |
| 45 | +usage based on the VM's compute unit meter. |
| 46 | + |
| 47 | +The reimplemented program can be found here: |
| 48 | +https://github.com/solana-program/address-lookup-table. |
| 49 | + |
| 50 | +The program shall be migrated to Core BPF using the procedure outlined in |
| 51 | +[SIMD 0088](./0088-enable-core-bpf-programs.md). |
| 52 | + |
| 53 | +The program has no upgrade authority. If changes are required, for |
| 54 | +essential network operations, the program will be updated using feature-gates. |
| 55 | + |
| 56 | +## Impact |
| 57 | + |
| 58 | +Validator client teams are no longer required to implement and maintain the |
| 59 | +Address Lookup Table program within their runtime. |
| 60 | + |
| 61 | +All validator client teams can work to maintain the single Address Lookup Table |
| 62 | +program together. |
| 63 | + |
| 64 | +## Security Considerations |
| 65 | + |
| 66 | +The program's reimplementation poses no new security considerations compared to |
| 67 | +the original builtin version. |
| 68 | + |
| 69 | +The greatest security concern is a mistake in the reimplementation. |
| 70 | + |
| 71 | +## Backwards Compatibility |
| 72 | + |
| 73 | +The Core BPF implementation is 100% backwards compatible with the original |
| 74 | +builtin implementation. |
| 75 | + |
0 commit comments