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スタックの最大深度は5です(トップレベルとCPIを含む。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?