基于区块链的工业互联网系统设计

2022-05-10 05:25袁梦思贾子彦
电脑知识与技术 2022年9期
关键词:链码智能合约工业互联网

袁梦思 贾子彦

摘要:为了解决工业数字化、自动化进程中的生产信息安全问题,保障生产质量,提高系统自动化运转的能力,提出了区块链与工业互联网深度融合的概念。通过区块链的去中心化、可信协作、不可篡改等固有优势,利用Hyperledger Fabric平台搭建一个工业互联网系统,采用Raft算法以及智能合约实现节点共识以及流程设定,打造一个可信的第三方交流平台,让企业联盟之间实现信息互通互联。

关键词:区块链;工业互联网;智能合约;链码

中图分类号:TP311.1      文献标识码:A

文章编号:1009-3044(2022)09-0083-03

1 引言

随着全球范围内新一轮科技革命和产业变革的蓬勃兴起,以人工智能、大数据技术和物联网等新一代信息技术为标志的新产业革命正在改变传统制造业的运营模式和知识技术创新方式[1-3]。作为新一代信息技术与制造业深度融合的平台,工业互联网成为未来制造业发展的新引擎。

所谓工业互联网,就是通过开放的网络平台,将原料供应商、生产线、仓库、产品和客户紧密地联系起来,共享工业生产流程中的部分信息资源,以减少人力资源的应用,提升产品生产效率,降低生产成本。然而,现阶段在同一条制造产业链上的企業的生产管理系统并不能实现互联互通,产业链上下游数据不能共享。区块链拥有可追溯和不可篡改等特点,具有可信协作以及隐私保护等技术优势,能够较好地实现上下游厂商之间数据的互联互通,有效的保证工业互联网的数据安全。因此,本文设计了一个基于区块链的工业互联网系统,通过Hyperledger Fabric平台进行系统搭建、共识算法设计以及智能合约的制定,实现产业链的数据共享,解决工业互联网引发系统安全、数据安全、隐私泄露、架构僵化、资源调度等多方面的问题[4]。

2 区块链技术简介

区块链是一种数据以区块为单位产生和存储,并按照时间顺序首尾相连形成链式结构,具有不可篡改、匿名性、去中心化、可追溯和无需信任基础等特点[5-7]。其自带的哈希算法和非对称加密算法[8]也有效地保证了工业数据的真实性和安全性。各节点之间通过共识算法保证账本的一致性,通过智能合约执行计算机协议,实现流水化操作。

按照开放程度,区块链可以划分公有链、私有链和联盟链。其中,公有链的开放程度最高,任何人都可以加入公有链参与节点共识,成为公证人、参与者、使用者[9-10]。私有链不对外开放,仅供企业内部的人员使用,加入私有链的节点需要进行注册和身份认证[11]。只有特定的联盟成员才能加入联盟链,共享利益和资源[12-13]。本文是为了上中下游产业链之间实现数据流通,属于企业间的资源共享,故采用联盟链来进行系统设计。

3 系统框架设计

3.1 框架设计

本系统主要涉及原材料供应商、生产厂家以及零售商三个方面的用户。每个参与方在区块链中都以一个组织的形式存在,可以根据实际情况设置若干节点,每个组织至少设置一个节点。同时,本系统引入了政府监测组织,可以实现高危(重点)行业的生产信息监测,比如对化工行业的原材料把控等。

如图1所示,本文所涉及的组织之间通过不同的通道进行信息传达与交流。政府监测组织始终参与区块链的共识,活跃于每一条通道中。原材料供应商将商品种类、生产日期以及库存储备数量等信息上传到区块链中,政府监测组织与生产厂家可以在通道1中查询相关信息,生产厂家根据其需要的材料种类以及数量等进行产品选购。在采购协议达成一致之后,商家库存储备量以及生产厂家的原料储备量都会发生相应的改变,交易信息上传至区块链。与此类似,生产厂家将成品的相关信息上传到区块链中,政府监测组织与零售商在通道2中查询有关信息,零售商也能够根据生产厂家成品的类型以及数量进行产品选购,交易信息上传至区块链。通道3是政府监测组织与零售商的一个单独交流通道,可以查询零售商商品信息的实时变化。

3.2 软件架构

根据上文所述系统框架,软件架构可以分为基础层、数据层和应用层三个部分,如图2所示。

