一种事故数据写入方法及装置、设备、存储介质与流程

文档序号:16579211发布日期:2019-01-14 17:49阅读:126来源:国知局
一种事故数据写入方法及装置、设备、存储介质与流程

本申请实施例涉及计算机技术领域,涉及但不限于一种事故数据写入方法及装置、设备、存储介质。



背景技术:

目前,汽车事故的发生居高不下。当出现汽车事故时,处理流程包括:1、现场勘察阶段:相关部门接到指令后,快速赶赴现场,并快速处置现场,进行现场勘察,现场勘察包括现场访问、摄影、制图、丈量、勘验等一系列工作;2、调查阶段,查明事故的基本事实和收集充足的证据;3、责任认定阶段:根据收集的证据依法作出责任认定。其中,在事故责任认定中,证据的重要性不言而喻。证据的采集,更多的依赖于人为的采集和行车记录仪等设备采集的视频。在实现本申请过程中,发明人发现现有技术中至少存在如下问题。

随着技术的提高,视频剪辑等技术门槛的降低,视频存在是被剪辑的可能,导致证据存在被篡改的可能性,从而影响证据的效力。



技术实现要素:

有鉴于此,本申请实施例为解决相关技术中存在的至少一个问题而提供一种事故数据写入方法及装置、设备、存储介质,在车辆发生事故时,验证事故数据的真实性,将真实的事故数据写入区块链,从而减小事故数据被篡改的可能性。

本申请实施例的技术方案是这样实现的:

第一方面,本申请实施例提供一种事故数据写入方法,所述方法包括:

确定事故数据,所述事故数据表征第一车辆发生事故时的事故情况;确定所述事故数据的真实性;确定所述事故数据为真实的事故数据时,将所述事故数据存储到区块链网络中。

第二方面,本申请实施例提供一种事故数据写入装置,所述装置包括:第一确定模块、第二确定模块和写入模块;其中:

所述第一确定模块,用于确定事故数据,所述事故数据表征第一车辆发生事故时的事故情况;

所述第二确定模块,用于确定所述事故数据的真实性;

所述写入模块,用于确定所述事故数据为真实的事故数据时,将所述事故数据存储到区块链网络中。

第三方面,本申请实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述事故数据写入方法中的步骤。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述事故数据写入方法中的步骤。

本申请实施例中,提供了一种事故数据写入方法,在车辆发生事故时,确定事故数据,并验证事故数据的真实性,将真实的事故数据的区块链的地址,写入区块链中。如此,通过将事故数据写入区块链,通过区块链对事故数据进行存储,减小事故数据被篡改的可能性,确保作为证据的数据的完整性正确性。

附图说明

图1为本申请实施例网络架构示意图;

图2为本申请实施例提供的事故数据写入方法的实现流程示意图;

图3为本申请实施例提供的事故数据写入系统的结构示意图一;

图4为本申请实施例区块链网络的功能架构示意图;

图5为本申请实施例区块链网络的组织结构示意图;

图6为本申请实施例提供的事故数据写入装置的结构流程示意图一;

图7为本申请实施例提供的事故数据写入装置的结构流程示意图二;

图8a为本申请实施例提供的确定模块的组成结构示意图;

图8b为本申请实施例提供的验证模块的组成结构示意图;

图9为本申请实施例计算机设备的一种硬件实体示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

为了更好地理解本申请,对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)区块链,一串通过验证的区块,当中的每一个区块都与上一个相连,一直连到最初的区块(创世区块)。一个区块包括一段时间内交易的集合,它会被标记上时间戳和之前一个区块的独特标记(例如数字指纹),有效的区块经过区块链网络中节点的共识后,会被追加到节点所存储的区块链的末尾。

需要指出,本文所记载的区块链应做广义理解,例如可以是各种加密数字货币的区块链,也可以是各种的公有链、私有链、联盟链或者许可链。

2)区块链网络,也称为区块链系统,节点之间基于点对点(p2p)协议组成的网络,节点具有对提交到区块链网络的交易根据共识算法达成一致,并存储到各自所维护的区块链的功能。

