基于区块链的健康链系统设计与实现(3)系统设计
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)整體設(shè)計(jì)
系統(tǒng)架構(gòu)如圖5,系統(tǒng)將搭建SDK接口服務(wù)器作為微信程序和區(qū)塊鏈的通訊中介。微信程序通過Https協(xié)議與SDK接口進(jìn)行數(shù)據(jù)交互,SDK接口與區(qū)塊鏈系統(tǒng)通過JSON-RPC協(xié)議進(jìn)行數(shù)據(jù)交互。SDK接口程序由進(jìn)出人員的個(gè)人數(shù)據(jù)接口、公共場(chǎng)所的數(shù)據(jù)接口和進(jìn)出人員記錄的數(shù)據(jù)接口等等組成。系統(tǒng)配備傳統(tǒng)數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)以避免區(qū)塊鏈數(shù)據(jù)查詢效率低下問題。
由于區(qū)塊鏈平臺(tái)的共識(shí)機(jī)制,數(shù)據(jù)上鏈有時(shí)間延遲,接口程序通過將采用定時(shí)查詢機(jī)制來得到數(shù)據(jù)上鏈等其它數(shù)據(jù)操作結(jié)果。SDK接口與區(qū)塊鏈系統(tǒng)的數(shù)據(jù)流程如圖6。
圖6 SDK接口與區(qū)塊鏈系統(tǒng)的數(shù)據(jù)流程
在增強(qiáng)數(shù)據(jù)的隱私和安全方面,Https協(xié)議在Http協(xié)議的基礎(chǔ)上加了一層SSL/TLS加密層,SSL/TLS通過將對(duì)稱密碼、公鑰密碼、單向散列函數(shù)、消息認(rèn)證碼,偽隨機(jī)數(shù)生成器和數(shù)字簽名等技術(shù)相結(jié)合來實(shí)現(xiàn)安全通信。此外,SSL/TLS還可以通過切換密碼套件來使用強(qiáng)度更高的密碼算法。[9]
鑒于數(shù)據(jù)的隱私和安全需求,比特幣系統(tǒng)將采用私有鏈的方式布置節(jié)點(diǎn)。
3.2 傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
MySQL作為一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其體積小、速度快、源碼開放,且對(duì)PHP有很好的支持。因此數(shù)據(jù)庫基于MySQL開發(fā),主要包含3個(gè)表:個(gè)人信息表、公共場(chǎng)所表和進(jìn)出記錄表。
表1 個(gè)人信息表
屬性 數(shù)據(jù)類型 是否為主鍵 備注
User ID string 是 用戶微信的openid
Name string 否 姓名
Phone Number string 否 電話號(hào)碼
Credentials Number string 否 證件類型
表2 公共場(chǎng)所表
屬性 數(shù)據(jù)類型 是否為主鍵 備注
Public ID string 是 用戶微信的openid
Name string 否 公共場(chǎng)所名稱
Requester Name string 否 申請(qǐng)人姓名
Requester Phone string 否 申請(qǐng)人電話號(hào)碼
Region string 否 行政區(qū)域
Address string 否 詳細(xì)地址
表3 進(jìn)出記錄表
屬性 數(shù)據(jù)類型 是否為主鍵 備注
ID string 是 id
Person ID string 否 個(gè)人ID
Public ID string 否 公共場(chǎng)所ID
Time string 否 時(shí)間
Temperature Value string 否 溫度值
3.3 微信小程序設(shè)計(jì)
代碼主要通過微信開發(fā)者工具開發(fā),開發(fā)者可以完成API和頁面的開發(fā)調(diào)試、代碼查看和編輯、小程序預(yù)覽和發(fā)布等等功能。微信小程序1個(gè)Page頁面對(duì)應(yīng)本系統(tǒng)1個(gè)模塊,1個(gè)page頁面主要由4個(gè)文件構(gòu)成,js腳本文件即是頁面邏輯,wxml是頁面結(jié)構(gòu)展示,wxss是純前端的頁面樣式表,用于輔助wxml展示,json則是頁面配置文件。[10]
小程序在使用HTTPS發(fā)起網(wǎng)絡(luò)請(qǐng)求時(shí)只可以跟指定的域名與進(jìn)行網(wǎng)絡(luò)通信,因此需要在微信公眾平臺(tái)賬號(hào)里對(duì)應(yīng)的項(xiàng)目設(shè)置里面設(shè)置一個(gè)通訊域名,并將域名完成備案。
3.4 區(qū)塊鏈設(shè)計(jì)
比特幣加入了OP_RETURN腳本命令,它后面可以緊跟一定容量的數(shù)據(jù),專門用于存儲(chǔ)和交易邏輯無關(guān)的數(shù)據(jù)。這個(gè)交易輸出不會(huì)加入U(xiǎn)TXO集合,從而避免了UTXO數(shù)據(jù)庫的大小不斷“膨脹”。[11]另在對(duì)需要對(duì)區(qū)塊鏈性能改進(jìn)方面,首先對(duì)性能進(jìn)行改進(jìn)
【參考】
[1] 雷志偉 等 基于區(qū)塊鏈的健康鏈系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn). 《計(jì)算機(jī)與數(shù)字工程》2020年第12期
總結(jié)
以上是生活随笔為你收集整理的基于区块链的健康链系统设计与实现(3)系统设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于区块链的健康链系统设计与实现(2)区
- 下一篇: 基于区块链的健康链系统设计与实现(4)系