基于Git及区块链的变电站继电保护装置软件版本管理方法转让专利

申请号 : CN202110569421.6

文献号 : CN113268711B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李宽王昕刘萌李玉敦李娜梁正堂史方芳唐毅张国辉李聪聪王宏李晨昊王永波张婉婕孙孔明黄强

申请人 : 国网山东省电力公司电力科学研究院国网山东省电力公司国家电网有限公司

摘要 :

一种基于Git及区块链的变电站继电保护装置软件版本管理方法,基于Git保存继电保护装置历次软件版本升级过程中的软件模块文件,以区块链技术将继电保护装置装置软件版本升级信息采用分布式账本进行记录。相对于目前传统的管理方式,在与不同的通讯主体通讯时分别采用SFTP和103规约,通过区块链账本可以方便且安全保存继电保护装置软件历次记录信息,本专利采用电子流程加区块链账本技术,既解决了传统升级模式线下记录升级信息容易出错和丢失的问题,又解决了软件版本升级失败难以回退的问题。

权利要求 :

1.一种基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于,包括如下步骤:

a)建立通过互联网连接的由工作站、区块链主机、Git服务器、保信子站、保信主站构成的系统网络;

b)在工作站中部署和配置SFTP服务并创建保存继电保护装置软件升级文件CRC码的目录,对当前继电保护装置软件的每个软件模块文件计算一次CRC码,生成一个csv文件,每个csv文件包含软件模块文件名和其对应的CRC码,将csv文件保存到SFTP服务设定的目录中;

c)从继电保护装置软件开发厂商处获取需要升级的软件模块文件,工作站向保信子站提供SFTP服务,工作站将要升级的软件模块文件逐一利用CRC算法生成本次升级的软件模块文件的CRC码后将软件模块文件的文件名和CRC码逐一记录到临时文件中;

d)工作站将SFTP服务设定的目录中的csv文件拷贝一份至SFTP服务目录外作为文件副本,将步骤c)中每个软件模块文件的文件名保持不变,将每个软件模块文件对应的CRC码更新为升级后的CRC码,如果一软件模块文件没有升级则其对应的CRC码保持不变;

e)工作站删除SFTP服务设定的目录中的csv文件,将步骤d)中csv文件的文件副本拷贝至SFTP服务设定的目录中;

f)保信子站以SFTP的方式按照设定的时间间隔访问工作站的SFTP服务设定的目录,将包含CRC码的csv文件下载到本地的指定目录中;

g)保信子站将下载的包含CRC码的csv文件中的记录按软件模块文件名与本地存储的包含CRC码的csv文件的软件名逐一比较,如果软件名与软件模块文件名一致而对应CRC码不一致时,再不行步骤h);

h)工作人员逐一从工作站将新的软件模块文件下载到继电保护装置目录,用新的软件模块替换原有的旧的软件模块,直至完成保护软件的软件版本升级;

i)保信子站将保护软件的版本信息上传到保信主站站端,保信子站以SFTP的方式向工作站提交一个文件告知工作站完成保护软件版本升级及软件的版本信息上传的时间;

j)工作站生成保护软件版本升级的区块链数据,区块链中的区块结构包含区块头和区块体;

k)工作站将区块链数据向区块链主机所在网络进行广播;

l)工作站将本次继电保护装置升级的软件模块文件向Git服务器提交,完成本次继电保护装置软件模块升级。

2.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于,在步骤a)中对Git服务器进行初始化操作,初始化步骤包括:在Git服务器中配置和创建Git服务,该Git服务用于追溯最远的一个完整的继电保护装置软件文件作为版本仓库的首次提交,Git服务将历次软件版本涉及的文件依次提交到Git版本仓库中,直至版本仓库保存的继电保护装置软件版本与当前继电保护装置当前使用的软件版本一致。

3.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于,在步骤a)中对区块链服务器进行初始化操作,初始化步骤包括:完成多台区块链服务器的部署,形成一个私有的区块链网络,区块链子模块用于存放历次继电保护装置软件版本升级中的信息,该信息包含软件模块文件名、软件模块文件数据的CRC码及软件模块升级时间。

4.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于:步骤e)中如果其它SFTP客户端可以访问工作站,则删除csv文件的文件副本。

5.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于:保信子站将保护软件的版本信息通过IEC60870‑5‑103传输规约上传到保信主站站端。

