Solidity

プログラミング知識0からのSolidity学習【環境構築編】

2022年1月30日

この記事ではスマートコントラクト開発を始めるための環境構築がわかります。

プログラミング知識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用のバージョンをダウンロードしよう。

MacOS用ダウンロード
インストール完了後のスタート画面

まとめ

イーサリアムクライアントはひとまず飛ばしましたが、MetaMaskをインストールしてDAppsと簡単にやり取りできるようになりました。

さらにNode.jsでJavaScriptを動かせる環境を作り、Truffle SuiteからフレームワークであるTruffleとローカル環境のGanacheをインストール。

ここまででスマートコントラクト開発を始めるための環境構築が完了しました!

ブログに書くことで自分の復習にもなり知識が定着してきました。まだまだ序盤ですが地道に続けていきます。

-Solidity