基于区块链的电子仓单可信存储技术

2020-01-17 03:07:48王文奇关云云
应用科学学报 2020年1期
关键词:仓单记账视图

王文奇,潘 恒,潘 磊,关云云

1.中原工学院计算机学院,郑州450007

2.中原工学院前沿信息技术研究院,郑州450007

3.中原工学院图书馆,郑州450007

物流仓储是现代物流系统中的关键环节,而仓单是指仓储方签发给存储人或货物所有人的记载仓储货物唯一合法的物权凭证.《合同法》第387 条规定:“仓单是提取仓储物的凭证.存货人或者仓单持有人在仓单上背书并经保管人签字或者盖章的,可以转让提取仓储物的权利.”[1]

仓单是以可信的仓储物品为核心的信息表达,而仓储物品背后是以仓单形式确定的物权以及转移关系.不仅要求仓单所代表的存储物及存储过程是可信的,而且必须要求仓单具有有效性、可信性、不可篡改性等高安全等级[2].

仓库存储是在特定场所存储物品的行为,通过仓储对物品存储和保管.在供应链中,货物在仓库的停留时间最长,由此可见仓库存储是核心节点.只有在可信的仓库存储基础上,才能构建供应链之间的信用关系.然而,在存储过程中可能面临各种风险,如调换、盗窃、损坏等.为此,在现代仓储过程中采用摄像、震动传感器、温湿度传感器等大量的物联网设备监控仓储物品,从而产生大量的监控信息,目的是在保障货物安全存储的同时为货物背后的货主、仓单交易以及其背后承载的金融特征执行背书的任务.当采用传统存储技术时,这些信息理论上是可修改的,因而无法厘清管理与物权等各方责任,最终导致仓单是不可信的.

区块链技术是近年出现的分布式账本技术,其特点是:去中心化、公开透明、不可更改、不可伪造等[3].区块链因这些特点而具有安全可靠性高、难以伪造、存入信息不可篡改以及可溯源等优势.因此,如果能将以仓储为核心的相关信息存入区块链,建立一条可信而完整的监控货物信息链,将有助于供应链各参与方之间建立信任关系,为仓单进行可靠性背书,同时利用传统比特币的交易特征为建立电子仓单交易提供可能.为此,文献[4]基于超级账本技术建立了一个仓单交易系统;文献[5]采用超级账本1.0 技术将交易信息写入区块链;文献[6]基于以太坊技术利用智能合约实现仓单交易业务合约;文献[7]则提出了供应链模型使之适用于区块链系统;文献[8]讨论了利用区块链建立电子仓单的可行性;文献[9]基于区块链系统建立了谷物类仓单交易平台.综上所述,目前的相关研究大多将仓单信息记录于区块链,而没有记录物流仓单的物联网相关信息;同时作为合约记录电子仓单相当于记录了交易过程,获得仓单时需要综合这些合约以获得交易结果,而不是直接按照交易算法计算交易的结果.

针对上述问题,本文旨在利用区块链的不可修改特性,针对仓储系统的特性,研究并设计一个可信的信息存储以及电子仓单交易平台,将以仓单为代表的仓库各种货物相关信息以及监控货物的物联网信息存储为可信信息链,为建立供应链各参与方之间的信任关系以及可信的仓单转让提供底层数据平台支撑.

1 实施方案

本文结合现代仓储系统的网络架构特征,针对供应链系统可信性需求,利用区块链的不可篡改性以及可追溯性等特点构建基于区块链的仓单仓库存储系统.该系统支持Internet 网络下的局域网、移动网络、WIFI等多种接入,支持手持、摄像头、射频识别器(radio frequency identification, RFID)等各种硬件设备的信息采集与传输,支持物流仓单金融中货主、仓库保管以及银行等各个角色接入查询,使参与各方达到风险可控的目的.

基于以上要求,为支撑仓库物流系统的管理以及供应链系统,采用如图1所示的网络拓扑架构.

图1 物流仓储区块链网络拓扑架构Figure 1 Blockchains network topology about logistics storage

系统中包含如下主要角色:全网唯一的CA 认证服务器、各个相对独立的仓储子网系统、以手机为代表的货主手持设备作为区块链钱包以及部分Internet 区块链记账节点.这些角色以构建的区块链系统为支撑平台,通过Internet 互相连接起来.

每个仓储子网可以采用私网组网,但需要一个公网接口与Internet 互联.子网中包含一个唯一的区块链记账节点,包含手持设备、RFID、摄像头等物联网设备.为保证所有区块链记账节点能够在Internet 中互联,在Internet 公网中至少部署一台以上区块链记账节点.

区块链尽管采用了签名机制,但签名本质上还是虚拟信息.因此,为了能与真实的物理世界关联起来,引入数字证书.本系统具有以下作用:1)以数字认证中心(certificate authority,CA)注册的方式把真实世界中主体与区块链中存储的虚拟信息相关联;2)提供设备准入机制,并使入网的设备具有不同的身份;3)记账节点可以采用双重签名,从而提高区块链存储信息的安全性.

CA 通过注册系统(registration authority, RA)实体认证并颁发证书,其作用如下:1)保证了各物联网参与设备以及仓单转移参与方的实体认证特征;2)在数据存储和交易过程中对存储数据加密签名,利用证书对加入的主机进行验证以保证私有链的可靠、可信和稳定;3)在数据查询验证时,利用数字证书系统对存储数据签名进行验证;4)利用证书系统将区块链中生成的私钥加密签名,并支持基于证书的钱包数据导出.利用数字证书技术将区块链的私钥进行加密保存,从而降低了传统区块链系统私钥明文保存而面临钱包数据可能丢失的风险.

基于上述特征,本区块链系统采用私有链系统,其总体设计框架如图2所示.

系统底层利用区块链的核心架构,采用Berkeley DB 数据库存储技术将数据按照块进行存储.设计共识机制算法,定时协商特定的记账主机产生区块,采用Hash 算法将各个区块链接起来,再根据Hash 算法将存储的数据生成Merkle 树以方便查询.对于每一次存储的数据,利用非对称密钥技术将数据加密存储;利用P2P 技术将所有用户的所有交易及存储数据广播于全网节点,其他节点则根据交易规则验证数据的有效性.

在区块链核心技术以及数字证书技术支撑的基础上,重新设计上层的共识机制算法、交易算法、数据查询算法,使系统更适合仓储信息的交易、存储以及查询,最终达到为物流仓单金融有效背书的目的.

图2 系统设计框架Figure 2 System design framework

2 共识算法

2.1 共识机制架构设计

共识机制是区块链中的核心技术点.多方参与节点在预设规则下通过节点间交互对数据、行为或流程达成一致的过程称为共识.共识机制是指定义共识过程的算法、协议和规则,按照共识的过程分两类:第1 类是概率一致的共识,也即工程学上的最终确认;第2 类是绝对一致之后再共识,共识即确认[10].

当前已有的共识算法不适合本系统架构,原因如下:1)本区块链系统参与记账节点的规模相对较小,其量级在几个到数百个之间.在这样的规模下需要考虑网络不稳定性(如节点的掉线和上线),而已有共识算法考虑的是规模较大的网络.从宏观上来看,规模较大的网络是稳定的,不需要考虑网络的不稳定性.2)没有考虑参与创建区块节点的可认证性,也没有对创建区块节点进行认证;3)如果能够给予参与的物联网设备一定奖励机制,则会激发更多用户安装更多的物联网设备,从而提高仓储货物的安全性,而已有共识算法没有这样的设计.

综合以上因素,本共识算法采用第2类的共识机制,即绝对一致共识.设计了基于信誉度的共识算法,架构设计如图3所示.共识算法采用3 层架构设计:物联网设备层(投票)、链作业层(记账)、管理层(CA 身份认证、账本存储),共识算法通过多层次设计降低了数据存储的需求,提升了区块生成者的随机性.

