かとのぼのマイコード・マイライフ

プログラミング初心者とアプリの個人開発者向けのブログ。たまに銭湯

【Ethereum】Truffleのチュートリアルでペットショップアプリ(Dapps)を作成

この記事をシェアする

TruffleのサイトにあるDappsアプリのペットショップを作成の手順と自分が陥ったエラーについて書いています。

Ethereumを使ったペットショップのDappsアプリ

Truffleのサイトにあるチュートリアルを使いEtherumを使ったサンプルアプリを作成しました。今回は、Truffleと言うフレームワークを使い、そこのチュートリルの一つである「Pete's Pet Shop」のDaapsを作っていきます。

Truffleとは?

Truffleは、Etherumの開発に役立つツールを提供している企業です。Truffleが提供するツールを利用すると比較的簡単にスマートコントラクトの開発やテストが可能になります。

今回はチュートリアルにそってアプリを作っていきます。ちなみに自分はMacを使っています。

 

f:id:katonobo:20171230020228p:plain

 

1.Truffleをダウンロードしましょう。

先ほど述べたように、イーサリアムのアプリを開発するために便利なフレームワークの名前が「Truffle」です。「トリュフ」と読みます。こちらのサイトからTruffleをダウンロードして設定しましょう。 

truffleframework.comまずはターミナルで、このコマンドを入力

$ npm install -g truffle

(Node.jsをインストールしてる必要があります。)

次に、「pet-shop-tutorial」ファイルを作成します。「mkdir」はファイルの作成のためのコマンドです。

mkdir pet-shop-tutorial

作成したら、そのファイルに移動します。

cd pet-shop-tutorial

truffleがすでに用意してくれているプロジェクトを入れます。

truffle unbox pet-shop

これで下準備はできました。

2.チュートリアルに沿って作っていきます。

さて、ここから本格的に作っていきますが、実はここからはTruffleのサイトのチュートリアルのコードをみた方が良いと思います。

なんだよそれwって感じですが、イーサリアムの開発に使う言語のSolidityは、開発が非常に活発で、すぐにバージョンやコードが変化します。

私が参考にさせてもらったブログもかなり最新なのに、Truffleのチュートリアルと若干変わっていました。

Truffleの本家をのぞいてもらいながら、こちらのブログではやっていく中で少し自分が詰まったところを書いていくって感じで書いていきます。

↓ここを参考に

truffleframework.com

Truffleの開発で陥りやすいところ

以下はTruffleで開発していて陥りやすい罠です。

Solidityのバージョンはあっているか?

現在、チュートリアルのSolidityのバージョンは0.4.17です。もしあなたがBrowser-Solidityを使っている場合、バージョンはあっていますか?

Compileはdevelopをコマンドしてから

コントラクトを入力した後、コンパイルを行います。

チュートリアルでは、

truffle compile

と入力するとなっていますが、その前に

$ truffle develop

を打ちましょう。

truffle(develop)>

となりますので、ここから入力します。

これでOKです。

ローカル環境のアドレスを変える

web3をインスタンス化するコードを書くところで、ローカルホストのアドレスを入れるんですが、チュートリアルのままだとメタマスクが繋がりません。 

// Is there an injected web3 instance? if (typeof web3 !== 'undefined') { App.web3Provider = web3.currentProvider; } else { // If no injected web3 instance is detected, fall back to Ganache App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545'); } web3 = new Web3(App.web3Provider); 

私の場合は

'http://localhost:7545'

 

部分を

'http://localhost:9545'

 

に変えたらうまくいきました。

私が引っかかったのは、この辺でした。

基本はチュートリアルに沿っていけば問題ないはずです。

今回は下記のブログを大変参考にさせていただきました。

zoom-blc.com

truffleframework.com

 

もしスマートコントラクトを本格的に開発をしたい場合はこちらの記事を参考にしてください。

www.katonobo.com

www.katonobo.com