一种基于区块链的DNA数据存储方法、设备以及系统与流程

文档序号:15819509发布日期:2018-11-02 22:58阅读:232来源:国知局
一种基于区块链的DNA数据存储方法、设备以及系统与流程

本申请属于数据处理技术领域,尤其涉及一种基于区块链的dna数据存储方法、基于区块链的dna数据存储系统、计算设备以及计算机可读存储介质。

背景技术

近年来,脱氧核糖核酸dna刑事科学技术发展迅猛,在提高公安机关打击犯罪的能力和提高执法办案水平方面发挥了越来越重要的作用。全国公安机关先后建立了“法庭科学dna数据库”、“dna实验室管理系统(简称dna-lims)”等一系列重要信息系统,为了案件侦破提供了强有力支撑。

为了应对全国dna样本数据的实时比对请求,现有技术中的比对方案可以概括为“数据逐级上报,分层级比对,结果优先反馈。”

数据逐级上报比对即由区县将数据上报给地市,地市上报给省级,省级上报给部级系统。区县首先在本地系统内部比对,及时展现数据比对结果。在省级节点,只比对省内跨实验室之间的数据,比中结果下发反馈给实验室。在部级节点,只比对跨省的数据,比中结果下发反馈给实验室。通过以上流程,实现全国dna数据“两两样本”之间的比对。

dna数据库系统在部、省、市、区县多级部署,通过一系列标准数据接口,将数据由各地实验室上报给市级、省级,最后到部级库中,经过多重dna数据库系统的对接与审查。其中,部级系统侧重于高速比对和跨省比中结果的发布,以及各省级系统的管理和数据统计;省级系统侧重于保证数据中转(包括数据上报和比中结果下发)的流畅,精准,管理本省各市级系统和数据统计;地市、区县级系统是主要实战单位,以数据采集、检验、本地比对为系统应用的核心,其目标是保证基因数据的正确性、可靠性。

按照上述比对方案,需要将数据逐级上报到上级的“法庭科学dna数据库”,对于省级和部级比对节点有很大的比对压力。对于一个样本,既要比对“同型”,又要同时比对“三联体”,以部级系统为例:每一个样本要和部级库中的6850万样本,逐一比对2次,相当于在部级要比对1.37亿次。每天国家库接收上报样本数据约5~6万条左右,相当于在部级每天要比对8万亿多次。整体来说,对于法庭科学dna数据库部级数据比对造成较大压力。为了能快速实时反馈比中通报,目前“法庭科学dna数据库”部级增加了比对引擎横向扩展支持,增加了比对的吞吐量,提升了比对的性能,但同时也增加了大量的硬件成本,并且由于传输层级节点多、网络不稳定等因素,比对结果的下发和反馈依然存在延迟问题,没有根本性解决。

上述传统方式破获了不少重要案件,但需要投入大量的人力物力财力,且因多级架构,反馈需要一定周期。各地dna数据逐层上报,使得部级dna数据库数据与各地dna数据不同步。如果期间任何一级传输出现问题,则可能导致无法正常处理。如果一些案件,例如打拐不能得到有效的及时处理,将有可能错过最佳破案时期。此外,由于比对省厅dnalims数据库效率较低且全省各地均未将全部数据上报至省厅,导致比对结果差强人意,仍需向各级实验室发送大量手工协查比对通报。

因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。



技术实现要素:

有鉴于此,本申请提供了一种基于区块链的dna数据存储方法、基于区块链的dna数据存储系统、计算设备以及计算机可读存储介质,按照资源共享的原则,建设分布式数据存储系统,利用区块链技术实现数据的不可篡改、并最终实现全网一致。

为实现上述目的,本申请提供技术方案如下:

根据本申请的第一方面,提出了一种基于区块链的dna数据存储方法,所述方法应用于基于区块链的dna数据存储系统,所述系统包括一服务器以及多个客户端,所述方法包括:

所述客户端获取至少一个dna数据;