图3 共识算法设计框架Figure 3 Consensus algorithm framework

物联网设备通过记账节点参与投票,为提高各物联网设备参与投票的积极性,创建了虚拟货币瑞福币.当投票记账节点获得创建区块权利时,记账节点获得100 瑞福币,并将瑞福币分配给参与该记账节点投票的物联网设备.

首先给出以下定义.

1)设备ID

设备ID 是记账节点以及物联网设备都拥有一个全网唯一的ID,为4 字节的无符号整数,由管理层统一分配管理.

2)记账节点信誉度

记账节点信誉度是表示记账节点可靠性的参数.在每个记账周期,节点的信誉度值增加1,达到最大值时便不再增加.

3)主节点视图

主节点视图是指记账主节点广播于全网的所有信息,包括记账主节点ID、信誉度以及投票信息.一个协商周期结束后,各记账节点广播该节点的所有信息.

4)全主节点视图

所有主节点视图构成了全主节点视图.

接下来描述各层角色.

1)管理层

a)包括CA 服务器,负责为物联网设备和记账主节点颁发数字证书;

b)分配并管理记账主节点、物联网设备ID;

c)负责保存设备在区块链中的钱包地址(区块链中的公钥),将ID与物联网设备在区块链中的钱包地址对应;

d)应答查询ID 对应的信息,如根据设备ID 查询对应的钱包地址.

2)记账主节点

a)根据共识算法获得记账权时创建区块,并根据投票给物联网设备分配瑞福币,分配策略是:通过设备ID 与管理层通信来查询获得物联网设备的钱包公钥,进而交易给对应的物联网设备;

b)根据共识算法验证产生区块的合法性;

c)广播物联网设备的投票信息,并转发广播信息;

d)向所关联的物联网设备广播全主节点视图.

3)物联网设备

a)物联网设备是指加入仓单系统中的各种物联网设备,如监控摄像头、RFID 读写器、NVR、手持设备等;

b)首先由设备厂商为每个设备在区块链系统的管理层注册一个钱包,然后在管理层注册钱包地址,并由管理层分配设备ID;

c)获得参与投票全节点视图,并根据全节点视图投票;

d)在每一个产生区块周期内,投票创建区块记账节点的设备获得对应的瑞福币.

2.2 注册认证

首次加入区块链系统时,物联网设备需要向管理层注册认证,其流程如图4所示.

图4 注册设备流程Figure 4 Process about registering device

注册认证算法的具体步骤如下:

步骤1物联网设备首先向区块链系统申请一个钱包地址;

步骤2物联网设备向管理层设备注册,注册内容包括物联网设备钱包地址以及其他信息,如设备商的物联网设备编号等信息;

步骤3管理设备收到注册信息后,给物联网设备分配一个设备ID,然后保存设备数据库记录分配的ID、设备商的钱包地址,返回设备ID 信息.

加入区块链时,记账主节点向管理层注册认证,具体步骤如下:

步骤1向管理层主机申请一个数字证书;

步骤2向管理层主机申请分配一个设备ID.

2.3 共识算法描述

共识算法为周期性运行算法,其整体框架如图5所示,分为投票周期、协商周期、创建区块周期、权益分配周期.其中,权益分配周期和上一个创建区块重叠,即共识算法周期实际需要的时间为前3 个周期.

图5 共识算法周期Figure 5 Consensus algorithm period

共识算法中各周期的流程如图6所示.对于初次加入的记账主节点,将其信誉度置为0.当其信誉度小于4 时,没有投票和记账的权利,只能接收全网视图的广播.每经过一个记账周期,信誉度增加1.当信誉度达到5 时,该记账节点信誉度不再增加,目的主要是防止那些网络状况差或者频繁加入退出区块链系统记账节点,以免造成全网的系统不稳定的情况.

图6 共识算法流程图Figure 6 Flow chart of consensus algorithm

