Domande e risposte

Best practice di autorizzazione Solana/Anchor per un sistema modulare multi-programma (ruoli condivisi tra programmi, CPI)

Dimensione testo

Il repo sembra essere privato: Ognuna delle opzioni ha i suoi pro e contro, quindi puoi creare un'implementazione ibrida per mitigare; ecco alcune delle applicazioni multi-programma che puoi adottare:

Marinade Finance: utilizza un programma core singolo + programmi satellite per domini specifici. Puoi verificare come gestiscono l'autorità amministrativa rispetto all'autorità operativa (il programma core ha un multisig del consiglio come admin, ma una PDA per le operazioni di prelievo dello stake). Inoltre, il programma di referral è un wrapper che effettua CPI nel programma principale

Marginfi: utilizza l'isolamento basato su gruppi con un programma condiviso

Ellipsis Labs: utilizza un programma core + programmi ausiliari che effettuano CPI nel core. phoenix-v1 è l'orderbook core mentre i programmi seat manager e market maker effettuano CPI in esso

Insidie comuni:

Fidarsi ciecamente dell'ID del programma invocante — Il fatto che una CPI provenga dal Programma X non significa che il Programma X abbia verificato l'utente. Ricontrolla sempre i firmatari rilevanti. Dimenticare che le PDA non persistono lo stato di firmatario tra le istruzioni — Una PDA che ha firmato nell'istruzione 1 non è automaticamente un firmatario nell'istruzione 2 a meno che tu non effettui CPI con invoke_signed di nuovo. Autorità di upgrade centralizzata — Se tutti i programmi condividono un'autorità di upgrade, la tua modularità è illusoria. Considera i multisig.

Continua a esplorareCatalogo datiCerca