当所述服务器输出所述客户端验证通过的消息时,所述客户端将所述dna数据添加至区块链中。

优选的,所述方法还包括:

所述客户端向所述服务器发送登录请求,所述登录请求携带有所述客户端对应的ip地址和/或证书信息;

所述服务器获取预先存储的多个ip地址和/或证书信息;

当所述客户端对应的ip地址和/或证书信息记录在所述服务器预先存储的多个ip地址和/或证书信息时,所述服务器输出所述客户端验证通过的消息。

优选的,所述客户端将所述dna数据添加至区块链中包括:

所述客户端根据所述dna数据形成一区块;

所述客户端将所述dna数据对应的区块发送至所有客户端;

所有客户端分别对所述区块进行单独验证,输出验证消息;

当所有客户端输出的验证消息中显示区块验证通过的个数超过一预先设定的阈值时,所有客户端将所述区块添加至区块链中,否则,删除所述区块。

优选的,所述客户端根据所述dna数据形成一区块包括:

所述客户端获取所述区块链中最后一个区块的哈希值,称为第一哈希值;

根据所述第一哈希值以及所述dna数据基于哈希算法输出所述dna数据对应的哈希值;

根据所述dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。

优选的,所有客户端分别对所述区块进行单独验证,输出验证消息包括:

所有客户端从所述区块中获取出第一哈希值;

所有客户端从所述区块链的最后一个区块中获取出所述最后一个区块的哈希值,称为第二哈希值;

当所述第一哈希值与所述第二哈希值相同时,输出区块验证通过的验证消息;

当所述第一哈希值与所述第二哈希值不同时,输出区块验证未通过的验证消息。

优选的,所述方法还包括:

所述客户端接收至少一个dna数据比对请求,所述dna数据比对请求中携带至少一个待比对的dna数据;

获取所述区块链上的每个区块中存储的dna数据;

将所述待比对的dna数据与所述每个区块中存储的dna数据进行比对,输出比对结果。

根据本申请的第二方面,提出了一种基于区块链的dna数据存储系统,所述系统包括一服务器以及多个客户端,

所述客户端包括数据获取模块,用于获取至少一个dna数据;

所述服务器包括验证模块,用于对所述客户端进行验证,输出验证消息;

所述客户端还包括数据添加模块,用于当所述验证消息显示所述客户端验证通过时,将所述dna数据添加至区块链中。

预选的,所述客户端还包括:

登录请求发送模块,用于向所述服务器发送登录请求,所述登录请求携带有所述客户端对应的ip地址和/或证书信息;

所述服务器还包括:

存储信息获取模块,用于获取预先存储的多个ip地址和/或证书信息;

所述验证模块包括:

第一验证模块,用于当所述客户端对应的ip地址和/或证书信息记录在预先存储的多个ip地址和/或证书信息时,输出所述客户端验证通过的消息;

第二验证模块,用于当所述客户端对应的ip地址和/或证书信息未记录在预先存储的多个ip地址和/或证书信息时,输出所述客户端未验证通过的消息。

优选的,所述数据添加模块包括:

区块形成模块,用于根据所述dna数据形成一区块;

数据发送模块,用于将所述dna数据对应的区块发送至所述客户端;

区块验证模块,用于对所述区块进行单独验证,输出验证消息;

区块添加模块,用于当所述验证消息中显示区块验证通过的个数超过一预先设定的阈值时,将所述区块添加至区块链中;

区块删除模块,用于当所述验证消息中显示区块未验证通过的个数超过一预先设定的阈值时,删除所述区块。

优选的,所述区块形成模块包括:

哈希值获取模块,用于获取所述区块链中最后一个区块的哈希值,称为第一哈希值;

哈希值确定模块,用于根据所述第一哈希值以及所述dna数据基于哈希算法输出所述dna数据对应的哈希值;

区块确定模块,用于根据所述dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。

优选的,所述区块验证模块包括:

第一哈希值获取模块,用于从所述区块中获取出第一哈希值;

第二哈希值获取模块,用于从所述区块链的最后一个区块中获取出所述最后一个区块的哈希值,称为第二哈希值;

第一验证消息输出模块,用于当所述第一哈希值与所述第二哈希值相同时,输出区块验证通过的验证消息;

第二验证消息输出模块,用于当所述第一哈希值与所述第二哈希值不同时,输出区块验证未通过的验证消息。

优选的,所述客户端还包括:

比对请求接收模块,用于接收至少一个dna数据比对请求,所述dna数据比对请求中携带至少一个待比对的dna数据;

dna数据获取模块,用于获取所述区块链上的每个区块中存储的dna数据;

dna数据比对模块,用于将所述待比对的dna数据与所述每个区块中存储的dna数据进行比对,输出比对结果。

根据本申请的第三方面,提出了一计算设备,所述计算设备包括:适于实现各指令的处理器以及存储设备,所述存储设备存储有多条指令,所述指令适于由处理器加载并执行:

获取至少一个dna数据;

当验证通过时,将所述dna数据添加至区块链中。

根据本申请的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行:

获取至少一个dna数据;

当验证通过时,将所述dna数据添加至区块链中。

由以上技术方案可见,本申请按照资源共享的原则,建设分布式数据存储系统,利用区块链技术实现数据的不可篡改、并最终实现全网一致,当客户端需要进行dna数据比对时,只需在本地区块链中比对,比对结果立即返回,实现了快速、实时的数据比对,缩短比对周期,提高比对效率。

为让本申请的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请提供的一种基于区块链的dna数据存储方法的流程示意图;

图2示出了本申请提供的一种基于区块链的dna数据存储方法的实施方式二的流程示意图;

图3示出了图2中的步骤s205的流程示意图;

图4示出了图3中的步骤s301的流程示意图;

图5示出了图3中的步骤s303的流程示意图;

图6示出了本申请提供的一种基于区块链的dna数据存储方法的实施方式三的流程示意图;

图7示出了本申请提供的一种基于区块链的dna数据存储系统的结构框图;

图8示出了本申请提供的一种基于区块链的dna数据存储系统中客户端的实施方式一的结构框图;

图9示出了本申请提供的一种基于区块链的dna数据存储系统中服务器的结构框图;

图10示出了服务器中验证模块的结构框图;

图11示出了客户端中数据添加模块的结构框图;

图12示出了客户端中区块形成模块的结构框图;

图13示出了客户端中区块验证模块的结构框图;

图14示出了本申请提供的一种基于区块链的dna数据存储系统中客户端的实施方式二的结构框图;

图15示出了本申请提供的区块链中相邻区块的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。

虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行。

下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。

本申请提供了一种基于区块链的dna数据存储的系统,图7为该系统的结构示意图,请参阅图7,本申请提供的系统包括一服务器100以及多个客户端200。

本申请提供的dna数据存储系统中的区块链运用到了p2p(peer-to-peer)原理,如果区块链只存储在一台机器上,当该机器下线时,则其他机器将无法获取信息。因此,区块链的最新状态需要被同步到所有机器上,这些机器称为“节点”。这些节点通过p2p确保数据是最新版本。在本申请中,多个客户端200即为“节点”。具体到dna数据存储领域,客户端指的是全国所有的dna实验室。

为了确保区块链的各个区块中的数据只可以被加盟的节点使用,设置了专用的服务器,即本申请中的服务器100。

图8示出了客户端的实施方式一的结构框图,请参阅图8,在本申请的实施方式一中,所述客户端包括:

登录请求发送模块203,用于向所述服务器发送登录请求,所述登录请求携带有所述客户端对应的ip地址和/或证书信息。

图9示出了本申请中服务器的结构框图,请参阅图9,所述服务器100包括:

存储信息获取模块102,用于获取预先存储的多个ip地址和/或证书信息。在本申请中,该服务器记录了所有加盟的节点(即客户端)的ip地址和/或证书信息。所有加盟的节点会有一个共识机制。共识机制就是一组规则,由网络中的节点通过运行软件达成一致。这些规则确保网络安全工作并保持同步。

验证模块101,用于对所述客户端进行验证,输出验证消息。

图10示出了服务器100中验证模块101的结构框图,请参阅图10,所述验证模块101包括:

第一验证模块1011,用于当所述客户端对应的ip地址和/或证书信息记录在预先存储的多个ip地址和/或证书信息时,输出所述客户端验证通过的消息;

第二验证模块1012,用于当所述客户端对应的ip地址和/或证书信息未记录在预先存储的多个ip地址和/或证书信息时,输出所述客户端未验证通过的消息。

也即,当服务器接收到至少一个客户端发送的登录请求时,首先从登录请求中解析出该客户端对应的ip地址和/或证书信息,然后核查该客户端对应的ip地址和/或证书信息是否记录在预先存储的多个ip地址和/或证书信息中。当核查结果表明该客户端对应的ip地址和/或证书信息记录在预先存储的多个ip地址和/或证书信息中时,则认为当前的客户端属于加盟的客户端,因此服务器输出所述客户端验证通过的消息。当核查结果表明该客户端对应的ip地址和/或证书信息未记录在预先存储的多个ip地址和/或证书信息中时,则认为当前的客户端不属于加盟的客户端,因此服务器输出所述客户端未验证通过的消息。

请再次参阅图8,当客户端通过服务器的验证之后,在本申请的实施方式一中,所述客户端还包括:

数据获取模块201,用于获取至少一个dna数据。

数据添加模块202,用于将所述dna数据添加至区块链中。图11示出了数据添加模块202的结构框图,请参阅图11,所述数据添加模块202包括:

区块形成模块2021,用于根据所述dna数据形成一区块;

数据发送模块2022,用于将所述dna数据对应的区块发送至所述客户端。

区块验证模块2023,用于对所述区块进行单独验证,输出验证消息;

区块添加模块2024,用于当所述验证消息中显示区块验证通过的个数超过一预先设定的阈值时,将所述区块添加至区块链中;

区块删除模块2025,用于当所述验证消息中显示区块未验证通过的个数超过一预先设定的阈值时,删除所述区块。

在本申请的一种实施方式中,数据发送模块可将dna数据对应的区块发送至所述客户端,此处的客户端指的是获取到所述dna数据的客户端之外的其他所有客户端时,即,在图7所示的具体示意图中,假设客户端为10个,其中第一个客户端获取到了dna数据,则该客户端将该dna数据形成的区块发送至其他9个客户端。此时其他9个客户端的区块验证模块2023分别对所述区块进行单独验证,输出验证消息,当服务器确定出9个客户端的区块验证模块输出的验证消息显示区块验证通过的个数超过一预先设定的阈值(诸如5)时,则认为达成共识,所有客户端将当前区块添加至区块链中,否则删除所述区块。

在本申请的一种实施方式中,数据发送模块可将dna数据对应的区块发送至所述客户端,此处的客户端指的是该系统的所有客户端时,即,在图7所示的具体示意图中,假设客户端为10个,其中第一个客户端获取到了dna数据,则该客户端将该dna数据形成的区块发送至所有的10个客户端。此时所有10个客户端的区块验证模块2023分别对所述区块进行单独验证,输出验证消息,当服务器确定出10个客户端的区块验证模块输出的验证消息显示区块验证通过的个数超过一预先设定的阈值(诸如6)时,则认为达成共识,所有客户端将当前区块可添加至区块链中,否则删除所述区块。

图12示出了客户端中区块形成模块的结构框图,请参阅图12,所述区块形成模块2021包括:

哈希值获取模块20211,用于获取所述区块链中最后一个区块的哈希值,称为第一哈希值;

哈希值确定模块20212,用于根据所述第一哈希值以及所述dna数据基于哈希算法输出所述dna数据对应的哈希值;

