当ページの位置づけ
- DApp(decentralized application=分散型アプリケーション)を実践/開発を通して学んでいく。開始するにあたり動機整理と、現時点でのDapp理解、実際に実装していく上での工程整理をする。
※特に誰かの役に立つという意図はありません。先に断っておきます。
なぜ興味をもった?? ~ 動機 ~
- そもそも自分のDAppsの理解をお伝えすると...
- ブロックチェーンネットワークを構成する各ノードとその集合によって実行、保証されるもの。完全な管理者、責任者のもと管理されているサーバー上でデータ管理並びに処理はされない、、という解釈をしている。
- 要は物理的かつ利害関係が一致しない複数ステークホルダに、管理権限が分散している
動機詳細
- 私が認識している、「分散アプリケーションのいいとこってどんなところ??」
- 改ざんが難しい
- 単一障害点がほぼない
- 思想的なところ/共感している。検閲しない。「あるべき論」が存在しない。
- ゆる〜い+浅い。
- 振り返ったときにはもっと精緻になっていることを期待。
- ゆる〜い+浅い。
- もやもやしているところ
- どうやって動いているのかわからない → 原理を知りたい
- 何がすごいのかわからない(なぜ盛り上がっている??) → 時間とともに処理が重くなりそうだけど実現可能なの?? → 制限、制約を知りたい
- ぶっちゃけ、これまで通りのWebサーバーとかにアプリケーションをのっけたほうがいいのではないかとおもっている → メリデメを知りたい
- 分散(非中央集権)と非分散(中央集権/これまで主流の管理者の存在するタイプ)の本質的な違いってなんなんだろうか → 本質的な価値を知りたい(考えてみたいに近い)
-
[結論]実際に手を動かして作ってみよう
- 最終的に上の質問に答えられているとハッピー
-
[結論]実際に手を動かして作ってみよう
じゃあ、何をするか??
- 題材として、ETHEREUM PET SHOP -- YOUR FIRST DAPPを使ってみようと思う。
- 同じようなPET SHOPをオープンできるところをゴールにしたい。
- プロセス中でアプリケーションへの理解を深めていきたい。
- 選択理由は以下、
- 既に経験している人が多い。
- Truffleというフレームワークがかなり便利らしく、細かいところで骨が折れなそう。より大きな流れとしてアプリケーションの動きを追えそう。
- 今回はより"ユーザー"が使ってデータがネットワークに書き込まれるまでの一連の流れを追っていきたかった。
- 例えば、スマートコントラクトのみの実装だけだと、その前に何が起こっているか不明なため。
DAppsを支える技術達(どんな構成で成り立っているのか)を確認
- 初めてなので、まずは全体像の把握と整理からしたい。
- なんかやたら新しい(普段触れない)ツールが多くって、正しく把握しないと途中で困惑しそうだった。
- geth? solidity? truffle? Ganache? MetaMask? Mist? Web3? RPC? Ethereum?これらそれぞれの責務と関係性など。ちんぷんかんぷんレベル。汗
助けてくれた資料達
No | タイトル | 感想と補足解釈 |
---|---|---|
1 | EthereumとContracts開発を取り巻くエコシステムの概要 | ツールの役割はこちらの記事を見れば一通り理解できた |
2 | 「10分で理解した気になるDApps入門 〜 Web3.0時代の次世代アプリケーション 〜」の「Ethereum DApps of Architecture」の画像 | 獏とだけど、ユーザー/front画面、MetaMask、Web3(JSのライブラリ)、Blockchain(EVM: ここでsolidityで書いたスマートコントラクトが実行される?) |
3 | 「ブロックチェーンEthereum入門 2」の「Ethereumネットワーク監視の構成」の画像 | 2をよりシステム詳しく説明してくれている。 |
4 | スマートコントラクトを作成し実行する | SolidityをEMV上でどのように扱うのかが記載されている |
工程整理 - 粗め -
No | カテゴリ | やること |
---|---|---|
1 | 個人の開発環境にネットワークを準備、クライアントツールで疎通してみる | Ganache??, gethをバックグラウンドで動かしておく?? |
2 | スマートコントラクトやらを作る | Solidity, Truffle |
3 | スマートコントラクトを1ネットワークにデプロイする | |
4 | ブラウザからネットワークからデータを取得する?? | MetaMask, Web3 |
5 | ブラウザからネットワークにデータを書き込む?? | MetaMask, Web3 |
- 進めていく中でブレイクダウンしていければ...
やらないこと
IPFS云々
ということでがんばってみま〜す。
途中、ないし完了したら、Tipsのシェアができればと思います。
お読みいただきありがとうございました。
間違い、ないし、改善レビューがありましたらコメントいただけると嬉しいです。