テストブロックチェーンネットワークを使って分散アプリケーションを動かす - メモ程度 -
始めに
- かなり初級レベルの話になります。自分の整理のために書いている記事となります。
-
DApps開発を始める動機と工程(粗め)紹介にて学習動機を記載しています。
-
ETHEREUM PET SHOP -- YOUR FIRST DAPPに従い、開発環境で構築して挙動確認までしました。
- 構成としては
- テストブロックチェーン: Ganache
- デプロイ、コンパイル、アプリケーション本体の管理: Truffle
- コントラクト言語: Solidity
- ブラウザ内のEthereum DAppsとブロックチェーンネットワークを接続: MetaMask
所感
- やってよかった。
- 各構成要素が何を具体的に処理しているのかイメージできるようになった。
- 例えば、Truffleだと想定以上に幅広い守備範囲を持つとおもった。compile, deploy以外にも、他の人が開発したmodule(?)を簡単に呼び出したりできるTRUFFLE BOXESというものがあるとは知らなかった。今回は、このBOXESの中からPET-SHOPをもってくることになった。
- MetaMaskは、ブラウザ上のアプリケーションとネットワークの接続を可能にしてくれている(RPC)
- Ganacheを見ていると、コンソールでみているときよりもGASやどんな類のものにコストが発生するのかがより整理されていく。ブロックチェーン自体への理解が浅いなって思える。
- 各構成要素の接続もイメージできるようになった。
- お互いにどんな情報を受け渡しているのか、などをソースコードレベルで見れると「なるほど」と理解が深まることが多かった。
- 地味にnode.jsとかの理解も深まった。そもそも触ったことがなかったので。
- 所要時間は環境構築など含めて3時間くらいで終わる。だらだらすると6時間くらい。
使った資料
-
ETHEREUM PET SHOP -- YOUR FIRST DAPPでメインは進めていくとよい。
- 英語だけど、そんなに難しかったり、既存のWeb技術と比較して新しいもの盛りだくさんというわけではない。
- 日本語の文献もあるが、正直、このページがソース元なので一番説明が正しい。また、やはり説明が結構丁寧なので、理解が深まりやすかった。
- 日本語の資料は、ところどころ抜けていたり、齟齬がある箇所があるので、補足程度に扱うのがよいと思う。
- 日本語資料
Tips
環境構築編
- DApps開発を始める動機と工程(粗め)紹介にて学習動機を記載しています。
- 構成としては
- テストブロックチェーン: Ganache
- デプロイ、コンパイル、アプリケーション本体の管理: Truffle
- コントラクト言語: Solidity
- ブラウザ内のEthereum DAppsとブロックチェーンネットワークを接続: MetaMask
- やってよかった。
- 各構成要素が何を具体的に処理しているのかイメージできるようになった。
- 例えば、Truffleだと想定以上に幅広い守備範囲を持つとおもった。compile, deploy以外にも、他の人が開発したmodule(?)を簡単に呼び出したりできるTRUFFLE BOXESというものがあるとは知らなかった。今回は、このBOXESの中からPET-SHOPをもってくることになった。
- MetaMaskは、ブラウザ上のアプリケーションとネットワークの接続を可能にしてくれている(RPC)
- Ganacheを見ていると、コンソールでみているときよりもGASやどんな類のものにコストが発生するのかがより整理されていく。ブロックチェーン自体への理解が浅いなって思える。
- 各構成要素の接続もイメージできるようになった。
- お互いにどんな情報を受け渡しているのか、などをソースコードレベルで見れると「なるほど」と理解が深まることが多かった。
- 地味にnode.jsとかの理解も深まった。そもそも触ったことがなかったので。
- 各構成要素が何を具体的に処理しているのかイメージできるようになった。
- 所要時間は環境構築など含めて3時間くらいで終わる。だらだらすると6時間くらい。
使った資料
-
ETHEREUM PET SHOP -- YOUR FIRST DAPPでメインは進めていくとよい。
- 英語だけど、そんなに難しかったり、既存のWeb技術と比較して新しいもの盛りだくさんというわけではない。
- 日本語の文献もあるが、正直、このページがソース元なので一番説明が正しい。また、やはり説明が結構丁寧なので、理解が深まりやすかった。
- 日本語の資料は、ところどころ抜けていたり、齟齬がある箇所があるので、補足程度に扱うのがよいと思う。
- 日本語資料
Tips
環境構築編
- 英語だけど、そんなに難しかったり、既存のWeb技術と比較して新しいもの盛りだくさんというわけではない。
- 日本語の文献もあるが、正直、このページがソース元なので一番説明が正しい。また、やはり説明が結構丁寧なので、理解が深まりやすかった。
- 日本語の資料は、ところどころ抜けていたり、齟齬がある箇所があるので、補足程度に扱うのがよいと思う。
環境構築編
1. node.js
node.jsを「フレームワーク」だと勘違いしていたけど、全然違った。
Node.js を5分で大雑把に理解する
初心者向け!3分で理解するNode.jsとは何か?
Node.jsでは、Webサーバとアプリケーションが同じ PHPのWebサイトで無理やり例えると、Apache + mod_php + Webアプリ です。なので、Node.js の Hello Worldのサンプルは、HTTPを受付け、200とヘッダーと内容を返す、というのが多い。
node.jsをインストールする方法
npmっていうのを聞いたことはあった。
Node Package Manager。npmの正式名称からも解るように、Node.jsのパッケージ(Package )を管理する(Manager)ツール
便利なパッケージ管理ツール!npmとは【初心者向け】
面白いとおもったのが、MVCフレームワークとかもある。
実際にMacにインストールしてみる。
Macにnode.jsをインストールする手順。
MacにNode.jsをインストール
nodebrewをインストールするとパッケージで諸々使えるようになる。
ブロックチェーンテストネットワーク
Ganacheをインストール
新しい設定は必要ない。立ち上げるだけでlocalhost:7545で動いてくれる。
個人的にはgethなどを使ってコンソール操作ではなくてGUIで直感的にブロックの動きとか、ログが見れたりするので、ありがたかった。本当に素晴らしい。
gethなどのインストールが不要。
truffleで実装
Dappsのフレームワーク提供、関連するcompile, deployをしてくれるツールであるTruffleに加えて、Ethereum処理言語Solidity, JSフレームワークのWeb3.jsもインストールにしてくれている。
~ $ truffle version
Truffle v5.0.8 (core: 5.0.8)
Solidity v0.5.0 (solc-js)
Node v11.12.0
Web3.js v1.0.0-beta.37
ディレクトリ構造
.git/
.github/
contracts/ #Contains the Solidity source files for our smart contracts. There is an important contract in here called Migrations.sol, which we'll talk about later.ここにスマートコントラクトスクリプトは格納
migrations/ #Truffle uses a migration system to handle smart contract deployments. A migration is an additional special smart contract that keeps track of changes. ここでマイグレーションを管理する。
node_modules/ #たくさん入っている
src/ #front-endの情報が入っていた
test/ #JavaScript, Solidityのテスト
LICENSE
README.md
box-img-lg.png
box-img-sm.png
bs-config.json
package-lock.json #package.jsonで実際にインストールされているもの
package.json #プロジェクトに必要なパッケージとバージョン記述することでnpmがインストールしてくれる.。https://qiita.com/Sekky0905/items/452619651cdd950c2271。truffleが動く上で必要なパッケージが記述されている。
truffle-config.js #truffleの設定ファイル
compileとmigration
- compileが成功するとbuildディレクトができて、各ソースコード分のJSONが作られていた
.
└── contracts
├── Adoption.json
└── Migrations.json
- migrate
- migration fileは各solidity code fileごとに作成してあげる。
- migrations/ ディレクトリ配下にて管理してある。
- 1つのcontract ソースコードfileに対して1つのmigration fileを作成してあげる。
- 注意としては、「 we don't double-migrate unchanged contracts in the future.」
- 再度、migrateしたいときは
--reset
オプションで.
- 再度、migrateしたいときは
あとはGUI作成...
次にやりたいこと
- コードリーディング。ゾンビの方もやれるとHAPPY
- 自分で作ってみる
- 最終的に本番ネットワークに上げてみる
- 守備範囲広めなのでキャッチアップが大変そうだけど、楽しみ。
お読みいただきありがとうございました。
間違い、ないし、改善レビューがありましたらコメントいただけると嬉しいです。
Author And Source
この問題について(テストブロックチェーンネットワークを使って分散アプリケーションを動かす - メモ程度 -), 我々は、より多くの情報をここで見つけました https://qiita.com/taishinagasaki/items/ac8b6c95173901a3eae1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .