問題與解答

模塊化多程序系統的 Solana/Anchor 授權最佳實踐(跨程序共享角色,CPI)

文字大小

回購似乎是私人的: 任何選項都有其優點和缺點,因此您可以創建混合實施來緩解,以下是您可以採用的一些多程序應用程序:

Marinade Finance:針對特定領域採用單核程序+衛星程序。您可以檢查他們如何處理管理權限與操作權限(核心程序有一個理事會多重簽名作為管理員,但有一個 PDA 用於權益提取操作)。此外,推薦程序是 CPI 到主程序中的包裝程序

Marginfi:使用基於組的隔離和共享程序

Ellipsis Labs:採用核心程序+CPI進入核心的輔助程序。 phoenix-v1是核心訂單簿,席位經理和做市商將CPI納入其中

常見陷阱:

盲目信任調用者程序 ID — 僅僅因為 CPI 來自程序 X 並不意味著程序 X 驗證了用戶。務必重新檢查相關簽名者。 忘記 PDA 不會在指令之間保留簽名者狀態 — 在指令 1 中籤名的 PDA 不會自動成為指令 2 中的簽名者,除非您再次使用 invoke_signed 進行 CPI。 集中升級權限——如果所有程序共享一個升級權限,那麼你的模塊化就是虛幻。考慮多重簽名。

繼續探索數據目錄搜尋