そろそろDapp開発したいなと思ってきました
DappとはEthereumを利用した分散型アプリケーションのことです
そこで、DAppのフレームワークを調べて利用するものを決めたいと思います
<調査対象のフレームワーク>
詳細は下記に述べますが、イケイケな感じであればデプロイ先にSwarmを選べるEmbark、
手堅く行くならTruffle という感じでしょうかDappleは最近のリリースすぎてあまりヒットせず。。
あとSolidityも使うという観点では Truffle ですかね
ということで、Truffle で行こうとおもいます。
https://www.meteor.com/
提供元
Meteor Development Group
言語
JavaScript
動作環境
NodeJS , MongoDB
google検索結果件数
約 128,000 件
特徴
・汎用的なJSのシングルページWebアプリケーションフレームワーク
・フロントエンドとバックエンドを記述できる
・フルスタックフレームワーク(サーバの構築が不要)のためすぐに開発できる
(サーバサイドで動かす場合、Node.jsが必要)
問題点
・フロントエンドとバックエンドの同期。Meteorはクライアントサイド側でストレージ
を持っている(フルスタックだから)ため、クライアントからバックエンド側への
同期が可能だが、完全分離されたコントラクトの場合、イーサリアムネットワークの
変化はクライアント側へ同期されない
・アプリがほぼMeteor依存になってしまう
その他
・Ethereumの公式walletであるMistもMeteorを利用して開発されている
参考記事
フルスタックJSフレームワークMeteorのメリット&デメリット
動作環境
NodeJS
google検索結果件数
約 48,700 件
特徴
・Ethereum のためのフレームワーク
・コントラクトのコンパイル、リンク、デプロイ、バイナリ管理機能
・MochaとChai(ユニットテストツール)の自動コントラクトテストに対応
・スクリプトによるデプロイ、マイグレーション
・公開またはプライベートネットワークに対するデプロイ管理
・外部パッケージが利用可能(NMPやEthPM)
・Truffle の独自コンソールによるコントラクト管理
・外部スクリプトの呼び出し機能
動作環境
geth (1.6.7 or higher recommended)
NodeJS (6.9.1 or higher is recommended)
npm
google検索結果件数
約 215,000 件
特徴
・Dapp開発デプロイのためのフレームワーク
・サーバレスのHTML5アプリケーション
<Blockchain (Ethereum)>・JavaScriptによるMake、自動デプロイ
<分散ストレージ (IPFS)>・EmbarkJSを利用して分散ストレージから簡単にデータの保存、取り出しが可能
・アプリケーションをIPFSまたはSwarm上にデプロイ
IPFS:P2P型の分散型ストレージ。詳細は下記で解説されています
https://postd.cc/an-introduction-to-ipfs/
Swarm:特定のサーバにファイルをアップロードするのではなく、
Ethereumの仕組みを使ってP2Pによりファイルを分散配置する。
非中央集権的な分散ストレージ
https://qiita.com/khayate/items/ff7738436a3f1e8a4d42
<分散コミュニケーション (Whisper, Orbit)>・P2P through Whisper または Orbit を利用することでP2Pのメッセージ送受信が可能
<Web 技術>
・ReactやFoundationを組み込むことができる・ビルドのためのツール( grunt, gulp, webpack)も利用可能
JSのビルドツールの説明は下記に詳しくかいてありました
https://qiita.com/bakira/items/3c4e2d10aae085767817
動作環境
NodeJS
google検索結果件数
約 48,800 件
特徴
・Dapphub が内部開発ツールとして Dapple 、 Dappsys をリリース
Truffle や Embark に似たフロントエンドのフレームワーク
(Dappsys はSolidity コントラクトのフレームワーク)
・パッケージ管理
・コントラクト構築
・スクリプトによるデプロイ
・中央集権データモデルは、IPFSやEthereum のコントラクトアドレスにより定義されるdappfile
DappとはEthereumを利用した分散型アプリケーションのことです
そこで、DAppのフレームワークを調べて利用するものを決めたいと思います
<調査対象のフレームワーク>
- Meteor
- Truffle
- Embark
- Dapple
詳細は下記に述べますが、イケイケな感じであればデプロイ先にSwarmを選べるEmbark、
手堅く行くならTruffle という感じでしょうかDappleは最近のリリースすぎてあまりヒットせず。。
あとSolidityも使うという観点では Truffle ですかね
ということで、Truffle で行こうとおもいます。
Meteor
URLhttps://www.meteor.com/
提供元
Meteor Development Group
言語
JavaScript
動作環境
NodeJS , MongoDB
google検索結果件数
約 128,000 件
特徴
・汎用的なJSのシングルページWebアプリケーションフレームワーク
・フロントエンドとバックエンドを記述できる
・フルスタックフレームワーク(サーバの構築が不要)のためすぐに開発できる
(サーバサイドで動かす場合、Node.jsが必要)
問題点
・フロントエンドとバックエンドの同期。Meteorはクライアントサイド側でストレージ
を持っている(フルスタックだから)ため、クライアントからバックエンド側への
同期が可能だが、完全分離されたコントラクトの場合、イーサリアムネットワークの
変化はクライアント側へ同期されない
・アプリがほぼMeteor依存になってしまう
その他
・Ethereumの公式walletであるMistもMeteorを利用して開発されている
参考記事
フルスタックJSフレームワークMeteorのメリット&デメリット
動作環境
NodeJS
google検索結果件数
約 48,700 件
特徴
・Ethereum のためのフレームワーク
・コントラクトのコンパイル、リンク、デプロイ、バイナリ管理機能
・MochaとChai(ユニットテストツール)の自動コントラクトテストに対応
・スクリプトによるデプロイ、マイグレーション
・公開またはプライベートネットワークに対するデプロイ管理
・外部パッケージが利用可能(NMPやEthPM)
・Truffle の独自コンソールによるコントラクト管理
・外部スクリプトの呼び出し機能
Embark
動作環境
geth (1.6.7 or higher recommended)
NodeJS (6.9.1 or higher is recommended)
npm
google検索結果件数
約 215,000 件
・Dapp開発デプロイのためのフレームワーク
・サーバレスのHTML5アプリケーション
<Blockchain (Ethereum)>
・コントラクトの変化の監視させることで自動再デプロイが可能
・JavaScriptによるテスト駆動開発(TDD)
・複数のブロックチェーンの管理 (e.g testnet, private net, livenet)
<分散ストレージ (IPFS)>
・アプリケーションをIPFSまたはSwarm上にデプロイ
IPFS:P2P型の分散型ストレージ。詳細は下記で解説されています
https://postd.cc/an-introduction-to-ipfs/
Swarm:特定のサーバにファイルをアップロードするのではなく、
Ethereumの仕組みを使ってP2Pによりファイルを分散配置する。
非中央集権的な分散ストレージ
https://qiita.com/khayate/items/ff7738436a3f1e8a4d42
<分散コミュニケーション (Whisper, Orbit)>
<Web 技術>
・ReactやFoundationを組み込むことができる
JSのビルドツールの説明は下記に詳しくかいてありました
https://qiita.com/bakira/items/3c4e2d10aae085767817
Dapple
動作環境
NodeJS
google検索結果件数
約 48,800 件
特徴
・Dapphub が内部開発ツールとして Dapple 、 Dappsys をリリース
Truffle や Embark に似たフロントエンドのフレームワーク
(Dappsys はSolidity コントラクトのフレームワーク)
・パッケージ管理
・コントラクト構築
・スクリプトによるデプロイ
・中央集権データモデルは、IPFSやEthereum のコントラクトアドレスにより定義されるdappfile
コメント