空汙監測區塊鏈存證應用 - iot.cht.com.tw › iot › developer › resources › iot ›...

31
空汙監測區塊鏈存證應用

Upload: others

Post on 06-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

空汙監測區塊鏈存證應用

課程概要

課程簡介:介紹空汙監測區塊鏈存證應用

以及API說明

目標:

1. 區塊鏈介紹

2. 空汙監測區塊鏈存證應用

3. 區塊鏈智慧存證API列表1

https://coinmarketcap.com/

比特幣

乙太幣

萊特幣

2

為什麼要用區塊鏈:區塊鏈 資料庫

去中心化(P2P) 中心化(client-server)

無法竄改 無法保證

具歷史資料 僅可更新資料

資料透明且共享 特定人士持有

區塊鏈智慧存證服務的特色:

不可否認之區塊鏈智慧存證服務

智慧合約自動化檢查

即時更新監測資訊並提供歷史紀錄查詢

去中心化 無法竄改 不可否認 分散式節點履歷追蹤

3

去中心化

資料分散各節點,不需要建置中心化硬體建設或機構資料不會被特定人士掌握住

集體維護

系統各區塊由所有節點共同維護,具有不易篡改特性

高度透明

採開源技術,確保帳簿和商業規則可被所有人檢視驗證

共識產生信任

從密碼技術(共識演算法)確保交易受信任, 不需第三方背書

可提供匿名

由於區塊鏈解決信任問題,因此交易可在匿名下進行(金融科技需要實名制)

4

安全性高、防駭

具備有明確時間點的完整資訊交換記錄

記錄的數據必須經半數以上節點驗證後生效,且不可否認

數據資料分散於P2P網路大量節點上,無法一一擊破

分散式的資料庫概念

區塊鏈實際上是一群分散的用戶節點組成的分散式資料庫

把一個資料庫分拆給多個電腦使用

資料庫無法被單一實體掌控

採用「分布式分類帳技術」,類似資料分持5

共識機制

區塊鏈

密碼學

時間戳記 雜湊函數

不可刪除 不可變造

匿名性 資產所有權&支配權確認

證明資料有效性 確保區塊順序

資料同步 驗證資料 6

技術 一般 雜湊+簽章 雜湊+簽章+串鏈+P2P

圖示

問題解決

可竄改可刪除

不可否認,無法竄改,但是

可刪除

不可否認、無法竄改(個別與整體)無法刪除(個別與整體)

Blockchain的核心技術

可在彼此不信任環境建立共識,並使整體交易達到不可否認、可追蹤、無法竄改與刪除特性。

不僅能驗證每筆交易資料,亦可同時驗證可程式化的事件(例如:智能合約、自動清算、眾籌)。7

汙染防制監測於區塊鏈智慧存證服務案例介紹:

1) IoT裝置持續監控PM2.5數值

區塊鏈智慧存證服務

3) P2P 同步IoT裝置的監控資料

2) 透過區塊鏈API接收監控資料

4) 智能合約自動化執行異常警示通知

5) 透過區塊鏈共享式帳本提供完整歷史資料 8

環保意識抬頭,空氣品質日益嚴重,為了保障全民的健康福祉,需要公信力保障民眾環境安全,透過區塊鏈高安全性及不可否認的特性, 持續監測並儲存全台空氣品質的不可否認紀錄,達到稽核的效果。

空汙監測系統

空汙監測系統

空汙監測系統

空汙監測系統區塊鏈存證服務

........

..

每一個區塊紀錄pm2.5、溫度、濕度

透過區塊鏈高安全性以及不可否認的特性,有心人士(高汙染工廠、駭客……)無法竄改資料

民眾得到真實的數據

9

空汙監測區塊鏈存證應用介紹(1/2)

服務情境說明

提供透過區塊鏈的智慧合約自動化檢查,主動觸發告警通知1. 持續監測樹莓派Device的溫溼度及pm 2.5 sensor資料,並透過IoT的Rule-

Engine觸發數值超標的Event

2. IoT的Event呼叫區塊鏈REST API,透過Smart Contract紀錄異常資訊到區塊鏈系統

3. Smart Contract判斷異常條件達到自訂的警示標準時,會廣播區塊鏈的Event

4. 區塊鏈交易偵測機制會啟動IoT平台的Email通知功能

提供區塊鏈的圖形化展示5. 提供區塊鏈服務內部資訊的圖形化展示

10

空汙監測區塊鏈存證應用介紹(2/2)

Gateway(樹莓派)

Sensor

TLS VPN

Fixed, WiFi,3G/4G/5G

ZigBee, Bluetooth,Wired

DMP

區塊鏈服務區塊鏈API

建立帳戶 寫入 讀取

智慧合約 資料同步

1

2

3

4

5

IoT大平台

11

空汙監測區塊鏈存證應用(展示畫面)

12

IoT區塊鏈智慧存證服務(1/7)

區塊鏈狀態與統計圖表之圖形化介面

4個分散式節點

目前區塊數目

區塊產生至今時間間隔

看成每公升油價

交易的油量使用上限

手續費=Gas 數量xGas

Price

區塊包含的交易數

區塊中的交易花費多少Gas

13

IoT區塊鏈智慧存證服務(2/7)

