阅读字号
回购似乎是私人的: 任何选项都有其优点和缺点,因此您可以创建混合实施来缓解,以下是您可以采用的一些多程序应用程序:
Marinade Finance:针对特定领域采用单核程序+卫星程序。您可以检查他们如何处理管理权限与操作权限(核心程序有一个理事会多重签名作为管理员,但有一个 PDA 用于权益提取操作)。此外,推荐程序是 CPI 到主程序中的包装程序
Marginfi:使用基于组的隔离和共享程序
Ellipsis Labs:采用核心程序+CPI进入核心的辅助程序。 phoenix-v1是核心订单簿,席位经理和做市商将CPI纳入其中
常见陷阱:
盲目信任调用者程序 ID — 仅仅因为 CPI 来自程序 X 并不意味着程序 X 验证了用户。务必重新检查相关签名者。 忘记 PDA 不会在指令之间保留签名者状态 — 在指令 1 中签名的 PDA 不会自动成为指令 2 中的签名者,除非您再次使用 invoke_signed 进行 CPI。 集中升级权限——如果所有程序共享一个升级权限,那么你的模块化就是虚幻。考虑多重签名。