この記事ではスマートコントラクト開発を始めるための環境構築がわかります。
プログラミング知識0のぼくがSolidityを学び始めて試行錯誤してる様子を復習がてら記載していきます。
ちなみに参考にした書籍はこちら。オライリー社の「SolidityとEthereumによる実践スマートコントラクト開発」
手順としてはこちら
- イーサリアムブロックチェーンとのやり取りに利用するソフトウェア「イーサリアムクライアント」
- 簡単にDAppsとやり取りできる「MetaMask」
- Truffle用のJavaScript環境となる「Node.js」
- コントラクトのテストやデプロイのができるフレームワーク「Truffle」
- アプリケーションをローカルで実行する「Ganache」
これらをインストールしたらスマートコントラクトのスタートライン!
イーサリアムクライアントのインストール
イーサリアムクライアントとは、他のイーサリアムクライアントとピアツーピアネットワークを介して通信するソフトウェアアプリケーションです。
参考にした書籍、「スマートコントラクト開発」ではParityと呼ばれるクライアントを使用しています。
ですが!書籍に記載のインストールコマンドは現在動かなくなっていて早速つまづく。。。
bash <(curl https://get.parity.io -L)
ググってる過程で見つけたこちらの記事参考になりました。。。。どの分野にも先駆者はいるありがてぇありがてぇ。
噂によるとParityは開発がストップしてOpenEthereumに引き継がれたそうな。
なので下記URLからOpenEthereumのZipファイルをダウンロード。
https://github.com/openethereum/openethereum
解凍後に作成されるopenethereumコマンドを使ってOpenEthereum Clientを起動する。
ただインストール時間がすこぶるながい。。。。
本番環境にデプロイする際には使用するが、ぼくのような初学者はまだまだその段階にない。ローカル環境があれば十分。
現状必要ないと判断しました。先に進むことを優先!!
MetaMaskのインストール
Parityなどの完全なイーサリアムクライアントをダウンロードして実行しなければアプリケーションを利用できないとなると、エンジニアはともかく一般ユーザには難易度が高すぎます。
テクノロジーに詳しくない人でももっと簡単にアプリケーションを使い始めることができるように用意されたのがMetaMask。
MetaMaskをインストールすることで新規ユーザがイーサリアムを非常に簡単に使い始めることができ、アプリケーションとやり取りできるようになります。
実際にNFTを購入したことのある人はMetaMaskはすでにインストール済みでしょう。
この段階で既存のDAppとやり取りできる状態になりました。
ゲームに限らずいろいろなアプリケーションがあるのでいくつか試してみてはどうでしょうか??
下記からいろいろ確認できます。
Node.jsのインストール
スマートコントラクトの開発やイーサリアムネットワークのやり取りに使用している主要な開発ツールはJavaScriptで構築されている。
なのでJavaScriptランタイム環境を提供するためにNode.jsが必要になってきます。
JavaScriptはブラウザ上でページに動きを追加するのがメインのプログラミング言語。
クリックで写真を大きくしたり、ポップアップで注意がでてきたりなどなど。
ブラウザ上だけでなくサーバサイドでも動くことができるJavaScript。
PHPやJavaと同じような使いかたもできる。そういったものをサーバサイドJavaScriptと呼び、
その中で代表的なものがNode.js
MacOSにインストールする場合、Homebrewパッケージマネージャを使うのが簡単らしい。
上記ホームページからインストールもできますが、ぼくの場合それでやるとうまくいかなかった。。。
ターミナル(Macの場合)で下記コマンドを実行するとインストールできます。
/usr/bin/ruby -e "%(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
インストールが完了したら次のコマンドを実行してNode.jsをインストール。
brew install node@10
こんな感じで出力が表示されました。
正しいバージョンがインストールされたことを確認するために次のコマンドを実行。
node -v
ここでターミナルに表示されている指示に従ってPATHを手動で変更する必要がでてきます。画像赤枠
PATHの変更なしでそのままコマンドを入力した場合
zsh: command not found: node
正常な場合は
v10.24.1
プログラミング知識ゼロのぼくからしたらターミナルの指示もどれがどれかわからず。。。
そしてPATHってなに。。。(こんなレベルです。)
ググりにググりました。
PATHを通すには「export PATH=」がどうたらこうたら。。。
あ、さっきの画像の赤枠部分たしかexport PATH~って書いてたわ!
export PATH="/usr/local/opt/node@10/bin:$PATH"
はい正解!正常にインストールされたことが確認できました!
Truffle Suiteのインストール
Truffle Suite=上記URLサイト
その機能の一部である「Truffle」と「Ganache」をダウンロードします。
Truffle
イーサリアムアプリケーション開発における土台(フレームワーク)
コンパイル・テスト・デプロイなど他にも便利な機能がそろっています。
Truffleはnpmパッケージとして配布されているので、ターミナル(Macの場合)で下記コマンドを実行するとインストール開始します。
npm install -g truffle
npmパッケージとは
Node Package Managerの略で、Node.jsにあらかじめ用意された便利な機能をまとめたもの。
ターミナルに長文の文字列が出力されて、終わったら成功したか確認のために次のコマンドを実行。
truffle -v
バージョン情報やコマンドリストなどが上画像のように表示される。
Truffleをインストールした後はGanacheを追加する。
Ganache
Ganacheは自分専用のブロックチェーン。イーサリアムのローカル開発環境です。
実際のイーサリアムネットワークに接続しないので、プログラムのテストで使用する。
自分のPCのOS用のバージョンをダウンロードしよう。
まとめ
イーサリアムクライアントはひとまず飛ばしましたが、MetaMaskをインストールしてDAppsと簡単にやり取りできるようになりました。
さらにNode.jsでJavaScriptを動かせる環境を作り、Truffle SuiteからフレームワークであるTruffleとローカル環境のGanacheをインストール。
ここまででスマートコントラクト開発を始めるための環境構築が完了しました!
ブログに書くことで自分の復習にもなり知識が定着してきました。まだまだ序盤ですが地道に続けていきます。