濕度測試

對裝置呼一口氣,濕度到達99%

濕度超過90%便觸發IoT大平台的Rule Engine

將裝置送來的溫度/濕度/PM2.5資料送至區塊鏈存證

14

智慧合約判斷觸發,收到告警Email

兩次濕度觸發事件,數值差距過大

智慧合約會觸發Email發送功能

管理員便會收到告警電子郵件

區塊鏈智慧存證服務

(溫度濕度PM2.5三合一感測器)

(智慧合約)

IoT區塊鏈智慧存證服務(3/7)

15

IoT區塊鏈智慧存證服務(4/7)

16

IoT區塊鏈智慧存證服務(5/7)

觸發IoT大平台的Rule Engine,裝置資料送至區塊鏈存證

區塊數目增加

3秒前產生區塊

17

區塊鏈服務內部資訊的圖形化展示

IoT區塊鏈智慧存證服務(6/7)

18

( 區塊內部詳細資訊 )

IoT區塊鏈智慧存證服務(7/7)

濕度16進制 10進制

63% 99%

19

區塊鏈智慧存證API列表

20

新增區塊鏈帳戶(1/2)

Url: https://iot.cht.com.tw/api/blockchain/v2/account

Method: Post

Headers: Content-Type:application/json

Body: {"ProjectID":"<專案名稱>", "ProjectKey":"<專案密碼>"}

Response:

– 成功時以JSON格式回傳結果訊息

{"errorId": 0, "errorMessage": "","Account":"<區塊鏈帳戶>"}

– 錯誤時以JSON格式回傳結果訊息

{"errorId": -1, "errorMessage": "錯誤訊息"}21

新增區塊鏈帳戶(2/2)

Method

Url

Headers

Body

Response

22

查詢區塊鏈帳戶(1/2)

Url:https://iot.cht.com.tw/api/blockchain/v2/account?projID=<專案名稱>

Method: GET

Headers: 無

Body: 無

Response:

– 成功時以JSON格式回傳結果訊息

{"errorId": 0, "errorMessage": "",

"AccountInfo": {"Account": "<區塊鏈帳戶>" }}

– 錯誤時以JSON格式回傳結果訊息

{"errorId": -1, "errorMessage": "錯誤訊息"} 23

查詢區塊鏈帳戶(2/2)

Method

Url

Response

24

將值存入區塊鏈 不使用智能合約(1/2)

Url: https://iot.cht.com.tw/api/blockchain/v2/evidence

Method: POST

Headers: Content-Type:application/json

Body: {"PK01":"主鍵1", "PK02":"主鍵2", "PK03":"主鍵3", "SC":"no“

, "Parm01":"參數1", "Parm02":"參數2", "Parm03":"參數3",

"Parm04":"參數4", "Parm05":"參數5",

"EvidenceInfo":"Base64編碼資訊"}

Response:

– 成功時以JSON格式回傳結果訊息

{"errorId": 0, "errorMessage": " "}

– 錯誤時以JSON格式回傳結果訊息

{"errorId": -1, "errorMessage": "錯誤訊息"}25

將值存入區塊鏈 不使用智能合約(2/2)

Method

Url

Headers

Body

Response

26

將(最新)單筆或整批存證資料讀出區塊鏈(1/2)

Url: https://iot.cht.com.tw/api/blockchain/v2/evidence/latest?

pk01=<查詢的主鍵1>&pk02=<查詢的主鍵2>&pk03=<查詢的主鍵3>&

sc=no&parm01=<查詢的參數1>&parm02=<查詢的參數2>&

parm03=<查詢的參數3>&parm04=<查詢的參數4>&

parm05=<查詢的參數5>&datemore=<查詢時間>

Method:

Response:

– 成功時以JSON格式回傳結果訊息

{"errorId": 0, "errorMessage": " ",

"EvidenceInfo":"存證資料"}

– 錯誤時以JSON格式回傳結果訊息

{"errorId": -1, "errorMessage": "錯誤訊息"}

GET 備註

– pk01~pk03 - 查詢的主鍵

– parm01~parm05 - 查詢的一般參數

– group - 依群組做查詢

27

Method

Url

Response

28

將(所有)單筆或整批存證資料讀出區塊鏈(1/2)

Url: https://iot.cht.com.tw/api/blockchain/v2/evidence/all?

pk01=<查詢的主鍵1>&pk02=<查詢的主鍵2>&pk03=<查詢的主鍵3>

&sc=no&parm01=<查詢的參數1>&parm02=<查詢的參數2>&

parm03=<查詢的參數3>&parm04=<查詢的參數4>&

parm05=<查詢的參數5>&datemore=<查詢時間>

Method:

Response:

– 成功時以JSON格式回傳結果訊息

{"errorId": 0, "errorMessage": " ",

"EvidenceInfo":"存證資料"}

– 錯誤時以JSON格式回傳結果訊息

{"errorId": -1, "errorMessage": "錯誤訊息"}

GET 備註

– pk01~pk03 - 查詢的主鍵

– parm01~parm05 - 查詢的一般參數

– group - 依群組做查詢

– datemore - 查詢大於等於某時間

– dateless - 查詢小於等於某時間29

Method

Url

Response

30