区块确定模块20213,用于根据所述dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。

图15示出了本申请提供的区块链中相邻区块的示意图,请参见图15,区块链中每个区块均包括上一个区块的哈希值、当前区块的数据、当前区块的哈希值。具体的,如图15所示,标号2的区块中上一个区块的哈希值为1z8f,与图15中标号为1的区块中的哈希值1z8f相同。标号为3的区块中上一个区块的哈希值为6bq1,与标号为2的区块中的哈希值6bq1相同。因此,区块链上每一个区块记录的上一个区块的哈希值需要和上一个区块的哈希值吻合时,相邻两个区块才可以被链接起来。

因此,区块形成模块2021首先获取区块链中最后一个区块的哈希值即第一哈希值,然后确定出当前区块对应的哈希值,该哈希值与第一哈希值以及当前区块需要存储的dna数据相关,第一哈希值以及dna数据根据哈希算法即可计算得出dna数据对应的哈希值,最后根据dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。此处提及的哈希算法可按照现有技术中的哈希算法来实现,本申请对此不作限定。

图13示出了客户端中区块验证模块的结构框图,请参阅图13,区块验证模块2023包括:

第一哈希值获取模块20231,用于从所述区块中获取出第一哈希值;

第二哈希值获取模块20232,用于从所述区块链的最后一个区块中获取出所述最后一个区块的哈希值,称为第二哈希值;

第一验证消息输出模块20233,用于当所述第一哈希值与所述第二哈希值相同时,输出区块验证通过的验证消息;

第二验证消息输出模块20234,用于当所述第一哈希值与所述第二哈希值不同时,输出区块验证未通过的验证消息。

也即,通过比对区块形成模块生成的区块中存储的上一个区块的哈希值与当前区块链中最后一个区块的哈希值是否相同,即可确定出当前区块是否通过验证。当区块形成模块生成的区块中存储的上一个区块的哈希值被篡改时,即与当前区块链中最后一个区块的哈希值不同,此时即输出验证未通过的验证消息。

如上即是本申请提供的一种基于区块链的dna数据存储系统,每个客户端上均保存着最新的区块链。本申请提及的区块链简而言之是一种数据结构,它是一个记录所有事务记录的日志。类比于一本没有写完的日志,每一页都有信息,页脚写着页数,因此马上可以知道正在第几页。和书一样,区块链中每个“块”就是一页,记录着详细信息。“块”中没有页数,但是有时间戳。新的区块总是在通过验证后添加到最新的块之后。在dna数据存储系统中,每个区块中记录着所有加盟的客户端的dna数据、当前区块哈希值、上一区块的哈希值,除此之外还可包括时间戳、用户签名等信息。每个区块中的dna数据的量可根据需求进行调节。按照资源共享的原则,建设的分布式数据存储系统,利用区块链技术实现数据不可篡改、最终全网一致。

如上介绍了本申请提供的一种基于区块链的dna数据存储系统,下面介绍针对本申请提供的基于区块链的dna数据存储系统如何进行dna数据的比对。

在本申请中,所有dna实验室可选择性加盟,发布dna数据到网络的其他节点上。其他信息联盟成员只有许可后的访问权,没有处置权,确保了数据的安全性。例如实验室a可以上传,修改自己的dna数据,但是只能查看实验室b的数据,无权对其修改。加盟的实验室不断更新分享数据,确保拥有最新版本,有效完成所需比对业务。

图14示出了本申请提供的一种基于区块链的dna数据存储系统中客户端的实施方式二的结构框图,请参阅图14,在实施方式二中客户端还包括:

比对请求接收模块203,用于接收至少一个dna数据比对请求,所述dna数据比对请求中携带至少一个待比对的dna数据;

dna数据获取模块204,用于获取所述区块链上的每个区块中存储的dna数据;

dna数据比对模块205,用于将所述待比对的dna数据与所述每个区块中存储的dna数据进行比对,输出比对结果。

