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)系统实现相关推荐

  1. 基于区块链的健康链系统设计与实现(5)区块链性能优化

    4.4区块链性能优化 通过更改相关参数和优化,交易性能在单节点的情况下能达到100个TPS以上.比如将生成块的时间由每10分钟改成10秒,将调整难度时间由2周改成80秒,将交易内存池扩大,并扩大交易最 ...

  2. 基于区块链的健康链系统设计与实现(3)系统设计

    3 系统设计 3.1 系统整体设计 系统架构如图5,系统将搭建SDK接口服务器作为微信程序和区块链的通讯中介.微信程序通过Https协议与SDK接口进行数据交互,SDK接口与区块链系统通过JSON-R ...

  3. 基于区块链的健康链系统设计与实现(2)区块链平台Web服务器

    2.2 区块链平台分析 Bitcoin(比特币)作为区块链技术的起源,是目前发展最成熟的开源区块链平台之一,拥有大量的开发人员和活跃的开发社区.Ethereum(以太坊)核心是支持智能合约的EVM(以 ...

  4. 基于区块链的健康链系统设计与实现(1)引言

    摘 要:疫情期间,各大公共场所的人员进出都需要进行测温和信息登记,鉴于人工纸张录入数据的方式效率低下,本系统基于微信小程序开发相关功能,通过扫码的形式实现人员的注册和信息登记,同时基于比特币的区块链技 ...

  5. 基于区块链的健康链系统设计与实现(6)结束语

    5 结束语 通过本文基于区块链体系架构建立的健康链系统,有效地解决了现实生活中的人员进出登记流程的繁琐问题.但同时系统属于疫情防控和复工复产特殊形势下迅速推出的一项举措,由于时间紧迫,尚有很多问题和工 ...

  6. [微信小程序毕业设计源码]基于小程序的健康管理(慢性疾病)系统

    目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...

  7. 基于JAVA疫情社区健康评估系统设计与实现 开题报告

      本科生毕业论文 基于Java疫情下社区健康评估系统springboot框架 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科 ...

  8. 基于人工智能的计算机课程教学系统设计,【智能教学系统的特点与设计方法】人工智能系统有哪些...

    [摘要]:智能系统应用于教育领域不仅给人们提供了大量便捷的学习机会.丰富的教学环境和教学资源,而且使学习活动更加自主化.个性化.文章基于此,主要分析了智能化教学系统的特点与设计方法. [关键词]:智能 ...

  9. 基于区块链的RFID数据采集溯源系统设计与实现

    基于区块链的RFID数据采集溯源系统设计与实现 随着区块链技术的发展以及与金融.物联网和人工智能等领域的融合应用[1],随之而来的相关安全事件频繁发生,区块链信息系统中数据来源的安全性和可追溯性正变得 ...

最新文章

  1. 金山android 杀毒软件,金山手机卫士
  2. 算法------数组---------存在重复元素
  3. DM365 dvsdk_2_10_01_18开发环境搭建
  4. 1 jquery对checkbox的简单操作
  5. linux克隆后重新封装,克隆后立即在OSX上修改Linux内核源代码
  6. 论坛用的两个函数:积分计算排名和楼层函数
  7. 使用webpack打包ThinkPHP的资源文件
  8. 真实的用户,真实的中国互联网
  9. FAQ宝典之Rancher Server
  10. kepware mysql_Kepware实现向数据库实时写入数据
  11. 基于单片机c语言的光立方,基于单片机的光立方设计(课程设计).doc
  12. BXP无盘介绍(转)
  13. 移远BC95 nbiot接入华为OC云平台(电信云)
  14. 卸载ps显示无法连接adobe服务器,PS还在无法安装?无法卸载?通通搞定!
  15. java 程序计数器_JVM入门系列之程序计数器
  16. SPSS19.0实战之聚类分析(转载)
  17. C primer plus编程练习答案(上)
  18. https封装类,支持get/post请求
  19. 基于JAVA美发店预约系统设计与实现
  20. Zoho 企业邮箱不可用修复方案

热门文章

  1. Android --- 自定义ImageView 实现圆形图片
  2. 2018计算机一级题库百度云,2018年全国计算机一级考试题库及答案
  3. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
  4. yolov5论文叫什么_论文格式与论文查重到底是什么鬼?教你半小时搞定的独门技巧...
  5. java选中一格_java-选中排序(新手)
  6. 由萧何出名想到的……数据中心运维思考
  7. UPS电池异常故障案例
  8. 弧度转为角分秒的c语言程序_用弧度表示角度
  9. 成功解决Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: 'f:\\program files\\p
  10. opengl关于obj文件相关知识