3)交易(transaction),等同于计算机术语“事务”,包括任何形式的可记录的数据,例如下文所述的事故数据,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本申请实施例遵循了这一习惯。

图1为本申请实施例网络架构的组成结构示意图,如图1所示,该网络架构包括车载设备11-1n和服务节点30,车载设备11-1n和服务节点30之间通过网络40进行交互。车载设备11-1n在实现的过程中分别放置于对应的车辆21-2n上,以分别对车辆21-2n的位置、速度、周围环境等信息进行采集,得到各车辆的车辆数据。当车辆21发生事故时,车载设备11向服务节点30发送事故通知,并在事故通知中携带事故数据,其中,所述事故数据表征第一车辆发生事故时的事故情况。服务节点30接收到事故通知携带的事故数据时,将接收的事故数据写入事故数据对应的区块链。

车载设备11-1n也可实时将自身采集的对应的车辆21-2n的车辆数据上传至服务节点30,服务节点30实时接收车载设备11-1n上传的车辆21-2n的车辆数据。当车辆21发生事故时,车载设备11向服务节点30发送事故通知。服务节点30接收到事故通知后,根据事故通知确定车辆21的事故数据,将事故数据写入事故数据对应的区块链,其中,车辆21的事故数据表征为车辆21发生事故时的事故情况。

图1中的服务节点30可位于公信系统中,公信系统中可包括区块链网络,区块链网络可包括多条区块链,每条区块链用于写入不同类型的业务数据,其中,事故数据属于其中一类业务数据。即服务节点接收到事故数据时,将接收到的事故数据写入事故数据对应的区块链网络中。

结合图1所示的应用场景示意图,本实施例提出一种事故数据写入方法,能够减小事故数据被篡改的可能性。

本实施例提供一种事故数据写入方法,该方法应用于服务节点,其中,服务节点可为计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。

图2为本申请实施例的一种事故数据写入方法的实现流程示意图,如图2所示,该方法可以包括如下步骤:

s201、确定事故数据;

所述事故数据表征第一车辆发生事故时的事故情况。其中,事故数据可为事故发生时的车辆的周围环境图像、车辆周围的对象与车辆的距离、相对速度、方位等信息,以及车辆的位置、速度、加速度、方向等信息,以能够根据事故数据确定事故发生时的事故情况。

服务节点可直接对当前的交通情况进行监控,得到监控数据,也就是说,服务节点可采集到监控范围内的监控数据;服务节点也可从车载设备接收车载设备采集的监控数据;这里,基于所采集的监控数据为与车辆相关联的数据,可将所采集的监控数据称为车辆数据。

服务平台所监控的车辆数据可包括:车辆的周围环境图像、车辆周围的对象与车辆的距离、相对速度、方位等信息,以及车辆的位置、速度、加速度、方向等信息。

车辆上的车载设备实时采集对应车辆的信息,得到对应车辆的车辆数据。其中,车载设备可包括摄像头、车载雷达、定位装置等信息采集设备。其中,摄像头能够采集车辆的周围环境图像,车载雷达能够采集车辆周围的对象与车辆的距离、相对速度、方位等信息,定位装置能够采集车辆的位置、速度、加速度、方向等信息。因此,车载设备所采集的车辆数据可包括:车辆的周围环境图像、车辆周围的对象与车辆的距离、相对速度、方位等信息,以及车辆的位置、速度、加速度、方向等信息。需要说明的是,车载设备所采集的车辆数据可包括所有信息采集设备所采集的信息。本申请实施例中的车辆数据为与车辆有关的数据,对车辆数据的具体类型以及采集设备不进行任何的限制。

车辆的车载设备采集到车辆数据后,可实时将所采集的车辆数据上传至服务节点,也可本地存储。其中,车载设备将所采集的车辆数据实时上传服务节点时,服务节点能够接收多个车辆的车载设备上传的车辆数据。

在一实施例中,所述方法还包括:对采集的车辆数据进行分析;确定所述的车辆数据中包括事故时,确定发生事故的第一车辆的车辆标识、事故发生时间;相应地,所述确定事故数据,包括:根据所述第一车辆的车辆标识和所述事故发生时间,从所述车辆数据中确定事故数据。

这里,服务节点实时监控交通情况,通过所监控的车辆数据检测到事故的发生时,记录事故发生时间和事故车辆即第一车辆的车辆标识,并根据第一车辆的车辆标识和事故发生时间,确定在事故发生时间范围内该事故发生车辆的车辆标识对应的车辆数据,得到事故数据。

在一实施例中,所述方法还包括:接收第一事故通知,根据所述第一事故通知确定发生事故的第一车辆的车辆标识和事故发生时间;确定从车载设备所接收的车辆数据;相应地,所述确定事故数据,包括:根据所述第一车辆的车辆标识和事故发生时间,从所述车辆数据中确定所述事故数据。

这里,车载设备将所采集的车辆数据实时上传至服务节点,并在检测到发生事故时,向服务节点发送第一事故通知,第一事故通知中携带发生事故的第一车辆的车辆标识和事故发生时间。服务节点接收到第一事故通知后,根据第一事故通知携带的第一车辆的车辆标识和事故发生时间,从所接收的车辆数据中确定事故数据。

在一实施例中,所述根据所述第一车辆的车辆标识和事故发生时间,从所述车辆数据中确定所述事故数据,包括:根据所述第一车辆的车辆标识,确定所述第一车辆标识对应的车辆数据;根据所述事故发生时间,从所述第一车辆的车辆数据中确定所述事故数据;所述事故数据为事故时间范围内的第一车辆数据,所述事故时间范围与所述事故发生时间的时间间隔小于设定时间阈值。

服务节点能够同时监控多个车辆的车辆数据,在确定发生事故的第一车辆的车辆标识后,根据第一车辆的车辆标识从所监控的车辆数据中确定第一车辆的车辆数据,比如:服务节点监控车辆a、车辆b、车辆c和车辆d的车辆数据,分别为车辆数据1、车辆数据2、车辆数据3和车辆数据4,当检测到发生事故的车辆标识为车辆a时,则根据事故发生时间从车辆数据1中确定事故数据。

服务节点能够同时接收多个车辆的车辆数据,在确定发生事故的第一车辆的车辆标识后,根据第一车辆的车辆标识从所接收的车辆数据中确定第一车辆的车辆数据,比如:服务节点接收车辆a、车辆b、车辆c和车辆d的车辆数据,分别为车辆数据1、车辆数据2、车辆数据3和车辆数据4,当接收的第一事故通知中携带的第一车辆的车辆标识为车辆a,则根据事故发生时间从车辆数据1中确定事故数据。

根据所述事故发生时间,从所述第一车辆的车辆数据中确定所述事故数据时,根据设定的时间阈值来确定事故时间范围,并确定事故时间范围内的车辆数据为事故数据。比如,当第一车辆的事故发生时间为17点53分,设定时间阈值为10分钟,则事故时间范围为:17点43分至18点02分之间,确定的事故数据为17点43分至18点02分之间的车辆数据,包括17点43分至18点03分这段时间内第一车辆的周围的环境图像,周围的对象与第一车辆的距离、相对速度、方位,以及第一车辆的位置、速度、加速度、方向等信息。其中,设定的时间阈值的大小可根据实际需求进行设置。

在一实施例中,所述方法还包括:接收第二事故通知,所述第二事故通知携带有所述第一车辆的车辆标识、事故发生时间和所述事故数据;相应地,所述确定事故数据,包括:对所述第二事故通知进行解析,得到所述第二事故通知携带的所述事故数据。

当第一车辆发生事故时,第一车辆上的车载设备检测到第一车辆发生事故,生成事故通知,将事故通知发送至服务节点,服务节点接收到事故通知,其中,根据事故通知是否携带事故数据将事故通知分为以下两种情况:

情况一、未携带事故数据的第一事故通知;

第一车辆的车载设备检测到车辆发生事故时,将第一车辆的车辆标识和事故发生时间携带在第一事故通知中,发送至服务节点。服务节点接收到第一事故通知后,根据第一事故通知确定事故数据,其中,服务节点可对第一事故通知进行解析,得到第一车辆即事故车辆的车辆标识和事故发生时间,并根据第一车辆的车辆标识和事故发生时间确定事故数据。

情况二、携带有事故数据的第二事故通知;

第一车辆的车载设备检测到车辆发生事故时,将事故发生时间前后一段时间内的车辆数据作为事故数据携带在第二事故通知中,发送至服务节点。第二事故通知还携带有第一车辆的车辆标识和事故发生时间。服务节点接收到第二事故通知后,对第二事故通知进行解析,得到第一车辆即事故车辆的车辆标识、事故发生时间和事故数据。

在本申请实施例中,当服务节点接收包括第一车辆在内的多个车辆的车辆数据时,可设置有效期限,服务节点对接收的车辆数据存储并进行监控,将存储的时间超过有效期限的车辆数据删除。

s202、确定所述事故数据的真实性;

当服务节点确定事故数据后,验证事故数据的真实性,当验证通过时,确定事故数据为真实的事故数据;当验证未通过时,确定事故数据为被篡改的事故数据。其中,验证事故数据的真实性的验证方式可包括:确定事故数据的时长是否为事故时间范围:比如:当设定的时间阈值为10分钟,则事故时间范围为20分钟,检测事故数据的时长是否为20分钟,当为20分钟时,为真实数据,表征事故数据未被剪辑;否则,为被篡改数据,表征事故数据被剪辑。本申请实施例中,对验证事故数据的真实性的验证方式不进行任何限定。

在一实施例中,所述验证所述事故数据的真实性,包括:获取所述第一车辆的位置信息;根据所述位置信息确定第二车辆,所述第二车辆与所述第一车辆之间的距离在设定的距离范围内;根据所述第二车辆的车辆数据验证所述事故数据的真实性,所述第二车辆的车辆数据所包括的对象包括有所述第一车辆。

服务节点根据事故数据确定第一车辆的位置信息,并根据第一车辆的位置信息查找在事故发生时与第一车辆的距离在设定的距离范围内的第二车辆。确定第二车辆后,根据第二车的车辆标识向第二车辆的车载设备发送数据获取请求,以向第二车辆请求获取第二车辆的车辆数据,接收第二车辆的车载设备返回的第二车辆的车辆数据。

服务节点确定第二车辆的车辆数据后,将第一车辆的事故数据和第二车辆的车辆数据进行比对,验证第一车辆的事故数据的真实性。本申请实施例中,可根据时间对第一车辆的事故数据和第二车辆的车辆数据进行比对,也可根据对第一车辆的事故数据和第二车辆数据中相同类型的信息进行比对,本申请对具体的比对方式不进行任何限定。

在一实施例中,所述根据所述第二车辆的车辆数据验证所述事故数据的真实性,包括:将同一时刻的所述事故数据和所述第二车辆的车辆数据进行比对,得到比对结果;根据所述比对结果确定所述事故数据的真实性。比如:第一车辆与第二车辆的位置相同,则确定第二车辆为与第一车辆事故的另一车辆,当事故数据为第一车辆的17点43分至18点02分之间的车辆数据,则选取第二车辆的17点43分至18点02分之间的车辆数据,将17点45分之间的两个车辆数据进行比较,确定二者的相对距离以及相对速度是否相同,当不相同时,则确定第一车辆的事故数据或第二车辆的事故数据中存在被篡改的可能性,第一车辆的事故数据不是真实数据,为被篡改的数据。

当第一车辆的事故数据为不是真实数据时,可确定第一车辆的事故数据为可疑数据,再将第三车辆的车辆数据对第一车辆的事故数据进行比对,验证第一车辆的事故数据的真实性,直到确定第一车辆的事故数据为真实数据或被篡改数据。

s203、确定所述事故数据为真实的事故数据时,将所述事故数据存储到区块链网络中;

服务节点确定事故数据后,确定事故数据在区块链网络中的存储地址,即事故数据对应的区块链地址。其中,确定事故数据对应的区块链地址,可包括:根据设定的地址列表确定事故数据对应的区块链地址,其中,不同业务类型的数据对应不同的区块链地址,比如:事故数据对应的区块链地址为地址a、订单数据对应的区块链地址为地址b,其中事故数据和订单数据为不同业务类型的数据。

这里,服务节点中在配置事故数据对应的区块链地址,可直接配置服务节点中的软件开发工具包(softwaredevelopmentkit,sdk)对应的地址为区块链地址,由sdk根据配置的地址将事故数据写入区块链网络中。

在一实施例中,所述将所述事故数据存储到区块链网络中,包括:根据所述车辆标识、所述事故发生时间和所述事故数据生成交易数据;将所述交易数据写入所述区块链网络的当前区块对应的区块文件中。这里,将事故数据转换为设定格式,将设定格式的事故数据、车辆标识和事故发生时间写入区块链地址对应的区块链中的区块。一个区块可写入多个车辆的事故数据,也可写入一个车辆的事故数据。其中,设定格式可为java描述语言对象简谱(javascriptobjectnotation,json)。本申请实施例中对事故数据写入区块链中的格式不进行限定。

需要说明的是,接收事故通知的服务节点和区块链网络所在的服务节点可为同一个服务节点,也可为不同的服务节点。

在区块链网络中区块链的区块中存储第一车辆的交易数据时,可包括两部分数据:一部分为标识数据key,一部分为value,其中,key中包括第一车辆的车辆标识和事故发生时间,value为事故数据。其中,事故发生时间为当前写入的交易数据的时间戳。

区块链中的区块随着存储的交易数据的增加,不断的生成新的区块。在当前的区块中写入第一车辆的交易数据时,将区块提交至区块存储数据库中,将第一车辆的交易数据写入区块存储数据库中的区块文件中。一个区块文件可包括多个区块。将交易数据写入区块文件后,根据在区块文件中写入的位置以及写入的区块生成存储状态数据,存储状态数据包括:key对应的区块id、区块在区块文件中的位置、区块的长度信息、当前区块文件的大小等指示事故数据的在区块文件中的存储位置的信息,以通过存储状态数据定位该事故数据对应的区块在区块文件中的位置。

在一实施例中,所述方法还包括:将所述交易数据写入状态存储区域;当接收到针对所述车辆标识的查询请求时,根据所述查询请求从所述状态存储区域查找所述事故数据。

状态存储区域可为状态数据库,将事故数据写入区块文件后,将车辆标识和事故数据同时写入状态数据库中,已在接收到对第一车辆的事故数据进行查询的查询请求时,根据第一车辆的车辆标识直接从状态数据库中直接查询第一车辆的事故数据,不用去读取区块文件,提高事故数据的读取速度。

当服务节点接收到查询请求时,可对查询请求进行解析,得到查询请求携带的根证书,当携带的根证书为授权的根证书时,确定该查询请求为有效的查询请求,读取所查询的事故数据。

在一实施例中,确定所述状态存储区域的所述交易数据丢失时,通过所述区块链对应的区块文件中写入的交易数据对所述状态存储区域的所述交易数据进行恢复。

当服节点的状态数据库中第一车辆的交易数据丢失,此时,基于区块链的不可篡改特性,区块文件中的交易数据并未进行修改,此时,从服务节点的区块文件中,对状态数据库中的交易数据进行恢复。

基于区块链的去中心化的特性,分布于不同服务节点的区块链中同时存储相同的数据,当一个服务节点a的事故数据丢失或被修改时,可根据另一个服务节点b中存储的事故数据对服务节点a的事故数据进行恢复。这里,可将区块链网路中的服务节点称为共识节点,

可以理解地,为了防止被篡改用户恶意接入区块链,将伪造的事故数据写入区块链,所以还需要对所述事故数据的写入权限进行校验,在校验成功后,才允许根据所述区块链的地址将所述事故数据写入所述区块链。

在本申请实施例中,提供了一种事故数据写入方法,将车辆发生事故时,验证事故数据的真实性,将真实的事故数据的区块链的地址,写入区块链中。如此,通过将事故数据写入区块链,通过区块链对事故数据进行存储,减小事故数据被篡改的可能性,确保作为证据的数据的完整性正确性。如此,在事故数据存储到区块链网络之前,验证事故数据的真实性,将真实的事故数据写入区块链,通过区块链对真实的事故数据进行存储,减小事故数据被篡改的可能性,确保作为证据的数据的完整性正确性,且事故数据的存储具有可追溯、查证、多方间的统一和透明。

本申请实施例中以图3所示的数据写入系统对本申请实施例提供的数据写入方法进行进一步说明。

如图3所示,数据写入系统多个包括位于车辆上的车载设备301、公信云302和公信区块链303;其中,公信区块链为区块链网络的一部分,公信云和公信区块链位于服务节点上。这里,服务节点可包括多个服务子节点,公信云和公信区块链分别位于不同的服务子节点。

车载设备301用于采集车辆数据。

车载设备301可为但不限于如下几种采集设备:

(1)、视频采集设备,如摄像头等,提供直观的图像数据采集。

(2)、车载雷达,收集被测物体的相对距离、相对速度、方位等数据。

(3)、全球定位系统(globalpositionsystem,gps),用于定位。

车载设备301向公信云上传的事故数据可为事故发生前后30秒的车辆数据。其中,事故数据可为但不限于以下几种类型的信息:

(1)、本车辆速度、本车位置、横向加速度和纵向加速度。

(2)、对方车辆的速度、方位、相对距离、相对速度等信息。

(3)、事故前后30秒的视频信息。

其中,事故汽车a、事故汽车b、附件汽车c和附件汽车d上都存在有车载设备301。

公信云平台302,与车载设备实时互联的支持数据存储的第三方公信力的云平台,用于提供采集数据的存储、真实性校验等。

公信区块链303,保存事故数据的第三方公信区块链,利用区块链的不可篡改性,保证事故数据作为证据的效力。公信区块链303中包括创世块、区块1、区块2等区块,当需要增加区块时,在前一个区块的基础上创建新的区块。

本申请实施例提供的事故数据的写入方法包括:

s1、车载设备301将采集的车辆数据通过网络实时的传输到公信云平台302。公信云平台302对车辆数据进行一定有效期的保存。

s2、当有事故发生时,车载设备301会对公信云平台302云平发出事故通知消息。公信云平台302将事故发生时间前后一定时间内(比如前后30秒时间)的车辆数据进行保存,并以事故发生时间为时间戳,加入时间戳,并进行永久性存储。

s3、公信云平台302通过gps等位置信息,搜索附近车辆,并根据附件车辆的车辆数据与事故车辆的车辆数据进行比对,验证事故发生车辆的事故数据的真实性,或可根据事发地附近摄像头,对事故数据进行比对,校验证据。

s4、公信云平台302将校验通过的真实的事故数据传入公信区块链303,利用区块链的不可篡改性,对事故数据提供永久性的保存。保证事故数据作为证据的效力。

本申请实施例中,通过第三方公信的云平台进行事故数据进行收集和校验,利用区块链不可篡改性对能够作为证据的事故数据进行保存,保存证据不可人为篡改。

区块链具有不可篡改的特性,解决事故数据被篡改的可能性,确保事故数据的完整性正确性,如果被篡改可及时发现,保证和提高证据的效力。进一步地,将车载设备采集的事故数据进行存储,能够通过事故数据最大的还原事故现场,保证事故处理的公正性。

下面说明实现本申请实施例的区块链网络的示例性的功能架构,参见图4,图4是本申请实施例提供的区块链网络的功能架构示意图,包括应用层401、共识层402、网络层403、数据层404和资源层405,下面分别进行说明。

资源层405封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层404提供统一的接口以屏蔽实现资源层405的底层硬件的差异性。

计算资源包括各种形式的处理器,例如中央处理器(cpu)、应用专用集成电路(asic,applicationspecificintegratedcircuit)、专用集成电路和现场可编程门阵列(fpga,field-programmablegatearray)的各种形式的处理器。

存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。

资源层405的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本申请实施例的存储介质存储了用于实现本申请实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。

作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。

数据层404封装了实现账本的各种数据结构,包括以文件系统实现的账本数据,以数据库形式实现的账本状态和存在性证明。

网络层403封装了点对点(p2p)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。p2p网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。

共识层402封装了区块链中传播的交易结果达成一致性的机制,包括pos、pow和dpos等,支持共识机制的可插拔。

应用层401封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。

下面说明实现本申请实施例的区块链网络的示例性的组织架构,参见图5,图5是本申请实施例提供的区块链网络的组织架构示意图,包括至少两个共识节点510,作为示例,图5中仅示出了共识节点510-1和共识节点510-2;共识节点510-1和共识节点510-2是部署在不同的位置。区块链网络500响应来自业务主体的终端500提交的查询请求,并在终端500的用户界面510显示各种查询结果。

下面以共识节点为例,说明实现本申请实施例的区块链网络中节点的示例性结构,可以理解地,区块链网络100中的其他节点的硬件结构可以根据共识节点的硬件结构而实施。

在本申请实施例中,将事故数据写入一个共识节点的方法进行进一步描述。

一个区块(block)包含多个交易。一个交易为一次事故数据的写入或修改。一个交易包含key和value。key可包括对车辆进行唯一标识的车辆标识和事故发生时间。value为以json的形式组织的事故数据,也就是写入的事故数据。

事故数据的存储涉及到两个存储区域,分别为:状态数据库statedb(对应状态存储区域)和区块存储blockstore(即区块存储数据库)。

statedb可为leveldb,提供statedb数的打开、关闭、查询和写入功能。存储校验通过的区块中的交易最新的key和value。保存的是所有key的最新值。

blockstore包括block的存储状态信息和block数据两部分数据,block的存储状态信息和block数据自身是分开存储的,block的存储状态信息存储在状态数据库中,block数据自身则存储在称为区块文件blockfile的文本文件中。

blockfile为存储block数据的文件。blockfile文件名可以blockfile为前缀,以六位数字为后缀,依次增加,如blockfile_000000,blockfile_000001,…。而blockfile文件保存实际的block数据。一个blockfile可存储一个或多个block的数据,一个block可存储一次或多次写入的事故数据。

状态数据库也可为leveldb,用于存储当前block数据的存储状态信息,存储状态信息主要指block的位置,长度信息,当前blockfile文件大小,index信息等,主要是用以定位block在blockfile中的所在位置。

事故数据的存储还可涉及历史数据库historydb,historydb是一个辅助性的数据库,解决历史查询问题。以链码id+key+block序列号+交易id的组合形式形成一个组合键。其中,不同的链码id对应不同的业务类型的数据,一个区块链可对应多个链码id;block序列号表征一block,交易id表征一次事故数据的写入。historydb的组合键的组合形式可以针对自身业务的需求进行设计。

通过historydb可以查询所有汽车标识的“blockid+有效交易id”的信息。而有了blockid和交易id,可以通过blockstore和blockfile定位查询出原交易的所有信息,如改动时间,改动值,是否是删除操作等。

在本申请实施例中,确定写入事故数据的block后,把block提交至blockstore,写入blockfile中,然后将有效交易数据提交至statedb,最后向historydb账本提交。

当接收到查询请求时,将汽车的车辆标识和时间戳作为key,查询statedb,就可以得到value信息,即事故数据,不需要直接去读取blockfile。

这里,blockfile和blockstore主要作用数据查询;statedb和historydb用于宕机重启后残缺数据的清理和恢复问题。

当宕机发生时,通过blockstore中的数据恢复statedb的内容,从blockstore获取当前已经写入blockstore的有效的blockid。

基于前述的实施例,本申请实施例提供一种事故数据写入装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。

图6为本申请实施例的一种事故数据写入装置的组成结构示意图,如图6所示,所述装置60包括:确定模块601、验证模块602和写入模块603;其中,

确定模块601,用于确定事故数据,所述事故数据表征第一车辆发生事故时的事故情况;

验证模块602,用于验证所述事故数据的真实性;

写入模块603,用于确定所述事故数据为真实的事故数据时,将所述事故数据存储到区块链网络中将所述事故数据写入所述区块链地址对应的区块。

在一实施例中,如图7所示,装置60还包括:分析模块604,用于:对采集的车辆数据进行分析;确定采集的车辆数据中包括事故时,确定发生事故的第一车辆的车辆标识和事故发生时间;

相应地,确定模块601,用于根据所述第一车辆的车辆标识和所述事故发生时间从所述车辆数据中确定事故数据。

在一实施例中,如图7所示,装置60还包括:第一接收模块605,用于:接收第一事故通知,根据所述第一事故通知确定发生事故的第一车辆的车辆标识和事故发生时间;确定从车载设备所接收的车辆数据;

相应地,确定模块601,用于根据所述第一车辆的车辆标识和事故发生时间,从所述车辆数据中确定事故数据。

在一实施例中,如图8a所示,确定模块601,包括:第一确定子模块611和第二确定子模块612;其中,

第一确定子模块611,用于根据所述第一车辆的车辆标识,确定所述第一车辆标识对应的车辆数据;

第二确定子模块612,用于根据所述事故发生时间,从所述第一车辆的车辆数据中确定所述事故数据;所述事故数据为事故时间范围内的第一车辆数据,所述事故时间范围与所述事故发生时间的时间间隔小于设定时间阈值。

在一实施例中,如图7所示,装置60还包括:第二接收模块606,用于:接收第二事故通知;所述第二事故通知携带有所述第一车辆的车辆标识、事故发生时间和所述事故数据;

相应地,确定模块601,用于对所述第二事故通知进行解析,得到所述第二事故通知携带的所述事故数据。

在一实施例中,如图8b所示,验证模块602包括:获取子模块621和比对子模块622,其中,

获取子模块621,用于获取所述第一车辆的位置信息;根据所述位置信息确定第二车辆,所述第二车辆与所述第一车辆之间的距离在设定的距离范围内;

比对子模块622,根据所述第二车辆的车辆数据验证所述事故数据的真实性,所述第二车辆的车辆数据所包括的对象包括有所述第一车辆。

在一实施例中,比对子模块622,用于:

将同一时刻的所述事故数据和所述第二车辆的车辆数据进行比对,得到比对结果;

根据所述比对结果确定所述事故数据的真实性。

在一实施例中,写入模块603,用于:

根据所述车辆标识、所述事故发生时间和所述事故数据,生成交易数据;

将所述交易数据写入所述区块链网络的当前区块对应的区块文件中。

在一实施例中,如图7所示,装置60还包括,查询模块607,用于:

将所述交易数据写入状态存储区域;

当接收到针对所述车辆标识的查询请求时,根据所述查询请求,从所述状态存储区域查找所述事故数据。

在一实施例中,如图7所示,装置60还包括,恢复模块608,用于:

确定所述状态存储区域的所述交易数据丢失时,通过所述区块链网络对应的区块文件中写入的交易数据,对所述状态存储区域的所述交易数据进行恢复。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据写入方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

对应地,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据写入方法中的步骤。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的事故数据写入方法中的步骤。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,图9为本申请实施例计算机设备的一种硬件实体示意图,如图9所示,所述计算机设备900包括:一个处理器901、至少一个通信总线902、用户接口903、至少一个外部通信接口904和存储器905。其中,通信总线902配置为实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏,外部通信接口904可以包括标准的有线接口和无线接口。

存储器905配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及计算机设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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