SlideShare a Scribd company logo
© Hitachi, Ltd. 2019. All rights reserved.
Hyperledger Tokyo Meetup
株式会社 日立製作所 サービスプラットフォーム事業本部
Blockchain推進部
2019/06/27
梅田 多一
IoT×Blockchain活用事例
~トイレに学ぶHyperledger Fabricシステム開発の勘所~
© Hitachi, Ltd. 2019. All rights reserved.
1. Why Blockchain ?
2. システム構成と処理方式
3. システム開発の勘所
Contents
1
© Hitachi, Ltd. 2019. All rights reserved.
1. Why Blockchain ?
2
© Hitachi, Ltd. 2019. All rights reserved.
トイレにブロックチェーンを適用する3つの理由
(1)基本的な価値
取引の否認&なりすまし防止、取引記録の
本人/組織/他による改ざん&削除防止
分散した組織間で取引を同じ内容同じ順番
に実行できる。リコンサイル不要化
(2)期待される価値
契約をプログラムとして記述が可能
契約条件に基づく取引の自動化 (DAO/DAC:Decentralized Autonomous Organization / Company)
署名/取引記録技術による価値
2 取引の信頼性担保
3 取引の自動化
1 取引の透明性担保
P2P/分散合意技術による価値
スマートコントラクトによる価値
3
© Hitachi, Ltd. 2019. All rights reserved.
①透明性(取引の透明性担保)
オレが〇〇〇したいとき
いつも空いてないんだよ
(怒)
トイレの見える化
4
Hyperledger Governing Board
日立 金融 長稔也本部長
© Hitachi, Ltd. 2019. All rights reserved.
③ブロック
(Orderer)
の署名
①トイレ
(toilet1)
の署名
②各サーバ
(org1, org2)
の署名
ブロック情報
限界の人にとって改ざんは絶望
②改ざん耐性(取引の信頼性担保)
5
© Hitachi, Ltd. 2019. All rights reserved.
IoT→BC→AI→IoTの連携で業務はもっと効率化できる
①AIによるさぼり検知
②スマートロックでドアオープン
②’赤外線操作でウォシュレット発射
※実際には実行していません
40分
③スマートコントラクト(取引の自動化)
6
© Hitachi, Ltd. 2019. All rights reserved.
ブロック情報
トイレにブロックチェーンを適用するXXXの理由
7
© Hitachi, Ltd. 2019. All rights reserved.
2. システム構成と処理方式
8
© Hitachi, Ltd. 2019. All rights reserved.
システム構成
Orderer
ブロックチェーンネットワーク
Peer0
Node SDK
Chaincode
ブラウザ
Hyperledger Fabricのサンプルとして提供されている
balance-transferを使ってブロックチェーンネットワークを構成
5F北東(5EN)トイレ
センサ情報
Peer1
Chaincode
Node SDK
5F南東(5ES)トイレ
Node SDK
Node SDK
Peer1
Chaincode
Peer0
Chaincode
Org1 Org2
Node SDK
REST Server
5F北西(5WN)トイレ
5F南西(5WS)トイレ
センサ情報センサ情報
センサ情報
Endorsement Policy:
両方の組織(Org1&Org2)の署名が必要
9
© Hitachi, Ltd. 2019. All rights reserved.
トイレ側の処理方式
Raspberry Pi
Node.js
Fabric Node SDK
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
センサ情報を毎秒送信
5WS?: 5F南西トイレのベンザID
0/1: 空室/使用中
clearCount(“5WS”)
トイレ掃除後に送信
10
出典:RSコンポーネンツ販売サイト
© Hitachi, Ltd. 2019. All rights reserved.
回路/制御プログラム
メス
510Ω
1kΩ
510Ω
EchoTriger
・Trigerを10μ秒HIGHにすると距離測定開始
・距離測定中はEchoがHIGH
・距離=(EchoがHIGHの時間×340m/s)÷2
11
出典:www.pi4j.com
出典:RSコンポーネンツ販売サイト
出典:www.amazon.co.jp
出典:www.amazon.co.jp
© Hitachi, Ltd. 2019. All rights reserved.
サーバ側の処理方式(センサ情報)
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,"count":11}
5WS4 {"status":0,"count":10}
5WS?: 5F南西トイレのベンザID
status 0/1: 空室/使用中
read set
write set
センサ情報を毎秒送信
12
© Hitachi, Ltd. 2019. All rights reserved.
サーバ側の処理方式(トイレ掃除)
clearCount(“5WS”)
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
Key Value
5WS1 {"status":0,"count":0}
5WS2 {"status":1,"count":0}
5WS3 {"status":0,"count":0}
5WS4 {"status":1,"count":0}
5WS?: 5F南西トイレのベンザID
status 0/1: 空室/使用中
read set
write set
トイレ掃除後に送信
13
© Hitachi, Ltd. 2019. All rights reserved.
3. システム開発の勘所
14
© Hitachi, Ltd. 2019. All rights reserved.
IoTによる大量更新
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,"count":11}
5WS4 {"status":0,"count":10}
read set
write set
センサ情報を毎秒送信
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,”count”:11}
5WS4 {"status":0,"count":10}
read set
トイレ側 サーバ側
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,”count”:11}
5WS4 {"status":0,"count":10}
write set
なし
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,”count”:11}
5WS4 {"status":0,"count":10}
read set
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,”count”:11}
5WS4 {"status":0,"count":10}
write set
なし
15
© Hitachi, Ltd. 2019. All rights reserved.
IoTによる大量更新
Peer1
Chaincode
Orderer
Node SDK
Peer1
Chaincode
5F南西(5WS)トイレ
センサ情報
Org1 Org2
センサ情報
read write set + Endorsement
read write set + Endorsement
①シミュレーション
②read write set生成
③Endorse
トランザクション(read write set + Endorsement)
ブロック
(トランザクション群)
生成ブロック
①トランザクションのEndorsement検証
②MVCC(Multi version Concurrency Control)
③commit
①シミュレーション
②read write set生成
③Endorse
ブロック
16
© Hitachi, Ltd. 2019. All rights reserved.
IoTによる大量更新
Peer1
Chaincode
Orderer
Node SDK
Peer1
Chaincode
5F南西(5WS)トイレ
センサ情報
Org1 Org2
センサ情報
read write set + Endorsement
read write set + Endorsement
①シミュレーション
②read write set生成
③Endorse
トランザクション(read write set + Endorsement)
ブロック
(トランザクション群)
生成ブロック
①トランザクションのEndorsement検証
②MVCC(Multi version Concurrency Control)
③commit
①シミュレーション
②read write set生成
③Endorse
ブロック
更新がなければ(write setがなければ)
トランザクションを発行しないことで
余計なブロックの生成を抑える
17
© Hitachi, Ltd. 2019. All rights reserved.
同一Keyの同時更新
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
updateAll({
“5WS1”:0,
“5WS2”:1,
“5WS3”:1,
“5WS4”:0
})
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":1,"count":11}
5WS4 {"status":0,"count":10}
read set
write set
センサ情報を毎秒送信
トイレ側 サーバ側
clearCount(“5WS”)
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
Key Value
5WS1 {"status":0,"count":0}
5WS2 {"status":1,"count":0}
5WS3 {"status":0,"count":0}
5WS4 {"status":1,"count":0}
トイレ掃除後に送信
read set write set
version 100 version 101
version 100 version 101
MVCCで失敗してもセンサ情報はすぐ届く
MVCCで失敗したらリトライが必要
18
© Hitachi, Ltd. 2019. All rights reserved.
同一Keyの同時更新
clearCount(“5WS”)
Key Value
5WS1 {"status":0,"count":10}
5WS2 {"status":1,"count":10}
5WS3 {"status":0,"count":10}
5WS4 {"status":1,"count":10}
トイレ掃除後に送信
Key Value
5WS1Count {"count":10}
5WS2Count {"count":10}
5WS3Count {"count":10}
5WS4Count {"count":10}
Key Value
5WS1 {"status":0}
5WS2 {"status":1}
5WS3 {"status":0}
5WS4 {"status":1}
Key Value
5WS1Count {"count":0}
5WS2Count {"count":0}
5WS3Count {"count":0}
5WS4Count {"count":0}
Key Value
5WS1 {"status":0}
5WS2 {"status":1}
5WS3 {"status":0}
5WS4 {"status":1}
write set
read set
なし
MVCCで失敗しない
countを独立したキーとして分離
19
© Hitachi, Ltd. 2019. All rights reserved.
秘密鍵はどこへ消えた?
Orderer
ブロックチェーンネットワーク
Peer0
Chaincode
Peer1
Chaincode
Peer1
Chaincode
Peer0
Chaincode
Org1 Org2
Node SDK
REST Server
balance-transferはNode SDK REST Serverを提供していて便利
/tmpのクリーンアップによって
秘密鍵が削除されるのでご注意ください。
20
© Hitachi, Ltd. 2019. All rights reserved.
さいごに
• 音速
カンオケ
この地球号に乗って
誰もが向かっている場所?
• 宇宙船地球号
340m/s×60s×60m≒1225km/h
4万77km÷24h≒1670km/h
21
© Hitachi, Ltd. 2019. All rights reserved.
IoT×Blockchainで一歩前へ
電光掲示板
超音波
距離センサ
22
© Hitachi, Ltd. 2019. All rights reserved.
他社商品名、商標等の引用に関する表示
23
HITACHIは、株式会社 日立製作所の商標または登録商標です。
Hyperledger 及びHyperledger Fabric はThe Linux Foundationの米国およびその他の国における登録商標です。
Raspberry PiはRaspberry Pi財団の登録商標です。
その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。
© Hitachi, Ltd. 2019. All rights reserved.
株式会社 日立製作所 サービスプラットフォーム事業本部
Blockchain推進部
~トイレに学ぶHyperledger Fabricシステム開発の勘所~
IoT×Blockchain活用事例
2019/06/27
梅田 多一
END
24
IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~

