基于区块链的物联网数据共享平台设计
2022-09-07单玉东
单玉东
(青岛市技师学院 山东 青岛 266229)
0 引言
数据共享平台可以实现用户、应用系统以及整个业务流程中间的协同合作以及信息共享[1-2]。因此,这就要求数据共享平台不仅具有智能化查询与检索数据信息的功能,还应该包括挖掘数据信息以及重组信息的功能。对于物联网而言,物联网的主要特点是在海量终端生成大量数据[3],由于物联网数据具有数据规模大、结构化强以及时序性等特征[4],因此设计物联网数据共享平台时应考虑物联网数据的自身特点,进行多层次平台构建。区块链可以被视作一个共享数据库,存储于其中的数据或信息具有高效采集、不可伪造、身份认证、信息追溯、数据共享和公开透明等特征。作为链式数据结构,区块链各节点的数据块会依照时间顺序进行排列,确保数据共享的时效性。同时,区块链的数据可溯源且不可篡改的特点,能够有效确保共享数据存储的安全性。将区块链技术架构作为数据共享平台的底层架构支持,可以实现无需信任的点对点协作和交易,为数据共享提供了良好的技术支持[5-6]。基于此,本文设计了一种基于区块链的物联网数据共享平台,利用区块链的多层结构确保海量物联网数据可以得到较好的共享效果。
1 区块链技术下物联网数据共享平台架构设计
依据物联网数据共享过程构建区块链技术下的物联网数据共享平台,整体的物联网数据共享过程为:(1)物联网数据采集。收集物联网内资源数据,对数据进行实时更新处理后存储到特定的数据库中;初始化用户的身份信息和消息认证参数,并向客户端下发相关认证参数。(2)身份认证与访问控制。当客户端获取物联网感知数据后,通过提取数据的标签属性特征,经过身份认证与签名认证等处理后,将数据回传至服务器中[7-8]。(3)数据共享的实现。服务器收到回传数据后,利用服务管理智能合约进行数据查询,结合区块链技术查询到所需的存储于数据库内的目标数据,实现物联网数据共享。
以物联网数据共享为基础,利用区块链技术,将物联网数据共享平台分为4个层级(图1),即数据采集、更新和存储的数据层;射频收发及RPC通信的网络层;服务管理和交易的合约层;访问、签名、认证的应用层。其中,数据层和合约层是区块链技术应用中具有基础性特征的数据层,有效提高数据共享平台的数据处理能力;网络层是共享数据高效传输必不可少的环节,能够提高物联网数据共享平台的数据加载能力;应用层是确保数据可信、安全共享的层级,实现数据有效共享。
1.1 数据层
数据层主要包括数据采集模块、数据更新模块和数据存储模块。在数据采集模块中,配置的CPU核心控制模块需具有高处理速度、低能耗以及高性价比的优势,因此选取了具有32位ARM7TDMI-S架构的内核,其在输入和输出中均可配置灵活接入的通用I/O口。同时,利用STC12C5A32AD单片机进行数据的模拟输入,避免硬件上的直接连接,且该单片机内置10位AD转换器,具有处理速度快及价格低廉的优势。在数据更新模块与数据存储模块中,主要使用的数据库为MySQL数据库进行存储,该种数据库主要用于中小型关系型数据的存储与管理,该数据库可以依据不同的用户需求进行数据存储,具有方便查询的优势。在数据更新模块中,主要使用UpdateInfo作为在线更新数据表,该表中存储物联网感知节点的ID号、节点端硬件配置以及操作系统类型的编码信息、所运行的程序名称以及需要更新的物联网数据名称、类型以及软件的版本信息,同时可保存用户登录平台的用户名和密码等用户信息。
1.2 网络层
利用nrf24L01单片射频收发器件作为网络层的无线模块,该型号信号收发器具的工作频段为2.4~2.5 GHz,具有低功耗、传输距离较远的特点[9]。同时,该层配置区块链RPC通信模块,主要具有与区块链节点的通信功能。RPC通信示意图见图2。
根据图2可知,在注册中心完成IP、端口和接口的服务,优化网络层负载均衡。通过调用模块、传输模块和通信模块,三者相互作用提升数据推送和服务共享效果。调用模块通过对物联网数据进行装封,完成超时判断、熔断和限流,在资源库中实现对共享数据的序列化处理。传输模块通过协议编码的形式完成数据格式转换,通过可读的格式协议编码将数据存储至信息库,完成数据共享传输服务。通信模块需要利用协议解码的方式将信息库的共享数据进行解码网络传输,在数据库中生成具体化参数信息,为使用者提供集群化的数据服务。
1.3 合约层
服务管理模块主要负责服务管理与服务上传,其利用区块链交互接口包括服务注册接口、服务交易接口等。服务管理模块还可以提供数据服务功能,包括物联网数据浏览、数据查询、数据下载、目标数据挖掘等[10]。其中,数据查询记录本身是一种交易行为,每一次查询记录都会被记录下来,永久保存在区块链数据库里。查询记录的哈希码将一同被记录,用于校验查询时间、查询内容等细节。
1.4 应用层
应用层是底层区块链模块,包括身份认证合约、访问控制合约以及签名认证合约等。区块链技术可以加密物联网内所有数据,且每组数据均有单独的解密密钥。利用区块链的非对称加密对物联网数据进行密钥存储,提高物联网数据共享平台安全性。应用层在本质上可理解为是由集合A= {A1,A2,A3,… ,Ai}构成的网络数据集,其中包含公钥与私钥两种加密特性,可实现物联网共享数据的加密性上传与访问,保证数据调用、数据传输和数据通信的安全性。在应用层中,通过非对称加密设置访问控制,完成物联网数据共享平台的数字签名。基于网络数据集A内的不同特征类型共享数据生成访问控制密钥:
式中,P为公钥,I为私钥,γ为数据节点特征元素,v为数据链路速率。数据集A中的数据完成公钥和私钥后,发送公钥至访问请求数据节点,用以后续提取共享数据时使用。加密后的数据集A根据合约层的数据查询记录,对具体的共享数据Ai完成非对称式加密。在应用层中同意Ai通过公钥实现数据传输通信。Ai可以通过建立数字签名认证不同数据接收者,确保共享数据的保密性。通过公式(2)构建子签名Hi:
式中,di为随机数,当P和I的最大公约数[gcd (P,I)]为1时,则子签名Hi的解密存在一定的时效。在此条件下,Ai完成物联网数据共享平台的密文通信设定。用私钥加密共享数据,利用数字签名认证完成随机对称加密。保密层通过对使用者的身份认证,验证不同访问签名的准确性,若通过身份验证即可在数据层、网络层、合约层存储访问请求,实现物联网数据共享的安全性。
2 平台性能测试
物联网数据具有实时性更新以及高并发请求的特点,因此以吞吐量、共享丢包率以及平均处理时间作为实验指标。选取ECS服务器用于性能测试,内存为16 Gb,运行系统为Windows 7.0,CPU频率为2.5 GHz。选择了3个物联网数据集分别标号为数据集1、数据集2和数据集3,各数据集公开数据的占比分别为0.3,0.6和0.9,具体数据集信息见表1。
表1 3个数据集基本情况
2.1 吞吐量测试结果
随机选取800个不同数据节点特征元素的物联网数据作为测试对象,在平均处理时间为300 ms的设定下,通过模拟1 200次的数据共享请求,测试平台吞吐量。测试结果见图3。
对图3中的吞吐量数据进行分析可知,随着测试次数的增加吞吐量先增加后下降,在模拟请求次数为600次时趋于稳定。这是因为,在前期的测试模拟请求过程中,需要通过密钥加密和解密数据的交替转换,所以在数据处理过程中产生了一定的数据能耗。通过200次的数据转换完成了密钥的设置全流程,所以吞吐量后续保持在稳定的数值区间范围内。
2.2 共享丢包率测试结果
共享丢包率可以有效反映平台的数据共享效果。丢包率数值越小,则平台共享效果越好,具体公式如下:
式中,E为测试中所丢失物联网数据共享数量,Q为总体物联网数据共享信息个数。
测试3个数据集的共享数据传输速度与收发数据量结果见表2。
表2 3个数据集的基本测试结果
结合表2数据,可以看出本文所设计对不同数据集的传输速率与预期传输速率相差不大,满足数据共享过程的通信传输需求。通过丢包率结果可以看出,本文所设计系统的丢包率较低,可满足数据共享的实际需求。
2.3 平均处理时间
通过迭代方式,验证平台的数据共享效率,对平均处理时间进行测试,平均处理时间越短,表明物联网数据共享平台数据处理效率越高,平均处理时间越长,表明物联网数据共享平台数据处理效率越低。测试结果见图4。
根据图4可知,由于在物联网数据共享平台设计中利用区块链技术,通过数据层、网络层、合约层和应用层对物联网数据共享行为进行功能设定,提升了数据共享平均处理时间。因此,在多次迭代测试过程中,随着迭代次数的增加,共享数据的平均处理时间在300 ms以下,由此表明物联网数据共享平台数据处理效率较高。
3 结语
针对物联网数据共享过程容易丢包且数据共享延时较长的问题,本文结合区块链技术设计了物联网数据共享平台。实验发现所设计平台共享速度快、传输数据完整以及可以吞吐量较高的特点,表明所设计平台可为物联网数据共享提供一定的参考与借鉴。