基于区块链的健康链系统设计与实现(4)系统实现
4 系統實現
4.1 SDK接口
SDK接口主要是基于PHP語言通過libcurl擴展庫實現了基于Http的JSON-RPC客戶端。[12] 其主要函數代碼為:
//初始化一個CURL會話 $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 );//設置選項 curl_setopt_array($curl,$options);//執行并獲取結果 $this->raw_response = curl_exec($curl);//釋放連接 curl_close($curl);4.2 微信小程序
系統主要包括首頁還有圖示模塊。圖7是個人注冊頁面,圖8是公共場所掃碼頁面,圖9是個人進出記錄頁面,圖10是公共場所進出記錄頁面。
圖 7 個人注冊頁面 圖 8 公共場所掃碼頁面
圖 9個人進出記錄 圖 10 公共場所進出記錄
4.3 區塊鏈主要功能
添加OPReturn數據到交易的API函數主要包含創建交易、交易簽名和發送交易三個過程,此處展示創建交易的部分代碼。
static void createCustomTransaction(const CTxDesti-nation& dest,const CAmount& amount,const std::string& customdata,CMutableTransaction& rawTx){ //創建輸入 uint32_t nSeq = td::numeric_limits<uint32_t>::max(); CTxIn in(outpoint,CScript(),nSeq); rawTx.vin.push_back(in); //創建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);//創建一筆輸出 CScript scriptPubKey= GetScriptForDestination(dest); CAmount nAmount = amount - 3000;//3000 fee is enough CTxOut out1(nAmount,scriptPubKey); rawTx.vout.push_back(out1);Bitcoin-qt是一個基于Qt的GUI程序. Qt作為一個C++圖形界面庫,具備跨平臺、易擴展、面向對象和開發文檔豐富的特點。圖11是系統基于Windows平臺的比特幣版本,它基于Visual Studio上編譯Bitcoin-qt,其過程包括安裝Qt軟件、安裝vcpkg并調用相關命令下載軟件庫,安裝Visual Studio Qt插件等其它設置。[13]
系統對界面進行了功能擴展,能方便地查看交易的輸入和輸出內容。圖12作為示例,其數據內容為”南園食堂 雷志偉 2020/05/12 14:54:54 36.4”,從而完成了對用戶在某個地點進出的信息登記,并保存了溫度值。另外,通過遍歷區塊的所有交易,可以得到所有人員的進出記錄,從而達到數據的不可篡改和溯源。
【參考】
[1] 雷志偉 等 基于區塊鏈的健康鏈系統設計與實現. 《計算機與數字工程》2020年第12期
總結
以上是生活随笔為你收集整理的基于区块链的健康链系统设计与实现(4)系统实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于区块链的健康链系统设计与实现(3)系
- 下一篇: 基于区块链的健康链系统设计与实现(5)区