More Related Content

PDF
ストリーム処理を支えるキューイングシステムの選び方
PPTX
分散システムについて語らせてくれ
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PDF
分散システムの限界について知ろう
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
TLS, HTTP/2演習
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
単なるキャッシュじゃないよ!?infinispanの紹介
ストリーム処理を支えるキューイングシステムの選び方
分散システムについて語らせてくれ
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
分散システムの限界について知ろう
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
TLS, HTTP/2演習
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
単なるキャッシュじゃないよ!?infinispanの紹介

What's hot (20)

PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
PPTX
コンテナネットワーキング(CNI)最前線
PDF
PostgreSQLでスケールアウト
PDF
データ爆発時代のネットワークインフラ
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
PDF
テスト文字列に「うんこ」と入れるな
PDF
BuildKitの概要と最近の機能
PDF
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
PDF
ELFの動的リンク
PDF
Ethernetの受信処理
PDF
Linux女子部 systemd徹底入門
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PPTX
Slurmのジョブスケジューリングと実装
PDF
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PDF
10GbE時代のネットワークI/O高速化
PDF
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
条件分岐とcmovとmaxps
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
コンテナネットワーキング(CNI)最前線
PostgreSQLでスケールアウト
データ爆発時代のネットワークインフラ
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
テスト文字列に「うんこ」と入れるな
BuildKitの概要と最近の機能
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ELFの動的リンク
Ethernetの受信処理
Linux女子部 systemd徹底入門
アーキテクチャから理解するPostgreSQLのレプリケーション
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Slurmのジョブスケジューリングと実装
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
10GbE時代のネットワークI/O高速化
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
条件分岐とcmovとmaxps
Ad

