蒋海燕
摘要:为了更好地对停车场进行管理,本文以区块链技术为依托,开发出了一款性能良好,功能较为健全的智能停车系统,该系统共由应用层、服务层、数据层、网络层、物理层五个层级构成,每个层级具有不同的功能。最后通过系统测试的方式,对本系统应用效果进行检测,通过测试可以发现,本系统性能与功能基本符合预期要求,可将其应用到实际当中。
关键词:区块链智能停车系统Fabric平台智能合约部署交互信息配置
中图分类号:TP31
Design and Research of the Intelligent Parking System Based on the Blockchain
JIANG Haiyan
(Hengyang Preschool Normal College, Hengyang, Hunan Province, 421001 China)
Abstract: In order to better manage parking lots, this article develops an intelligent parking system with good performance and relatively sound functions based on blockchain technology. The system consists of five layers: the application layer, the service layer, the data layer, the network layer the and physical layer, and each layer has different functions. Finally, through the method of system testing, the application effect of this system is tested. Through testing, it is found that the performance and function of this system basically meet the expected requirements, and that it can be applied in practice.
Key Words: Blockchain; Intelligent parking system; Fabric platform; Intelligent contract deployment; Interactive information configuration
隨着现代人生活水平的不断提升,私家车数量逐渐增加,使得社会中出现了严重的交通拥堵与停车难的问题,对人的生活与工作造成一定干扰。这一背景下,我国很多地区开始利用各种手段解决停车难的问题,其中,智能停车系统是一种较为良好的方法,通过系统对停车场使用情况予以检测,并与用户进行信息交互,为用户停车进行指导,从而解决停车难的问题。
1 总体设计
1.1框架设计
本文在传统停车系统的基础上,增加了区块链技术,以此设计出一种全新的智能停车系统,其中,共由5层构成,具体叙述如下:
(1)物理层,即系统所包含的各种设备装置,如车位计数器、门禁装置等,用于对车辆的进出与车位的计数进行管理。
(2)网络层,包含诸多网络设备,如交换机、防火墙等,用于促进系统间数据的传输、共享与保护,以此为整个系统安全、稳定的运行提供数据支持。
(3)数据层,用于表征数据处理过程的描述,是整个系统中最为核心的层级。
(4)服务层,主要为后端服务器,用于驱动区块链的运行,接收用户端传输的指令,对业务逻辑进行分析,将得到的结果反馈给用户端。以车位宽窄度为例,利用现场安装的红外传感器,分别对停车场长度l2与宽度w2、车辆的长度l1与w1进行检测,进而自动推导出停车位宽窄度β,最后,将计算结果传输给用户,由用户判断该车位是否可以停放自己车辆。其中,β计算公式为:
(5)应用层,又可称之为客户端,用于车辆驾驶员、停车场管理员等不同用户的操作,以达到人机交互的目的[1]。同时,在各层级之间,利用调用函数的方式,将各层级连接到一起,确保各层级能够独立运行的同时,又可同时为用户停车提供指导,从而提升停车场管理效果。具体如图1所示。
1.2运行环境配置
本系统运行环境设计时,选择的是阿里云服务器,相对于本地服务器来说,云服务器性能更加良好,存在更多的计算机资源,且部署更加方便,开发成本更低,有利于系统的实现[2]。具体来说,运行环境配置参数为:Ubuntu18.04 64位操作系统;ecs.c6.xlarge实例规格;Intel Xeon E5-2682v4/Intel Xeon Platinum 8163 处理器;内存为4Gb,存储容量为40Gb的内存。
2 数据层设计
2.1开发环境
系统Fabric网络中存在大量节点,各节点可看作简单的服务器。具体开发时,若直接将大量计算机互联到一起,不仅需要投入大量资金,而且操作难度较大,因而需要安装虚拟机。但需要注意的是,以Fabric为基础构建区块链时,虚拟机的安装则会影响系统设计效率,并对系统后续运维造成干扰,不利于整个系统安全、稳定的运行。为此,本系统设计时,运行环境选择的是docker引擎。其核心内容为“标准化”,以开发出标准化的应用程序与操作流程。同时,通过docker引擎的应用,还会提升系统开发、测试与运行环境的规范性与一致性,有利于保证系统开发质量。利用引擎中的集装箱隔离机制,使各进程保持独立,限制了各进程间的干扰,同时节约CPU占用量,防止一个进程出现问题而使整个系统崩溃。在Docker镜像库方面,通过联合分层的方式对资源进行管理,每个镜像的底层文件仅需加载1次,因而系统拓展效率更高。本系统设计师,docker版本为20.06.3-ce,共包含2个安装指令,具体为:(1)指令1,系统中安装Docker后,在docker开源项目中,直接选择并安装相应的容器启动工具docker compose,通过该工具的操作,可同时操控多个docker容器,使得系统具有较高的容器管理效率,docker compose的版本为1.20.1;(2)指令2,主要用于docker compose的安装,或是对系统操控权限的设置。
2.2构建Fabric平台
开发环境部署结束后,则应构建Fabric平台,用于区块链的开发与测试。Fabric平台构建流程具体如下:
(1)加载Fabric工具,通常来说,Fabric源码主要存在git-hub内,因而Fabric平台加载时,先要安装git工具,即将Ubantu软件安装员更新后,立即安装git,并添加指令3。之后将选择好的Fabric工具加载到系统中,其中Fabric工具的版本为1.1.0,通过指令4控制该工具的加载。
(2)获取Fabric组件。通过封装镜像文件的方式,将Fabric载入到docker倉库内,应利用相应的docker指令,将其拖拽至本地服务器中。其中,主要镜像如表1所示。其中,ca表示证书镜像,用于系统内各节点与操作权限的管理;couchdb表示数据库镜像,用于控制系统内数据的传输、存储等;kafka表示共识算法镜像,用于管理Oederer节点的共识;zookeeper表示集群管理镜像,用于对整个系统进行统一的管理[3]。获取Fabric组件时,主要通过指令5进行控制。
3 服务层设计
3.1开发环境
Fabric区块链内,以RPC协议接口为媒介,对Peer节点内的链码进行访问,因而在服务层和数据层信息交互时,应载入一个node sdk源码。开发环境配置时,先要载入nodejs环境,之后安装开发所需的各个模块。操作与数据库运行环境配置基本相同,在此不再赘述。在模块方面,主要包括:fabric-ca-client,可赋予工作人员权限,并对角色信息进行注册;fabric-clent,向系统传输指令或请求;grpc,为系统内部信息的交互系统[4]。
3.2权限信息注册
Fabric平台运行时,只有用户获得相应的权限,才可与Fabric平台进行交互,使用平台内各种操作与服务。所以,本系统服务层设计过程中,采用nade sdk编写admin与user逻辑的方式,分别构建出对应的证书文件,从而控制用户操作权限的赋予。其中,admin注册时,主要由Ca创建实现;User的注册,主要通过admin授权实现。注册后,可得到对应的公钥—私钥,以此当作用户的证书文件信息。
3.3服务器脚本编写
(1)交互信息部署。所谓的交互信息,指的是用于连接服务器端与Fabric平台的信息,用于控制交互逻辑的运行。具体有:相应模块、通道的名称,节点的传输路径、证书文件等。
(2)服务器端脚本编写。根据停车系统业务功能需求,按照Express框架原理,对控制代码进行编写,其中,调用HTTP指令为核心,采用的是查询方法quertAllPark,获得响应结果后,通过字符串的方式,将结果展示出来。
(3)服务器脚本部署。以Express框架为基础,对系统服务器脚本进行编写,因而在编写前,应先加载Express服务器,主要通过指令14进行控制。在Express服务器上,添加对应的中间件connedt-multiparty,以此用于响应post指令。最后,对脚本文件名称进行修改,使其变成js格式,并加载到服务器内。
4 应用层设计
4.1开发环境
应用层开发环境基本与上述两层开发环境基本相同,在此不再赘述。但与此同时,还应在部署好的开发环境内,载入一个版本为4.5.0的Vue工具,可确保请求指令较为精简的情况下,最短时间内完成系统的搭建。
4.2交互信息配置
服务层和数据层交互后,自动形成对应的URL,以此为应用层和服务层信息的传输提供支持。交互信息配置时,主要由两个环节构成,具体叙述如下。
(1)跨域信息部署。由上述介绍可知,服务层采用的是阿里云服务器,而应用层的设计与开发,则是由本机完成,使得服务层与应用层间存在跨域问题。所以,需要添加一个Vue工具。先在后端模块内录入对应的请求地址,之后选择可以跨域,并重新编写路径,最后对全部api接口url进行调整,使其变成以/spi为前缀[5]。
(2)封装接口信息。利用axios形成的7个URL对信息予以处理,使其变成能够调用的函数,名称无需改变。
4.3客户端代码编写
客户端主要包含2个界面,具体叙述如下。
(1)登录界面。主要有两类代码,一个是界面样式代码,用于登录界面的开发,如登录框、确定、删除按钮等;另一个为判断逻辑,用于对账号密码的验证,若验证成功,可自动跳转到主界面,若验证失败,则禁止进入主界面。
(2)主界面。采用的是Vue组件化原理,其中,共包含3个组件,分别为:aside组件,用于显示工具栏,以此引导用户完成各种操作;info组件,用于显示功能区主体,通过对应接口函数的调用,完成信息录入,结果反馈等操作;main组件,用于展示停车场分布情況,以使用户对停车场的使用情况具有准确了解[6]。
5结语
综上所述,本文利用区块链技术原理,开发出一种包含应用层、服务层、数据层、网络层、物理层的智能停车系统,通过各层级相互配合下,为用户提供停车指导服务,以解决现代社会停车难的问题。
参考文献
[1] 董浩.WEB3.0时代基于区块链的去中心化应用程序用户体验设计探究[J].设计,2023,36(10):78-81.
[2] 张荣林.面向智能汽车的线控制动系统主动制动控制与应用[D].长春:吉林大学,2021.
[3] 孔祥科,李树彬,李青桐.物联网环境下共享停车区块链模型研究[J].山东建筑大学学报,2022,37(1):92-99.
[4] 李江鑫,张晓韬,王先兵.从目录到区块链探索企业数字身份的未来[J].科技资讯, 2021, 19(12):58-61.
[5] 于营东.科技资讯智能采集服务的设计与实现[J].科技视界, 2021(7):97-100.
[6] 周中杰. 基于NB-IOT和LoRa的智能停车系统[D].天津:天津科技大学,2022.