Le dépôt semble être privé : Chacune des options a ses avantages et ses inconvénients, vous pouvez donc créer une implémentation hybride pour atténuer les effets. Voici quelques-unes des applications multi-programmes que vous pouvez adopter :
Marinade Finance : utilise un programme monocœur + des programmes satellites pour des domaines spécifiques. Vous pouvez vérifier comment ils gèrent l'autorité administrative par rapport à l'autorité opérationnelle (le programme principal a un conseil multisig en tant qu'administrateur, mais un PDA pour les opérations de retrait de participation). En outre, le programme de parrainage est un wrapper que les CPI intègrent au programme principal.
Marginfi : utilise l'isolement basé sur le groupe avec un programme partagé
Ellipsis Labs : utilise le programme principal + les programmes auxiliaires qui intègrent le CPI au noyau. Le Phoenix-v1 est le carnet de commandes principal tandis que le gestionnaire de sièges et le teneur de marché y programment l'IPC.
Pièges courants :
Faire confiance aveuglément à l'ID du programme d'invocation — Ce n'est pas parce qu'un CPI provient du programme X que le programme X a vérifié l'utilisateur. Vérifiez toujours à nouveau les signataires concernés. Oublier que les PDA ne conservent pas le statut de signataire d'une instruction à l'autre — Un PDA qui s'est connecté dans l'instruction 1 n'est pas automatiquement un signataire dans l'instruction 2, à moins que vous n'effectuiez à nouveau un CPI avec Ensure_signed. Autorité de mise à niveau centralisée — Si tous les programmes partagent une autorité de mise à niveau, votre modularité estillusoire. Pensez aux multisignatures.