基础层是Hyperledger Fabric的框架,主要是由一些底层代码组成,编写了区块链的基本机构;数据层主要包括了分布式账本数据的存储,节点权限的管理以及共识算法和智能合约的部署;应用层则是对链码功能的调用,包括账本初始化、账本读取、账本更新、交易信息录入等。各方参与者通过不同的API接口接入区块链,向应用层发起请求,应用层将请求转发至数据层,查询节点权限,根据智能合约设定的流程读取并更新账本,完成区块链的交互工作。

4 基于区块链的工业互联网监测系统设计

本文采用Hyperledger Fabric平台来实现系统搭建,以STM32单片机系统的生产为例进行工业互联网监测系统设计。

4.1 工业互联网系统设计

以STM32单片机系统的生产为例,对工业互联网系统进行设计。由于STM32属于普通商品,不需要政府部门进行监测,因此在该例证中不引入政府监测组织。区块链的参与方分别为原材料供应商(Org1)、单片机系统生产商(Org2)以及产品零售商(Org3)。每一个组织下设3个节点来模拟账本的录入、更新以及查询等。

在本系统中,Org1、Org2、Org3之间通过2个不同的通道进行信息交互。通道1中部署链码chaincode1,主要负责Org1、Org2之间的信息交互;通道2中部署链码chaincode2,负责Org2、Org3之间的业务交流。

通道1中的信息涉及原材料采购的问题。STM32单片机的生产主要涉及30种原材料,包括6款普通电阻、1款线绕电阻、2款钽电容、3款陶瓷电容、3款二极管、2款LED灯、1款电感、2款晶振、1款电池、1款液晶屏以及8款芯片。因此,在通道1中部署的链码chaincode1需要将以上30个参数融入账本设计中。具体而言,chaincode1需要实现以下几种功能:

1)initAsset():该功能是对区块链账本的一个初始化,原材料供应商录入不同仓库存放的材料数量,同时自动生成对应的时间戳。

2)readAsset():该功能是对账本信息的一个读取,通过唯一标识的参数(本系统中为仓库地点)对应到具体的账本信息。readAsset()函数执行过程中没有数值输出,一般都与updateAsset()、transferAsset()等函数联合调用,不单独使用。

3)updateAsset():该功能是对账本的一个更新,原材料供应商将一段时间内原材料生产的数量录入到账本中,生成对应的时间戳。

4)transferAsset():该功能是对商品交易的账本记录,根据客户需求,调拨相应的产品,如果产品数量不足,则会产生报警,交易无效;交易成功则将交易后的产品余量以及交易对象一同录入到区块链中,并生成对应的时间戳。

5)queryAssets():该功能是对账本信息的查询,针对输入的参数,输出给定对应的查询结果。如输入参数为Address1,则返回Address1对应的账本信息。

链码chaincode2与chaincode1类似,与之不同的是存储的账本信息分别为STM32单片机系统的生产信息以及零售信息。此外,chaincode2还对transferAsset()函数做了一些改变,将transferAsset()分为了购入transferinAsset()和售出transferoutAsset()两个部分:

1)transferinAsset():该功能是产品购入时的交易记录,在库存少于一定数量时,系统则发送通知提醒材料购入。购入成功后,产品数量会发生相应的改变,同时记录购入的厂家名称,并生成对应的时间戳。

2)transferoutAsset():该功能是产品售出时的交易记录,在产品库存少于一定数量时,系统则会发送信息提醒补入;当客户购入数量超过库存数量时,则交易不成功,产生报警;若是交易成功,则产品数量自动改变,连同客户名称一起记录到区块链中,生成对应的时间戳。

4.2 工业互联网监测系统的测试

在工业互联网监测平台搭建成功之后,在通道1、2中分别部署chaincode1、chaincode2,并对其功能进行测试。运行脚本文件,并创建名称为channel1、channel2的两个通道,将3个组织(Org1、Org2、Org3)分别加入不同的通道中,启用couchdb数据库来存储账本信息。链码1是针对Org1(原料生产商)和Org2(生产公司)编写的智能合约。在通道1中部署链码1,并将链码安装到Org1的管理者节点上,让其他节点同意该链码的定义,方便共识工作展开。链码安装完成之后,对链码进行初始化,以通道中某节点的身份去启动链码,调用链码中的相关函数,完成交易以及账本信息的查询。

