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)中生成的保护软件版本管理信息,其它节点经广播接收信息,区块链系统通过数字签名广播信息的节点身份及数据的真实性,如果广播节点是私有链成员节点,则对保护软件版本管理信息进行完整性校验,如果校验成功,则将保护软件版本管理信息上链,如果广播节点是非链内成员节点,则区块链网络中各节点通过共识机制达成许可共识,如果取得私有链中一半以上节点许可,则将节点信息加入创始区块,并对保护软件版本管理信息进行完整性校验,如果校验成功,则将保护软件版本管理信息上链,如果广播节点未获得私有链共识许可或信息完整性校验失败,则保护软件版本管理信息不上链。