6.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于:区块头包含版本号、签名信息、随机数组,区块体中的数据结构包括:继电保护装置本次软件升级的软件模块文件和对应的CRC码以及本次保信子站向保信主站完成保护软件版本信息上传的时间。

7.根据权利要求1所述的基于Git及区块链的变电站继电保护装置软件版本管理方法,其特征在于:步骤k)中区块链上节点发布步骤j)中生成的保护软件版本管理信息,其它节点经广播接收信息,区块链系统通过数字签名广播信息的节点身份及数据的真实性,如果广播节点是私有链成员节点,则对保护软件版本管理信息进行完整性校验,如果校验成功,则将保护软件版本管理信息上链,如果广播节点是非链内成员节点,则区块链网络中各节点通过共识机制达成许可共识,如果取得私有链中一半以上节点许可,则将节点信息加入创始区块,并对保护软件版本管理信息进行完整性校验,如果校验成功,则将保护软件版本管理信息上链,如果广播节点未获得私有链共识许可或信息完整性校验失败,则保护软件版本管理信息不上链。

说明书 :

基于Git及区块链的变电站继电保护装置软件版本管理方法

技术领域

[0001] 本发明涉及,具体涉及一种基于Git及区块链的变电站继电保护装置软件版本管理方法。

背景技术

[0002] 继电护保护装置是当电力系统中的电力元件(如发电机、线路等)或电力系统本身发生了故障危及电力系统安全运行时,能够向运行值班人员及时发出警告信号,或者直接
向所控制的断路器发出跳闸命令以终止这些事件发展的一种自动化措施的设备。继电保护
装置对于变电站的安全平稳运行有着极其重要的作用,因此加强继电保护装置内软件的管
理工作也极为重要。
[0003] 为了实现保护信息和故障录波信息在当地和远方的有效管理,保护及故障信息管理系统由主站(设在电网公司总调及省级调度中心)、分站(设在各直属省级调度中心)、子
站(各200kV及以上系统变电站、直流输电换流站)组成。子站负责本站继电保护装置、故障
录波装置的信息采集,通过网络上传到主站和分站。主站和分站实现对本地区的所有继电
保护装置、故障录波装置的运行管理。
[0004] 当前继电保护装置在软件版本管理方面的工作大都是通过人工的方式进行,首先需要建立继电保护装置软件版本标识台账,标识内容包括版本号、校验码及生成时间等。在
执行继电保护装置软件版本升级过程中,会存在继电保护装置原软件存在一般缺陷,经调
度部门同意后允许新、老版本同时存在的情况,这样一来就会出现新投入使用继电保护装
置使按新软件版本,原装置暂维持老版本、择机申请升级的情况出现,这样一来由人工维护
同一种型号的继电保护装置的不同软件版本的情况时有发生,在实际管理中操作繁琐而且
容易出错,并且还存在多人管理维护台账时数据不一致的情况。

发明内容

