文字サイズ
リポジトリは非公開のようです: どのオプションにも長所と短所があるため、ハイブリッド実装を作成して軽減できます。採用できるマルチプログラム アプリケーションのいくつかを以下に示します。
Marinade Finance: 特定のドメインに対して単一のコア プログラム + サテライト プログラムを使用します。管理者権限と運用権限をどのように処理するかを確認できます (コア プログラムには管理者として評議会マルチシグが付いていますが、ステーク引き出し操作には PDA が使用されます)。また、紹介プログラムはメイン プログラムに CPI を組み込むラッパーです。
Marginfi: 共有プログラムでグループベースの分離を使用します。
Ellipsis Labs: コア プログラム + CPI をコアに組み込む補助プログラムを使用します。 phoenix-v1 はコアのオーダーブックであり、シートマネージャーとマーケットメーカーはそれに CPI をプログラムします。
よくある落とし穴:
呼び出し側プログラム ID を盲目的に信頼する — CPI がプログラム X からのものだからといって、プログラム X がユーザーを検証したことにはなりません。関連する署名者を常に再確認してください。 PDA は複数の命令にわたって署名者ステータスを保持しないことを忘れてください。invoke_signed で CPI を再度実行しない限り、命令 1 で署名した PDA は、命令 2 では自動的に署名者になりません。 集中アップグレード権限 — すべてのプログラムがアップグレード権限を共有する場合、モジュール性は次のようになります。幻想的な。マルチシグについて考えてみましょう。