Solana開発の基盤を形成する7つのコンセプトがあります。まずアカウントとプログラムから始め、次にinstructionsがトランザクションになる流れを理解しましょう。PDA、CPI、手数料はその実行モデルの上に構築されています。
アカウント
Solanaはすべての状態をアカウントに保存します。アカウントとは32バイトのアドレスをキーとするキーバリューストアです。各アカウントには、lamports、data、owner、executable、rent_epochの5つのフィールドがあります。
プログラム
SolanaのスマートコントラクトはsBPFにコンパイルされます。プログラムはステートレスであり、すべての可変状態はinstructionsを介して渡される別個のデータアカウントに保存されます。
Instructions
1つのプログラムを実行するリクエストで、プログラムID、アカウントリスト、およびopaqueなデータバイトを含みます。複数のinstructionsを組み合わせて1つのトランザクションを構成できます。
トランザクション
Solanaにおける実行のアトミック単位です。署名とメッセージ(アカウントアドレス、最新のブロックハッシュ、コンパイル済みinstructions)を含みます。最大1232バイト、またはv1フォーマットでは4096バイトです。
手数料
署名ごとに5,000 lamportsの基本手数料に加え、要求されたコンピュートユニットに基づくオプションの優先手数料が発生します。トランザクションあたりの最大コンピュートユニットは140万です。
Program Derived Addresses(PDA)
プログラムIDとシードから導出される決定論的なアドレスです。オーナープログラムのみがinvoke_signedを通じてPDAの代わりに署名できます。
Cross-Program Invocations(CPI)
あるプログラムが invoke または invoke_signed を介して別のプログラムを呼び出すこと。署名者権限と書き込み可能権限は 呼び出し先に引き継がれます。instruction スタックの最大深度は、トップレベルと CPI を合わせて 5 です(SIMD-0268 適用時は 9)。
その他のトピック
アセット
Solana上の代替可能および代替不可能なデジタルアセット(SPL Token、Token-2022)。
クラスターとエンドポイント
Mainnet、Devnet、Testnet:JSON-RPCリクエストを処理するvalidatorグループ。
| クラスター | パブリックRPCエンドポイント | 用途 |
|---|---|---|
| Mainnet | https://api.mainnet.solana.com | 本番環境 |
| Devnet | https://api.devnet.solana.com | 開発者向け実験環境 |
| Testnet | https://api.testnet.solana.com | validatorテスト |
Is this page helpful?