IT

Truffle, Ganache, Drizzleってなに?

Ethereum系Dapps(Decentralized Applications)を開発しようとすると、Truffleという単語を耳にすると思います。今回はTruffleとその仲間たちについてご説明します!

Truffle Suites

Truffle Suiteとは、TruffleとGanacheとDrizzleの総称です。

これから、それぞれ何をしているのか見ていきましょう。

Truffle

公式には次のように書かれています。

A world class development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier.

つまり、世界クラスの環境開発で、Ethereum Virtual Machineを使って超簡単にテストとかもできるってことです。(雑)

Truffleの主な機能は次の3つでしょう。

  • Compile:Solidityで書かれたスマートコントラクトをコンパイルします
  • Migrate:コンパイルされたスマートコントラクトをデプロイします
  • Test:デプロイされたスマートコントラクトの機能をテストできます。

この3つを、”truffle compile” “truffle migrate” “truffle test” みたいに連続するコマンドで次々にできて楽だね、ってことです。

しかし、別にTruffleを使わないとできないことはありません。Web3.jsというJavascriptライブラリ(とsolc, solidity compiler)を使えばコンパイルもデプロイも出来ます。MochaなどのJavaScriptのテスティングフレームワークを使えばWeb3と組み合わせてテストもできます。あくまでそれらが簡単にできる、ということです。

Ganache

Ganacheとは…

A personal blockchain for Ethereum development you can use to deploy contracts, develop your applications, and run tests. It is available as both a desktop application as well as a command-line tool (formerly known as the TestRPC). Ganache is available for Windows, Mac, and Linux.

これはわかりやすいですね!自分だけのブロックチェーンを簡単に作れるよ、という話です。

  • 本物のブロックチェーンにデプロイするのはお金かかるし、時間かかって大変…
  • かといってテストネットへのデプロイもFaucetでテストETHもらったり面倒…

というときに、Ganacheを使えば簡単に自分だけのブロックチェーンを作れます。マイニング間隔を15秒から好きな値に短縮できるので、マイニング待ちもなくなって開発が捗ります。Cli版もデスクトップアプリもあるので、わかりやすいです。

Drizzle

DrizzleとはEthereum networkの状態とRedux Stateを常に同期するライブラリです。

ReactとRedux stateは同期するので、ReduxとEthereumが同期すれば、簡単にリアルタイムDappsが作れちゃう!というライブラリですね。しかし、注意が必要なのは、Drizzleは比較的新しいツールであることもあって、バグが多いです。

こちらも同様なことをWeb3で実装できるのであえてDrizzleを使う必要はないように感じます。

 

こちらがTruffle Suiteのサイトです。上記2つの引用もこちらが出典となります。

スイーツ豆知識

なんでスイーツ?と思うかもしれませんが、Truffleはトリュフチョコレート、Ganacheはガナッシュチョコレート(いわゆる生チョコ)です!

Drizzleは「霧雨、小雨」という意味ですが、液体を細く垂らすこともdrizzleといいますので、チョコレートに細い線のデコレーションのために別のチョコレートをかけることをdrizzleといいます。スタバとかで上にチョコレートやキャラメルを細い線でかけてくれたりしますよね?あれもdrizzleです!よく見ると、Drizzleのロゴにも細い線が書かれていますよ

 

COMMENT

メールアドレスが公開されることはありません。