| 基于区块链技术设计实现众包式农贸产品物流平台 |
2. 武汉融云科技有限责任公司,湖北 武汉,430079;
3. 武汉大学灾害监测与防治研究中心,湖北 武汉,430079
2. Wuhan Rongun Technology Co., Ltd., Wuhan 430079, China;
3. Disaster Monitoring and Prevention Research Center, Wuhan University, Wuhan 430079, China
电子商务行业快速发展,促使物流快递行业的需求量迎来爆发式的增长。但增长背后,也有诸多问题亟待解决:如物流流通不透明、信息溯源难、事故责任不清、企业间数据不共享等。并且还存在着环节多、时间跨度长、空间跨度大,导致监管困难、假冒伪劣等问题均难以根除。而食品安全的关键在于采购透明化,可追溯的食品来源信息,以保障公众对自己所食用食品的知情权。要建设食品溯源信息体系,目前最大的问题是物流环节信息采集的脱环,因此需要建立一个透明可信的农贸产品物流平台。
区块链技术是一种互联网数据库技术,其特点是去中心化、数据防篡改和可溯源,让每个人均可参与数据库记录。欧洲鹿特丹港等机构搭建了世界首个针对物流领域的区块链物流研究联盟[1]探索区块链技术的物流领域实际应用。Hackius等[2]的研究验证了区块链技术在物流行业中具有深远的促进意义。Tian[3]构建了基于RFID(radio frequency identification)技术和区块链技术的可溯源的农产品供应链系统,实现可信信息的可追溯性,从而有效地保证食品安全。宁卓等[4]提出了一种基于联盟区块链的物流业信息平台系LIP-Chain(logistics information platform chain),解决了物流快递行业中多方共同参与物流业务的协调问题。何黎明[5]、汪传雷等[6]等认为区块链可以改变供应链体系中的物流、信息流、资金流的共享以及交互方式,改变产品从生产、存储、运输到送达消费者的整条供应链,从而使整个供应链条变得更加透明、开放、有效以及大规模协同合作。本文将众包的思想融入到物流领域中来,让物流不再是某个公司或组织的专属,而是具有运力提供能力的社会组织乃至个体均可参与的社会经济团体性活动,从底层构建共享物流平台的交易和存储方式,利用区块链技术的数据不可篡改特性,构建分布式数据存储中心,建设一个基于区块链技术的众包式农贸产品物流平台。
1 平台设计 1.1 平台架构设计平台架构的设计以车辆资源管理为核心,注重车辆资产数据化和车辆运行动态化两个方向发展的规律,设计原则包括亲密性[7]、对齐[8]、对比、重复、简化交互[9]、引用过度、即时反应等。平台总架构包括:客户端、展示层、业务层、数据层、底层、数据库和运行环境7层,如图 1所示。
![]() |
| 图 1 众包式农贸产品物流平台架构 Fig.1 Logistics Platform Architecture of Crowd Sourcing Agricultural Products |
客户端即前端是人机交互的载体,是运力需求者(有发送货物需求的人或团体)和提供者(具有运力提供能力的组织或个体)使用系统功能的入口和参与众包式物流体系的渠道。监控调度后台是系统维护者使用的监控终端。
展示层是连接前端和后端的中间层,包含界面渲染和数据交互两个环节,数据交互采用Socket实时通信,界面渲染方面该平台最终不提供Web端客户端,而采用移动应用的方式设计,故不提供相应的渲染模块。
业务层控制整个系统的逻辑组织和交互,对外负责处理来自客户端(用户)的请求,对内负责组织协调各业务层单元功能模块,以高效完成敏捷地响应客户请求。
数据层和数据库,数据源源不断从客户端(用户)上传到后台,系统将实时响应数据请求,其中响应请求的环节中,数据层会将大量的数据,或经过处理加工后将数据存储到数据库。本平台使用MongoDB作为平台业务数据库,选择Redis搭建数据缓存服务实时保存用户登录状态、车辆状态和订单状态,采用InfluxDB作为时序数据库,保存一系列的订单位置数据,采用LevelDB作为区块链数据库,保存执行区块的读写操作。
底层包括身份验证机制(基于数字签名技术[10])、数据区块(包括区块头和区块体,每次写入数据,就是创建一个区块)、分布式时间戳服务[11](利用时间戳实现在时间上有序的链条,将一个个区块按时序组成链),HASH算法(构成“内容-索引”的对应关系)和基于带扰动学习的同态加密技术[12](加密后的数据只有用户自身可以进行解密)。
1.2 平台功能设计本平台核心功能模块包括:车辆模块、用户模块、订单模块、实时GPS模块、实时GIS模块和数据区块链化模块,如图 2所示。
![]() |
| 图 2 系统功能结构 Fig.2 Functional Structure of the System |
车辆模块是本项目系统对运力管理的模块,设计按运力提供者分类来进行抽象管理;用户模块是本项目系统对用户管理的模块,以用户为核心;订单模块是运力需求(用户)和运力提供(车辆)的结合,维护着整个订单全生命周期;实时GPS模块,主要运行在数据缓存中心,围绕运力提供者(运力提供)实时的地理位置数据;实时GIS模块,在用户下单寻找匹配运力资源时展示需求流和运力流的地理信息可视化;数据区块链化是指本平台中,需进行保密和不可篡改的数据,主要围绕在订单的状态变化数据。如订单创建时的信息结构将作为第一个区块,成为初始区块链,订单运力匹配时,将匹配信息作为第二个区块连接到上一个区块上去,以此类推,每当订单发生状态发生改变时将写入订单区块链中。利用区块链的不可篡改特性来保证数据的安全,保证订单溯源数据的真实可靠。
1.3 数据库设计选用MongoDB作为平台业务数据库,存储常规业务数据包括用户、车辆、订单、位置、收货地址等数据信息等。
用户信息:包括索引字段,所属静态信息字段,地理信息字段。车辆信息:包括索引字段,车辆静态数据字段,车辆所属信息字段。订单信息:包括订单基础字段,收货人信息字段,发货人信息字段,快递信息字段,货物信息字段,车辆信息字段及通用字段。位置信息:订单实时状态模型,是记录订单发货环节的时空数据,采用时序数据库保存,保存后返回的记录索引,将作为区块写入到订单链中,以实现全程可追踪可溯源。收货地址信息:收货地址模型是用户常用且进行收藏操作的收货人信息。
2 平台实现的关键技术 2.1 JavaScript技术本平台后端开发使用了JavaScript语言,其具备快速响应,易于升级的能力,开发工作的完成借助于Node. JS平台。Node. JS是让JavaScript运行在服务端的开发平台,采用事件驱动和非堵塞I/O模型,是轻量和高效的web平台,非常适合构建数据密集型分布式实时应用[13],为JavaScript提供了操作文件、创建HTTP服务、TCP/UDP服务等接口,可以完成其他后台语言(Python、PHP等)能完成的工作。
2.2 微服务架构技术微服务架构技术是大型异构系统的发展的关键架构[14],设计思路是将整个应用分解成一个个独立的服务单元,各单元之间通过REST API通信,服务器端不能直接访问,而是通过API Gateway来传递请求,API Gateway负责服务路由、负载均衡、缓存、访问控制和鉴权等工作。在本文中选用了腾讯开源的微服务框架Tars. js作为微服务架构的构建工具,完成后台系统(即平台服务器端)的构建,将整个系统服务拆分为各个独立专一的服务,让各服务独立运行。
2.3 LBS技术LBS技术也就是基于位置的服务技术,通过电信移动运营商的无线电通讯网络或外部定位方式(GPS/北斗)获取客户端用户的位置信息[15]。本项目是众包式物流平台的设计,对于用户而已就是基于位置的物流服务,因此本质上属于LBS技术应用的范畴,平台中的一些功能的实现包括附近车辆(运力)展示、运力匹配、地理信息可视化等模块都用到了LBS技术。
2.4 区块链技术使用IBM推出的企业级区块链开源架构方案Hyperledger Fabric做为区块链底层基础框架。Fabric已经定义了链、Peer、通道、共识服务等概念,已经具备区块链技术的基础功能,本文主要将这些功能应用在区块数据存储流程上。
1)生成创建订单信息:平台为每个订单创建信息生成一对公钥和私钥地址,使用事先初始化的主公钥地址向注册的公钥地址发起信息,生成区块写入区块链中,完成物流订单信息的创建登记。
2)上传状态变化信息到区块上:订单状态信息主要分为订单环节变化的信息和时空变化的信息,这两种信息分别存入分布式数据库,返回的索引ID写入到指定订单区块链中,确保返回到索引ID只写入区块链,使区块链层作为业务层和数据层的中间安全性转化枢纽。
3)物流信息溯源:用户根据订单ID和私钥上传到业务层,业务层首先将私钥传向区块层进行合法性检测,再传入订单ID到区块层同私钥一起组成结构体,区块层将结构体解密成对应真实数据的索引ID,同时区块层从数据层将索引得到的数据填充到结构体并覆盖索引ID,最后将其返回给业务层和用户。利用区块层屏蔽随机存储的数据索引ID来实现数据的安全性。
3 平台实现与效果评价本平台的实现使用NodeJS技术[16],利用Visual Studio Code开发工具进行开发工作,使用Photoshop作图工具来绘制图标、切图和配色等,采用Sketch软件完成UI(user interface)排版、原型设计等工作,使用Postman测试和调试后台系统服务,系统客户端均采用微信小程序技术栈,因此使用微信的开发语言和开发工具。
3.1 服务器端的实现服务器端即后台系统,用来为用户(客户端A)和司机(客户端B)提供整体的分配、调度和存储信息的服务,如图 3所示,其架构采用微服务架构设计,将整个系统服务拆分为各个独立专一的服务,让各服务独立运行,包括订单服务、车辆服务、用户服务、地图服务和系统服务。接口路由是连接客户端的第一层,负责响应客端的所有请求,负责转发请求到各项服务和数据缓存工作。请求从客户端到接口层,接口层根据需求将数据存储到缓存中心,包括用户登录态信息和车辆实时位置等数据。
![]() |
| 图 3 服务器端 Fig.3 Server Side |
1)订单服务。围绕订单创建、查询、更新和删除等操作进行订单全生命周期管理,制定统一操作接口,同一服务只做唯一接口,以方便管理和维护。
2)车辆服务。围绕车辆信息的注册创建、查询、更新和删除等操作进行车辆服务管理,包括司机用户注册,信息真实性验证等。
3)用户服务。围绕用户账号的创建、查询、更新和删除等操作进行用户信息管理,包括用户登录,真实性验证。
4)地图服务。地图服务分为空间计算模块(如附近3 km缓冲带计算和最小距离计算等)、高德地图web地理编码服务(如位置解析,位置自动填充)、腾讯地图(如地图可视化,导航路径计算等)。
5)系统服务。系统服务包括其他零碎不常用的服务,如验证短信、用户登录态验证、数据清洗等工具集。
3.2 客户端的实现客户端用户版面向普通用户,即运力需求者的客户端,专注于运力提供服务,采用单一化用户设计,能更加精准挖掘和解决用户需求。具体设计和实现如图 4所示。
![]() |
| 图 4 客户端用户版 Fig.4 Client User Version |
司机版客户端专注于运力收集服务,以收集运力资源为核心的设计理念,解决司机用户运力资源变现的用户需求。具体设计和实现如图 5所示。
![]() |
| 图 5 客户端司机版 Fig.5 Client Driver Version |
用户版首页是用户长时间停留和主要服务的入口,其中包含能直观生动体现给用户的附近实时车辆展示和预约用车服务的核心系统服务,实时运力是用户能够看到自己周围3 km内所有可用车辆资源的实时位置。
用户版个人中心是用户的个人数据和其他次要服务的入口,其目的是减轻首页服务承载的服务量。其页面包括:手动登录的入口、我的订单、地址管理、收费标准和设置。
司机版首页包括:运力需求扫描图,为司机搜索其附近运力需求;物流导航,根据匹配物流订单,自动生成导航路线;获客设置,是给予司机设置筛选客户的设置,给予供需双方双向选择的权利。
司机版个人中心是司机的个人数据和其他次要服务的入口。
3.3 平台效果分析该众包式物流平台完成后能够实现用户通过微信小程序(客户端用户版)下单,司机通过微信小程序(客户端司机版)接单,并根据自动生成的最佳配送路径进行配送,同时客户可以实时查看下单产品的所在位置和状态直到产品送到自己手中。由于该物流平台使用了区块链技术,在保证客户能实时监控产品动态的同时也能够保证产品的安全和客户数据的安全,以及产品的相关数据的可溯源。另外,运输车辆模块可以根据产品的数量和运输距离合理性选择相应的运输方式。具体平台展示如图 6、图 7所示。
![]() |
| 图 6 首页 Fig.6 Home Page |
![]() |
| 图 7 获取的地图界面 Fig.7 Gets the Map Interface |
4 结束语
本文旨在解决农贸产品物流方面关于食品安全、食材溯源、缺乏透明性和运力不足及运力成本过高等问题,引入众包理念,充分整合社会运力资源,鼓励社会多方参与物流体系,建立了泛化物流的共享物流平台。完成了最小的完整性众包式物流平台的设计和实现,同时也尝试基于区块链技术来进行设计开发,在测试环境下部署,能够实现正常的业务流程。同时,由于技术难度过大,该平台仍存在很多不足,主要是暂时无法利用和释放出区块链技术的价值,仍停留在借助开源的区块链框架进行测试阶段。
| [1] |
沈庆琼, 欧伟强. 区块链技术在物流快递行业中的应用场景探讨[J]. 物流科技, 2019, 42(4): 36-38. |
| [2] |
Hackius N, Petersen M. Blockchain in Logistics and Supply Chain: Trick or Treat?[C]. Proceedings of the Hamburg International Conference of Logistics (HICL), Epubli, Hamburg, 2017
|
| [3] |
Tian F. An Agri-Food Supply Chain Traceability System for China Based on RFID & Blockchain Technology[C]. 13th International Conference on Service Systems and Service Management(ICSSSM), IEEE, Lisbon, Portugal, 2016
|
| [4] |
宁卓, 李牧阳. 基于联盟区块链的物流信息平台LIPChain[J]. 计算机技术与发展, 2019(8): 36. |
| [5] |
何黎明. 以区块链为契机加速物流供应链协同化发展[N]. 现代物流报, 2019(12): A01
|
| [6] |
汪传雷, 万一荻, 秦琴, 等. 基于区块链的供应链物流信息生态圈模型[J]. 情报理论与实践, 2017, 40(7): 115-121. |
| [7] |
李冰清. UI设计的交互性与界面视觉设计研究[J]. 数字通信世界, 2018(4): 83. |
| [8] |
Graham L. Gestalt Theory in Interactive Media Design[J]. Journal of Humanities & Social Sciences, 2008, 2(1): 123-127. |
| [9] |
Badashian A S, Mahdavi M, Pourshirmohammadi A. Fundamental Usability Guidelines for User Interface Design[C]. 2008 International Conference on Computational Sciences and Its Applications. IEEE, Perugia, Italy, 2008
|
| [10] |
Zhu H, Li D. Research on Digital Signature in Electronic Commerce[C]. Proceedings of the International Multi-conference of Engineers and Computer Scientists, Hong Kong, China, 2008
|
| [11] |
Bomfim R M, Duggaraju P, Kucer A, et al. Distributed Fragment Timestamp Synchronization: US Patent 10, 382, 512[P]. 2014-09-18
|
| [12] |
Brakerski Z, Vaikuntanathan V. Efficient fully Homomorphic Encryption from(Standard)LWE[J]. SIAM Journal on Computing, 2014, 43(2): 831-871. DOI:10.1137/120868669 |
| [13] |
García-Valls M, Uriol-Resuela P, Ibáñez-Vázquez F, et al. Low Complexity Reconfiguration for RealTime Data-Intensive Service-Oriented Applications[J]. Future Generation Computer Systems, 2014, 37: 191-200. |
| [14] |
Jaramillo D, Nguyen D V, Smart R. Leveraging Microservices Architecture by Using Docker Technology [C]. Southeast Conference 2016, IEEE, Norfolk, VA, USA, 2016
|
| [15] |
Kolodziej K W, Hjelm J. Local Positioning Systems: LBS Applications and Services[M]. CRC Press, 2017
|
| [16] |
Liang L, Zhu L, Shang W, et al. Express Supervision System Based on NodeJS and MongoDB[C]. 2017 IEEE/ACIS 16th International Conference on Computer and Information Science (ICIS), IEEE, Wuhan, China, 2017
|
2022, Vol. 47