Similar to IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~ (20)

PDF
LoRaWANとAzure IoT Hub接続ハンズオン
PDF
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
PDF
AWSオンリーで実現するIoTクラウド基盤
PDF
Couchbase Live Tokyo 2015 - DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる
PDF
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
PDF
Internet of Toilet / Jaws festa 2016
PDF
IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介
PPTX
IoTとServerlessの世界 Jawsfesta_1103
PPTX
Iotlitercy wg no7
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
PPTX
HTML5 conference 2013
PPTX
北海道Io tあるじゃん1 ネクステック
PDF
20150704 MS Azure最新 - innovation egg 第4回
PDF
センターSEがインスタンスの止め忘れを監視してみた
PDF
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
PDF
db tech showcase2016 - MySQLドキュメントストア
PDF
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
PDF
QoS for ROS 2 Dashing/Eloquent
PPTX
要求開発アライアンス 9月定例会議
PDF
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
LoRaWANとAzure IoT Hub接続ハンズオン
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
AWSオンリーで実現するIoTクラウド基盤
Couchbase Live Tokyo 2015 - DP4版と侮るなかれ!現時点でもN1QLは実用に耐えうる
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Internet of Toilet / Jaws festa 2016
IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介
IoTとServerlessの世界 Jawsfesta_1103
Iotlitercy wg no7
Hyperledger Fabric公式サンプル fabric-samples徹底解説
HTML5 conference 2013
北海道Io tあるじゃん1 ネクステック
20150704 MS Azure最新 - innovation egg 第4回
センターSEがインスタンスの止め忘れを監視してみた
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
db tech showcase2016 - MySQLドキュメントストア
JAWS DAYS 2020 AWS Well-Architected Frameworkの使いドコロとオートメーション化へのチャレンジ
QoS for ROS 2 Dashing/Eloquent
要求開発アライアンス 9月定例会議
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
Ad

