コアコンセプト
Solana上で開発するには、Solana開発特有のいくつかの重要な概念を理解することが不可欠です。このセクションでは、アカウント、トランザクション、プログラムなど、Solana上での開発を始める際に理解しておくべきコアコンセプトについて説明します。
Solanaのアカウントモデル
Solanaでは、すべてのデータは「アカウント」と呼ばれるものに保存されます。Solanaブロックチェーン上でのデータの構成は、キーバリューストアに似ており、データベース内の各エントリは「アカウント」と呼ばれています。
アカウントについての詳細はこちら。
トランザクションと命令
Solanaでは、ネットワークとやり取りするためにトランザクションを送信します。トランザクションには1つ以上の命令が含まれ、それぞれが処理される特定の操作を表しています。命令の実行ロジックはSolanaネットワークにデプロイされたプログラムに保存されており、各プログラムは独自の命令セットを定義しています。
Solana上の手数料
Solanaブロックチェーンには、ネットワークを使用するために発生するいくつかの異なるタイプの手数料とコストがあります。これらは以下のような特定のタイプに分類できます:
- トランザクション手数料 - バリデーターがトランザクション/命令を処理するための手数料
- 優先順位付け手数料 - トランザクション処理の順序を優先するためのオプション手数料
- rent - オンチェーンにデータを保存しておくために保留される残高
Solana上の手数料についての詳細はこちら。
Solana上のプログラム
Solanaでは、「スマートコントラクト」はプログラムと呼ばれています。各プログラムはオンチェーンのアカウントに保存され、特定の命令を定義する実行可能なコードを含んでいます。これらの命令はプログラムの機能を表し、ネットワークにトランザクションを送信することで呼び出すことができます。
Solanaのプログラムについて詳しくはこちらをご覧ください。
Program Derived Address
Program Derived Addresses(PDAs)はSolana上の開発者に主に2つのユースケースを提供します:
- 決定論的なアカウントアドレス:PDAsは任意の「seeds」(事前定義された入力)と特定のプログラムIDの組み合わせを使用して、決定論的にアドレスを導出するメカニズムを提供します。
- プログラム署名の有効化:Solanaランタイムは、プログラムがそのプログラムIDから派生したPDAsに対して「署名」することを可能にします。
PDAsは、事前定義された入力セット(例:文字列、数値、その他のアカウントアドレス)からオンチェーンでハッシュマップのような構造を作成する方法と考えることができます。
Program Derived Addressについての詳細はこちらをご覧ください。
Cross Program Invocation
Cross Program Invocation(CPI)とは、あるプログラムが別のプログラムの命令を呼び出す場合を指します。このメカニズムにより、Solanaプログラムの組み合わせが可能になります。
命令をプログラムがネットワークに公開するAPIエンドポイントとして、CPIを1つのAPIが内部で別のAPIを呼び出すものとして考えることができます。
Cross Program Invocationについての詳細はこちらをご覧ください。
Solana上のトークン
トークンは様々な種類の資産の所有権を表すデジタル資産です。トークン化により財産権のデジタル化が可能になり、代替可能および代替不可能な資産の両方を管理するための基本的な要素として機能します。
- 代替可能トークンは、同じタイプと価値を持つ交換可能で分割可能な資産を表します(例:USDC)。
- 非代替性トークン(NFT)は、分割できない資産(例:アートワーク)の所有権を表します。
Solana上のトークンについての詳細はこちらをご覧ください。
クラスターとエンドポイント
Solanaブロックチェーンには、クラスターとして知られる複数の異なるバリデーターグループがあります。それぞれが異なる目的を果たし、JSON-RPCリクエストを処理するための専用ノードを含んでいます。
Solanaネットワークには以下の公開エンドポイントを持つ3つの主要クラスターがあります:
- メインネット -
https://api.mainnet-beta.solana.com
(本番環境) - デブネット -
https://api.devnet.solana.com
(開発者実験用) - テストネット -
https://api.testnet.solana.com
(validator テスト用)
クラスターとエンドポイントについての詳細はこちらをご覧ください。
Is this page helpful?