最优全节点视图算法描述如下:在每个记账周期内,上一轮记账周期协商的创建区块节点将广播全节点视图,记账节点将广播对上一轮记账周期协商创建区块节点的评价.5轮之内,评价最优的创建区块节点所广播的全节点视图就是最优全节点视图.

2.3.1 投票周期

在投票周期内,物联网设备投票记账节点,投票算法如图7所示,具体步骤如下:

步骤1由记账主节点将上一个创建区块周期内全主节点视图中各节点的ID 广播给所关联的物联网设备;

步骤2物联网设备随机投票选择一个记账主节点ID,并将消息传递给所关联的记账主节点.

图7 投票周期流程Figure 7 Flow chart of voting period

2.3.2 协商周期

在协商周期内,各记账节点在全网范围内广播记账节点信息,并使各节点获得一致的信息.具体做法如下:每个记账主节点将本节点获得的全网视图和上一轮创建区块记账主节点广播的全主节点视图比对,如果不一致,则评价上一轮创建区块记账主节点信誉度为0,否则评价该节点信誉度为1.

每个记账主节点需要广播以下内容:1)各物联网设备的投票信息,如物联网对应的ID 及其投票记账节点ID;2)记账主节点视图;3)上一轮创建区块记账主节点信息,包括ID 及信誉度.

由于本轮周期内关键的问题是消息的广播算法,可以采用与Bitcoin 类似的通用算法以防止出现广播风暴.

2.3.3 创建区块周期

创建区块周期由以下两部分组成:1)各记账主节点根据选举算法协商出一致的创建区块记账主节点;2)获得创建区块权的记账主节点创建区块并广播,其他记账主节点则验证区块合法性.

协商创建区块主节点算法的步骤如下.

步骤1参与创建区块的记账节点需要满足以下两个条件:一是记账主节点的信誉度等于5,二是获得的物联网设备投票数大于一定的阈值.

步骤2从有条件参与创建区块选举的记账节点中,按照统一的随机选取算法选择一个创建区块记账节点.

获得记账权的记账主节点创建区块,在区块头增加自己的签名信息,并在区块中创建一个给自己100 个瑞福币的交易,创建区块后向全网广播区块.

其他记账主节点的算法步骤如下:

步骤1收到创建区块后根据区块头信息验证是否为协商结果节点,如果不是,则丢弃该区块.

步骤2验证加密签名消息,如果验证不成功,则将该节点的信誉度的设置为-1 000(这是一个极大负值,目的是阻止其创建区块).

步骤3所有参与记账节点将在自己的全网视图上将创建区块节点的信誉度设为4,以防止该节点连续创建区块.

步骤4如果周期内创建区块节点没有创建区块,则其他所有节点将该节点的信誉度置为0,重新开始协商.

2.3.4 分配权益周期

获得创建区块权的记账主节点需要广播上一轮记账节点视图,目的是让其他记账主节点验证创建主节点的信誉度.分配权益算法的具体步骤如下:

步骤1创建区块记账节点向管理层主机发送查询消息,通过投票给自己的设备ID 来查询物联网设备的钱包地址;

步骤2创建区块记账节点创建交易,将创建区块获得的瑞福币权益经交易转给物联网设备,从而将瑞福币存入物联网设备的钱包.

2.4 双向确定机制

本共识采用双向确认机制,如图8所示.

图8 双向确认机制Figure 8 Two-way identification mechanism

双向确认机制的具体步骤如下:

步骤1本轮协商出记账主节点后,认为该创建区块节点为高可靠节点.获得创建区块权利的记账主节点除了创建区块之外还将广播全节点视图,而其他节点则根据统一的协商算法验证创建区块的合法性.

步骤2在分配权益周期期间,其他记账主节点除验证创建区块主节点ID 的合法性之外,还要将本地全节点视图和创建区块权利记账主节点广播的全视图进行相似对比;根据相似度算法,如果相似度大于一定阈值,则认为该节点可信.之后在协商周期期间,各节点都将广播创建区块节点ID及其可信度.

