Coin Brief ENDE

SIMD-0685 würde ExtendProgram abschaffen, da Upgrade Programme selbst vergrößert

Ein neues Solana Improvement Document, SIMD-0685, wurde am 2. November mit dem Status Review in das Vorschlagsrepository aufgenommen. Joe Caulfield und Alexander Meißner von Anza sowie Dean Little von Blueshift schlagen darin vor, die Anweisung ExtendProgram aus Loader V3, dem aktualisierbaren BPF-Loader, zu entfernen.

ExtendProgram gab es laut Dokument aus zwei Gründen: Die Anweisung Upgrade konnte das programdata-Konto eines Programms nicht vergrößern, und Größenänderungen innerhalb eines Cross-Program-Aufrufs sind auf 10 KiB begrenzt. Das bereits angenommene SIMD-0433 lässt Upgrade programdata auf die Größe der neuen ELF-Datei bringen, damit entfällt der erste Grund. Nach der Aktivierung muss ExtendProgram, Diskriminator 6, mit InvalidInstructionData scheitern, und der Diskriminator wird dauerhaft stillgelegt. Keine andere Anweisung von Loader V3 und kein Kontolayout ändert sich; bestehende Programme laufen, aktualisieren und schließen wie bisher. Ein größeres Programm wird mit einem einzigen Upgrade ausgerollt, die Miete für das Wachstum kommt aus dem Puffer oder wird vorab auf programdata gutgeschrieben.

Den zweiten Grund löst ein Ablauf statt einer neuen Anweisung. Programme, deren Upgrade-Berechtigung einem Programm gehört, also einer PDA, und die auf einmal um mehr als 10 KiB wachsen müssen, nutzen eine Transaktion mit einem Hot-Keypair als Unterzeichner: ein CPI, der diesem Schlüssel die Berechtigung überträgt, ein Upgrade auf oberster Ebene und ein SetAuthority, das sie zurückgibt, wahlweise mit Prüfanweisungen für die endgültige Berechtigung. Als verworfene Alternative nennt das Dokument SIMD-0164, ein berechtigungsgebundenes ExtendProgramChecked.

SIMD-0685 würde ExtendProgram abschaffen, da Upgrade Programme selbst vergrößert
SIMD-0685 würde ExtendProgram abschaffen, da Upgrade Programme selbst vergrößert — Coin Brief

Was das bedeutet

Für die meisten Entwickler fällt nur ein separater Schritt weg. Aufpassen müssen Teams, deren Programme über eine PDA von einer DAO oder einem Multisig verwaltet werden: Ihre großen Upgrades hängen nun daran, die atomare Übergabe richtig zu bauen, und ein Fehler dort hinterlässt die Upgrade-Berechtigung beim falschen Schlüssel.