![見出し画像](https://assets.st-note.com/production/uploads/images/132020319/rectangle_large_type_2_7f39027952f89c4904a8f030c1694193.png?width=800)
【完全保存版】ローカル環境でのsolana CLIを実行(コントラクトのデプロイまで)
今回は、こちらの公式ドキュメントに沿って、ローカル環境で、solana CLIを実行してみます。
0 Windowsユーザーの方へ
1 インストールについて
私はMacを使っているので、ここは実行していないのですが、Windowsをお使いの方は事前にこちらが必要です。
Windows 10 か11の場合は、下の2つのインストールが必要です。
![](https://assets.st-note.com/img/1708816486105-6SdBzhftux.png?width=800)
2 wslコマンドの実行について
インストールができましたら、インストールした、「Windows Terminal」を開きます。
その後、新しいタブで、「wsl」コマンドを実行する必要があります。
![](https://assets.st-note.com/img/1708816630336-NfSoCz98AE.png?width=800)
1 Solana CLIのインストール
1 インストールの実行
では、まずは下のコマンドで、インストールを行います。
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
このように安定版(stable)をインストールできました。
![](https://assets.st-note.com/img/1708814862505-tHC19sx7nG.png?width=800)
もしくは、特定のバージョンのインストールの場合はこちらになります。
下は、v1.18.3をインストールしています。
![](https://assets.st-note.com/img/1708814886874-SuDe0umS2O.png?width=800)
詳しくは、下をご参照ください。
2 PATHの設定について
インストールをしたので、こちらのPATHを設定しましょう。
![](https://assets.st-note.com/img/1708817244514-sHqKDyPsA1.png?width=800)
まずは、vimで開きます。
vim ~/.zshrc
![](https://assets.st-note.com/img/1708814904611-7O8mBe0ZuO.png?width=800)
ちなみに、私はzshを使っているので、上のコマンドになります。
シェルが不明の場合は、下のコマンドで確認ができます。
![](https://assets.st-note.com/img/1708817159887-ee92ucTL53.png?width=800)
「i」を押して「INSERT」モードにして、下のように貼り付けます。
![](https://assets.st-note.com/img/1708815040853-ndLIIjVfAB.png?width=800)
変更に問題がなければ、「Esc」キーで、「INSERT」モードを抜けてから、「wq!」で上書き保存します。
![](https://assets.st-note.com/img/1708815069256-idzF9JGE4V.png?width=800)
3 PATHの反映について
上書き保存ができましたら、下のコマンドで、反映を行います。
(このコマンドは、zshの場合です。)
source ~/.zshrc
![](https://assets.st-note.com/img/1708815085796-FNgUElCzDD.png?width=800)
4 バージョンの確認について
最後に、インストールがうまくいっているか、確認してみましょう。
solana --version
下のように、バージョンが確認できれば成功です。
![](https://assets.st-note.com/img/1708815107643-jgKza7Q1og.png?width=800)
2 ローカルでのバリデータの立ち上げ
1 バリデータの立ち上げ
では、ローカル環境で、バリデータを立ち上げてみましょう。
これにより、ローカル環境で、テスト用の実行が可能になります。
![](https://assets.st-note.com/img/1708815277613-PQZuo7deZ8.png?width=800)
なお、テスト中はこちらは立ち上げたままになります。
別のコマンドを実行する場合は、新しく立ち上げたターミナルで実行していきます。
2 configへのローカルホスト設定
以降、ローカルホストで実行を行うように、config(構成)に設定を行います。
solana config set --url localhost
下のように、設定ができました。
![](https://assets.st-note.com/img/1708818165675-b6RyZzajDi.png?width=800)
また、せっかくなので、config(構成)ファイルも見てみましょう。
このようになっていました。
![](https://assets.st-note.com/img/1708815556546-HOJfZSSJfP.png?width=800)
3 configの確認について
設定したconfigは、次のコマンドで、いつでも確認できます。
solana config get
![](https://assets.st-note.com/img/1708815705688-niagDUBKys.png?width=800)
3 キーペアの作成
1 キーペアの生成
ウォレットを作成するために、下のコマンドを実行します。
solana-keygen new
「BIP39 Passphrase(empty for none):」で「Enter」を押すと、下のように進みます。
これで公開鍵と、シードフレーズができました。
シードフレーズは他の人には見せず、厳重に保管するものですので、十分ご注意ください。
![](https://assets.st-note.com/img/1708816073075-tJ2H6NE8V2.png?width=800)
2 格納場所の設定について
次のコマンドで、キーペアの格納場所を設定します。
solana config set -k ~/.config/solana/id.json
このように、設定できました。
![](https://assets.st-note.com/img/1708816119696-Vv210nPycC.png?width=800)
なお、参考までに、キーペアは下のようになっていました。
![](https://assets.st-note.com/img/1708815634624-o2TpSSj1X4.png?width=800)
4 テストトークンの取得について
では、テストトークンを取得してみましょう。
1 残高の確認
その前に、現在の残高を確認します。
solana balance
下のように、0トークンになっていることが確認できました。
![](https://assets.st-note.com/img/1708816173818-vO0eAUn1Du.png?width=800)
なお、このようなエラーになってしまった場合、バリデータを終了させてしまっていると思います。
その場合、第2章のバリデータをもう一度立ち上げてみてください。
![](https://assets.st-note.com/img/1708816285886-jVYZMLP53d.png?width=800)
2 テストトークンの取得
テストトークンは、次のコマンドで取得できます。
solana airdrop 2
ここでは、2SOLを取得しています。
![](https://assets.st-note.com/img/1708816196069-CoY0hZFFEn.png?width=800)
もう一度、残高を確認すると、増えていることが確認できました。
solana balance
![](https://assets.st-note.com/img/1708816210545-hFBdHnDv7e.png?width=800)
4 バリデータの終了
最後に、立ち上げたバリデータは、「Ctrl」+「c」で忘れずに終了してください。
また、第5章以降も続ける場合は、ここでは終了せずに、続けてください。
![](https://assets.st-note.com/img/1708819147666-q1WFolfc5r.png?width=800)
5 RustとCargoのインストールについて
ここからは、こちらの公式ドキュメントに沿ってやっていきます。
1 インストールの実行
こちらのコマンドで、インストールを行います。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
![](https://assets.st-note.com/img/1708829185552-wmrrjtIPg4.png?width=800)
このように選択肢が表示されたので、私は1のデフォルトで実施しました。
![](https://assets.st-note.com/img/1708829289019-YWwnUkYsja.png?width=800)
2 PATHの反映
このように、最後まで実行ができました。
最後に、PATHを反映させるために、シェルの再起動かsourceコマンドを実行します。
source "$HOME/.cargo/env"
![](https://assets.st-note.com/img/1708829334454-zrhRtpBhor.png?width=800)
6 プロジェクトの作成について
1 プロジェクトの生成
こちらのコマンドで、新しいプロジェクトを作ってみましょう。
cargo init hello_world --lib
cd hello_world
下のようにできました。
![](https://assets.st-note.com/img/1708829416669-2eAhm4qxcV.png?width=800)
2 solana-programクレートの追加
では、solana-programクレートを追加しましょう。
まずは、下のコマンドで、solananのバージョンを確認します。
solana --version
![](https://assets.st-note.com/img/1708829437794-BD1qx6rHDM.png?width=800)
では、上で確認したバージョンに合わせて、solana-programを追加しましょう。
私の場合は、「1.18.3」だったので、次のようになります。
cargo add solana-program@"=1.18.3"
「Cargo.toml」にも、下のように追加されていました。
![](https://assets.st-note.com/img/1708829477063-ldhCeJVmyR.png?width=800)
3 libセクションの追加
Cargo.tomlに次のlibセクションを追加します。
[lib]
name = "hello_world"
crate-type = ["cdylib", "lib"]
「crate-type」でコンパイルされるクレートのタイプを指定しています。
ここでは、次の2つを指定しています。
cdylib: C互換の動的ライブラリとしてコンパイル
lib: 通常のRustライブラリとしてコンパイル
![](https://assets.st-note.com/img/1708829493670-5S93ugSCbi.png?width=800)
4 コードの貼り付け
続いて、公式のドキュメントのこの部分を貼り付けます。
![](https://assets.st-note.com/img/1708835219425-BWmX2ffR9c.png?width=800)
このようにしました。
![](https://assets.st-note.com/img/1708829519141-hokWHI7MGQ.png?width=800)
内容については、こちらの記事をご参照ください。
7 プログラムのデプロイ
1 プログラムのビルド
では、まずビルドを行いましょう。
cargo build-bpf
![](https://assets.st-note.com/img/1708829533180-2iWofnnyn0.png?width=800)
このようにビルドが完了しました。
「hello_world.so」というファイルができました。
![](https://assets.st-note.com/img/1708829587879-1DTKOHJwNh.png?width=800)
2 ガス代の確認と補充
デプロイを行う前に、テストトークンがあるかを確認しましょう。
solana balance
下のように、十分あることが確認できました。
![](https://assets.st-note.com/img/1708829602600-GndaBea61t.png?width=800)
補充が必要な場合は、次のようにして、取得ができます。
ここでは、2 SOLを取得しています。
solana airdrop 2
![](https://assets.st-note.com/img/1708829618790-T4FZ17VFpj.png?width=800)
3 デプロイの実施
では、ビルドしてできた「hello_world.so」を指定して、デプロイしましょう。
solana program deploy ./target/deploy/hello_world.so
下のようにデプロイが完了しました。
できたプログラムのIDも表示されています。
![](https://assets.st-note.com/img/1708829637375-aquwnhwzNZ.png?width=800)
念の為、残高を確認すると、減っていることも確認できました。
![](https://assets.st-note.com/img/1708829653090-Enf21qA6d8.png?width=800)
8 バリデータの終了について
ここで終了する場合は、第4章のように、バリデータを修了してください。
今回は以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