步骤3每个节点收到广播信息后,统计全网内所有节点承认的创建区块节点ID 并评价可信度,从而确认一个为大多数节点所承认的创建区块节点为合法创建区块节点,并确定上一个区块为可以确信的合法区块.

因此,共识算法承认一个交易的合法性区块高度为2,也就是该交易在创建两个区块之后才可以将其确认为合法的区块.

2.5 安全性分析

假设在此网络中消息可能会丢失、损坏、延迟、重复发送,并且接收的顺序与发送的顺序不一致.此外,记账节点的行为可以是任意的,既可以随时加入或退出网络,又可能丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障.考虑到网络的延迟问题,各节点不可能是完全同步的,因此周期的设置要考虑网络延迟的冗余.

共识算法可以有效解决以下4个问题:1)保证数据一致性;2)防止创建区块节点造假;3)防止少部分节点联合造假出现分叉,或者少部分节点因网络原因而出现硬分叉现象;4)防止网络较差节点

2.5.1 保证数据一致性

保证数据一致性是共识机制的核心问题,实用拜占庭容错算法(practical Byzantine fault tolerance, PBFT)采用复杂的状态机,因此需要较长时间来保证各节点达成一致的视图.随着节点规模的增大,达成共识需要的时间大大增加,显然不符合效率需求.要取得与其他节点的共识,PBFT 明显要比Bitcoin 漫长得多[11].因此,PBFT 也是目前无法实用化的理论共识.

本算法采用的双向确认机制可以使全网记账节点更快地得到一致性全网视图.

1)对于初始节点,其信誉度小,没有记账权限,但在这个过程中,可以获得创建区块节点广播的视图以及其他记账节点广播的创建区块记账节点确认信息.根据这些信息,初始节点可以确认全网视图的可信度.因此,当其信誉度达到具有参与协商权利时,可以选择最高可信度的创建区块节点所广播的视图作为初始全网视图,最终保证了初始记账节点在具有参与全网协商创建区块权利时获得一致的全网记账节点视图.

2)对于具有记账权限的普通节点,若因各种网络原因与其他节点全网视图不一致,则可以根据可信创建区块广播的视图获得一致信息,从而确保该节点与其他全网记账节点视图的一致性.

综上所述,全网在每个周期都能保证一个一致的全网视图信息.

2.5.2 防止出现网络分叉

当少部分节点联合造假时,可能出现分叉现象;或者各种网络故障也会引起部分节点与其他网络不同步而出现分叉现象[12].在这种情况下,可以采用双向确认机制,由记账节点统计上一轮合法的创建区块记账节点的认可数,根据多者胜出的原则最终使分叉的区块链合并到统一的区块链.

如图9所示,当出现网络故障时,故障网络选举节点B作为创建区块节点,而正常网络选举节点A作为创建区块节点.节点A、B同时创建区块,从而出现区块链硬分叉现象.在下一个周期中,A节点是大多数网络协商确认的创建区块节点,获得确认节点数为4,同时B是少数网络协商确认的创建区块节点,获得的确认票数为2.因此,B创建的区块是不合法的区块.在故障网络中节点B、C、D将抛弃节点B创建的分叉区块,从而将区块链统一于A创建的合法区块链;同时,故障网络中记账节点B、C、D通过节点A广播的全网视图也可以获得与全网一致的视图信.

图9 防止网络故障硬分叉Figure 9 Preventing hard fork in network faults

2.5.3 其他问题

对于初次加入网络的节点,其信誉度为0,表明这些节点没有参与选举的权利,这主要是为了防止节点停止工作以及网络状态差的节点.

除此之外,如果在一个周期内协商出的创建区块节点因各种原因而无法创建区块,各节点就把这个创建区块节点的信誉度设置为0,并启动下一轮的协商,这样就可以在一定时间内禁止那些网络状态不好的节点参与创建区块.

对于那些恶意节点,如无法通过签名认证的节点,直接将其信誉度设置为-1 000,于是就能在较长时间内阻止高风险节点作恶的可能.