图3是对账本信息的初始化,以杭州为例,上传仓库地址及其存储的各类原材料数量;图4是对仓库中材料数量更新的查询,结果无误;图5是对原材料的交易,对比交易前后的原材料数量变化可知,交易成功。

链码2是针对Org2(产品生产商)、Org3(产品零售商)编写的智能合约,部署在通道2中,安装在Org2的管理者节点上。在其他节点上认证链码2的定义并提交链码定义至通道,完成初始化,为区块链账本的正常运行提供前期保障。

在链码2初始化完成之后,以Org2管理者節点的身份进行账本信息初始化、交易信息记录以及链码信息查询。

如图6所示,对账本信息进行初始化,录入生产者仓库地点、剩余原材料数量以及产品库存数量;图7是对原材料购买信息的录入和验证,包括材料购入数量和购入品牌名称等信息,查询可知,账本信息无误;图8和图9分别对应的是产品的售出与生产信息,对比产品前后库存可知查询结果正确无误,系统工作正常。

本文经过多次重复测试,系统均未发生错误,始终保持正常工作,具备高效性和可行性。

5 结束语

本系统针对目前工业产业联盟之间的信任机制问题,提出了一种基于区块链的工业互联网系统,利用Hyperledger Fabric平台进行了系统开发设计,完成了系统的实际搭建,并对系统性能进行了模拟测试。根据测试所得结果,本系统能够满足工业联盟之间信息互联互通的问题,有效解决企业之间信息孤岛的问题,保证了数据的安全性、有效性和不可篡改性。

参考文献:

[1] 王一晨.运用工业互联网推动中国制造业转型升级[J].中州学刊,2019(4):26-30.

[2] Wan J F,Yin B X,Li D,et al.An ontology-based resource reconfiguration method for manufacturing cyber-physical systems[J].ASME Transactions on Mechatronics,2018,23(6):2537-2546.

[3] Wan J F,Tang S L,Li D,et al.Reconfigurable smart factory for drug packing in healthcare industry 4.0[J].IEEE Transactions on Industrial Informatics,2019,15(1):507-516.

[4] Fernandez-Carames T M,Fraga-Lamas P.A review on the application of blockchain to the next generation of cybersecure industry 4.0 smart factories[J].IEEE Access,2019,7:45201-45218.

[5] 龚宁.区块链技术在供应链金融中的应用研究[D].成都:电子科技大学,2020.

[6] 黄俊飞,刘杰.区块链技术研究综述[J].北京邮电大学学报,2018,41(2):1-8.

[7] Wan J F,Li J P,Imran M,et al.A blockchain-based solution for enhancing security and privacy in smart factory[J].IEEE Transactions on Industrial Informatics,2019,15(6):3652-3660.

[8] Huh S,Cho S,Kim S.Managing IoT devices using blockchain platform[C]//2017 19th International Conference on Advanced Communication Technology (ICACT).February 19-22,2017.Pyeongchang,Kwangwoon Do,South Korea.IEEE,2017.

[9] 包庆华.面向分布式存储的区块链系统的研究[D].武汉:华中科技大学,2019.

[10] Chekired D A,Khoukhi L,Mouftah H T.Industrial IoT data scheduling based on hierarchical fog computing:a key for enabling smart factory[J].IEEE Transactions on Industrial Informatics,2018,14(10):4590-4602.

[11] 李保东,叶春明.基于区块链的汽车供应链产品追溯系统[J].计算机工程与应用,2020,56(24):35-42.

[12] 孙葳.基于区块链的法院电子卷宗管理系统的设计与实现[D].哈尔滨:黑龙江大学,2020.

[13] Li Z,Barenji A V,Huang G Q.Toward a blockchain cloud manufacturing system as a peer to peer distributed network platform[J].Robotics and Computer-Integrated Manufacturing,2018,54:133-144.

【通聯编辑:谢媛媛】

猜你喜欢
链码智能合约工业互联网
一种新压缩顶点链码
区块链技术在互联网保险行业的应用探讨
智能合约与金融合约
基于链码特征的几何图形快速识别算法*
高职院校计算机网络技术人才培养模式的探讨
“互联网+”的三个重要发展方向
无损链码技术的分析与比较
边界链码在字母与数字混合识别中的应用