具体的,当待比对的dna数据与一区块中存储的dna数据比对一致时,则输出比对成功的比对结果,该比对结果中可输出该区块中存储的dna数据,诸如身份信息等。

当待比对的dna数据与所有区块中存储的dna数据比对均不一致时,则输出比对失败的比对结果。

由于本申请提供的dna数据存储系统改变了已有的技术体系结构,采用分布式p2p的方式进行比对和比对结果反馈,采用区块链技术存储和传输数据。因此,全国所有的dna实验室获取的dna数据,最先录入到各dna实验室的“法庭科学dna数据库”和dna实验室管理系统(简称dna-lims),各dna实验室的数据总和与“法庭科学dna数据库”部级等量,并且时效性更好。当一个实验室发起比对任务的时候,只需在本地区块链节点库中比对,比中结果立即返回。该方式利用全国dna实验室的空闲计算资源,实现了快速,实时的数据比对方式,比传统的逐级比对方式在反馈结果的效率上,提高了1个数量级以上。

本发明还提供了一种计算机设备,包括适于实现各指令的处理器以及存储设备,所述存储设备存储有多条指令,所述指令适于由处理器加载并执行:

获取至少一个dna数据;

当验证通过时,将所述dna数据添加至区块链中。

本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序用于执行:

获取至少一个dna数据;

当验证通过时,将所述dna数据添加至区块链中。

此外,尽管在上文详细描述中提及了系统的若干单元模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。同样,上文描述的一个单元的特征和功能也可以进一步划分为由多个单元来具体化。以上所使用的术语“模块”和“单元”,可以是实现预定功能的软件和/或硬件。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

在介绍了本发明示例性实施方式的基于区块链的dna数据存储的系统、计算机设备、计算机可读存储介质之后,接下来,参考附图对本发明示例性实施方式的方法进行介绍。该方法的实施可以参见上述整体的实施,重复之处不再赘述。

图1示出了本申请提供的一种基于区块链的dna数据存储方法的流程示意图,请参阅图1,该方法包括:

s101:客户端获取至少一个dna数据。

本申请提供的dna数据存储系统中的区块链运用到了p2p(peer-to-peer)原理,如果区块链只存储在一台机器上,当该机器下线时,则其他机器将无法获取信息。因此,区块链的最新状态需要被同步到所有机器上,这些机器称为“节点”。这些节点通过p2p确保数据是最新版本。在本申请中,多个客户端200即为“节点”。具体到dna数据存储领域,客户端指的是全国所有的dna实验室,所有dna实验室可选择性加盟。

为了确保区块链的各个区块中的数据只可以被加盟的节点使用,设置了专用的服务器,即本申请中的服务器100。

s102:当所述服务器输出所述客户端验证通过的消息时,所述客户端将所述dna数据添加至区块链中。

图2示出了本申请提供的一种基于区块链的dna数据存储方法的实施方式二的流程示意图,请参阅图2,该方法在实施方式二中包括:

s201:客户端向所述服务器发送登录请求,所述登录请求携带有所述客户端对应的ip地址和/或证书信息;

s202:服务器获取预先存储的多个ip地址和/或证书信息。在本申请中,该服务器记录了所有加盟的节点(即客户端)的ip地址和/或证书信息。所有加盟的节点会有一个共识机制。共识机制就是一组规则,由网络中的节点通过运行软件达成一致。这些规则确保网络安全工作并保持同步。

s203:当所述客户端对应的ip地址和/或证书信息记录在预先存储的多个ip地址和/或证书信息时,服务器输出所述客户端验证通过的消息。