2.6 算法特征

本共识算法具有如下特点:1)采用物联网投票方式显然符合瑞福链中物联网设备利用投票获得收益的机制;2)可以在较短时间获得一致信息,有助于在较短时间内创建一致区块;3)合法确认区块长度为2,表明可以高效确认;4)能够防御出现区块链分叉等各种攻击.

3 信息存储及交易设计

信息存储及交易设计需要考虑以下的存储需求:

1)仓单信息的流转信息需求.不同于比特币是纯数字的交换过程,仓储中数字和货物信息相关联的.不同信息的资产合并和分离需要根据其特定的规则进行处理,如对大蒜物流的处理,只有相同品质的大蒜仓单才能合并,而不同品质的大蒜仓单是不能合并的.

2)不同类型信息的存储需求.支撑仓单的物品存储于仓库,必然包含大量监控仓储的信息,如RFID 接收的货物相关信息以及视频、振动告警等各种传感器收集的信息.这些信息格式不同,需要考虑其不同的存储需求.此外,这些信息具有只可存储不能交易的特性,目的主要是当存储物品发生毁坏、被盗以及不可预知自然灾害时,能够厘清保管者、拥有者及运输者等各方面的责任,追溯问题源头.因此,需要在底层设计存储单元的信息格式,使系统适应仓储供应链信息的存储需求,同时根据仓储仓单流转规则设计交易算法,目的是保证不同类型的信息能够以不同类型的交易方式存储,并在底层保证仓储仓单流转的合法性.基于以上分析,基于比特币源码将进行以下修改:各类信息存储格式的修改、交易类型的修改、钱包生成的修改.

3.1 各类信息存储格式的修改

不同于比特币只是存储单纯的数字信息,本系统中区块链存储信息为仓储仓单流转信息,以及各种监控系统产生的日志.对于Bitcoin 源码,需要将原来单纯数字信息存储转变为适用于各种仓单及多种类型仓储信息的表达和存储.为此,借助面向对象技术将原存储纯数字“币”的信息扩展为可以表示仓单以及其他信息的类,具体算法描述如下:

类中增加了仓单ID、仓单相关信息以及其他数据类型,因此需要从区块中读出和写入增加的信息.Bitcoin 源码中提供了序列化方式将数据写入区块,并通过逆序列化方式从区块中读出相关数据.为此,利用这一机制重写了CAmount 序列化模板和逆序列化模板,将CAmount 的相关信息读出和写入区块;同时,利用面向对象技术并根据仓单的交易规则重载了该类的加、减、比较等操作,目的是在交易仓单或生成钱包时能使CAmount 生成的对象进行各种符合规则的运算.

3.2 交易类型的修改

为适应不同类型信息流转的需求,修改交易规则,如日志等监控信息是只可存储而不能交易的,电子仓单是可以交易的,于是在交易类CTransaction 中增加以下数据类型:

TRANSACTION_EXCAHANGEABLE_INIT = 0x10, //第1 个16 位大于0 为可交易类型,第2位表示该类型的不同状态

交易类型总的来说可以分为3 种类型:不可交易类型、电子仓单交易类型、纯数字币类型交易.在交易函数中,根据不同的交易类型采用不同的交易规则.

3.3 钱包生成的修改

在区块链系统中,所有的信息存储于区块链.各用户从钱包读取自己的数据,钱包的生成算法如下:将区块链上与自己相关的交易按照交易算法进行计算,并将结果保存于自己的钱包,用户读取的实际上是区块链中交易计算的结果.

对于本系统而言,生成钱包时需要根据交易类型设计不同的交易算法,并生成不同类型的信息.用户读取钱包数据时,应针对不同交易类型设计不同的读取方法.对于虚拟币交易的算法,除了产生交易的费用算法不同之外,其他算法与原算法大致相同;对于电子仓单类型数据的交易算法,则按照电子仓单的交易特征只能进行转让并附加转让物权的变化等信息;对于日志等类型的存储,则只能读取而不可交易.

