Hardhatのインストールというか準備編の苦労

■前置き(ちょっと長い)

Ethereumで何かやりたい!Solidityでスマートコントラクトを書いてみたい、という方、多いんじゃないでしょうか。素人には、いくつかそれらしき無料講座とかがあります。しかし、無料講座に入る手前でつまずいちゃう事に気づいたので、ここに書き残しておきます。

私は、大学・大学院で機械制御について学んでいたので、当時C+、Visual Basicあたりをいじっていました。MATLABを多用していた記憶です。大学の初めの頃は、授業の後にパソコンに触れることが面白くて、授業の流れでLinux/Unixのパソコンをいじっていたのも記憶にあります。(当時、横でそういうのをいじっていた友人は、気づけばだいぶ有名人に・・・)

その後、当分Tech方面から離れて営業マンやBizDevをやっていたのですが、この2年間、ちょっとした物理方面のTechにどっぷりAll Inするプロジェクトを立ち上げまして、それは没になったのですが、それがきっかけで、意外と今からTech方面を再度積み上げても何とか着いていけるなというのと、時代が進んでネット上で色々学べるツールがあるので自分次第でどうにでもなると思ったのがあって、しっかりTechのベースから積み上げた方が、実はBizDevって上手くいく&スケールするんじゃないだろうか、という「問い」(←IDEO風に言うと。一般的には仮説?)を立てまして、15年ぶりにどっぷりプログラミングの世界に入ることに決めました。それも、最先端のCrypto /Blockchainの世界に。

縁あって、Unchainという素晴らしいプロジェクトに入れて頂けたのですが、まず初めに環境設定からという事で、そこでいきなりハマる訳です

Shellってなんだっけ
Pathってなんだっけ
ターミナルってどこだ?(そういえばMacでコーディングするの人生初だぞ)

聞く前にまずググれば?自分で調べた方が身に付く。

はい、その通りであります。調べ方とかもありますからね。

でもここは、そういう気合と根性が若干にじみ出るような思考回路は横に置いておこうと思います。全世界の皆さんに、ちょっと分かったフリしたど素人がハマッた所、大公開です。私の経歴(学歴?)を知る方、ププッと笑って頂いて結構であります(笑)ここから一気に前進です。

前置き長くなりましたが、ここから本題です。

超準備編:PC
準備編:Git
準備編:バージョン管理ソフト(NVM、又はHomebrew/Nodebrew)
準備編:Node.js、npm
Hardhat(Ethereum開発環境)のインストール

■超準備編

PCは何を選べば良い?答えは、敢えて言いますが、Linuxです。

初心者には無理ですね。今の私でも無理です。大学一年の時だったら、無理じゃなかったかも。。

ということで、答えはMacです。これ以上深くは突っ込みませんが、Windowsは扱いがムズいです。知りたい人は、これこそググッて自分で調べてください(笑)

ただMacを選ぶと、この後のシェルの所で気をつけないといけないが、この後頑張っていきたい!と思ってる人は、ここは乗り越えたいポイント。(後で解説します)この後はMacの前提で話を進めます。

■準備編(流れ)

慣れた人は、Hardhatインストール→スマコン書けます、で通じます。初心者は無理です。ここがある意味、いきなりの大きな壁。フローは以下の通りです。

ターミナル立ち上げ
→コマンド打ち込み
(→Homebrewインストール)
→Gitインストール
→nvmインストール
→Node.jsとnpmインストール
→Hardhatインストール

・・・遠っ!!もう少しだけ丁寧に、逆算的にいきます。

Hardhat=Ethereum開発環境。環境って何?という所かと思いますが、そこは一旦流して(この単語の理解に拘ると進めない)、このHardhatというのがあるおかげで、Solidityというプログラミング言語で、Ethereum上にスマートコントラクトを書いて動かすことができる、と言えば伝わるでしょうか。(ちょっと違う気もしますが、分かり易くいうとこんな感じ)

Hardhatをインストールするには、Node.jsというJavaScriptが必要です。Node.js自体のバージョン管理にnvm、Node.jsのパッケージやライブラリの管理にnpmが必要です。JavaScript、パッケージ、ライブラリの所から解説しだすとキリ無いのですが、一旦この辺りを読むと良いかもしれません↓。
参考記事1
参考記事2

バージョン管理をできるというのはつまり、不要ファイルをバージョンアップの度にきちんと整理してくれる=ディスク容量を無駄にしないという事で、これは非常に重要です。また、nvmには、ダウンロード&インストールの機能も付いているのがポイントで、つまり、公式Websiteでダウンロードボタンを押して、ダウンロード&インストールするのではなく、ターミナルのコマンドラインでnvm XXXXXXXXと打ち込んで、ダウンロード&インストールをすることができますし、むしろそうしてくれ、と、例えばHardhatのインストールの指示には書いてあります。