也即,当服务器接收到至少一个客户端发送的登录请求时,首先从登录请求中解析出该客户端对应的ip地址和/或证书信息,然后核查该客户端对应的ip地址和/或证书信息是否记录在预先存储的多个ip地址和/或证书信息中。当核查结果表明该客户端对应的ip地址和/或证书信息记录在预先存储的多个ip地址和/或证书信息中时,则认为当前的客户端属于加盟的客户端,因此服务器输出所述客户端验证通过的消息。当核查结果表明该客户端对应的ip地址和/或证书信息未记录在预先存储的多个ip地址和/或证书信息中时,则认为当前的客户端不属于加盟的客户端,因此服务器输出所述客户端未验证通过的消息。

s204:客户端获取至少一个dna数据。

s205:客户端将所述dna数据添加至区块链中。

图3示出了步骤s205的流程示意图,请参阅图3,该步骤包括:

s301:客户端根据所述dna数据形成一区块;

s302:将所述dna数据对应的区块发送至所述客户端。

s303:对所述区块进行单独验证,输出验证消息;

s304:当所述验证消息中显示区块验证通过的个数超过一预先设定的阈值时,将所述区块添加至区块链中;否则,删除所述区块。

在本申请的一种实施方式中,步骤s302可将dna数据对应的区块发送至所述客户端,此处的客户端指的是获取到所述dna数据的客户端之外的其他所有客户端时,即,在图7所示的具体示意图中,假设客户端为10个,其中第一个客户端获取到了dna数据,则该客户端将该dna数据形成的区块发送至其他9个客户端。此时其他9个客户端的区块验证模块2023分别对所述区块进行单独验证,输出验证消息,当服务器确定出9个客户端的区块验证模块输出的验证消息显示区块验证通过的个数超过一预先设定的阈值(诸如5)时,则认为达成共识,所有客户端将当前区块添加至区块链中,否则删除所述区块。

在本申请的一种实施方式中,步骤s302可将dna数据对应的区块发送至所述客户端,此处的客户端指的是该系统的所有客户端时,即,在图7所示的具体示意图中,假设客户端为10个,其中第一个客户端获取到了dna数据,则该客户端将该dna数据形成的区块发送至所有的10个客户端。此时所有10个客户端的区块验证模块2023分别对所述区块进行单独验证,输出验证消息,当服务器确定出10个客户端的区块验证模块输出的验证消息显示区块验证通过的个数超过一预先设定的阈值(诸如6)时,则认为达成共识,所有客户端将当前区块可添加至区块链中,否则删除所述区块。

图4示出了步骤s301的流程示意图,请参阅图4,该步骤包括:

s401:客户端获取所述区块链中最后一个区块的哈希值,称为第一哈希值;

s402:根据所述第一哈希值以及所述dna数据基于哈希算法输出所述dna数据对应的哈希值。

s403:根据所述dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。

图15示出了本申请提供的区块链中相邻区块的示意图,请参见图15,区块链中每个区块均包括上一个区块的哈希值、当前区块的数据、当前区块的哈希值。具体的,如图15所示,标号2的区块中上一个区块的哈希值为1z8f,与图15中标号为1的区块中的哈希值1z8f相同。标号为3的区块中上一个区块的哈希值为6bq1,与标号为2的区块中的哈希值6bq1相同。因此,区块链上每一个区块记录的上一个区块的哈希值需要和上一个区块的哈希值吻合时,相邻两个区块才可以被链接起来。

因此,步骤s301首先获取区块链中最后一个区块的哈希值即第一哈希值,然后确定出当前区块对应的哈希值,该哈希值与第一哈希值以及当前区块需要存储的dna数据相关,第一哈希值以及dna数据根据哈希算法即可计算得出dna数据对应的哈希值,最后根据dna数据对应的哈希值、dna数据以及所述第一哈希值形成区块,所述区块即为所述dna数据对应的区块。此处提及的哈希算法可按照现有技术中的哈希算法来实现,本申请对此不作限定。

图5示出了步骤s303的流程示意图,请参阅图5,该步骤包括:

s501:客户端从所述区块中获取出第一哈希值;

s502:从所述区块链的最后一个区块中获取出所述最后一个区块的哈希值,称为第二哈希值。

