ブロックチェーンアプリケーション開発のために、Windows 10に以下のソフトウェアをインストールします。最低限導入しておけばよさそうなのは以下4つ。
- Node.js
- Truffle
- Yarn
- Ganache
Node.jsの導入確認
コマンドプロンプトで下記コマンドを実行し、インストール状況を確認。以前導入していたバージョンが入っていました。
C:\Users\chimy>node -v
v13.3.0
C:\Users\chimy>npm -v
6.13.1
未導入の方は、以下を参考に導入しましょう。
Windowsの場合は、インストーラに従いGUIベースで実行していくだけなので、迷うポイントはないと思います。
Truffleのインストール
Truffleをインストールします。
C:\Users\chimy>npm install -g truffle
:
+ truffle@5.1.63
added 143 packages from 62 contributors in 157.161s
C:\Users\chimy>
バージョンを確認します。コマンドhelpも表示されます。
C:\Users\chimy>truffle -v
Truffle v5.1.63 - a development framework for Ethereum
Usage: truffle <command> [options]
Commands:
build Execute build pipeline (if configuration present)
compile Compile contract source files
config Set user-level configuration options
console Run a console with contract abstractions and commands available
create Helper to create new contracts, migrations and tests
debug Interactively debug any transaction on the blockchain
deploy (alias for migrate)
develop Open a console with a local development blockchain
exec Execute a JS module within this Truffle environment
help List all commands or provide information about a specific command
init Initialize new and empty Ethereum project
install Install a package from the Ethereum Package Registry
migrate Run migrations to deploy contracts
networks Show addresses for deployed contracts on each network
obtain Fetch and cache a specified compiler
opcode Print the compiled opcodes for a given contract
publish Publish a package to the Ethereum Package Registry
run Run a third-party command
test Run JavaScript and Solidity tests
unbox Download a Truffle Box, a pre-built Truffle project
version Show version number and exit
watch Watch filesystem for changes and rebuild the project automatically
See more at http://trufflesuite.com/docs
C:\Users\chimy>
Truffleプロジェクト作成テスト
Truffleのプロジェクト作成を試してみます。プロジェクト用のフォルダを作成し、truffle init
コマンドを実行します。
c:\>mkdir mypj
c:\>cd mypj
c:\mypj>truffle init
Starting init...
================
> Copying project files to c:\mypj
Init successful, sweet!
c:\mypj>dir /b
contracts
migrations
test
truffle-config.js
c:\mypj>
実行すると、以下の構造が出来上がります。
C:\mypj>dir
:
c:\mypj のディレクトリ
2021/01/23 16:49 <DIR> .
2021/01/23 16:49 <DIR> ..
2021/01/23 16:49 <DIR> contracts
2021/01/23 16:49 <DIR> migrations
2021/01/23 16:49 <DIR> test
1985/10/26 17:15 4,198 truffle-config.js
1 個のファイル 4,198 バイト
5 個のディレクトリ 11,056,128,000 バイトの空き領域
yarnのインストール
今回使いませんがyarnをインストールします。読み方は、ヤーン。
JavaScriptに組み込んで使うパッケージ管理システム。Node.js向けのパッケージ管理システムであるnpmと違って、簡易性やセキュリティの面でメリットがある。Facebook社が開発し、2016年にオープンソース化したという経緯があります。
C:\Users\chimy>npm install -g yarn
> yarn@1.22.10 preinstall C:\Users\chimy\AppData\Roaming\npm\node_modules\yarn
> :; (node ./preinstall.js > /dev/null 2>&1 || true)
C:\Users\chimy\AppData\Roaming\npm\yarnpkg -> C:\Users\chimy\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js
C:\Users\chimy\AppData\Roaming\npm\yarn -> C:\Users\chimy\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js
+ yarn@1.22.10
added 1 package in 1.542s
C:\Users\chimy>
以下コマンドを実行し、バージョン情報が確認できればインストールに成功している。
C:\Users\chimy>yarn -v
1.22.10
Ganacheのインストール
読み方はガナッシュで合ってる?
Ganacheは、dApp(分散型アプリケーション)を開発するための、パーソナルブロックチェーンを効率よく構築できるソフトウェア。EthereumとCorda対応している。
こちらのサイトのトップページからインストーラをダウンロードし、実行することで導入する。ダウンロードには結構時間がかかるので、ここでいったん休憩。私の環境では10分ほどかかった。
Ganacheインストーラ実行
インストーラを実行すると、下記の画面が表示されるのインストール
をクリックする。
Google Analyticsにトラッキング送信するかどうか
インストール実行後、Google Analyticsにトラッキング送信させてくださいよ、addressやprivate keyは抜かないので安心してくださいよ、と言われる。
お好みで左下のスイッチを変更してCONTINUE
を押す。
Ganacheワークスペースの作成
ワークスペース作成画面が表示される。プルダウンからEthereumかCordaを選択して作成する。QuickStartか、オプションをカスタマイズして作成するかを選択できるので、今日はEthereumをQuickStartで作ってみる。
ワークスペースの確認
ワークスペースを作成すると、初期でアカウントのアドレスが10作成された。
MetaMaskのインストール
以下のサイトからMetaMaskのインストーラを入手する。MetaMaskは偽物が多いらしく、情報が抜かれるので注意したほうが良いそうです。
MetaMaskは、Google Chromeの拡張機能としてインストールします。
MetaMaskでウォレットの作成
ChromeでMetaMaskの画面を表示すると、初期で以下の画面が表示されます。'Create a Wallet'を選択します。
パスワードを設定します。
secret pass phraseによる認証が求められるので、12のワードをコピペでメモし、入力します。
Chromeの拡張機能アイコンからMetaMaskを選択すると、以下の画面が表示されますので、カスタムRPCを選択します。
NetWork Nameを任意入力し、アドレスにはローカルループバックアドレスとGanache側に作成したワークスペースのポート番号(QuickStartの場合はデフォルト)を入力します。
http://127.0.0.1:5745
ポート番号は、Ganache側のコンソールで確認できます。AUTOMINE
がデフォルトで有効です。miningは自動実行されているので、ETHの送金もできそうです。
続いて、Ganacheの秘密鍵情報をMetaMaskに設定します。Ganacheのコンソールで、アカウント名の右側の鍵マークをクリックし、秘密鍵情報をコピーします。
Metaアカウントのアイコンをクリックし、「アカウントのインポート」を選択します。
インポートに成功すると、所持しているETHが表示されます。
ETHの送金
ETHを送金してみます。Ganacheのアカウント画面で別のアドレスをコピーします。
そして、Ganacheでコピーした別アカウントのアドレスを貼り付けます。金額
に送金する額を入力します。とりあえず5ETH送ってみる。
Ganacheのコンソールを確認すると、ETHの送金に成功し、アカウントのINDEX0から1へ5ETH送られていることが分かります。
MetaMaskで確認すると、同様にアカウントの所有ETHが減少しています。GASの分が目減りしていることが分かります。
Ganache側ではブロックチェーンネットワークの状態を確認でき、1ブロック増えていて、送金のトランザクションが確認できます。
BLOCKSタブ
TRANSACTIONSタブ
LOGSタブ
まとめ
気軽に開発環境にブロックチェーンネットワークを構築できるので、大変便利。Ganacheは、Ethereumのコントラクト主要言語SolidityのフレームワークであるTruffleと組み合わせてdAppの開発環境として稼働させることで本領を発揮するらしい。
次回そのあたりを深く取り組んでいきたい。