一种基于区块链技术的机车信号设备数据记录方法与流程

文档序号:16686372发布日期:2019-01-22 18:21阅读:579来源:国知局
一种基于区块链技术的机车信号设备数据记录方法与流程

本发明涉及传输控制规程,涉及装置、设备、电路和系统,尤指一种基于区块链技术的机车信号设备数据记录方法。



背景技术:

机车信号设备作为保障列车安全运行的重要设备,在国家铁路中大量装备使用。机车信号设备通过接收地面信号和列车运行信息,实现对列车的运行控制。列车运行中产生的数据通过机车信号设备采集并存储在机车信号设备内置的存储器,在列车出入库检修或发生故障时由作业人员上车转储数据,再下载到计算机进行分析。

目前的机车信号数据转储方法效率太低,既不方便数据转储和数据分析,又不能保证数据记录的完整性,当列车在多个铁路局线路运行时会发生数据割裂的情况,同时还存在数据被篡改的可能。



技术实现要素:

针对现有技术的缺点,本发明的目的在于提供一种基于区块链技术的机车信号设备数据记录方法。实现在列车运行中对机车信号设备数据的存储,将所有数据以区块链方式分布式存储在各个铁路局的全节点内。

本发明解决其技术问题所采用的技术方案是:提供一种基于区块链技术的机车信号设备数据记录方法,其特征在于包括如下步骤:

步骤一.进行区块数据结构定义

步骤1.1.将每个区块分为区块头和区块体,其中区块头包含区块序号、区块时间戳、当前区块哈希值hash和前一个区块哈希值prevhash,区块体包含具体的机车信号数据记录内容;

步骤1.2.将首个区块定义为创世区块,其前一区块哈希值prevhash设为0;

步骤1.3通过对区块体内的机车信号设备数据进行哈希计算得到当前区块哈希值hash;

步骤1.4.生成一个新区块时在新区块头填充区块序号、当前时间作为区块时间戳、当前区块体的哈希值hash、将前一个区块的哈希值hash作为新区块的prevhash,最后加上区块体的机车信号设备数据,实现一个新区块的创建;

步骤1.5.每次都将新区块加入到区块链主链尾端,形成一个区块链长链;

步骤二.进行区块节点配置与连接

步骤2.1.通过配置文件将节点配置为只包含区块头信息的轻节点和包含全部区块信息的全节点;

步骤2.2.将车载无线通信设备配置为只同步区块头信息的轻节点类型,收到机车信号设备数据后将数据发送给其他节点;

步骤2.3.将各个铁路局服务器运行的挖矿程序配置为全节点类型,接收与存储所有的区块数据;

步骤2.4.将机车信号设备数据浏览器配置全节点类型,接收与存储所有的区块数据;

步骤2.5.节点启动后从配置文件读取地址列表信息,如果存在可用的相邻节点,则直接连接到相邻节点;

步骤2.6.如果为新节点或不存在地址列表信息的节点,则连接到默认的节点,并向其发送当前节点地址信息和获取其他节点的地址列表信息的命令;

步骤2.7.节点收到地址列表更新信息后,更新本机的地址列表信息,然后向相邻节点发送地址更新信息,直到所有节点都更新完毕;

步骤2.8.每次收到地址列表更新信息后,将其保存到配置文件,下次启动后直接从地址列表获取相邻节点进行连接;

步骤2.9.运行中的节点如果与相邻节点断开,则从地址列表查找下一个相邻节点进行连接,直到成功;

步骤三.进行区块数据记录

步骤3.1.机车信号设备采集的列车运行数据发送到车载无线通信设备;

步骤3.2.车载无线通信设备的运行轻节点程序收到机车信号设备数据后,将数据发送到相邻节点,再经相邻节点发送到各个铁路局的全节点挖矿程序;

步骤3.3.各个铁路局的全节点挖矿程序收到数据后,检查数据并创建新区块,新区块头的prevhash为前一个区块hash值,区块体为机车信号设备数据内容;

步骤3.4.包含机车信号设备数据的的新区块在生成完毕后发送给相邻节点,通过相邻节点发送至其它铁路局的全节点挖矿程序;

步骤3.5.其他铁路局的全节点挖矿程序收到新区块,验证确认完毕后将其添加到区块链主链,停止当前的区块生成过程,等待接收数据并竞争下一个区块的生成操作;

步骤四.进行区块数据的浏览

运行机车信号设备数据全节点浏览器,实时同步新区块记录,提取区块内的机车信号设备数据内容,转换为机车信号设备详细状态图和表格方式显示。

本发明的有益效果是:可完整存储列车运行产生的机车信号设备数据,机车信号数据以区块链方式存储记录在各个铁路局的服务器内,数据的完整性和安全性得得到了保证。无论列车运行在哪个线路,在各个铁路局都会存储完整的数据记录,不会产生数据割裂和丢失的情况。

而且基于区块链的特性,每个区块都包含有前一个区块的哈希值prevhash,若某一个区块的机车信号数据被人为篡改,则会导致当前区块的hash改变,与记录在下一个区块的prevhash不一致,从而脱离主链。如果要让篡改后的区块能链接上去,需要有一半以上的铁路局同时修改后续所有的区块内容,这种特性基本杜绝了数据被篡改的可能。

附图说明

下面结合附图对本发明作进一步的描述。

图1是本发明区块数据结构定义示意图。

图2是本发明区块节点配置与连接示意图。

图3是本发明区块数据记录示意图。

具体实施方式

参见附图,本发明一种基于区块链技术的机车信号设备数据记录方法,包括如下步骤:

步骤一.选定一个铁路局做为默认节点,在默认节点建立一个创世区块以初始化一条新区块链;创世区块的内容如图1所示,将区块id设置为0,区块时间戳设置为当前时间,前一区块哈希值prevhash设置为0,当前区块哈希值hash设置为区块体内容的哈希计算结果,区块体的内容为创世区块的备注信息;通过配置文件将各个列车上的车载设备配置为轻节点数据发送程序;通过配置文件将各铁路局的数据存储节点配置为全节点挖矿程序;通过配置文件将各铁路局的监测节点配置全节点浏览器程序;

步骤二.如图2所示,各节点启动后检查配置文件的地址列表信息,如果该节点地址列表为空或为新节点,将其连接到默认节点并向默认节点发送该节点地址信息和获取地址列表命令;如果该节点地址列表不为空,则连接到地址列表的可用相邻节点;运行中的节点收到某个相邻节点的地址更新信息后,检查并更新本节点的地址列表,然后再次向所有相邻节点转发地址更新信息,直到所有节点地址列表更新完毕;

步骤三.如图3所示,机车信号设备采集列车运行数据后发送到车载无线通信设备,运行在车载无线通信设备的轻节点程序将数据发送给相邻节点;如果相邻节点为全节点挖矿程序,检查收到的数据是否为机车信号数据;如果为机车信号数据,则进入新区块生成流程,如果为区块新数据数据则进入新区块验证流程;在新区块生成流程,首先校验机车信号数据是否为有效数据,校验通过后,使用图1所示的区块数据结构创建一个新区块;将上一个区块序号递增一个数字作为当前区块序号id、当前时间作为区块时间戳timestamp、当前机车机车信号设备数据内容的哈希值作为当前区块哈希值hash、将上一个区块的哈希值hash作为新区块的前一个区块哈希值prevhash;如果新区块为首个区块,则将创世区块作为前一区块;当新区块数据结构创建完毕后,将其添加到本节点的区块链上,并通过相邻节点将当前新区块发送给其他挖矿节点进行验证;其他挖矿节点收到新区块验证数据后,进入新区块验证流程,首先验证新区块的prevhash,检查其是否与本节点区块链上的前一个区块的hash是否一致,然后验证新区块的hash是否与区块体的机车信号数据内容的哈希计算结果一致;如果新区块验证通过,则取消当前正常进行的新区块产生过程,使用接收并验证过的新区块作为当前新区块,并将其添加到本节点的区块链上;

步骤四.区块链成功运行后,通过机车信号设备数据全节点浏览器程序可以浏览所有的新区块数据或查询历史区块数据,通过区块体提取机车信号设备数据数据内容,将其转换为机车信号设备详细状态图和表格方式显示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1