s503:当所述第一哈希值与所述第二哈希值相同时,输出区块验证通过的验证消息;

s504:当所述第一哈希值与所述第二哈希值不同时,输出区块验证未通过的验证消息。

也即,通过步骤s301生成的区块中存储的上一个区块的哈希值与当前区块链中最后一个区块的哈希值是否相同,即可确定出当前区块是否通过验证。当步骤s301生成的区块中存储的上一个区块的哈希值被篡改时,即与当前区块链中最后一个区块的哈希值不同,此时即输出验证未通过的验证消息。

如上即是本申请提供的一种基于区块链的dna数据存储方法,每个客户端上均保存着最新的区块链。本申请提及的区块链简而言之是一种数据结构,它是一个记录所有事务记录的日志。类比于一本没有写完的日志,每一页都有信息,页脚写着页数,因此马上可以知道正在第几页。和书一样,区块链中每个“块”就是一页,记录着详细信息。“块”中没有页数,但是有时间戳。新的区块总是在通过验证后添加到最新的块之后。在dna数据存储系统中,每个区块中记录着所有加盟的客户端的dna数据、当前区块哈希值、上一区块的哈希值,除此之外还可包括时间戳、用户签名等信息。每个区块中的dna数据的量可根据需求进行调节。按照资源共享的原则,建设的分布式数据存储系统,利用区块链技术实现数据不可篡改、最终全网一致。

如上介绍了本申请提供的一种基于区块链的dna数据存储方法,下面介绍针对本申请提供的基于区块链的dna数据存储方法如何进行dna数据的比对。

在本申请中,所有dna实验室可选择性加盟,发布dna数据到网络的其他节点上。其他信息联盟成员只有许可后的访问权,没有处置权,确保了数据的安全性。例如实验室a可以上传,修改自己的dna数据,但是只能查看实验室b的数据,无权对其修改。加盟的实验室不断更新分享数据,确保拥有最新版本,有效完成所需比对业务。

图6示出了本申请提供的一种基于区块链的dna数据存储方法的实施方式三的流程示意图,请参阅图6,在实施方式三中该方法包括:

s601:客户端获取至少一个dna数据;

s602:当服务器输出客户端验证通过的消息时,客户端将所述dna数据添加至区块链中;

s603:接收至少一个dna数据比对请求,所述dna数据比对请求中携带至少一个待比对的dna数据;

s604:获取所述区块链上的每个区块中存储的dna数据;

s605:将所述待比对的dna数据与所述每个区块中存储的dna数据进行比对,输出比对结果。

具体的,当待比对的dna数据与一区块中存储的dna数据比对一致时,则输出比对成功的比对结果,该比对结果中可输出该区块中存储的dna数据,诸如身份信息等。

当待比对的dna数据与所有区块中存储的dna数据比对均不一致时,则输出比对失败的比对结果。

由于本申请提供的dna数据存储方法改变了已有的技术体系结构,采用分布式p2p的方式进行比对和比对结果反馈,采用区块链技术存储和传输数据。因此,全国所有的dna实验室获取的dna数据,最先录入到各dna实验室的“法庭科学dna数据库”和dna实验室管理系统(简称dna-lims),各dna实验室的数据总和与“法庭科学dna数据库”部级等量,并且时效性更好。当一个实验室发起比对任务的时候,只需在本地区块链节点库中比对,比中结果立即返回。该方式利用全国dna实验室的空闲计算资源,实现了快速,实时的数据比对方式,比传统的逐级比对方式在反馈结果的效率上,提高了1个数量级以上。

本申请提供的技术方案,创造性的提出分布式dna比对模式,解决了现有dna国家库系统层级比对的缺陷,显著提高了基层案件侦办的效率,为案件侦破提供了强大支撑。

本发明的有益效果包括:

无需逐层上报给各级,提高全国dna实验室比对工作效率。

分布式的数据在多处存储确保了数据安全性,完整性,防止服务器下线无法访问。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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