[0005] 本发明为了克服以上技术的不足,提供了一种根据保护软件的CRC码变化记录查看保护软件的升级记录、根据CRC码与Git版本库的提交记录实现保护软件版本变化的跟
踪、回退和审计的方法。
[0006] 本发明克服其技术问题所采用的技术方案是:
[0007] 一种基于Git及区块链的变电站继电保护装置软件版本管理方法,包括如下步骤:
[0008] a)建立通过互联网连接的由工作站、区块链主机、Git服务器、保信子站、保信主站构成的系统网络;
[0009] b)在工作站中部署和配置SFTP服务并创建保存继电保护装置软件升级文件CRC码的目录,对当前继电保护装置软件的每个软件模块文件计算一次CRC码,生成一个csv文件,
每个csv文件包含软件模块文件名和其对应的CRC码,将csv文件保存到SFTP服务设定的目
录中;
[0010] c)从继电保护装置软件开发厂商处获取需要升级的软件模块文件,工作站向保信子站提供SFTP服务,工作站将要升级的软件模块文件逐一利用CRC算法生成本次升级的软
件模块文件的CRC码后将软件模块文件的文件名和CRC码逐一记录到临时文件中;
[0011] d)工作站将SFTP服务设定的目录中的csv文件拷贝一份至SFTP服务目录外作为文件副本,将步骤c)中每个软件模块文件的文件名保持不变,将每个软件模块文件对应的CRC
码更新为升级后的CRC码,如果一软件模块文件没有升级则其对应的CRC码保持不变;
[0012] e)工作站删除SFTP服务设定的目录中的csv文件,将步骤d)中csv文件的文件副本拷贝至SFTP服务设定的目录中;
[0013] f)保信子站以SFTP的方式按照设定的时间间隔访问工作站的SFTP服务设定的目录,将包含CRC码的csv文件下载到本地的指定目录中;
[0014] g)保信子站将下载的包含CRC码的csv文件中的记录按软件模块文件名与本地存储的包含CRC码的csv文件的软件名逐一比较,如果软件名与软件模块文件名一致而对应
CRC码不一致时,再不行步骤h);
[0015] h)工作人员逐一从工作站将新的软件模块文件下载到继电保护装置目录,用新的软件模块替换原有的旧的软件模块,直至完成保护软件的软件版本升级;
[0016] i)保信子站将保护软件的版本信息上传到保信主站站端,保信子站以SFTP的方式向工作站提交一个文件告知工作站完成保护软件版本升级及软件的版本信息上传的时间;
[0017] j)工作站生成保护软件版本升级的区块链数据,区块链中的区块结构包含区块头和区块体;
[0018] k)工作站将区块链数据向区块链主机所在网络进行广播;
[0019] l)工作站将本次继电保护装置升级的软件模块文件向Git服务器提交,完成本次继电保护装置软件模块升级。
[0020] 进一步的,在步骤a)中对Git服务器进行初始化操作,初始化步骤包括:在Git服务器中配置和创建Git服务,该Git服务用于追溯最远的一个完整的继电保护装置软件文件作
为版本仓库的首次提交,Git服务将历次软件版本涉及的文件依次提交到Git版本仓库中,
直至版本仓库保存的继电保护装置软件版本与当前继电保护装置当前使用的软件版本一
致。
[0021] 进一步的,在步骤a)中对区块链服务器进行初始化操作,初始化步骤包括:完成多台区块链服务器的部署,形成一个私有的区块链网络,区块链子模块用于存放历次继电保
护装置软件版本升级中的信息,该信息包含软件模块文件名、软件模块文件数据的CRC码及
软件模块升级时间。
[0022] 进一步的,步骤e)中如果其它SFTP客户端可以访问工作站,则删除csv文件的文件副本。
[0023] 进一步的,保信子站将保护软件的版本信息通过IEC60870‑5‑103传输规约上传到保信主站站端。
[0024] 进一步的,区块头包含版本号、签名信息、随机数组,区块体中的数据结构包括:继电保护装置本次软件升级的软件模块文件和对应的CRC码以及本次保信子站向保信主站完
成保护软件版本信息上传的时间。
[0025] 进一步的,步骤k)中区块链上节点发布步骤j)中生成的保护软件版本管理信息,其它节点经广播接收信息,区块链系统通过数字签名广播信息的节点身份及数据的真实
性,如果广播节点是私有链成员节点,则对保护软件版本管理信息进行完整性校验,如果校
验成功,则将保护软件版本管理信息上链,如果广播节点是非链内成员节点,则区块链网络
中各节点通过共识机制达成许可共识,如果取得私有链中一半以上节点许可,则将节点信
息加入创始区块,并对保护软件版本管理信息进行完整性校验,如果校验成功,则将保护软
件版本管理信息上链,如果广播节点未获得私有链共识许可或信息完整性校验失败,则保
护软件版本管理信息不上链。
[0026] 本发明的有益效果是:采用git作为分布式版本仓库来管理继电保护装置软件模块文件,可以安全且方便地管理各软件模块的历史版本数据;采用区块链作为继电保护装
置软件版本数据管理台账,可以方便地查看各继电保护装置内软件版本的升级历史和当前
正在使用的软件版本号,并且大大提高了数据出错和防篡改攻击的能力。

附图说明

[0027] 图1为本发明的网络结构图;
[0028] 图2为本发明的系统工作流程图;
[0029] 图3为本发明的在区块链网络广播的区块体的数据结构图。

具体实施方式

