サイオステクノロジーの菊地啓哉です。久しぶりのブログです。最近、 Blockchain の調査検証を進めておりますが、その中でエンタープライズ向け利用の可能性を感じた、Avalanche について調査しております。 AvaCloud というサービスを利用して devnet を構築し、 SmartContract を deploy・実行したので、今回はその手順について書きたいと思います。
Avalanche とは?
Avalanche は Blockchainプラットフォーム で以下のような特徴を持ちます。
- SmartContract が実行される C-Chain(Contract Chain)、サブネットの作成などで使用される P-Chain(Platform Chain)、Asset のやりとりで使用される X-Chain(Exchange Chain) の3つのチェーンで構成される(参考)
- Primary Network の中に Avalanche L1(旧: Subnet)と呼ばれるサブネットを作成することができ、Avalanche L1 で Permissioned なネットワークを作成することもできる(Avalanche L1 は Layer 1 の L1 と紛らわしいので、この記事中は旧称である Subnet と併記します。参考)
- Avalanche L1(旧: Subnet)は Permissioned/Permissionless の設定、独自の token economics の構築、ガス代の設定など、要件に応じた柔軟な設定ができる(参考)
AvaCloud とは?
Avalanche の開発元である Ava Labs が提供する Node as a Service で、簡単に Avalanche L1(旧: Subnet)を構築することができます。Google アカウントで簡単に登録でき、Free Tier で devnet の作成ができます。
devnet とは?
その名の通り、開発で使用する Avalanche network です。クラウド上に deploy されているが、mainnet や testnet などの Avalanche network とはつながっていない、独立したネットワークです。(参考)
前提
- Core という Wallet が必要になります。この手順ではブラウザの拡張機能をインストール済みの状態で実施しております。
- AvaCloud には登録済みとします。
devnet の作成
AvaCloud ログイン後のトップの画面(My Blockchains)で「+ Create L1」をクリックします。
ここに表示されていますが、登録直後は無料試用期間が30日あり、devnet を動かしている間だけ、残り時間が減っていくような動きになっているようです。画面に表示されている devnet のように Disabled になっていればこのカウントダウンは進んでいません。
Devnet を選択します。
ここで Testnet や Mainnet を選択すると、それぞれ作成の為に契約できるプランが表示されます。
画像のように Wallet の接続が促されるので、Core Wallet を接続します。
一般設定を入力します。Chain ID は恐らく使用可能な ID を設定してくれていると思います。変更したい項目があれば好きに変更してください。
Admin wallet address は Core Wallet で使えるアドレスが表示されていると思います。
Begin customizing をクリックします。
誰がトランザクションを送信できるか設定します。任意のアカウントが実行できるように設定することもできますが、ここでは指定したアカウントに限定します。
Address は使えるものを入力し、 Roleは Admin か User の2択から選びます。
SmartContract を deploy できるアドレスを設定します。
作成する devnet の native token を Mintできるアドレスを指定します。
Reward を設定します。
ガス代を設定します。
設定した内容を確認できます。Next で進みます。
確認画面が表示されるので、「Create L1」で devnet を作成します。
これで devnet が作成できました。
MetaMask に devnet を追加
Remix から SmartContract を deploy できるようにするため、作成した devnet を MetaMask に追加します。
devnet 作成後の My Blockchains で作成した devnet の右側にある右矢印をクリックし、 devnet の詳細を開きます。
Dashboard、Validators、Interoperability は無料の範囲では使えないようです。
Details を選択すると devnet の詳細が表示されます。この内容を MetaMask に手動で追加します。
以下の内容を入力して、保存します。
- ネットワーク名:MetaMask上で管理しやすい名前
- 新しいRPC URL:Details の中の RPC URL
- チェーンID:Details の中の EVM Chain ID
- 通貨記号:Details の中の Token Symbol
- ブロックエクスプローラーのURL(オプション):入力しない
これで、ネットワークが追加され、そのネットワークに切り替えると、devnet 作成時に指定したアカウントが指定量のトークンを持っていることを確認できると思います。
Remix から devnet に SmartContract deploy・実行
お馴染みの Remix を使って、今作った devnet に SmartContract を deployし、関数を実行してみます。先ほどの Details の画面にも表示されていましたが、VM Type が Subnet-EVM なので、EVM互換性があります。
Remix上の細かい操作は省略しますが、もしわからなければ、こちらの記事 を参照ください。
MetaMask が devnet を選択している状態で Remix上の ENVIRONMENT を Injected Provider - MetaMask
にすると、 Custom (EVM Chain ID) network
のように表示されると思います。この状態であれば devnet とつながっているので、書き込み処理のある SmartContract を deployします。
上の画像が deploy 及び、書き込み処理を実行した結果となります。 期待通りに実行できていそうなことが確認できます。
devnet を disabled にする
最後に作成した devnet を disabled にしておきます。
Avalanche L1 の画面の右上にあるゴミ箱のアイコンをクリックすると確認のダイアログが表示された後、停止できます。
おまけ
AvaCloud の料金プランは何故か AvaCloud のページ内で見つけられていません。ただ、testnet や mainnet で L1 を作ろうとすると料金プランの表示が出てきます。また、これまた何故か、サポートページにはその料金プランのページのスクリーンショットが掲載されています。見つけられていないだけかもしれませんが、料金プランなんて大事な情報は見せても良いならわかりやすい場所に掲載してほしいですね。こちらの情報はあくまで 2024/10/22 時点の情報になります。今は Testnet Starter 5日間の無料お試し期間がありましたが、数日前まではありませんでした。
Testnet Starter は月額 $1,599.00 の固定費に加えて使用量に応じたストレージ費用がかかり
Mainnet Starter は同様に月額 $3,999.00 の固定費と使用量に応じたストレージ費用となっています。
まとめ
以上が、 AvaCloud上での devnet の作成、 Remix から devnet に SmartContract を deploy・実行するまでをご紹介しました。
割と簡単にできそうに見えたのではないでしょうか?
引き続き、Avalanche の調査・検証を進めていきたいと思います。
またかきます
またね