Stručně; DR: Stávající paradigma pro modernizaci programů Solana je katastrofa. Nejnebezpečnější na psaní kódu chytrých kontraktů je, že datové modely programu jsou po nasazení fakticky uzamčeny. V tradičním softwarovém inženýrství je klientské API odděleno od backendu. Můžete neviditelně měnit backendové schéma nebo přidávat migrace do databáze. V programování Solany se můžete pokusit zajistit budoucí podmínky tím, že: - Přidání strukturálního vyplňování a doufat, že v datech účtu bude dostatek prázdných bitů pro budoucí změny - Vyžadovat, aby uživatelé ručně podepsali pro migraci stavu aplikace (hrozné uživatelské rozhraní) - Implementace administrátorských akcí na úrovni aplikace pro migraci schémat Všimněte si, že vše výše uvedené má potenciál narušit skládatelnost na úrovni VM. Vyžadují také složitou a chybovou logiku pro bezpečné provedení. Nejenže přináší logická data rizika, ale také rizika správy klíčů. Jedním z argumentů je nikdy neměnit kód po nasazení. Koneckonců, stávající rámec velmi ztěžuje bezpečné úpravy stávajících datových formátů. Nicméně i kdyby byla neměnnost žádoucí, je naivní a bezohledné si myslet, že neexistují žádné katastrofické chyby k opravě nebo kritické funkce k přidání v budoucnu (některé z nich mohou vyžadovat výměnu kabelů). Firmy budující na tomto stacku jsou nuceny volit mezi bezpečností, rychlostí a kvalitou. Dnes nástroje umožňující údržbu a kontinuální vývoj dostatečně složité chytré smlouvy prakticky neexistují. Zde jsou některé funkce, které bych zvažoval zahrnout, kdybych toto prostředí stavěl od základů: - Ve VM by měly být samostatné API pro čtení a zápis dat z účtu. To umožňuje změny schématu bez přerušení formátu kabelu jak pro on-chain, tak off-chain uživatele. - Některé (dobrovolné) administrativní funkce chytrých kontraktů by měly existovat na úrovni systému, nikoli na úrovni aplikací. - Při aktualizaci spustitelného souboru by měla současně dojít k volitelné atomické migraci účtů vlastněných tímto programem. I když je cílem neměnnost, zabudování systémových nástrojů pro bezpečné softwarové aktualizace je zásadní pro spotřebitelské aplikace s vyvíjejícím se stavem. Současný systém je tak křehký, že nejlepší rada pro tyto vývojáře je nikdy se nedotýkat on-chain schémat, pokud opravdu nevědí, co dělají.