Repo scheint privat zu sein: Jede der Optionen hat ihre Vor- und Nachteile. Sie können also eine Hybrid-Implementierung zur Abhilfe erstellen. Hier sind einige der Multiprogrammanwendungen, die Sie übernehmen können:
Marinade Finance: verwendet ein Single-Core-Programm + Satellitenprogramme für bestimmte Domänen. Sie können überprüfen, wie sie mit Verwaltungsbefugnissen im Vergleich zu Betriebsbefugnissen umgehen (das Kernprogramm verfügt über einen Multisig des Rates als Administrator, aber einen PDA für Stake-Retract-Operationen). Außerdem ist das Empfehlungsprogramm ein Wrapper, der CPIs in das Hauptprogramm einbindet
Marginfi: nutzt gruppenbasierte Isolation mit gemeinsam genutztem Programm
Ellipsis Labs: Verwendet Kernprogramm + Hilfsprogramme, die CPI in den Kern integrieren. Der Phoenix-v1 ist das Kern-Orderbuch, in das der Sitzmanager und der Market Maker den CPI einprogrammieren
Häufige Fallstricke:
Der aufrufenden Programm-ID blind vertrauen – Nur weil ein CPI von Programm X stammt, heißt das nicht, dass Programm X den Benutzer überprüft hat. Überprüfen Sie die relevanten Unterzeichner immer erneut. Vergessen Sie, dass PDAs den Unterzeichnerstatus nicht über Anweisungen hinweg beibehalten – Ein PDA, der in Anweisung 1 signiert hat, ist nicht automatisch ein Unterzeichner in Anweisung 2, es sei denn, Sie CPI mit invoke_signed erneut. Zentralisierte Upgrade-Autorität – Wenn alle Programme eine Upgrade-Autorität teilen, ist Ihre Modularität diesillusorisch. Betrachten Sie Multisigns.