基于云计算的物流区块链共识算法的制作方法

文档序号:14776607发布日期:2018-06-23 03:34阅读:147来源:国知局
基于云计算的物流区块链共识算法的制作方法
本发明涉及物流交易
技术领域
。更具体地说,本发明涉及一种基于云计算的物流区块链共识算法。
背景技术
:目前物流交易除了通过物流信息管理系统的相关模块进行定制运输计划,和出入库模块对仓储进行简单管理跟踪,大部分操作仍停留在手工管理和纸质单据留存。物流交易流程包括了下单管理、出入库、库存盘点、运输跟踪、交易反馈等,该流程所产生的运输费用、单据审核、交易对接、货品完整等流通环节的详细敏感信息没有进行统一集中处理,整个物流交易流程为非可见,无法衔接好供应链中的所有客户,以提供高效的物流服务,也不能达到物流去中心化、不可抵赖性的要求。传统的物流中心化交易模型具备一定的现代化程度,通过物流中心的运营规范,物联网智能识别技术,以及物流中心的网络和数据库建立信息平台,用户可在其平台上进行信息的查询和物流交易,但是传统的物流独立认证中心交易模型存在信息的安全问题:一是容易受到网络攻击,可导致保密信息被公开;二是无法验证用户身份真实性与审查溯源,交易双方身份唯一标志无法保证;三是通过交易双方的以往经验和资格审查进行信用评级,存在大量不可信的交易数据,要收集全面、完整、系统的物流交易信息非常困难。物流交易活动的信息安全、上下游客户的共识信任问题亟待解决。因此,如何解决物流交易的去中心化、用户之间的信任、以及可溯源的问题,具有重要的科学意义和经济价值。技术实现要素:本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。本发明还有一个目的是提供一种基于云计算的物流区块链共识算法,解决物流交易的去中心化、用户之间的信任、以及可溯源的问题。为了实现根据本发明的这些目的和其它优点,提供了一种基于云计算的物流区块链共识算法,包括以下步骤:S1、前一物流节点将其节点信息加密生成对应区块信息;S2、区块信息进行全网广播,全网其余节点下载该区块信息并存储,其中,节点包括物流节点及非物流节点;S3、后一物流节点接收上一物流节点的节点信息并结合上一物流节点的区块信息验证上一物流节点是否为信任节点,若是,后一物流节点将其节点信息附在上一物流节点的区块信息上,并加密生成对应区块信息;S4、重复步骤S2-S3至物流交易完成;S5、删除每个节点中存储的重复数据;S6、通过PBFT算法的预准备、准备和确认三个阶段完成节点共识过程。优选的是,步骤S5删除每个节点中存储的重复数据之前还包括:通过Combiner函数对全网节点存储的区块信息进行归约处理去除噪声错误数据,得正常通信节点及正常通信节点数据;步骤S5删除每个节点中存储的重复数据具体为:通过Reduce函数删除每个正常通信节点中存储的重复数据,形成子数据。优选的是,步骤S6之前还包括为每个正常通信节点映射虚拟节点,建立共识节点网络,每个虚拟节点内存储与其对应正常通信节点的子数据;步骤S6具体为共识节点网络通过PBFT算法的预准备、准备和确认三个阶段完成节点共识过程。优选的是,所述的基于云计算的物流区块链共识算法,还包括:S7、下载各物流节点信息,各物流节点信息组合得物流信息。优选的是,步骤S1之前还包括:A1、构建云物流区块链平台;A2、物流链上各参与主体在云物流区块链平台上注册生成对应物流节点,其中,物流链上的各参与主体按物流交易顺序构成前一物流节点和后一物流节点,云物流区块链平台已有节点构成非物流节点,发货主体对应的节点为主节点;其中,云物流区块链平台包括:JobClient模块,其用于接收发货主体发送的请求信息,并通过Input函数处理输出为主节点的节点信息,其中,主节点的节点信息包括数据信息、节点名称、公钥、私钥、及更新时间,数据信息包括货品信息、发货主体信息、收货主体信息及下一主体信息;Jobtracker模块,其与JobClient模块连接,用于接收主节点的节点信息,并进行全网检索,确定包括各参与主体对应的物流节点的全网节点;Map模块,其与Jobtracker模块连接,用于接收主节点的节点信息,其根据主节点的节点信息确定各物流节点的节点信息,并将各物流节点的节点信息发送至对应的物流节点,主节点为一前一物流节点。优选的是,步骤S1和步骤S3中加密具体为:节点信息通过一次Hash函数运算形成摘要,摘要通过该节点的秘钥加密附上数字签名,其中,秘钥加密具体为进行一次Hash函数运算,区块信息为hash串码。优选的是,步骤S3中验证上一节点是否为信任节点具体为:后一物流节点通过其公钥对上一节点的区块信息进行解密形成摘要a,并对接收的上一节点的节点信息进行一次Hash函数运算形成摘要b,比较摘要a和摘要b是否一致,若一致,则上一节点为信任节点。本发明至少包括以下有益效果:保证了去中心化和不可篡改性的要求,应用云计算的高鲁棒性,分布式存储的特性,解决了大规模共识运算的算力问题,为当前物流行业存在的交易去中心化等一系列问题提供了区块链解决的思路,且在安全性,稳定性,吞吐量都有较高的表现。本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。附图说明图1为本发明其中一种技术方案所述的基于云计算的物流区块链共识算法的流程示意图;图2为本发明其中一种技术方案所述的PBFT算法认证流程示意图;图3为本发明其中一种技术方案所述云计算的物流区块链模型图;图4为本发明其中一种技术方案所述的伪造节点攻击成功概率趋势图;图5为本发明其中一种技术方案所述的PBFT,MinBFT和CloudPBFT三种算法延迟比较条状图;图6为本发明其中一种技术方案所述的PBFT,MinBFT和CloudPBFT三种算法吞吐量示意图;图7为本发明其中一种技术方案所述的基于云计算的物流区块链共识算法容错性与延迟时间关系图;图8为本发明其中一种技术方案所述的基于云计算的物流区块链共识算法容错性与区块高度关系图。具体实施方式下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不配出一个或多个其它元件或其组合的存在或添加。如图1所示,本发明提供一种基于云计算的物流区块链共识算法,包括以下步骤:S1、前一物流节点将其节点信息加密生成对应区块信息;S2、区块信息进行全网广播,全网其余节点下载该区块信息并存储,其中,节点包括物流节点及非物流节点;S3、后一物流节点接收上一物流节点的节点信息并结合上一物流节点的区块信息验证上一物流节点是否为信任节点,若是,后一物流节点将其节点信息附在上一物流节点的区块信息上,并加密生成对应区块信息;S4、重复步骤S2-S3至物流交易完成;S5、删除每个节点中存储的重复数据;S6、通过PBFT算法的预准备、准备和确认三个阶段完成节点共识过程。在这种技术方案中,全网节点包括物流节点及非物流节点,物流节点为一次物流交易链上所有参与主体对应的节点,非物流节点为全网节点中区别于上述物流节点的剩余节点使用过程中,若具体为A参与主体将物品传递至B参与主体,经过的信息传递过程包括A-C(A参与主体-C参与主体)、C-D(C参与主体-D参与主体)、及D-B(D参与主体-B参与主体),ACDB参与主体对应的节点均为物流节点,以下简称A节点、C节点、D节点、及B节点,首先A节点将其节点信息加密生成对应区块信息,区块信息进行全网广播,全网其余节点下载该区块信息并存储,C节点接收A节点的节点信息并结合A节点的区块信息验证A节点是否为信任节点,若是,C节点将其节点信息附在A节点的区块信息上,并加密生成对应区块信息,完成A-C(A参与主体-C参与主体)的信息传递,同理,C-D(C参与主体-D参与主体)、及D-B(D参与主体-B参与主体)的信息传递,至物流交易完成,此时,在各节点信息传递无误的情况下,物流节点(A节点、C节点、D节点、及B节点)存储有相同的数据,包括各物流节点的节点信息、及各物流节点的区块信息,非物流节点中存储与物流节点中相同的各物流节点的区块信息,新型中存在大量的冗余数据,删除每个节点中存储的重复数据,重复数据具体为A节点、C节点、D节点发送的节点信息和区块信息,重复数据删除对于数据本身并没有改变,只是消除了相同的数据占用的存储容量,重复数据删除在减少存储、降低网络带宽方面有着显著的优势,通过PBFT算法的预准备、准备和确认三个阶段完成节点共识过程。采用该技术方案,采用区块链技术和云计算,设计云计算物流区块链模型,提出基于云计算的物流区块链共识算法,保证了去中心化和不可篡改性的要求,应用云计算的高鲁棒性,分布式存储的特性,解决了大规模共识运算的算力问题,为当前物流行业存在的交易去中心化等一系列问题提供了区块链解决的思路,且在安全性,稳定性,吞吐量都有较高的表现。在另一种技术方案中,步骤S5删除每个节点中存储的重复数据之前还包括:通过Combiner函数对全网节点存储的区块信息进行归约处理去除噪声错误数据,得正常通信节点及正常通信节点数据;步骤S5删除每个节点中存储的重复数据具体为:通过Reduce函数删除每个正常通信节点中存储的重复数据,形成子数据。其中,MapReduce作业会受限于集群的带宽,因此尽量降低map和reduce任务之间的数据传输是有必要的,Hadoop允许用户针对map任务的输出指定一个combiner函数处理map任务的输出,并作为reduce函数的输入,采用该技术方案,通过归约处理去除噪声错误数据,并删除重复数据,重复数据删除对于数据本身并没有改变,只是消除了相同的数据占用的存储容量,重复数据删除在减少存储、降低网络带宽方面有着显著的优势。在另一种技术方案中,步骤S6之前还包括为每个正常通信节点映射虚拟节点,建立共识节点网络,每个虚拟节点内存储与其对应正常通信节点的子数据;步骤S6具体为共识节点网络通过PBFT算法的预准备(pre-prepare)、准备(prepare)和确认(commit)三个阶段完成节点共识过程。其中,PBFT算法认证流程可为:假设此时共识节点网络中存在4个虚拟节点,其中包括一个虚拟主节点,如图1所示包括C(发送请求端),0(虚拟主节点),1、2、3(虚拟节点),发送请求端C发送请求,虚拟主节点0接收请求后将请求进行排序并生成请求序号发送至其余虚拟节点进行广播,各虚拟节点收到序号后,互相发消息确认,完成预准备(pre-prepare)阶段,各虚拟节点(包括虚拟主节点)认可主节点分配的序号,并相互通知,完成准备(prepare)阶段,各虚拟节点(包括虚拟主节点)执行请求,回复发送请求端,完成确认(commit)阶段,发送请求端根据获取的请求数N确认结果,若有问题的节点数为F,当N≥F+1时,认为完成共识认证,否则认为错误节点控制网络,重新初始化请求返回给JabTracker模块,N至少为4;采用该技术方案,映射虚拟节点,降低服务器负载,提高共识过程的运算速率,且提高基于云计算的物流区块链共识算法的吞吐量,采用去中心化的架构模式,物流区块链信息通过共识算法认证,全网节点共同存储更新同一份区块链信息副本,即使黑客试图篡改,由于需获得51%的共同认证才可通过。在另一种技术方案中,所述的基于云计算的物流区块链共识算法,还包括:S7、下载各物流节点信息,各物流节点信息组合得物流信息。采用该技术方案,具体通过reduce函数根据各节点的信息传递速度的快慢,下载个物流节点的区块信息或节点信息,其中区块信息可逆获取节点信息,节点信息组合获得物流信息。在另一种技术方案中,步骤S1之前还包括:A1、构建云物流区块链平台;A2、物流链上各参与主体在云物流区块链平台上注册生成对应物流节点,其中,物流链上的各参与主体按物流交易顺序构成前一物流节点和后一物流节点,云物流区块链平台已有节点构成非物流节点,发货主体对应的节点为主节点;其中,云物流区块链平台包括:JobClient模块,其用于接收发货主体发送的请求信息,并通过Input函数处理输出为主节点的节点信息,其中,主节点的节点信息包括数据信息、节点名称、公钥、私钥、及更新时间,数据信息包括货品信息、发货主体信息、收货主体信息及下一主体信息;Jobtracker模块,其与JobClient模块连接,用于接收主节点的节点信息,并进行全网检索,确定包括各参与主体对应的物流节点的全网节点;Map模块,其与Jobtracker模块连接,用于接收主节点的节点信息,其根据主节点的节点信息确定各物流节点的节点信息,并将各物流节点的节点信息发送至对应的物流节点,主节点为一前一物流节点。搭建云平台的主要部件和参数说明如下表1:表1主要部件云物流区块链平台搭建内存硬盘网卡参数说明Hadoop、Ubuntu16、Corei716GSSD256GIntel(R)82579LM在云物流区块链平台上构建云计算的物流区块链模型,云物流区块链模型的结构具体如图3所示,其中,所有的交易认证行为均在云物流区块链云平台上执行,HDFS模块负责存储更新区块链信息,模拟各物流节点交易认证过程,通过Hash加密算法传递物流交易信息,进而实用拜占庭共识(PBFT)算法完成认证过程再使用reducer进行下载组合处理。采用该技术方案,整体认证过程具有较高容错性,这样便于企业内部交易主体、供应商、销售商共同维护物流交易信息,区块链共识机制及Hadoop分布式存储技术,从而达到物流去中心化、不可篡改性,客户可以溯本求源地跟踪整个货品的来源及物流运输过程。在另一种技术方案中,步骤S1和步骤S3中加密具体为:节点信息通过一次Hash函数运算形成摘要,摘要通过该节点的秘钥加密附上数字签名,其中,秘钥加密具体为进行一次Hash函数运算,区块信息为hash串码。采用该技术方案,保证节点数据的私密性。在另一种技术方案中,步骤S3中验证上一节点是否为信任节点具体为:后一物流节点通过其公钥对上一节点的区块信息进行解密形成摘要a,并对接收的上一节点的节点信息进行一次Hash函数运算形成摘要b,比较摘要a和摘要b是否一致,若一致,则上一节点为信任节点。采用该技术方案,保证节点数据的安全性。试验1:模拟测试基于云计算的物流区块链共识算法(CloudPFBT)运用在同城快递网络系统的物流交易中的去中心化安全性。首先:规定全网共有120个节点;规定物流网络中正常节点传递区块信息的概率为r,伪造节点伪造物流区块链的概率为ω,则伪造节点能够控制全网z个节点的概率为ωz则有;由伪造节点与正常节点相差数量Z(正常节点数量扣除伪造节点的数量)的规律来看,其满足泊松分布的概率密度关系,设当r<ω时,伪造节点攻击成功概率P为:其中,αβ为设定区间;本文分别设定伪造节点伪造物流区块链的概率ω分别为0.1和0.3进行实验测试得表2如下:表2伪造节点攻击成功概率P结合图4和表1可以得出,随着正常节点与伪造节点相差数值Z的增大,伪造节点攻击成功概率P呈现指数下降趋势,其中,基于云计算的物流区块链模型中全网节点个数理论上可以无限大,同时结合PBFT共识算法采用的加密验证的机制同时可以有效的规避伪造节点,故而基于云计算的物流区块链共识算法(CloudPFBT)运用在同城快递网络系统的物流交易中的去中心化安全性较高。试验2:基于云计算的物流区块链共识算法CloudPFBT算法的性能。在Hadoop云环境中设计分布了120个节点,分别对三种算法PBFT,MinBFT和CloudPBFT算法性能的比较;2.1、算法延迟比较如图5所示,在相同环境下,通过运用PBFT,MinBFT和CloudPBFT三种算法模拟物流交易过程,其中,PBFT算法需要3f+1节点才能容忍f个错误节点,MinBFT采用唯一顺序标识器,实现2f+1个节点容忍f个错误节点,在0-50ms的网络延迟中,三种算法均表现出递增的趋势,且波动较小,其中未优化的原始PBFT算法的总延迟最大;在0-30ms的网络延迟中,MinBFT算法和CloudPBFT算法两者的总延迟基本一致,表现出优化后共识算法该有的网络延迟水平,后者在后半程开始发力;从总延迟时间来看,CloudPBFT算法是延迟最小的,只有120ms。在实验中还发现节点越大,表现出延迟越小的趋势。由此可以得出,在算法延迟比较中,PBFT>MinBFT>CloudPBFT,表明CloudPBFT算法在网络通信上具有比较好的优势,节点容错上充分发挥了Hadoop云计算分布式节点运算的优势,提高了区块链技术在实际共识认证过程中的速度。2.2、算法吞吐量比较如图6所示,在节点数量小于10时,三种算法的吞吐量呈现出线性上升的趋势,CloudPBFT算法的吞吐量最大,达到了27000次。把节点数量逐步增到120个,CloudPBFT吞吐量任然能波动上升,最高能实现36000次。MinBFT算法在20-50个节点时表现出平缓的态势,之后继续增加节点数量,吞吐量随之增大,呈现出上升趋势,但也在27000次时趋于饱和。PBFT在10-120个节点数量之间,吞吐量表现一致,且还有略有下降的趋势。说明在相同条件下,CloudPBFT和MinBFT两种优化算法性能均优于PBFT。CloudPBFT拥有动态容错机制和实时分配副本的能力,使得在信息处理过程中能更快的处理错误节点,以保障吞吐量的稳定上升。2.3、算法容错性计算CloudPBFT算法最多能容忍个错误节点,分别假设f=0,5,10,15,20的情况下,观察算法延迟时间和区块高度,以判断该算法的容错区间。如图7和图8所示可知,错误节点在0-40之间,算法延迟时间呈下降趋势,说明该算法的容错机制能保证物流节点数在实际应用场景中可以完成操作,当错误节点数超过f的峰值时,延迟明显上升,且在半数节点为错误节点时,共识网络宕机,此时交易将自动重启。物流交易区块高度也随着错误节点的增加,不再增高,这是受该算法设定其容错机制的影响。综合以上可知,采用区块链技术和云计算,设计了云计算物流区块链模型,设计了基于实用拜占庭共识算法的CloudPBFT算法,保证了去中心化和不可篡改性的要求,应用了云计算的高鲁棒性,分布式存储的特性,解决了大规模共识运算的算力问题,为当前物流行业存在的交易不透明等一系列问题提供了区块链解决的思路,最后,通过仿真实验表明,该模型在安全性,稳定性,吞吐量都有较高的表现。这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明基于云计算的物流区块链共识算法的应用、修改和变化对本领域的技术人员来说是显而易见的。尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1