更に戻っていくと、nvmなどのインストールの前に、Gitという、またバージョン管理システムをインストールする必要があります。Gitはここからインストールできます。

ここで(Gitのインストール)、漸く、ターミナルの出番です。

■準備編(ターミナル立ち上げ→Gitのインストール)

ターミナル立ち上げ方法は、さすがに、「MAC ターミナル 立ち上げ」でググってください。立ち上がったら、Gitインストールの指示の一番上にある、例えば以下コマンドを打ち込んでください。

git --version git version 2.7.0 (Apple Git-66)

はい、もういきなりcommand not foundと言われた人、挙手!

このCommand not foundは、15年前の経験談でもあり、今回色々ググって改めて思った事でもありますが、大体が、パス(Path)が通ってないっていうエラーです。上手くいかない時は、コンピューターが、コンピューターなりに拙い言葉で人間に伝えようとしてくれているので、1)まずコンピューターと仲良くしてあげようと思う優しい心と、2)エラーの文章をコピペしてググるのが非常に有効です。(余談ですが、私は大学時代、コンピューターに向かって、頼むから言う通りに動いてくれ、とずっと語りかけていました。全く意味なかったですが笑)

ターミナルは、コンピューターの中核であるカーネルという部分に対して、人間がコマンドで指示を出す為の"人間語でコマンドを書く場所"ですが、ターミナルは、シェルという文字通り殻を通してカーネルに指示を伝えます。この辺りはこの記事にある脳みその図の図解が分かり易いかと思います。

このシェルというのが、謎にいくつかあるんですね。で、このシェルに道(Path)が通っていないと、正しくカーネルに辿り着かないのです。今自分がどのシェルにアクセスしているかを知るために、ターミナルのコマンドラインでecho $SHELLと打ってみましょう。ここで出てきた文字の最後(スラッシュの後)は、最新のMac OSだと、zshとなっているかと思います。古いMacだとbashになっているかと思われます。巷の噂では、zshシェルはかなりイケてるようなので、今後の事を考えると、とりあえずzshにしておいた方が良いかと思われます。Macのシェルについての記事、参考になります。

シェルが分かったので、頑張ってPathを通します。この方法論は、本当にたくさんあるようなので、それらしきものを紹介しておきます。

https://zenn.dev/antez/articles/a9d9d12178b7b2

https://alis.to/kusshi/articles/3ldp4b5Rvmrw

ここは、この記事だけで解決しない事もあると思うので、苦労して(色々ググって)でも突破しないといけないイメージです。正念場です。というか、ここさえ突破できれば、後はだいぶ楽です。

Pathが通って、Gitのバージョン確認コマンドが動いたら、恐らく、Gitのインストールもできるようになるのではと想像できます。私は、Homebrew(これも一般的なバージョン管理システム)をインストールして、それからGitをインストールするという方法を選びましたが、方法はなんでもOKです。

■準備編(nvm〜Node.js〜npm)

Gitがインストールできたら、Hardhatのインストールの指示通りに進めていけばOKですが、この全部の行を一気に打ち込まないこと。。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh | bash
nvm install 12
nvm use 12
nvm alias default 12
npm install npm --global # Upgrade npm to the latest version

まずはこのコマンド。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh | bash

この最後を、シェルに合わせてbashではなくてzshに変えないといけないのかな・・・?(すみません、私も素人なのでちょっと分かってませんのと、インストールした時は実は私はbashシェルを使っていたので。。)

これでnvmがインストール完了した風のコメントがターミナルに表示されるので、その後、nvm install 12以降のコマンドを一行ずつ打ち込んでいき、Node.js、npmのインストールを行います。12という数字は、Node.jsのバージョンなので、進めるプロジェクトに応じて、もっと新しい数字に変える必要が普通はあると思いますので、注意した方が良いです。

これでやっと準備がおしまい。。

■Hardhatのインストール

ターミナルでnpx hardhatと打ち込んだら、インストールできちゃいます。なんと簡単。(逆に、なんと大変な準備。。。) 

■感想的なコメント

これでもだいぶ端折りましたが、自分で調べたWebsiteを織り込んで、網羅した風になっている気がしています。勝手に(笑)

ちなみに、ターミナルは、カッコよくカスタマイズした方が見やすいです。やる気にも繋がります。ここでは紹介しませんが、その辺の解説記事はたくさん出ていますので、好みのターミナルをカスタマイズしてみると良いと思います!

それでは!!

この記事が気に入ったらサポートをしてみませんか?