【完全保存版】ローカル環境でのsolana CLIを実行(コントラクトのデプロイまで)
今回は、こちらの公式ドキュメントに沿って、ローカル環境で、solana CLIを実行してみます。
0 Windowsユーザーの方へ
1 インストールについて
私はMacを使っているので、ここは実行していないのですが、Windowsをお使いの方は事前にこちらが必要です。
Windows 10 か11の場合は、下の2つのインストールが必要です。
2 wslコマンドの実行について
インストールができましたら、インストールした、「Windows Terminal」を開きます。
その後、新しいタブで、「wsl」コマンドを実行する必要があります。
追記
ちゃまさんからwslの場合は、追加でこちらのコマンドが必要な旨を教えてもらいました!
sudo apt update && sudo apt install build-essential pkg-config libudev-dev protobuf-compiler
ありがとうございました!!
1 Solana CLIのインストール
1 インストールの実行
では、まずは下のコマンドで、インストールを行います。
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
このように安定版(stable)をインストールできました。
もしくは、特定のバージョンのインストールの場合はこちらになります。
下は、v1.18.3をインストールしています。
詳しくは、下をご参照ください。
2 PATHの設定について
インストールをしたので、こちらのPATHを設定しましょう。
まずは、vimで開きます。
vim ~/.zshrc
ちなみに、私はzshを使っているので、上のコマンドになります。
シェルが不明の場合は、下のコマンドで確認ができます。
「i」を押して「INSERT」モードにして、下のように貼り付けます。
変更に問題がなければ、「Esc」キーで、「INSERT」モードを抜けてから、「wq!」で上書き保存します。
3 PATHの反映について
上書き保存ができましたら、下のコマンドで、反映を行います。
(このコマンドは、zshの場合です。)
source ~/.zshrc
4 バージョンの確認について
最後に、インストールがうまくいっているか、確認してみましょう。
solana --version
下のように、バージョンが確認できれば成功です。
2 ローカルでのバリデータの立ち上げ
1 バリデータの立ち上げ
では、ローカル環境で、バリデータを立ち上げてみましょう。
これにより、ローカル環境で、テスト用の実行が可能になります。
なお、テスト中はこちらは立ち上げたままになります。
別のコマンドを実行する場合は、新しく立ち上げたターミナルで実行していきます。
2 configへのローカルホスト設定
以降、ローカルホストで実行を行うように、config(構成)に設定を行います。
solana config set --url localhost
下のように、設定ができました。
また、せっかくなので、config(構成)ファイルも見てみましょう。
このようになっていました。
3 configの確認について
設定したconfigは、次のコマンドで、いつでも確認できます。
solana config get
3 キーペアの作成
1 キーペアの生成
ウォレットを作成するために、下のコマンドを実行します。
solana-keygen new
「BIP39 Passphrase(empty for none):」で「Enter」を押すと、下のように進みます。
これで公開鍵と、シードフレーズができました。
シードフレーズは他の人には見せず、厳重に保管するものですので、十分ご注意ください。
2 格納場所の設定について
次のコマンドで、キーペアの格納場所を設定します。
solana config set -k ~/.config/solana/id.json
このように、設定できました。
なお、参考までに、キーペアは下のようになっていました。
4 テストトークンの取得について
では、テストトークンを取得してみましょう。
1 残高の確認
その前に、現在の残高を確認します。
solana balance
下のように、0トークンになっていることが確認できました。
なお、このようなエラーになってしまった場合、バリデータを終了させてしまっていると思います。
その場合、第2章のバリデータをもう一度立ち上げてみてください。
2 テストトークンの取得
テストトークンは、次のコマンドで取得できます。
solana airdrop 2
ここでは、2SOLを取得しています。
もう一度、残高を確認すると、増えていることが確認できました。
solana balance
また、うまく行かない場合は、こちらから取得できると思います。
5 SOLを取得するといいと思います。
5 バリデータの終了
最後に、立ち上げたバリデータは、「Ctrl」+「c」で忘れずに終了してください。
また、第5章以降も続ける場合は、ここでは終了せずに、続けてください。
6 RustとCargoのインストールについて
ここからは、こちらの公式ドキュメントに沿ってやっていきます。
1 インストールの実行
こちらのコマンドで、インストールを行います。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
このように選択肢が表示されたので、私は1のデフォルトで実施しました。
2 PATHの反映
このように、最後まで実行ができました。
最後に、PATHを反映させるために、シェルの再起動かsourceコマンドを実行します。
source "$HOME/.cargo/env"
7 プロジェクトの作成について
1 プロジェクトの生成
こちらのコマンドで、新しいプロジェクトを作ってみましょう。
cargo init hello_world --lib
cd hello_world
下のようにできました。
2 solana-programクレートの追加
では、solana-programクレートを追加しましょう。
まずは、下のコマンドで、solananのバージョンを確認します。
solana --version
では、上で確認したバージョンに合わせて、solana-programを追加しましょう。
私の場合は、「1.18.3」だったので、次のようになります。
cargo add solana-program@"=1.18.3"
「Cargo.toml」にも、下のように追加されていました。
3 libセクションの追加
Cargo.tomlに次のlibセクションを追加します。
[lib]
name = "hello_world"
crate-type = ["cdylib", "lib"]
「crate-type」でコンパイルされるクレートのタイプを指定しています。
ここでは、次の2つを指定しています。
cdylib: C互換の動的ライブラリとしてコンパイル
lib: 通常のRustライブラリとしてコンパイル
4 コードの貼り付け
続いて、公式のドキュメントのこの部分を貼り付けます。
このようにしました。
内容については、こちらの記事をご参照ください。
8 プログラムのデプロイ
1 プログラムのビルド
では、まずビルドを行いましょう。
cargo build-bpf
このようにビルドが完了しました。
「hello_world.so」というファイルができました。
2 ガス代の確認と補充
デプロイを行う前に、テストトークンがあるかを確認しましょう。
solana balance
下のように、十分あることが確認できました。
補充が必要な場合は、次のようにして、取得ができます。
ここでは、2 SOLを取得しています。
solana airdrop 2
3 デプロイの実施
では、ビルドしてできた「hello_world.so」を指定して、デプロイしましょう。
solana program deploy ./target/deploy/hello_world.so
下のようにデプロイが完了しました。
できたプログラムのIDも表示されています。
念の為、残高を確認すると、減っていることも確認できました。
8 バリデータの終了について
ここで終了する場合は、第4章のように、バリデータを修了してください。
今回は以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