More from LFDT Tokyo Meetup (20)

PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
PDF
LF Decentralized Trust Tokyo Meetup 3
PPTX
From Labs to Production: The Growing Ecosystem of LF Decentralized Trust
PDF
LF Decentralized Trust Member Summit 2024 参加レポート
PDF
LF Decentralized Trust Tokyo Meetup #1
PDF
LF Decentralized Trust: A Bigger Tent for Projects, Labs, Members, and Commun...
PDF
サステナブルファイナンス分野における日立の取り組み
PDF
IBMブロックチェーンサプライチェーンソリューションで実現するサステナビリティ経営
PDF
Overview of Hyperledger Foundation
PDF
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
PDF
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
PDF
Hyperledger FireFly - HYPERLEDGER Workshop, WebX
PDF
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
PDF
エンタープライズブロックチェーン構築の基礎
PDF
ブロックチェーンを用いた自己主権型デジタルID管理
PDF
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
PDF
ファイアフライ「蛍」FireFly to Public and Private Chains
PDF
Hyperledger Fabric 概説
PDF
Hyperledger Besuの動向
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LF Decentralized Trust Tokyo Meetup 3
From Labs to Production: The Growing Ecosystem of LF Decentralized Trust
LF Decentralized Trust Member Summit 2024 参加レポート
LF Decentralized Trust Tokyo Meetup #1
LF Decentralized Trust: A Bigger Tent for Projects, Labs, Members, and Commun...
サステナブルファイナンス分野における日立の取り組み
IBMブロックチェーンサプライチェーンソリューションで実現するサステナビリティ経営
Overview of Hyperledger Foundation
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger FireFly - HYPERLEDGER Workshop, WebX
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
エンタープライズブロックチェーン構築の基礎
ブロックチェーンを用いた自己主権型デジタルID管理
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
ファイアフライ「蛍」FireFly to Public and Private Chains
Hyperledger Fabric 概説
Hyperledger Besuの動向

IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~

  • 1. © Hitachi, Ltd. 2019. All rights reserved. Hyperledger Tokyo Meetup 株式会社 日立製作所 サービスプラットフォーム事業本部 Blockchain推進部 2019/06/27 梅田 多一 IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
  • 2. © Hitachi, Ltd. 2019. All rights reserved. 1. Why Blockchain ? 2. システム構成と処理方式 3. システム開発の勘所 Contents 1
  • 3. © Hitachi, Ltd. 2019. All rights reserved. 1. Why Blockchain ? 2
  • 4. © Hitachi, Ltd. 2019. All rights reserved. トイレにブロックチェーンを適用する3つの理由 (1)基本的な価値 取引の否認&なりすまし防止、取引記録の 本人/組織/他による改ざん&削除防止 分散した組織間で取引を同じ内容同じ順番 に実行できる。リコンサイル不要化 (2)期待される価値 契約をプログラムとして記述が可能 契約条件に基づく取引の自動化 (DAO/DAC:Decentralized Autonomous Organization / Company) 署名/取引記録技術による価値 2 取引の信頼性担保 3 取引の自動化 1 取引の透明性担保 P2P/分散合意技術による価値 スマートコントラクトによる価値 3
  • 5. © Hitachi, Ltd. 2019. All rights reserved. ①透明性(取引の透明性担保) オレが〇〇〇したいとき いつも空いてないんだよ (怒) トイレの見える化 4 Hyperledger Governing Board 日立 金融 長稔也本部長
  • 6. © Hitachi, Ltd. 2019. All rights reserved. ③ブロック (Orderer) の署名 ①トイレ (toilet1) の署名 ②各サーバ (org1, org2) の署名 ブロック情報 限界の人にとって改ざんは絶望 ②改ざん耐性(取引の信頼性担保) 5
  • 7. © Hitachi, Ltd. 2019. All rights reserved. IoT→BC→AI→IoTの連携で業務はもっと効率化できる ①AIによるさぼり検知 ②スマートロックでドアオープン ②’赤外線操作でウォシュレット発射 ※実際には実行していません 40分 ③スマートコントラクト(取引の自動化) 6
  • 8. © Hitachi, Ltd. 2019. All rights reserved. ブロック情報 トイレにブロックチェーンを適用するXXXの理由 7
  • 9. © Hitachi, Ltd. 2019. All rights reserved. 2. システム構成と処理方式 8
  • 10. © Hitachi, Ltd. 2019. All rights reserved. システム構成 Orderer ブロックチェーンネットワーク Peer0 Node SDK Chaincode ブラウザ Hyperledger Fabricのサンプルとして提供されている balance-transferを使ってブロックチェーンネットワークを構成 5F北東(5EN)トイレ センサ情報 Peer1 Chaincode Node SDK 5F南東(5ES)トイレ Node SDK Node SDK Peer1 Chaincode Peer0 Chaincode Org1 Org2 Node SDK REST Server 5F北西(5WN)トイレ 5F南西(5WS)トイレ センサ情報センサ情報 センサ情報 Endorsement Policy: 両方の組織(Org1&Org2)の署名が必要 9
  • 11. © Hitachi, Ltd. 2019. All rights reserved. トイレ側の処理方式 Raspberry Pi Node.js Fabric Node SDK updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) センサ情報を毎秒送信 5WS?: 5F南西トイレのベンザID 0/1: 空室/使用中 clearCount(“5WS”) トイレ掃除後に送信 10 出典:RSコンポーネンツ販売サイト
  • 12. © Hitachi, Ltd. 2019. All rights reserved. 回路/制御プログラム メス 510Ω 1kΩ 510Ω EchoTriger ・Trigerを10μ秒HIGHにすると距離測定開始 ・距離測定中はEchoがHIGH ・距離=(EchoがHIGHの時間×340m/s)÷2 11 出典:www.pi4j.com 出典:RSコンポーネンツ販売サイト 出典:www.amazon.co.jp 出典:www.amazon.co.jp
  • 13. © Hitachi, Ltd. 2019. All rights reserved. サーバ側の処理方式(センサ情報) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} 5WS?: 5F南西トイレのベンザID status 0/1: 空室/使用中 read set write set センサ情報を毎秒送信 12
  • 14. © Hitachi, Ltd. 2019. All rights reserved. サーバ側の処理方式(トイレ掃除) clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} Key Value 5WS1 {"status":0,"count":0} 5WS2 {"status":1,"count":0} 5WS3 {"status":0,"count":0} 5WS4 {"status":1,"count":0} 5WS?: 5F南西トイレのベンザID status 0/1: 空室/使用中 read set write set トイレ掃除後に送信 13
  • 15. © Hitachi, Ltd. 2019. All rights reserved. 3. システム開発の勘所 14
  • 16. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} read set write set センサ情報を毎秒送信 updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} read set トイレ側 サーバ側 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} write set なし updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} read set Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} write set なし 15
  • 17. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Peer1 Chaincode Orderer Node SDK Peer1 Chaincode 5F南西(5WS)トイレ センサ情報 Org1 Org2 センサ情報 read write set + Endorsement read write set + Endorsement ①シミュレーション ②read write set生成 ③Endorse トランザクション(read write set + Endorsement) ブロック (トランザクション群) 生成ブロック ①トランザクションのEndorsement検証 ②MVCC(Multi version Concurrency Control) ③commit ①シミュレーション ②read write set生成 ③Endorse ブロック 16
  • 18. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Peer1 Chaincode Orderer Node SDK Peer1 Chaincode 5F南西(5WS)トイレ センサ情報 Org1 Org2 センサ情報 read write set + Endorsement read write set + Endorsement ①シミュレーション ②read write set生成 ③Endorse トランザクション(read write set + Endorsement) ブロック (トランザクション群) 生成ブロック ①トランザクションのEndorsement検証 ②MVCC(Multi version Concurrency Control) ③commit ①シミュレーション ②read write set生成 ③Endorse ブロック 更新がなければ(write setがなければ) トランザクションを発行しないことで 余計なブロックの生成を抑える 17
  • 19. © Hitachi, Ltd. 2019. All rights reserved. 同一Keyの同時更新 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} read set write set センサ情報を毎秒送信 トイレ側 サーバ側 clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} Key Value 5WS1 {"status":0,"count":0} 5WS2 {"status":1,"count":0} 5WS3 {"status":0,"count":0} 5WS4 {"status":1,"count":0} トイレ掃除後に送信 read set write set version 100 version 101 version 100 version 101 MVCCで失敗してもセンサ情報はすぐ届く MVCCで失敗したらリトライが必要 18
  • 20. © Hitachi, Ltd. 2019. All rights reserved. 同一Keyの同時更新 clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} トイレ掃除後に送信 Key Value 5WS1Count {"count":10} 5WS2Count {"count":10} 5WS3Count {"count":10} 5WS4Count {"count":10} Key Value 5WS1 {"status":0} 5WS2 {"status":1} 5WS3 {"status":0} 5WS4 {"status":1} Key Value 5WS1Count {"count":0} 5WS2Count {"count":0} 5WS3Count {"count":0} 5WS4Count {"count":0} Key Value 5WS1 {"status":0} 5WS2 {"status":1} 5WS3 {"status":0} 5WS4 {"status":1} write set read set なし MVCCで失敗しない countを独立したキーとして分離 19
  • 21. © Hitachi, Ltd. 2019. All rights reserved. 秘密鍵はどこへ消えた? Orderer ブロックチェーンネットワーク Peer0 Chaincode Peer1 Chaincode Peer1 Chaincode Peer0 Chaincode Org1 Org2 Node SDK REST Server balance-transferはNode SDK REST Serverを提供していて便利 /tmpのクリーンアップによって 秘密鍵が削除されるのでご注意ください。 20
  • 22. © Hitachi, Ltd. 2019. All rights reserved. さいごに • 音速 カンオケ この地球号に乗って 誰もが向かっている場所? • 宇宙船地球号 340m/s×60s×60m≒1225km/h 4万77km÷24h≒1670km/h 21
  • 23. © Hitachi, Ltd. 2019. All rights reserved. IoT×Blockchainで一歩前へ 電光掲示板 超音波 距離センサ 22
  • 24. © Hitachi, Ltd. 2019. All rights reserved. 他社商品名、商標等の引用に関する表示 23 HITACHIは、株式会社 日立製作所の商標または登録商標です。 Hyperledger 及びHyperledger Fabric はThe Linux Foundationの米国およびその他の国における登録商標です。 Raspberry PiはRaspberry Pi財団の登録商標です。 その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。
  • 25. © Hitachi, Ltd. 2019. All rights reserved. 株式会社 日立製作所 サービスプラットフォーム事業本部 Blockchain推進部 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~ IoT×Blockchain活用事例 2019/06/27 梅田 多一 END 24