見出し画像

ここから始めるPlasm Network:第五回:EVMベース(Remix)でのスマートコントラクトの開発とデプロイ方法

みなさん、こんにちは。Fintertechの高橋です。
今回はついにPlasm Networkの動かし方紹介の最終回です。solidityの統合環境であるRemixからPlasm Networkに接続してContractをデプロイして実行する方法をご紹介します。

(1) Plasm Networkとは何か~ノード起動方法まで ☆前々々々回
(2) テストネットValidatorになる方法 ☆前々々回
(3) WASMベース(ink!)のスマートコントラクトの開発とデプロイ方法 ☆前々回
(4) solidityをWASMに変換してスマートコントラクトをデプロイする方法 ☆前回
(5) EVMベース(Remix)でのスマートコントラクトの開発とデプロイ方法 ★今回

はじめに

今回の記事はPlasm Networkの公式ページにある英語版の「EVM Smart Contracts」のページを参考にさせて頂くと共に部分的に引用をさせて頂きます。このページには非常に分かり易い解説動画がありますので、まずはそちらを見て頂くのが良いと思います。

今回のプログラムは以下の通りです。
(1)ローカルノードの起動
(2)Metamaskの準備
(3)Remixからのコントラクトのデプロイ

(1)ローカルノードの起動

もう既に何回かやりましたので、すっかり慣れてきて頂いている頃かと思います。しかし今回はログ出力用に以下のコマンドで実行して下さい。

plasm-node --dev -l evm=debug

エラーが出力される場合は「purge-chain」の実行をお忘れなく。

画像1

(2)Metamaskの準備

Metamaskの準備をして、MetamaskからPlasm Nodeに接続出来るようにします。以下の2ステップでいきます。「テスト用アカウントの追加」「ネットワーク設定の追加」です。
では早速やっていきます。
「アカウントのインポート」から以下のアドレスを指定して作成して下さい。このアドレスはテスト用にデフォルト用意されたアドレスになります。
アドレス:0x60ed0dd24087f00faea4e2b556c74ebfa2f0e705f8169733b01530ce4c619883

画像2

画像3

次にネットワークの設定を行っていきます。
「設定」「ネットワーク」とメニューを進んで下さい。以下の内容で設定して下さい。
- Network Name:任意の値を設定します。
- New RPC URL:http://localhost:9933
- Chain ID:80
- Currency Symbol (optional):PLD

画像4

ネットワークの設定が完了しましたら、先程のアカウントを確認して下さい。以下の画像のように「1000PLD」になっていればMetamaskの設定は成功です。

画像5

Dustyテストネットで動作させたい人もいるかもしれませんので、それも簡単に説明させて頂きます。英語ですが、Plasmコアチームが丁寧な解説を作ってくれていますので、そちらもご参照下さい。
- Metamaskでアカウントを作成します。
- そのアカウントアドレスをコピーします。
- Plasm Coreチームが作成している変換ツールでPlasmアドレスに変換して下さい。
- PlasmのDustyテストネットにアクセスしてそのPlasmアドレスにテストネットトークンを送金して下さい。
- 次にMetamaskで新しいネットワーク設定を追加します。基本の項目は上記のネットワーク設定と同じですが、「Net RPC URL」は「https://rpc.dusty.plasmnet.io:8545」とします。
- その後、Metamaskの残高を確認するとPlasm上での送金を認識していることを確認することが出来ると思います。

(3)Remixからのコントラクトのデプロイ

ここまで準備が出来たらRemixを実行して下さい。
今回は「Storage.sol」をサンプルとして進めていきたいと思います。Storage.solはRemixがサンプルとしてデフォルトで用意されているプログラムになります。まずはコンパイルしてデプロイ画面に移動して下さい。

画像6

デプロイ画面に移動して、「ENVIRONMENT」欄には「Injected Web3」を選択して下さい。「ACCOUNT」欄には、先程作成したMetamaskのアカウントを指定して下さい。
その後「Deploy」ボタンを押しましょう。

画像7

Metamaskが起動するので、ガス代のボタンを操作して上ボタンを1回押してガス代を「1」に設定して「確認」を押して下さい。

画像8

成功すると以下の画面のようにコンソールにログが出力され、Metamaskの残高からガス代分が引かれていることが確認出来ます。また、「Deployed Contract」欄に「Storage」が表示されます。

画像9

下の画像のようにデプロイしたコントラクト欄を展開して、Storeトランザクションに好きな数字を入れてコールして見て下さい。私は8601と入れました。その後、retrieve関数を呼ぶと設定した値が取得出来ることが確認出来ます。

画像10

まとめ

今回はSolidityで実装されたコントラクトをRemixとMetamaskを使ってPlasm Nodeと連携させてデプロイする方法をご紹介させて頂きました。Ethereumには先人たちの膨大な知見と膨大なスマートコントラクト資産があります。それを捨てることなくPolkadot上でも継続して使えるようにする今回の技術は非常に素晴らしいものであり、持続性があるという側面からも非常に素晴らしいと思っております。
Kusama、並びにPolkadotのパラチェーンオークションが間近に迫っており、PLMやSDNの価格に目を奪われがちですが、Ethereumが抱えるガス代の課題、スケーラビリティの課題、dApps開発者のインセンティブの課題等を解決するブロックチェーンとして引続き、その技術と製品に注目し、応援していきたいと思っています。そして、日本の多くの開発者の人にPlasmコミュニティに参加して頂きたいと願っています。
全5回に渡るPlasm Networkを巡る旅も今回で終了となります。皆様お付き合いを頂き、誠にありがとうございました。Plasm Networkについてはこれからも継続してアンバサダーとして活動していきますので、技術アップデートがあったタイミングで続編を企画させて頂きたいと思っております。引き続きよろしくお願い致します。
また、Plasm NetworkのベースとなっているブロックチェーンフレームワークであるSubstrateについても機会があれば特集させて頂きたいと思っておりますので、ご期待下さい。
それではまた会える日を楽しみにしております。

興味を持って頂けた方は是非、Plasm Networkのコミュニティに参加して下さい。
Website | Twitter | Telegram | Discord | GitHub