4 测 试

系统开发基于开源软件Bitcoin Core 0.14 版本,基于C++11 开发,操作系统平台为基于Linux 内核的Ubuntu 17.0,编译器为GCC 7.2,区块数据库采用Berkeley DB 5.0.

租用一台阿里云的服务器操作系统Linux 作为CA 服务器,在腾讯云和阿里云分别租用分布于不同地区的两台操作系统Ubuntu 的服务器,作为保存于公网的区块链记账节点,并以一台本地Ubuntu 作为模拟本地仓库的区块链记账节点.目的是测试不同网络中的区块链记账节点的数据通信效能.

采用2.3 所示的共识算法,设置共识周期为30 s.系统中广播的信息包括存储交易的仓单、物联网监控信息以及共识算法信息.系统需要在固定周期内将这些信息广播于区块链中各个节点,由于交易仓单数量以及物联网监控信息随着系统规模扩大而增长,系统中面临的主要问题是在互联网中单位时间内广播这些存储信息的能力.其中,需要测试的能力之一是系统存储仓单信息的能力,也即交易吞吐量.在实际使用过程中,普通电子仓单信息量约为2 kB.基于包含仓单的扩展信息以及一定的冗余量,模拟一张电子仓单的信息量为4 kB.实验分析如表1所示.

表1 仓单交易实验对比Table 1 Comparison of warehouse receipt transaction

对于仓储中物联网设备的信息存储,考虑到区块链分布式存储的特征,存储容量大的视频信息是不现实的,为此采用以下存储原则:NVR 存储文件信息SHA160 报文摘要码,RFID只存储货物震动的告警信息.因此,物联网设备每次存储的信息量比较小.根据测算得到物联网设备每次存储的信息量最大约为250 B,区块链存储信息实验如表2所示.

表2 物联网信息存储实验对比Table 2 Comparison of storing Internet of Thing information

从表1中可以看出,区块链对仓单的交易通量大约稳定在12.40 条/s.从表2中可以看出,存储物联网信息的交易通量大约稳定在120.00 条/s.基于对数10 个仓储的分析可知,一个万余平方米的大型仓储系统在一天产生的仓单交易量最多100 余单,而其产生信息的物联网设备平均每天为2 000 多个.综合以上分析及测试可知,本文所设计的区块链存储系统足够数千个大型仓储系统同时加入区块链系统,基本上满足了设计的要求.

另外,建立了4 个Internet 区块记账节点和20 个局域网区块记账节点的实验环境,采用拔掉网线的方式模拟网络故障.经测试可知:系统能够在2 个共识周期内重新同步全网节点状态并继续正确运转,充分说明了共识算法具备良好的容错性.

5 结 语

本文利用区块链技术针对电子仓单的交易以及仓储信息的可信存储进行了研究,在开源Bitcoin 源码的基础上设计了针对物联网特征的基于信誉度共识机制算法,设计了针对电子仓单交易以及物联网信息的可信存储算法.实验表明,区块链系统满足了仓储物流在实际应用中的仓单交易、仓储信息存储的要求.实际上,本区块链方案设计不仅可以存储电子仓单,也可以应用于其他供应链、信息交易等场景.根据具体的应用场景测试最佳工作参数,提高系统效率使之更适合仓储领域,将是下一阶段研究的重点.

猜你喜欢
仓单记账视图
论仓单质押的法律风险及其防范
记账类APP
记账类APP
记账理财的好处有哪些
农家参谋(2019年2期)2019-09-10 03:54:02
5.3 视图与投影
视图
Y—20重型运输机多视图
现代兵器(2017年4期)2017-06-02 15:59:24
SA2型76毫米车载高炮多视图
现代兵器(2017年4期)2017-06-02 15:58:14
仓储企业如何涉足仓单
——专访中仓仓单服务有限公司董事总经理杨沁河
中国储运(2016年1期)2016-07-11 10:37:21
关于仓单的学与问
中国储运(2016年11期)2016-02-13 05:41:20