[0030] 下面结合附图1、附图2、附图3对本发明做进一步说明。
[0031] 一种基于Git及区块链的变电站继电保护装置软件版本管理方法,包括如下步骤:
[0032] a)建立通过互联网连接的由工作站、区块链主机、Git服务器、保信子站、保信主站构成的系统网络。工作站的功能是:作为Git版本管理系统的客户端,负责向Git服务器提交
历次更新升级的继电保护软件文件及配置文件;二、作为SFTP的服务器端,向保信子站提供
SFTP服务,设置某一目录存放继电保护软件升级文件CRC码的目录;三、提供继电保护装置
软件更新升级文件CRC码计算功能,并且将最终结果以csv文件的形式保存在本机的SFTP服
务器设定目录。区块链主机的功能是:区块链主机作为区块链网络中的节点,每台区块链主
机都会维护一份区块链数据,并且负责与其它区块链主机之间的区块链数据同步。Git服务
器的功能是:作为Git版本管理控制的服务器,也就是Git版本管理系统的远程仓库,用以实
现用户间的继电保护装置软件文件数据共享、操作管理和跟踪。如果在升级过程中发现继
电保护装置软件存在验证缺陷,可以从Git服务器获取上一个稳定版本,将继电保护装置软
件版本回退到上一个稳定版本。Git作为开源的、分布式版本控制系统,管理方便,逻辑明
确,集中式服务器能保证数据的完整和统一,分布式工作站可以提供多人协同工作的平台。
Git版本仓库分为本地仓库和远程仓库,本地仓库是存储在操作者所在的机器上,远程仓库
一般存储在服务器上,用远程仓库可实现用户间的文件数据共享、操作管控和跟踪。因此可
以将继电保护装置内的软件模块数据文件的版本管理与Git结合,实现对继电保护装置软
件版本的管理和追溯,最大限度地管控文件的安全性、完整性和一致性。保信子站的功能
是:在本系统中保信子站除了负责本站继电保护装置、故障录波装置的信息采集,通过网络
上传到主站和分站的功能外,还作为SFTP的客户端向EWS工作站查询软件版本更新信息,并
且还在完成继电保护装置软件完成版本升级基于103规约向主站提供最新的继电保护装置
软件版本信息。保信主站的功能是:保信主站除实现对本地区的所有继电保护装置、故障录
波装置的运行管理外,还实现基于103规约接受保信子站上报的继电保护装置软件版本信
息。
[0033] b)在工作站中部署和配置SFTP服务并创建保存继电保护装置软件升级文件CRC码的目录,对当前继电保护装置软件的每个软件模块文件计算一次CRC码,生成一个csv文件,
每个csv文件包含软件模块文件名和其对应的CRC码,将csv文件保存到SFTP服务设定的目
录中。循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或计算机文
件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或
者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。CRC可以高比例的
纠正信息传输过程中的错误,可以在极短的时间内完成数据校验码的计算,并迅速完成纠
错过程,通过数据包自动重发的方式使得计算机的通信速度大幅提高,对通信效率和安全
提供了保障。由于CRC算法检验的检错能力极强,且检测成本较低,因此在对于编码器和电
路的检测中使用较为广泛。从检错的正确率与速度、成本等方面,都比奇偶校验等校验方式
具有优势。因而,CRC成为计算机信息通信领域最为普遍的校验方式。SFTP是Secure File 
Transfer Protocol的缩写,它是一种安全的文件传送协议,是SSH内含协议,也就是说只要
sshd服务器启动了,SFTP就可使用,不需要额外安装,它的默认端口和SSH一样为22。SFTP与
FTP有着几乎一样的语法和功能。SFTP通过使用加密/解密技术来保障传输文件的安全性,
因此SFTP的传输效率比普通的FTP要低,但SFTP的安全性要比FTP高,因此SFTP通常用于对
安全性要求较高的场景。
[0034] c)从继电保护装置软件开发厂商处获取需要升级的软件模块文件,工作站向保信子站提供SFTP服务,工作站将要升级的软件模块文件逐一利用CRC算法生成本次升级的软
件模块文件的CRC码后将软件模块文件的文件名和CRC码逐一记录到临时文件中。
[0035] d)工作站将SFTP服务设定的目录中的csv文件拷贝一份至SFTP服务目录外作为文件副本,将步骤c)中每个软件模块文件的文件名保持不变,将每个软件模块文件对应的CRC
码更新为升级后的CRC码,如果一软件模块文件没有升级则其对应的CRC码保持不变。
[0036] e)工作站删除SFTP服务设定的目录中的csv文件,将步骤d)中csv文件的文件副本拷贝至SFTP服务设定的目录中。
[0037] f)保信子站以SFTP的方式按照设定的时间间隔访问工作站的SFTP服务设定的目录,将包含CRC码的csv文件下载到本地的指定目录中。
[0038] g)保信子站将下载的包含CRC码的csv文件中的记录按软件模块文件名与本地存储的包含CRC码的csv文件的软件名逐一比较,如果软件名与软件模块文件名一致而对应
CRC码不一致时,再不行步骤h)。
[0039] h)工作人员逐一从工作站将新的软件模块文件下载到继电保护装置目录,用新的软件模块替换原有的旧的软件模块,直至完成保护软件的软件版本升级。
[0040] i)保信子站将保护软件的版本信息上传到保信主站站端,保信子站以SFTP的方式向工作站提交一个文件告知工作站完成保护软件版本升级及软件的版本信息上传的时间。
[0041] j)工作站生成保护软件版本升级的区块链数据,区块链中的区块结构包含区块头和区块体。
[0042] k)工作站将区块链数据向区块链主机所在网络进行广播。
[0043] l)工作站将本次继电保护装置升级的软件模块文件向Git服务器提交,完成本次继电保护装置软件模块升级。
[0044] 基于Git保存继电保护装置历次软件版本升级过程中的软件模块文件,以区块链技术将继电保护装置装置软件版本升级信息采用分布式账本进行记录,将继电保护装置的
软件版本纳入管理,采用将保护软件的版本升级信息上链,同时将保护软件的数据提交到
Git版本库管理,并且每次软件更新后的CRC码作为Git版本库的提交信息,这样一来可以方
便的根据保护软件的CRC码变化记录查看保护软件的升级记录,同时还可以根据CRC码与
Git版本库的提交记录实现保护软件版本变化的跟踪、回退和审计的目的。在工作站与保信
子站通信时采用了SFTP协议,在保信子站与保信主站通信时采用了103规约。通过区块链账
本可以方便且安全保存继电保护装置软件历次记录信息,本专利采用电子流程加区块链账
本技术,既解决了传统升级模式线下记录升级信息容易出错和丢失的问题,又解决了软件
版本升级失败难以回退的问题。
[0045] 优选的,还包括在步骤a)中对Git服务器进行初始化操作,初始化步骤包括:在Git服务器中配置和创建Git服务,该Git服务用于追溯最远的一个完整的继电保护装置软件文
件作为版本仓库的首次提交,Git服务将历次软件版本涉及的文件依次提交到Git版本仓库
中,直至版本仓库保存的继电保护装置软件版本与当前继电保护装置当前使用的软件版本
一致。
[0046] 优选的,在步骤a)中对区块链服务器进行初始化操作,初始化步骤包括:完成多台区块链服务器的部署,形成一个私有的区块链网络,区块链子模块用于存放历次继电保护
装置软件版本升级中的信息,该信息包含软件模块文件名、软件模块文件数据的CRC码及软
件模块升级时间。
[0047] 通过以上的初始化操作,对参与继电保护装置软件版本管理的各方进行节点初始化配置,通过各方签署私有链条约将节点组织成一个私有链,对私有链中各节点作唯一标
识,存储的表示后加上网络初始状态参数,状态参数包括节点数、各节点状态,并将其结构
化处理生成新的存储数据,作为创始区块并在整个私有链范围内广播,私有链范围内所有
节点存储创始区块数据,并采用基于区块链的通信协议。完成区块链网络各节点的初始化
工作及创世区块的创建。
[0048] 优选的,步骤e)中如果其它SFTP客户端可以访问工作站,即保证其他SFTP客户端可访问,则成功后删除csv文件的文件副本。
[0049] 优选的,保信子站将保护软件的版本信息通过IEC60870‑5‑103传输规约上传到保信主站站端。
[0050] 进一步的,区块头包含版本号、签名信息、随机数组,区块体中的数据结构包括:继电保护装置本次软件升级的软件模块文件和对应的CRC码以及本次保信子站向保信主站完
成保护软件版本信息上传的时间。
[0051] 进一步的,步骤k)中区块链上节点发布步骤j)中生成的保护软件版本管理信息,其它节点经广播接收信息,区块链系统通过数字签名广播信息的节点身份及数据的真实
性,如果广播节点是私有链成员节点,则对保护软件版本管理信息进行完整性校验,如果校
验成功,则将保护软件版本管理信息上链,如果广播节点是非链内成员节点,则区块链网络
中各节点通过共识机制达成许可共识,如果取得私有链中一半以上节点许可(即可验证信
息通过),则将节点信息加入创始区块,并对保护软件版本管理信息进行完整性校验,如果
校验成功,则将保护软件版本管理信息上链,如果广播节点未获得私有链共识许可或信息
完整性校验失败,则保护软件版本管理信息不上链。
[0052] 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。