Solanaの基本

ローカルバリデータのセットアップ

Last updated April 19, 2025

概要

ローカルバリデータは、あなた個人のノードとして機能し、ライブブロックチェーンネットワークに接続する必要なしにアプリケーションをテストするためのローカルサンドボックス環境を提供します。完全にカスタマイズ可能なローカルテスト台帳を運用し、これはSolana台帳の簡略版で、すべてのネイティブプログラムがプリインストールされており、様々な機能が有効になっています。

セットアップ

ローカルバリデータの使用を開始するには、お使いのオペレーティングシステムに適したコマンドを使用してSolana Tools CLIをインストールする必要があります。

インストールコマンド

sh -c "$(curl -sSfL https://release.solana.com/v1.18.18/install)"

注意: インストールスクリプトはSolanaの1.18.18バージョンを参照しています。最新バージョンをインストールしたり、異なるインストール方法を発見するには、公式のSolanaドキュメントを参照してください。

使用方法

CLIをインストール後、簡単なコマンドを実行してローカルバリデータを開始できます。

solana-test-validator

起動すると、バリデータはローカルURL(http://127.0.0.1:8899)でアクセス可能になります。このURLでコードを設定して接続を確立する必要があります。

import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
const umi = createUmi("http://127.0.0.1:8899")

ローカルバリデータは、ユーザーフォルダにtest-ledgerという名前のディレクトリを生成します。このディレクトリには、アカウントやプログラムを含むバリデータに関連するすべてのデータが保持されます。

ローカルバリデータをリセットするには、test-ledgerフォルダを削除するか、リセットコマンドを使用してバリデータを再起動できます。

さらに、solana-logs機能は、テスト中にプログラム出力を監視するのに非常に役立ちます。

プログラムとアカウントの管理

ローカルバリデータには、メインネットで見つかる特定のプログラムやアカウントは含まれていません。ネイティブプログラムとテスト中に作成したアカウントのみが含まれています。メインネットから特定のプログラムやアカウントが必要な場合、Solana CLIを使用してそれらをダウンロードしてローカルバリデータに読み込むことができます。

アカウントとプログラムのダウンロード:

テスト目的で、ソースクラスターからローカルバリデータにアカウントやプログラムを簡単にダウンロードできます。これにより、メインネット環境を複製できます。

アカウントの場合:

solana account -u <ソースクラスター> --output <出力形式> --output-file <宛先ファイル名/パス> <取得するアカウントのアドレス>

プログラムの場合:

solana program dump -u <ソースクラスター> <取得するアカウントのアドレス> <宛先ファイル名/パス>

アカウントとプログラムの読み込み:

ダウンロード後、これらのアカウントとプログラムはCLIを使用してローカルバリデータに読み込むことができます。特定のアカウントとプログラムをローカル環境に読み込むコマンドを実行して、テスト準備を整えることができます。

アカウントの場合:

solana-test-validator --account <アカウントを読み込むアドレス> <アカウントファイルへのパス> --reset

プログラムの場合:

solana-test-validator --bpf-program <プログラムを読み込むアドレス> <プログラムファイルへのパス> --reset

エクスプローラでのローカルトランザクションの確認

ローカルバリデータを使用することは、多くのエクスプローラがローカルポートに接続し、前述のtest-ledgerフォルダに保存されたローカル台帳を読み取る機能を持っているため、エクスプローラの使用を妨げません。

これを行う方法は2つあります:

  • お気に入りのエクスプローラのローカルクラスターを指すトランザクション署名へのリンクを作成する。
  • Webページのクラスターを手動で変更し、トランザクションリンクを貼り付ける。

トランザクション署名へのリンク作成

Umiでトランザクションを送信すると、署名と結果という2つの重要な情報を受け取ります。署名はbase58形式なので、ブロックチェーンで読み取り可能にするためにデシリアライズする必要があります。

以下のコードでこれを行えます:

const signature = base58.deserialize(transaction.signature)[0]

署名を取得したら、お好みのエクスプローラで次のように使用できます:

クラスターの手動変更

前述のとおり、ブロックエクスプローラではユーザーがカスタムRPCを利用してトランザクションを表示できます。ローカルバリデータトランザクションを確認するには、クラスター選択モーダルで入力ボックスを探し、次のアドレスを入力する必要があります:http://127.0.0.1:8899

注意:Solana Explorerは、カスタムRPC URLを選択すると自動的にローカルバリデータポートにデフォルト設定されるため、追加の変更は必要ありません。

「Metaplex」ローカルバリデータの作成

免責事項

残念ながら、このガイドの部分はBashスクリプトの使用により、LinuxまたはMacOSのユーザーのみが利用可能です。ただし、Windowsを使用していて、独自のMetaplexバリデータを作成するためにこのガイドに従いたい場合は、Windows Subsystem for Linux (WSL)またはこのスレッドで提供されているソリューションの一つを使用できます!

ローカルバリデータのセットアップと管理の基本を理解したら、bashスクリプトを通じてパーソナライズされたローカルバリデータを作成・管理できます。

例えば、主要なMetaplexプログラム(mpl-token-metadatampl-bubblegummpl-core)を含むmetaplex-local-validatorを作成できます。

ディレクトリの設定とプログラムデータのダウンロード

まず、ローカルバリデータに必要なプログラムを保存するためのディレクトリをパス内に作成します。

mkdir ~/.local/share/metaplex-local-validator

次に、指定されたアドレスからこのディレクトリにプログラムデータをダウンロードします。

solana program dump -u m metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s ~/.local/share/metaplex-local-validator/mpl-token-metadata.so
solana program dump -u m BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY ~/.local/share/metaplex-local-validator/mpl-bubblegum.so
solana program dump -u m CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d ~/.local/share/metaplex-local-validator/mpl-core.so

バリデータスクリプトの作成

次に、必要なすべてのプログラムでローカルバリデータを実行するプロセスを簡略化するバリデータスクリプトを作成します。バリデータセットアップをスクリプト化することで、関連するすべてのMetaplexプログラムを含むパーソナライズされた環境でテストを簡単に開始できます。

次を使用して新しいスクリプトファイルを開くことから始めます:

sudo nano /usr/local/bin/metaplex-local-validator

注意: /usr/local/binディレクトリが存在しない場合、sudo mkdir -p -m 775 /usr/local/binを使用して作成できます。

エディタに以下のコードを貼り付けて保存します:

#!/bin/bash
# バリデータコマンド
COMMAND="solana-test-validator -r --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s ~/.local/share/metaplex-local-validator/mpl-token-metadata.so --bpf-program BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY ~/.local/share/metaplex-local-validator/mpl-bubblegum.so --bpf-program CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d ~/.local/share/metaplex-local-validator/mpl-core.so"
# スクリプトに渡された追加引数を追加
for arg in "$@"
do
COMMAND+=" $arg"
done
# コマンドを実行
eval $COMMAND

注意: 終了して保存するには、Ctrl + Xを使用し、Yで確認し、Enterで保存します。

スクリプトの準備ができたら、実行できるように権限を変更します:

sudo chmod +x /usr/local/bin/metaplex-local-validator

最後に、プロジェクトフォルダ内で新しいバリデータをテストします:

metaplex-local-validator