基于区块链的防护物资捐赠监管系统(三):功能设计

基于区块链的防护物资捐赠监管系统(三):功能设计

第1章 对研究背景及内容进行介绍
第2章 智能合约、密码学知识、共识机制等相关技术
第3章 系统的整体设计
第4章 系统功能的具体实现
第5章 系统的实验测试



三、系统设计

4.1区块链网络

系统采用部分去中心化的联盟链,由于需要进行用户发布信息的审核,以及后续的动态维护等操作,因此排除使用公有链的形式,联盟链存在处理速度快、可控性较强的特点,在联盟节点内部达成共识会,即可对区块数据进行修改,并且便于进行相关信息的访问控制;并且由联盟链主节点进行区块链写入操作,能够有效避免恶意节点造成区块链分叉等问题。
联盟节点初步选择为相关公益组织,以及国家相关监管部门等。各节点在首次启动时,会在本地建立存储结构,打开指定服务端口,并向网络中进行广播,确认各联盟节点的状态如系统版本等;随后建立与区块链网络的连接,并寻找主节点完成网络的区块链同步,同步流程如图所示。
在这里插入图片描述
在各联盟节点接入区块链网络后,即可开始对区块链的操作环节,系统设计了如下的消息数据包结构:

public class VoteMsg {
	private byte voteType;//当前投票状态
	private String order;//消息编号
	private String hash;//所含区块哈希值
	private int number;//当前区块高度
	private String appId;//消息所属节点ID
	private boolean agree;//消息审核状态
	private Block block;//所含区块
}

为避免出现重复投票的情况,建立包含所有hash的投票集合,存储本节点已确认状态的hash,即本节点已对外广播过允许commit或拒绝commit的消息;为避免出现网络中存在已经达成共识后的数据包,在接受后会首先对其合法性进行校验。共识过程依照上一章介绍的PBFT算法流程:
主节点将block打包为VoteMsg并进行广播,收到VoteMsg的从节点如果还没有收到过这个VoteMsg并且验证合法后,向网络中广播一个prepare<h, d, s>消息,其中h为高度,d为摘要,s为本节点签名;节点收到prepare消息后,将其存入队列并开始累加消息数量,当收到超过2f+1个且来源于不同节点的prepare消息后;当前节点进入prepared状态,并向网络中广播一个commit<h, d, s>消息;直至网络中所有节点达成共识。为防止资源浪费,系统会在收到第一个序号为h的block时,启动一个定时器,在定时到期时一致尚未达成,则放弃本次共识。

4.2物资匹配

物资信息在匹配系统中按照物资类型建立堆栈存储,如图4.2左侧所示先进后出减少物资等待时间如图;需求信息以队列形式存储,如图4.2右侧所示整体以先进后出的顺序排列,但会根据物资分配参数U进行动态排序,参数根据如下函数计算:
在这里插入图片描述
其中α≥1,wij=wi*wj,Uij为物资分配参数,wi为物资系数,用于量化医疗物资的重要程度,wj为医院门诊紧急程度,α为所处灾害类型的严重系数,xij为医院j的物资i的需求量,Zi为所有医院对物资i的总需求量,R为距离参数。
当物资需求量不变时,所处灾害类型严重等级越高,α越大,易受损程度越高;某类型物资重要性越大,wi’物资系数的值也越大,表示该物资不能到位时受到的影响越大;医院门诊待诊人员越多,紧急程度越高wj’值也越大;Zi^α起到归一化处理的作用。系统通过区块链读入捐赠物资信息以及物资需求信息,按照其对应存储结构存储;现有队列如图所示时,最近更新一条甲医院1400瓶84消毒液需求,准备进入队列,经计算得出甲物资分配参数远高于所需200瓶的乙医院,因此将甲医院放那入队列首位,优先进行物资匹配。

3.1.2 系统结构

系统采用MVC框架结构,基于不同功能分为3层。
第一层View层负责数据的可视化操作。能够实现数据查询、数据交易、数据评价等功能。
第二层是Controller层,通过网络控制数据流向Model层,并在检测到数据变化时更新View层。这一部分由共识机制PBFT和基于P2P通信的节点服务器组成。如图3.2所示,每个节点既用于数据副本存储,也作为区块链节点;数据副本加密存储在各个节点的数据库当中,而将数据摘要存储在区块链当中,保证数据的不可篡改性和完整性;
第三层是Model层,负责处理数据逻辑的部分。由数据层和存储层组成,每个服务器建立并与维护物资摘要链和流转记录链,具体内容将在存储结构中介绍。
在这里插入图片描述

4.3 信誉评估

系统会根据角色、信誉值等限制用户访问,信誉值的计算根据如下公式:
在这里插入图片描述
其中R0为初始的信誉值,拟接入信用中国获得初始参数;Gi为指标i分数,由参与此次捐赠活动的双方评判,如实际所收捐赠物资与描述完全相符; Wi为指标权重,可根据系统具体需求设置,如实际捐赠物资与描述不符权重设为-0.4,捐赠物资质量不符合行业标准权重设置为-0.8,捐赠物资数量与描述完全相符设置为+0.7等等;用户行为会被记录在区块链中,用户的信誉值在被调用时会重新计算,因此考虑时间因素,ti为实际时间,tj为用户交易完成时间,完成时间越近对信誉影响越大。
用户的信誉值会影响其操作系统功能的权限,如当信誉值低于操作阈值时,用户仅能参与查询功能,而禁止其进行信息发布等操作,具体流程如图4.3所示。

在这里插入图片描述

4.4 活动评价

根据上一章介绍的区块数据结构,每个区块体中都维护了一条动态更新的侧链,如个人信誉、医院信誉、活动进展等信息,以此提升系统的可读性。系统会将用户的行为信息记录在侧链中,用于信誉值的计算;在慈善活动进行媒体通告后,系统能够将相关物资的使用情况写入活动进展,便于监管组织、物资捐赠方等查阅。
侧链同样采用区块链结构,侧链的创世区块由所在区块内容生成,其中包含当前区块其他内容计算所得的Merkel根哈希值,从而实现与纵链的链接,并由创世区块起构建一条完整的链结构。区块动态更新的通过重新广播相应区块的方式实现,每隔一个更新周期,系统会将存在侧链更新内容的区块进行一次广播,同样参照PBFT算法,在超过2f+1节点判定合法通过后,各节点根据接收内容更新区块链。

总结

以上是系统功能的具体设计,接下来会对系统进行测试并最后展示源代码,仅供参考。

第1章 对研究背景及内容进行介绍
第2章 智能合约、密码学知识、共识机制等相关技术
第3章 系统的整体设计
第4章 系统功能的具体实现
第5章 系统的实验测试

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值