アトミックなコンポーザビリティ
プログラムは、1つのトランザクション内でCross Program Invocationを通じて互いを呼び出します。いずれかのステップが失敗するとトランザクション全体が元に戻るため、複数プロトコルにまたがる戦略が中途半端な状態で決済されることはありません。
DeFi開発者向け
Solanaのすべてのプログラムは同じステートを読み書きするため、スワップ、ローン返済、オラクル更新を1つのアトミックなトランザクションで実行できます。動作するAnchorアプリから始め、ライブの流動性を統合し、本番環境のプラクティスでリリースしましょう。
npx -y create-solana-dapp@latest -t solana-foundation/templates/kit/nextjs-anchorSolanaを選ぶ理由
プログラムは、1つのトランザクション内でCross Program Invocationを通じて互いを呼び出します。いずれかのステップが失敗するとトランザクション全体が元に戻るため、複数プロトコルにまたがる戦略が中途半端な状態で決済されることはありません。
各トランザクションは、読み書きするアカウントを事前に宣言します。ランタイムは、同じ書き込み可能アカウントに触れないトランザクションを並列に実行するため、混雑した1つのマーケットが無関係なマーケットを止めることはありません。
競合するアカウントに書き込むトランザクションは、そのアカウントに割り当てられたブロックの枠を奪い合います。優先手数料は、ネットワーク全体の平均ではなく、書き込み先のアカウントを基準に設定しましょう。
メインネットのslot timeは段階的に短縮されており、Alpenglowが現在の投票・ファイナリティプロトコルを置き換えます。クォートの有効期限、タイムアウト、清算ウィンドウを調整する前に、両方の動向を確認してください。
開発者向けスタック
新しいプロトコルの標準的な進め方は次のとおりです。プログラムにはAnchor、テストにはLiteSVMとSurfpool、クライアントにはCodama、アプリにはKitを使用します。
01プログラムを書く
Anchorは、ほとんどのプログラムに推奨されるフレームワークで、アカウント検証、IDL生成、CPIヘルパーが組み込まれています。1コンピュートユニットも無駄にできないホットパスでは、依存関係ゼロのライブラリであるPinocchioを検討してください。
02テストする
LiteSVMまたはMolluskで、高速なインプロセステストを実行します。その後、メインネットのアカウントをオンデマンドで読み込むローカルネットワークのSurfpoolで統合テストを実行すれば、実際のプールやオラクルを対象にテストできます。
03クライアントを生成する
プログラムのIDLから型付きのTypeScriptおよびRustクライアントを生成できるため、instructionビルダーとアカウントデコーダーをデプロイのたびに同期した状態に保てます。
04アプリを構築する
@solana/kitは標準のJavaScript SDKです。ウォレットプラグインはWallet Standardを通じてインストール済みのウォレットを検出するため、ウォレットごとのアダプターパッケージは不要です。
ビルディングブロック
これらのプロトコルは、プログラムとAPIの開発者向けドキュメントを公開しています。ユーザーの資金をルーティングする前に、各プロトコルのドキュメントと監査レポートを確認してください。
アグリゲーターAPIを使ってSolana全体の流動性にスワップをルーティングするか、生のinstructionsをリクエストして、自分のトランザクション内にスワップを組み込めます。
プールの作成、集中流動性の提供、オンチェーンAMMに対する直接の価格クォートを行えます。
レンディングマーケットのSDKを通じて、担保の供給、借り入れ、リザーブ状態の読み取りを行えます。
レバレッジポジションのオープン、管理、清算を行うか、完全オンチェーンの独自のperpsマーケットを設計できます。
署名付きの価格更新をトランザクションに取り込み、価格を使用する前に信頼度と鮮度を確認します。
リキッドステーキングトークンを担保として受け入れたり、SOLをvalidator報酬を得るステークプールにルーティングしたりできます。
Solana上でネイティブに発行された、法定通貨担保型のステーブルコインで決済できます。
CircleのCCTPでUSDCをネイティブに移動するか、その他のアセットやメッセージをチェーン間でブリッジできます。
プロトコルが対応しなければならない組み込みの挙動を持つアセットを発行できます。transfer hook、利息付き残高、スケールされたUI金額、機密転送などです。
例示のみです。プロトコルの掲載は、Solana財団による推奨を意味するものではありません。
トランザクションの配信
DeFiのトラフィックはボラティリティの高い時期にピークを迎えます。まさにユーザーがトランザクションの着地を必要とするときです。メインネットの前に、以下をクライアントに組み込んでおきましょう。
シミュレーションでコンピュートユニットを測定し、厳密な上限を設定し、書き込み先のアカウントの直近の手数料をもとに優先手数料を決めます。
v1トランザクションはサイズ上限を引き上げ、address lookup tableは長いアカウントリストを圧縮します。複雑なルートでは、それぞれにトレードオフがあります。
ステーク加重QoSは、ステークされたvalidatorが転送するトランザクションのためにリーダーの処理容量を確保します。これに対応したRPCプロバイダーを選びましょう。
blockhashの有効期限を追跡し、トランザクションが着地するか期限切れになるまで再ブロードキャストし、ロジックに必要なコミットメントレベルで確認します。
セキュリティ
DeFiプログラムは、最初のデプロイからユーザーの資金を保持する可能性があります。誰が変更できるかを管理し、デプロイされた内容を証明し、その動作を監視しましょう。
プログラムのアップグレード権限と管理権限をSquadsのマルチシグで保持し、変更にはタイムロックをかけます。
デプロイされたプログラムが公開ソースと一致していることを、ユーザーやインテグレーターが確認できるようにします。
メインネットの前に第三者による監査を受け、バグバウンティを運用しましょう。Solana財団は、エコシステムのチーム向けにSTRIDEセキュリティ評価と無料ツールを提供しています。
Microscopeは、プログラムのinstructionsとSquadsのプロポーザルをデコードし、セルフホストのダッシュボードとアラートに反映します。
技術的な質問をしたり、設計をレビューしてもらったり、一緒に構築するチームを見つけたりできます。