ブロックチェーンでio tっぽいことやってみたぃ 201701

11
ブロックチェーンで IoTっぽいことやってみた~初めてのEthereum(イサリアム)日本ノーベル株式会社 © 2017 Japan Novel Corporation 1 大熊 元気

Upload: genki-okuma

Post on 08-Feb-2017

454 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ブロックチェーンでIo tっぽいことやってみたぃ 201701

ブロックチェーンで

IoTっぽいことやってみたぃ

~初めてのEthereum(イサリアム)~

日本ノーベル株式会社

© 2017 Japan Novel Corporation 1

大熊 元気

Page 3: ブロックチェーンでIo tっぽいことやってみたぃ 201701

ブロックチェーンについて

使ってる技術

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>

Page 4: ブロックチェーンでIo tっぽいことやってみたぃ 201701

やりたいこと

© 2017 Japan Novel Corporation 4

分散台帳

Ethereum

Private-Net

センサー情報を買って

加工してまた販売

センサー情報を

記録・販売

PC (マイナー)

RPi2

センサー

RPi1

センサー

部屋の温度データをエアコンメーカーへ

テレビの視聴データをテレビ局へ

家電のオン/オフデータを家電メーカーへ

家具の利用頻度や行動履歴(加速度

センサ、圧力センサ)

トイレ使用、ドア開閉、照明、etc・・・

記録時間と内容が改ざんされないので、データが信頼できる。 通貨のやり取りができる。

ラズパイがセンサーデータ集めて販売して、勝手に小遣い稼ぎしてくれるんじゃないか !?

例えば・・・

Page 5: ブロックチェーンでIo tっぽいことやってみたぃ 201701

できたこと

Linux環境でGo言語のgo-ethereum(geth)をビルド

Windows環境でgethのインストール

開発オプションでのマイニング

基本操作(アカウント生成、送金、残高、ブロック数、トランザクション確認)

ウォレットのセットアップと基本操作

スマートコントラクトのコンパイル

© 2017 Japan Novel Corporation 5

*達成率*

目標の20%くらい・・・

Page 6: ブロックチェーンでIo tっぽいことやってみたぃ 201701

デモ

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

Page 7: ブロックチェーンでIo tっぽいことやってみたぃ 201701

できなかったこと

マシン 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を構築できない)

Page 8: ブロックチェーンでIo tっぽいことやってみたぃ 201701

ブロックチェーンでIoTの考察(できてないけど)

メリット

1. 不特定多数の相手

とトラストレスで取

引できるはず

2. ゼロダウンのはず

3. 管理者不要のはず

デメリット

1. マイニングがマイクロペ

イメントに向いてない。

(手数料のgasが必要)

2. ストレージのスケーラビリ

ティが悪い。

3. ノードが少ないと成立し

ない。(従来のクラサバ

でやったほうが良い)

© 2017 Japan Novel Corporation 8

Ethereum

Page 9: ブロックチェーンでIo tっぽいことやってみたぃ 201701

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>

Page 10: ブロックチェーンでIo tっぽいことやってみたぃ 201701

IoTのための分散台帳「IOTA」

詳しくはホワイトペーパーをご参照ください。ありがたいことに日本語化されています。

https://www.dropbox.com/s/uncgrn1oq22a2ur/IOTA_Whitepaper%20in%20Japanese.pdf?dl=0

© 2017 Japan Novel Corporation 10

Page 11: ブロックチェーンでIo tっぽいことやってみたぃ 201701

参考文献

© 2017 Japan Novel Corporation 11

ブロックチェーン 仕組みと理論 サンプルで学ぶFinTech

のコア技術 –2016/10/15

ブロックチェーンの衝撃 – 2016/6/8

ブロックチェーンEthereum入門

http://www.intellilink.co.jp/article/column/ethe

reum01.html