基于区块链的健康链系统设计与实现(4)系统实现
4 系統(tǒng)實(shí)現(xiàn)
4.1 SDK接口
SDK接口主要是基于PHP語(yǔ)言通過(guò)libcurl擴(kuò)展庫(kù)實(shí)現(xiàn)了基于Http的JSON-RPC客戶(hù)端。[12] 其主要函數(shù)代碼為:
//初始化一個(gè)CURL會(huì)話 $curl=curl_init("{$this->proto}://{$this->host}:{$this->port}/{$this->url}" $options = array(CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_USERPWD=>$this->username.':'.$this->pwd, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS=> 10, CURLOPT_HTTPHEADER=>array('Content-type: applica-tion/json'), CURLOPT_POST=>true, CURLOPT_POSTFIELDS => $request );//設(shè)置選項(xiàng) curl_setopt_array($curl,$options);//執(zhí)行并獲取結(jié)果 $this->raw_response = curl_exec($curl);//釋放連接 curl_close($curl);4.2 微信小程序
系統(tǒng)主要包括首頁(yè)還有圖示模塊。圖7是個(gè)人注冊(cè)頁(yè)面,圖8是公共場(chǎng)所掃碼頁(yè)面,圖9是個(gè)人進(jìn)出記錄頁(yè)面,圖10是公共場(chǎng)所進(jìn)出記錄頁(yè)面。
圖 7 個(gè)人注冊(cè)頁(yè)面 圖 8 公共場(chǎng)所掃碼頁(yè)面
圖 9個(gè)人進(jìn)出記錄 圖 10 公共場(chǎng)所進(jìn)出記錄
4.3 區(qū)塊鏈主要功能
添加OPReturn數(shù)據(jù)到交易的API函數(shù)主要包含創(chuàng)建交易、交易簽名和發(fā)送交易三個(gè)過(guò)程,此處展示創(chuàng)建交易的部分代碼。
static void createCustomTransaction(const CTxDesti-nation& dest,const CAmount& amount,const std::string& customdata,CMutableTransaction& rawTx){ //創(chuàng)建輸入 uint32_t nSeq = td::numeric_limits<uint32_t>::max(); CTxIn in(outpoint,CScript(),nSeq); rawTx.vin.push_back(in); //創(chuàng)建OPReturn輸出 std::vector<unsigned char> data; for (size_t i = 0; i < customdata.length(); i++) data.push_back(customdata[i]); CTxOut out(0,CScript() << OP_RETURN << data); rawTx.vout.push_back(out);//創(chuàng)建一筆輸出 CScript scriptPubKey= GetScriptForDestination(dest); CAmount nAmount = amount - 3000;//3000 fee is enough CTxOut out1(nAmount,scriptPubKey); rawTx.vout.push_back(out1);Bitcoin-qt是一個(gè)基于Qt的GUI程序. Qt作為一個(gè)C++圖形界面庫(kù),具備跨平臺(tái)、易擴(kuò)展、面向?qū)ο蠛烷_(kāi)發(fā)文檔豐富的特點(diǎn)。圖11是系統(tǒng)基于Windows平臺(tái)的比特幣版本,它基于Visual Studio上編譯Bitcoin-qt,其過(guò)程包括安裝Qt軟件、安裝vcpkg并調(diào)用相關(guān)命令下載軟件庫(kù),安裝Visual Studio Qt插件等其它設(shè)置。[13]
系統(tǒng)對(duì)界面進(jìn)行了功能擴(kuò)展,能方便地查看交易的輸入和輸出內(nèi)容。圖12作為示例,其數(shù)據(jù)內(nèi)容為”南園食堂 雷志偉 2020/05/12 14:54:54 36.4”,從而完成了對(duì)用戶(hù)在某個(gè)地點(diǎn)進(jìn)出的信息登記,并保存了溫度值。另外,通過(guò)遍歷區(qū)塊的所有交易,可以得到所有人員的進(jìn)出記錄,從而達(dá)到數(shù)據(jù)的不可篡改和溯源。
【參考】
[1] 雷志偉 等 基于區(qū)塊鏈的健康鏈系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn). 《計(jì)算機(jī)與數(shù)字工程》2020年第12期
總結(jié)
以上是生活随笔為你收集整理的基于区块链的健康链系统设计与实现(4)系统实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于区块链的健康链系统设计与实现(3)系
- 下一篇: 基于区块链的健康链系统设计与实现(5)区