SOLANA テストネットに接続する

Posted: January 23, 2022

上記の公式ドキュメントを参考にSOLANA CLIを使って接続してみる

現在の設定を確認する

solana config get

Config File: /root/.config/solana/cli/config.yml
RPC URL: https://api.mainnet-beta.solana.com
WebSocket URL: wss://api.mainnet-beta.solana.com/ (computed)
Keypair Path: /root/.config/solana/id.json
Commitment: confirmed

本番のmainnetに接続してるっぽい

テストネットに接続する

solana config set --url https://api.devnet.solana.com

Config File: /root/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /root/.config/solana/id.json
Commitment: confirmed

テストネットに変更された

CLIとクラスタのバージョンを確認する

ドキュメントによると、CLIのバージョンはクラスタのバージョン以上にしておく必要があるっぽい

#CLIのバージョン確認
solana --version

solana-cli 1.8.14 (src:59eee75d; feat:1006352700)
#クラスタのバージョン確認
solana cluster-version

Error: error sending request for url (https://api.devnet.solana.com/): error trying to connect: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1916: (unable to get local issuer certificate)

えー、クラスタのバージョン確認するときにエラー出た。。

ca-certificatesをインストールすることで解決

Ubuntu on Docker で SSL/TLS 通信するとエラーになる問題の対処 - Qiita
Docker 用の Ubuntu イメージ は最低限のパッケージがインストールされていない。そのため、SSL/TLS 通信を行おうとすると以下のメッセージが出るだろう。 (以下は curl の場合) curl: (60) SSL certificate problem: unable to get local issuer certificate ここでは「その場しのぎのやり方」と「根本的な対処」と「なぜそんなことが起こりえるのか」の3つにわけて説明する。 ここでは SSL/TLS 通信の使用頻度が高い代表的なプログラムの3つを取り上げて説明する。 http.sslVerify を無効にする。 元に戻す場合は http.sslVerify を true にする。 -k をつけて実行する。 --no-check-certificate をつけて実行する。 そもそも今回のエラーは CA の証明書が入っていないことが原因のエラーであり、Ubuntu イメージには CA の証明書が入ってない。 Docker イメージの構築段階、あるいはイメージ上で実行するスクリプトに CA の証明書のパッケージをインストールすればよい。 これで「その場しのぎのやり方」をせずとも通常に SSL/TLS 通信が可能になる。 通常 ca-certificates は推奨パッケージとして「その場しのぎのやり方」で取り上げたプログラムと共にインストールされる。 ところが apt-get に --no-install-recommends を明示的につけると ca-certificates がインストールされなくなる。そのために起こるエラーである。

SSL/TLS通信する際に必要なパッケージがDocker imageに含まれていないっぽい。。

いや、なんでだよ。。Solana CLIがインストールされたDocker imageでクラスタにリクエスト送れないってどういうことよ。。

仕方ないので、最低限のDockerfile作成。

FROM solanalabs/solana:stable

RUN apt-get update
RUN apt-get install -y ca-certificates

新たに作成したコンテナから、クラスタのバージョン確認実行

#クラスタのバージョン確認
solana cluster-version

1.8.12

CLIが1.8.14だったので、クラスタのバージョンを超えているからOK