Solana 開発の基本をビシッと関西弁で説明したろか!いこまっさ!
駆け出しエンジニアの頃、ゆめたろうさんの解説記事をよく参考にしていました。
本記事は Qiita の伝統にのっとり、Solana の基本概念について関西弁で解説します。
アカウントモデル
ほな、まず最初にアカウントやねん。Solana では全てのデータはアカウントに入ってるんや。キーバリューストアみたいなもんやと思てくれたらええ。アカウントは最大 10MB までデータ入れられて、「プログラム(実行可能なコード)」か「プログラムの値」のどっちかになるねん。
アカウントを使うには「レント」ちゅう SOL のデポジットが必要やけど、アカウント閉じたら返ってくるから安心してな。借家の敷金みたいなもんや。
各アカウントには「所有者のプログラム」がおって、そのプログラムだけがデータを変更できるんや。誰でも SOL 送ることはできるけどな!
トランザクションと命令
次に大事なのがトランザクションと命令(Instruction)や。Solana でネットワークと話すにはトランザクションを送信するねん。トランザクションの中には命令が 1 つか複数入ってる。
トランザクションのポイントはこれや:
- 複数の命令が入ってたら、追加した順番で処理される
- 原子性があるから、全部の命令が成功するか、全部失敗するかのどっちかや
- トランザクションの最大サイズは 1,232 バイトやから、でかすぎんようにせなあかん
トランザクション手数料
Solana で命令を処理するにはトランザクション手数料を払わなあかんねん。これは:
- バリデータさんへのお礼
- スパム攻撃を減らすため
- ネットワークの経済的安定のため
手数料は署名ごとの基本料金と計算リソースの量で決まるんや。優先料金も払えば処理優先度が上がるで!
プログラム(スマートコントラクト)
Solana での「スマートコントラクト」はプログラムって呼ばれてるねん。プログラムは実行可能なコードを持つオンチェーンアカウントや。
プログラムは主にRust 言語で書くんやけど、2 つの方法があるねん:
- Anchor:初心者向けのフレームワーク。ボイラープレートコードを減らしてくれるから楽やで
- ネイティブ Rust:より柔軟やけど、複雑になるわ
PDA(Program Derived Address)
めっちゃ便利なのが PDA やねん。これは決定論的なアドレスで、「シード」と「プログラム ID」から導き出せるねん。特徴は:
- 秘密鍵が存在せえへん(Ed25519 曲線上にない)
- プログラムが PDA に対してプログラム的に「署名」できる
- PDA を導出しても自動的にアカウントが作られるわけやないから、ちゃんと作成せなあかん
CPI(Cross-Program Invocation)
CPI はあるプログラムから別のプログラムを呼び出すことや。これで複数のプログラムを組み合わせられるねん。
CPI で大事なのは:
- 呼び出し元の署名権限は呼び出し先に拡張される
- 呼び出し深さは最大 4 まで
- プログラムは自分の ID から導出された PDA に対して署名できる
SPL トークン
Solana のトークンはSPL(Solana Program Library)トークンと呼ばれてて、こんな感じでできてるねん:
- トークンプログラム:トークンを操作するための命令がある
- ミントアカウント:トークンの種類を表す(総供給量や小数点の桁数など)
- トークンアカウント:誰がどのトークンをいくら持ってるかを追跡
- 関連トークンアカウント:所有者とミントから決定的に導出されるトークンアカウント
ネットワーククラスタ
Solana には 3 つの主要クラスタがあるねん:
- Devnet:開発者がアプリをテストするため。タダでトークンがもらえるし、リセットされることもある
- Testnet:新しい機能のテスト用。Devnet より新しいバージョンが動いてる
- Mainnet Beta:本番環境。ほんまの SOL が流通してる
Solana 開発に必要なもの
- Rustの基本知識:プログラム書くなら必須や
- Anchorフレームワーク:初心者には絶対おすすめ
- spl-token:トークン操作するなら必須のライブラリ
- 公開 RPC エンドポイントかプライベート RPC:Solana ネットワークと通信するため
- Phantomなどのウォレット:テスト・デプロイするとき必要や
ほな、開発頑張りや!わからんかったらいつでも聞いてな!
【ARM3rd とは】
ARM3rd はグローバル L1/L2 の開発支援、App Chain 企画、キラーアプリケーション創出に特化した、Web3・AI のプロフェッショナルファームです。Arweave や Solana はじめグローバルの Tier 1 プロトコル、および日本のエンタープライズとの卓越した協業実績を有しています。