Upload
genki-okuma
View
454
Download
0
Embed Size (px)
Citation preview
ブロックチェーンで
IoTっぽいことやってみたぃ
~初めてのEthereum(イサリアム)~
日本ノーベル株式会社
© 2017 Japan Novel Corporation 1
大熊 元気
自己紹介
Twitter @JNTEST23
2016年11月にLTしました。
プレゼン資料: http://www.slideshare.net/GenkiOkuma/voice-ops-201611
デモ動画: https://youtu.be/k9Q60ygZmvM
作り方詳細: https://github.com/GenkiOkuma/Alexa-IoT-VoiceOps
MCPC IoTシステム技術検定中級(2017年1月)
間違い、勘違い、古い情報を含んでおりますがご容赦願います。
© 2017 Japan Novel Corporation 2
ブロックチェーンについて
使ってる技術
P2Pネットワーク → 分散台帳でゼロダウン
コンセンサスアルゴリズム → PoWでマイニング業者が頑張る
電子署名、ハッシュ関数 → トランザクションに電子署名、ブロックにハッシュ
スマートコントラクト → 通貨だけではない、プログラムを乗せられる
メジャーなオープンソース
Bitcoin Core
Ethereum
Hyperledger Fabric
© 2017 Japan Novel Corporation 3
引用:BBC <http://www.bbc.com/future/story/20160504-
we-looked-inside-a-secret-chinese-bitcoin-mine>
やりたいこと
© 2017 Japan Novel Corporation 4
分散台帳
Ethereum
Private-Net
センサー情報を買って
加工してまた販売
センサー情報を
記録・販売
PC (マイナー)
RPi2
センサー
RPi1
センサー
部屋の温度データをエアコンメーカーへ
テレビの視聴データをテレビ局へ
家電のオン/オフデータを家電メーカーへ
家具の利用頻度や行動履歴(加速度
センサ、圧力センサ)
トイレ使用、ドア開閉、照明、etc・・・
記録時間と内容が改ざんされないので、データが信頼できる。 通貨のやり取りができる。
ラズパイがセンサーデータ集めて販売して、勝手に小遣い稼ぎしてくれるんじゃないか !?
例えば・・・
できたこと
Linux環境でGo言語のgo-ethereum(geth)をビルド
Windows環境でgethのインストール
開発オプションでのマイニング
基本操作(アカウント生成、送金、残高、ブロック数、トランザクション確認)
ウォレットのセットアップと基本操作
スマートコントラクトのコンパイル
© 2017 Japan Novel Corporation 5
*達成率*
目標の20%くらい・・・
デモ
1. Go-ethereum(geth)起動 geth --dev console
2. ブロック数、アカウント確認、残高確認 eth.blockNumber
eth.accounts
eth.getBalance(eth.accounts[1])
3. マイニング開始 miner.start()
4. ウォレット起動
5. 送金
6. トランザクション確認 eth.pendingTransactions
7. コントラクトをコンパイル
8. コントラクトをデプロイ
© 2017 Japan Novel Corporation 6
できなかったこと
マシン OS 環境 結果
Windows10 PC
Vagrant + VirtualBox + Ubuntu Server 13
Go +Geth1.3.6 参考書の環境に合わせてLinux Ubuntuの仮想環境を構築するが、 Gethのビルドエラー。
Vagrant + VirtualBox + Ubuntu Server 16
Go +Geth1.3.6 Gethのビルドはできた。 devオプションでマイニングできた。(Genesisブロックからはマイニングできない) Browser Solidity からContractをデプロイできない。
VirtualBox + Ubuntu Server 16
Go +Geth1.3.6 ホストOSからゲストOSへのアクセスができていないことを疑い、VirtualBoxから仮想環境の設定を直接いじるが、やっぱりデプロイできない。
Windows10 ビルド済みのGethインストーラ最新版
Linux仮想環境をやめて、Windows環境で挑戦。 Geth起動できた。 devオプションでマイニングできた。(Genesisブロックからはマイニングできない) でも、やっぱりデプロイできない。
Windows10 ビルド済みのGethインストーラ最新版 ウォレットが使えた。(Gethのディレクトリを調整した) ウォレットにContractのコンパイル機能があるが、エラーになる。 コンパイルエラーはEthereumコミュニティで解決したが、デプロイできない。
ラズベリーパイ3 Rasbian Go1.4 + Geth1.3.3
このサイト<http://raspnode.com/diyEthereumGeth.html>に従いセットアップするが、Gethのビルドエラー。
Rasbian ビルド済みのGethインストーラ最新版 インストール方法が分からない。開発の時間切れ。
© 2017 Japan Novel Corporation 7
1. スマートコントラクトのデプロイができない。 → 全然IoTっぽくない!
2. devオプション以外ではマイニングができない。(Genesis blockから自分の設定でPrivate-Netを構築できない)
ブロックチェーンでIoTの考察(できてないけど)
メリット
1. 不特定多数の相手
とトラストレスで取
引できるはず
2. ゼロダウンのはず
3. 管理者不要のはず
デメリット
1. マイニングがマイクロペ
イメントに向いてない。
(手数料のgasが必要)
2. ストレージのスケーラビリ
ティが悪い。
3. ノードが少ないと成立し
ない。(従来のクラサバ
でやったほうが良い)
© 2017 Japan Novel Corporation 8
Ethereum
IoTのための分散台帳「IOTA」
ブロックチェーンは使わない。つまりマイナー不要。
Tangleと呼ぶDAG(=Directed Acyclic Graph,有向非巡回グラフ)を使う。
新たなトランザクション作成時に2つ前のトランザクションを承認する。
IoTのマイクロトランザクション、低スペック、低速通信、遅延に対応できると期待。
© 2017 Japan Novel Corporation 9
引用: “IOTA Whitepaper” in Japanese
<https://www.dropbox.com/s/uncgrn1oq22a2ur/IOTA_Whitepaper%20in%20Japanese.pdf?dl=0>
IoTのための分散台帳「IOTA」
詳しくはホワイトペーパーをご参照ください。ありがたいことに日本語化されています。
https://www.dropbox.com/s/uncgrn1oq22a2ur/IOTA_Whitepaper%20in%20Japanese.pdf?dl=0
© 2017 Japan Novel Corporation 10
参考文献
© 2017 Japan Novel Corporation 11
ブロックチェーン 仕組みと理論 サンプルで学ぶFinTech
のコア技術 –2016/10/15
ブロックチェーンの衝撃 – 2016/6/8
ブロックチェーンEthereum入門
http://www.intellilink.co.jp/article/column/ethe
reum01.html