首页 / 专利库 / 资料储存系统 / 数据库 / 一种居民户籍信息管理方法及服务器

一种居民户籍信息管理方法及服务器

阅读:94发布:2021-04-14

专利汇可以提供一种居民户籍信息管理方法及服务器专利检索,专利查询,专利分析的服务。并且本 发明 属于计算机技术领域,尤其涉及一种居民户籍信息管理方法及 服务器 。所述方法应用于预设的居民户籍信息管理 区 块 链 中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主 节点 和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点,所述方法实现了将完整的居民户籍信息分散存储在各条次区块链中的各个次节点中,每个次节点中仅需存储部分的居民户籍信息,只在所述主区块链中的各个主节点中备份了完整的居民户籍信息,一方面,保证了居民户籍信息的整体安全性,另一方面,大大降低了整体的 冗余度 ,减少了对于存储资源的消耗。,下面是一种居民户籍信息管理方法及服务器专利的具体信息内容。

1.一种居民户籍信息管理方法,其特征在于,所述方法应用于预设的居民户籍信息管理链中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主节点和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点,每个次区块链中的各个次节点中均维护着本地的居民户籍信息数据库,在各个次节点的本地的居民户籍信息数据库中仅存储当前的次区块链所需的居民户籍信息,而不存储其它的次区块链所需的居民户籍信息,在同一个次区块链中的各个次节点所维护的居民户籍信息数据库是一致的,所述主区块链中的各个主节点中均维护着本地的居民户籍信息数据库,在各个主节点的本地的居民户籍信息数据库中存储所有的次区块链所需的居民户籍信息,即备份了完整的居民户籍信息,在所述主区块链中的各个主节点所维护的居民户籍信息数据库是一致的,所述方法包括:
第一节点接收用户终端发送的居民户籍信息存储请求,所述第一节点为任意一个所述次节点,所述居民户籍信息存储请求中包括身份标识;
所述第一节点提取所述居民户籍存储请求中的身份标识,并在本地的居民户籍信息数据库中查询所述身份标识;
若所述第一节点在本地的居民户籍信息数据库中未查找到所述身份标识,则向第二节点发送第一协同处理请求,所述第一协同处理请求中包括所述身份标识,所述第二节点为所述第一节点所属的次区块链的主节点;
所述第二节点在接收到所述第一节点发送的所述第一协同处理请求后,在本地的居民户籍信息数据库中查询所述身份标识;
若所述第二节点在本地的居民户籍信息数据库未查询到所述身份标识,则所述第二节点向所述第一节点发送居民户籍信息不存在的消息;
所述第一节点接收所述用户终端发送的居民户籍信息;
所述第一节点根据所述居民户籍信息生成第一区块,并在所述第一节点所属的次区块链中广播所述第一区块;
所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库;
所述第一节点将所述居民户籍信息转发至第二节点;
所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块;
所述主区块链中的各个主节点根据所述第二区块更新本地的居民户籍信息数据库;
所述在本地的居民户籍信息数据库中查询所述身份标识包括:
根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
HashKeyk=HASHk(Identity)
其中,Identity为所述身份标识,HASHk为序号为k的哈希函数,HashKeyk为运算得到的序号为k的哈希值,1≤k≤K,K为大于1的整数;
获取与本地的居民户籍信息数据库对应的查询数组,所述查询数组为预设的用于表征特定数据是否存储在本地的居民户籍信息数据库中的数组;
判断所述查询数组是否满足以下判断条件:对任意一个k的取值,等式ARRAY[HashKeyk]==Value_1均成立,其中,ARRAY为所述查询数组,Value_1为预设的第一数值;
若所述查询数组不满足所述判断条件,则判定在本地的居民户籍信息数据库中未查询到所述身份标识。
2.根据权利要求1所述的居民户籍信息管理方法,其特征在于,所述查询数组的预设过程包括:
当本地的居民户籍信息数据库中尚未存储任何居民户籍信息时,对任意一个m的取值,均执行以下赋值操作:
ARRAY[m]=Value_2
其中,1≤m≤M,M为所述查询数组中的元素个数,Value_2为预设的第二数值;
当本地的居民户籍信息数据库中新增了一条居民户籍信息时,提取所述居民户籍信息中的身份标识;
根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
HashKeyExistk=HASHk(IdentityExist)
其中,IdentityExist为所述身份标识,HashKeyExistk为运算得到的序号为k的哈希值;
对任意一个k的取值,均执行以下赋值操作:
ARRAY[HashKeyExistk]=Value_1。
3.根据权利要求1至2中任一项所述的居民户籍信息管理方法,其特征在于,还包括:
所述第一节点接收用户终端发送的居民户籍信息查询请求,所述居民户籍信息查询请求中包括身份标识;
所述第一节点提取所述居民户籍查询请求中的身份标识,并在本地的居民户籍信息数据库中查询所述身份标识;
若所述第一节点在本地的居民户籍信息数据库中查询到所述身份标识,则向所述用户终端发送与所述身份标识对应的居民户籍信息;
若所述第一节点在本地的居民户籍信息数据库中未查找到所述身份标识,则向所述第二节点发送第二协同处理请求,所述第二协同处理请求中包括所述身份标识;
所述第二节点在接收到所述第一节点发送的所述第二协同处理请求后,在本地的居民户籍信息数据库中查询所述身份标识;
若所述第二节点在本地的居民户籍信息数据库查询到所述身份标识,则向所述第一节点发送与所述身份标识对应的居民户籍信息;
所述第一节点向所述用户终端转发所述居民户籍信息。
4.一种服务器,其特征在于,所述服务器应用于预设的居民户籍信息管理区块链中的第一节点中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主节点和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点,每个次区块链中的各个次节点中均维护着本地的居民户籍信息数据库,在各个次节点的本地的居民户籍信息数据库中仅存储当前的次区块链所需的居民户籍信息,而不存储其它的次区块链所需的居民户籍信息,在同一个次区块链中的各个次节点所维护的居民户籍信息数据库是一致的,所述主区块链中的各个主节点中均维护着本地的居民户籍信息数据库,在各个主节点的本地的居民户籍信息数据库中存储所有的次区块链所需的居民户籍信息,即备份了完整的居民户籍信息,在所述主区块链中的各个主节点所维护的居民户籍信息数据库是一致的,所述第一节点为任意一个所述次节点,所述服务器包括:
居民户籍信息接收模块,用于接收用户终端发送的居民户籍信息;
第一区块生成模块,用于根据所述居民户籍信息生成第一区块;
第一区块广播模块,用于在所述第一节点所属的次区块链中广播所述第一区块,以使所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库;
第一转发模块,用于将所述居民户籍信息转发至第二节点,所述第二节点为所述第一节点所属的次区块链的主节点,以使所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块;
存储请求接收模块,用于接收所述用户终端发送的居民户籍信息存储请求,所述居民户籍信息存储请求中包括身份标识;
第一提取模块,用于提取所述居民户籍存储请求中的身份标识;
第一查询模块,用于在本地的居民户籍信息数据库中查询所述身份标识;
消息发送模块,用于若在本地的居民户籍信息数据库中查询到所述身份标识,则向所述用户终端发送居民户籍信息已存在的消息;
第一协同处理请求发送模块,用于若在本地的居民户籍信息数据库中未查找到所述身份标识,则向所述第二节点发送第一协同处理请求,以使所述第二节点在本地的居民户籍信息数据库中查询所述身份标识,所述第一协同处理请求中包括所述身份标识;
所述第一查询模块包括:
哈希运算单元,用于根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
HashKeyk=HASHk(Identity)
其中,Identity为所述身份标识,HASHk为序号为k的哈希函数,HashKeyk为运算得到的序号为k的哈希值,1≤k≤K,K为大于1的整数;
查询数组获取单元,用于获取与本地的居民户籍信息数据库对应的查询数组,所述查询数组为预设的用于表征特定数据是否存储在本地的居民户籍信息数据库中的数组;
条件判断单元,用于判断所述查询数组是否满足以下判断条件:对任意一个k的取值,等式ARRAY[HashKeyk]==Value_1均成立,其中,ARRAY为所述查询数组,Value_1为预设的第一数值;
第一判定单元,用于若所述查询数组不满足所述判断条件,则判定在本地的居民户籍信息数据库中未查询到所述身份标识。
5.根据权利要求4所述的服务器,其特征在于,还包括:
第一赋值模块,用于当本地的居民户籍信息数据库中尚未存储任何居民户籍信息时,对任意一个m的取值,均执行以下赋值操作:
ARRAY[m]=Value_2
其中,1≤m≤M,M为所述查询数组中的元素个数,Value_2为预设的第二数值;
身份标识提取模块,用于当本地的居民户籍信息数据库中新增了一条居民户籍信息时,提取所述居民户籍信息中的身份标识;
哈希运算单元,用于根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
HashKeyExistk=HASHk(IdentityExist)
其中,IdentityExist为所述身份标识,HashKeyExistk为运算得到的序号为k的哈希值;
第二赋值模块,用于对任意一个k的取值,均执行以下赋值操作:
ARRAY[HashKeyExistk]=Value_1。
6.根据权利要求4至5中任一项所述的服务器,其特征在于,还包括:
查询请求接收模块,用于接收用户终端发送的居民户籍信息查询请求,所述居民户籍信息查询请求中包括身份标识;
第二提取模块,用于提取所述居民户籍查询请求中的身份标识;
第二查询模块,用于在本地的居民户籍信息数据库中查询所述身份标识;
户籍信息发送模块,用于若所述第一节点在本地的居民户籍信息数据库中查询到所述身份标识,则向所述用户终端发送与所述身份标识对应的居民户籍信息;
第二协同处理请求发送模块,用于若在本地的居民户籍信息数据库中未查找到所述身份标识,则向所述第二节点发送第二协同处理请求,以使所述第二节点在本地的居民户籍信息数据库中查询所述身份标识,所述第二协同处理请求中包括所述身份标识;
第二转发模块,用于向所述用户终端转发所述第二节点发送的与所述身份标识对应的居民户籍信息。

说明书全文

一种居民户籍信息管理方法及服务器

技术领域

[0001] 本发明属于计算机技术领域,尤其涉及一种居民户籍信息管理方法及服务器。

背景技术

[0002] 目前通常使用的居民户籍信息管理方式可以分为两类,一类是集中式管理,这种方式会将所有的居民户籍信息集中存储在一个服务器中,但是这种存储方式在被黑客侵入或者发生故障时极易发生居民户籍信息被篡改或者损坏的情况,安全性较低;另一类是分布式管理,这种方式会将居民户籍信息分布存储在多个服务器中,也即形成了多套备份,有效地提高了信息的安全性,但是由于这种方式是以冗余度来换取安全性,在居民户籍信息较多的情况下,会浪费大量的存储资源。

发明内容

[0003] 有鉴于此,本发明实施例提供了一种居民户籍信息管理方法及服务器,以解决现有的集中式管理安全性较低,以及分布式管理浪费大量的存储资源的问题。
[0004] 本发明实施例的第一方面提供了一种居民户籍信息管理方法,应用于预设的居民户籍信息管理链中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主节点和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点,所述方法包括:
[0005] 第一节点接收用户终端发送的居民户籍信息,所述第一节点为任意一个所述次节点;
[0006] 所述第一节点根据所述居民户籍信息生成第一区块,并在所述第一节点所属的次区块链中广播所述第一区块;
[0007] 所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库
[0008] 所述第一节点将所述居民户籍信息转发至第二节点,所述第二节点为所述第一节点所属的次区块链的主节点;
[0009] 所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块;
[0010] 所述主区块链中的各个主节点根据所述第二区块更新本地的居民户籍信息数据库。
[0011] 本发明实施例的第二方面提供了一种服务器,所述服务器应用于预设的居民户籍信息管理区块链中的第一节点中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主节点和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点,所述第一节点为任意一个所述次节点,所述服务器包括:
[0012] 居民户籍信息接收模块,用于接收用户终端发送的居民户籍信息;
[0013] 第一区块生成模块,用于根据所述居民户籍信息生成第一区块;
[0014] 第一区块广播模块,用于在所述第一节点所属的次区块链中广播所述第一区块,以使所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库;
[0015] 第一转发模块,用于将所述居民户籍信息转发至第二节点,所述第二节点为所述第一节点所属的次区块链的主节点,以使所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块。
[0016] 本发明实施例与现有技术相比存在的有益效果是:通过本发明实施例,实现了将完整的居民户籍信息分散存储在各条次区块链中的各个次节点中,每个次节点中仅需存储部分的居民户籍信息,只在所述主区块链中的各个主节点中备份了完整的居民户籍信息,一方面,保证了居民户籍信息的整体安全性,另一方面,大大降低了整体的冗余度,减少了对于存储资源的消耗。附图说明
[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0018] 图1为本发明实施例中居民户籍信息管理区块链的一个具体实例图;
[0019] 图2为本发明实施例中一种居民户籍信息管理方法的一个实施例流程图
[0020] 图3为本发明实施例中对居民户籍信息存储请求进行处理的示意流程图;
[0021] 图4为本发明实施例中对居民户籍信息查询请求进行处理的示意流程图;
[0022] 图5为本发明实施例中一种服务器的一个实施例结构图;
[0023] 图6为本发明实施例中一种服务器的示意框图

具体实施方式

[0024] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0025] 本发明实施例中的房产交易方法应用于预设的居民户籍信息管理区块链中,所述居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,每条所述次区块链中包括一个主节点和至少一个次节点,所述主区块链中包括各条所述次区块链的主节点。图1所示为所述居民户籍信息管理区块链的一个具体实例,该实例中的居民户籍信息管理区块链包括三条次区块链,每条次区块链中包括两个次节点。当然,在不同的情景下,可以对所述居民户籍信息管理区块链所包括的次区块链的条数以及每条次区块链所包括的次节点的个数进行调整,其中,不同的次区块链所包括的次节点的个数可以是相同的,也可以是不同的。
[0026] 如图2所示,本发明实施例中一种居民户籍信息管理方法的一个实施例可以包括:
[0027] 步骤S201,第一节点接收用户终端发送的居民户籍信息。
[0028] 所述第一节点为任意一个所述次节点。
[0029] 优选地,为了保证通信过程的安全性,所述用户终端在发送所述居民户籍信息前,可以对所述居民户籍信息进行加密,具体的加密方式可以使用对称加密算法,也可以使用非对称加密算法。其中,对称加密算法为采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,若采用对称加密算法,则所述用户终端采用预设的密钥对所述居民户籍信息进行加密,所述第一节点在接收到所述居民户籍信息后,也采用相同的密钥对所述居民户籍信息进行解密。非对称加密算法需要两个密钥,分别为公钥和私钥。公钥和私钥是一对,如果用公钥对信息进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密,若采用非对称加密算法,则所述用户终端采用预设的密钥(公钥或私钥)对所述居民户籍信息进行加密,所述第一节点在接收到所述居民户籍信息后,使用另一个密钥(若加密使用公钥,则此处使用私钥,若加密使用私钥,则此处使用公钥)对所述居民户籍信息进行解密。
[0030] 步骤S202,所述第一节点根据所述居民户籍信息生成第一区块,并在所述第一节点所属的次区块链中广播所述第一区块。
[0031] 具体地,所述第一节点首先获取其所属的次区块链中的链尾区块,也即最新添加入所述次区块链中的区块,其中,每个区块均包括区块头和区块主体,然后对所述链尾区块的区块头进行特征运算,得到第一特征值;对所述居民户籍信息进行特征运算,得到第二特征值;根据所述第一特征值和所述第二特征值生成所述第一区块的区块头,并根据所述居民户籍信息生成所述第一区块的区块主体,从而构成了完整的第一区块。
[0032] 所述特征运算可以为哈希运算,所述特征值可以为运算所得的哈希值。哈希运算是把任意长度的输入变换成固定长度的输出,该输出就是哈希值。这种转换是一种压缩映射,也就是,输出的长度通常远小于输入的长度,不同的输入可能会散列成相同的输出,而不可能从输出值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的过程。在本实施例中所使用的哈希运算可以包括但不限于MD4、MD5、SHA1等具体的算法。
[0033] 步骤S203,所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库。
[0034] 每个次区块链中的各个次节点中均维护着本地的居民户籍信息数据库,在该居民户籍信息数据库中仅存储当前的次区块链所需的居民户籍信息,而不存储其它的次区块链所需的居民户籍信息。在同一个次区块链中的各个次节点所维护的居民户籍信息数据库是一致的。
[0035] 步骤S204,所述第一节点将所述居民户籍信息转发至第二节点。
[0036] 所述第二节点为所述第一节点所属的次区块链的主节点。为了保证通信过程的安全性,所述第一节点在转发所述居民户籍信息前,可以对所述居民户籍信息进行加密,具体的加密方法可以参照步骤S201中的内容,在此不再赘述。
[0037] 步骤S205,所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块。
[0038] 具体地,所述第二节点首先获取所述主区块链中的链尾区块,也即最新添加入所述主区块链中的区块,其中,每个区块均包括区块头和区块主体,然后对所述链尾区块的区块头进行特征运算,得到第一特征值;对所述居民户籍信息进行特征运算,得到第二特征值;根据所述第一特征值和所述第二特征值生成所述第二区块的区块头,并根据所述居民户籍信息生成所述第二区块的区块主体,从而构成了完整的第二区块。
[0039] 步骤S206,所述主区块链中的各个主节点根据所述第二区块更新本地的居民户籍信息数据库。
[0040] 所述主区块链中的各个主节点中均维护着本地的居民户籍信息数据库,在该居民户籍信息数据库中存储所有的次区块链所需的居民户籍信息,即备份了完整的居民户籍信息。在所述主区块链中的各个主节点所维护的居民户籍信息数据库是一致的。
[0041] 进一步地,为了避免同一居民户籍信息被重复存储,在图2所示的步骤之前,还可以包括如图3所示的步骤:
[0042] 步骤S301,所述第一节点接收所述用户终端发送的居民户籍信息存储请求。
[0043] 所述居民户籍信息存储请求中包括身份标识,所述身份标识为所述居民户籍信息的唯一标识,不同居民户籍信息的身份标识也各不相同。
[0044] 步骤S302,所述第一节点提取所述居民户籍存储请求中的身份标识,并在本地的居民户籍信息数据库中查询所述身份标识。
[0045] 具体地,首先根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
[0046] HashKeyk=HASHk(Identity)
[0047] 其中,Identity为所述身份标识,HASHk为序号为k的哈希函数,HashKeyk为运算得到的序号为k的哈希值,1≤k≤K,K为大于1的整数。
[0048] 然后,获取与本地的居民户籍信息数据库对应的查询数组,所述查询数组为预设的用于表征特定数据是否存储在本地的居民户籍信息数据库中的数组。
[0049] 最后,判断所述查询数组是否满足以下判断条件:对任意一个k的取值,等式ARRAY[HashKeyk]==Value_1均成立,其中,ARRAY为所述查询数组,Value_1为预设的第一数值。
[0050] 若所述查询数组不满足所述判断条件,则判定在本地的居民户籍信息数据库中未查询到所述身份标识,若所述查询数组满足所述判断条件,则判定在本地的居民户籍信息数据库中查询到所述身份标识。
[0051] 其中,所述查询数组的预设过程具体包括:
[0052] 当本地的居民户籍信息数据库中尚未存储任何居民户籍信息时,对任意一个m的取值,均执行以下赋值操作:ARRAY[m]=Value_2,其中,1≤m≤M,M为所述查询数组中的元素个数,Value_2为预设的第二数值。
[0053] 当本地的居民户籍信息数据库中新增了一条居民户籍信息时,首先提取所述居民户籍信息中的身份标识,然后根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:HashKeyExistk=HASHk(IdentityExist),其中,IdentityExist为所述身份标识,HashKeyExistk为运算得到的序号为k的哈希值。最后,对任意一个k的取值,均执行以下赋值操作:ARRAY[HashKeyExistk]=Value_1。
[0054] 所述第一数值和所述第二数值的具体取值可以根据实际情况设置,一般地,可以设置所述第一数值为1,所述第二数值为0。
[0055] 若查询成功,也即所述第一节点在本地的居民户籍信息数据库中查询到所述身份标识,则执行步骤S303,若查询失败,也即所述第一节点在本地的居民户籍信息数据库中未查找到所述身份标识,则执行步骤S304和步骤S305。
[0056] 步骤S303,所述第一节点向所述用户终端发送居民户籍信息已存在的消息。
[0057] 由于所述居民户籍信息已经被存储过,则无需再执行图2所示的步骤。
[0058] 步骤S304,所述第一节点向所述第二节点发送第一协同处理请求。
[0059] 由于所述第一节点本地的居民户籍信息数据库中存储的只是局部的居民户籍信息,而所述第二节点本地的居民户籍信息数据库中存储的是完整的居民户籍信息,因此所述第一节点在本地的居民户籍信息数据库中未查询到所述身份标识时,可以向所述第二节点发送第一协同处理请求,以使所述第二节点继续在其本地的居民户籍信息数据库中查询所述身份标识。所述第一协同处理请求中包括所述身份标识。
[0060] 步骤S305,所述第二节点在接收到所述第一节点发送的所述第一协同处理请求后,在本地的居民户籍信息数据库中查询所述身份标识。
[0061] 具体的查询过程与步骤S302中的类似,具体可参照步骤S302中的描述,在此不再赘述。
[0062] 若查询成功,也即所述第二节点在本地的居民户籍信息数据库中查询到所述身份标识,则执行步骤S306和步骤S307,若查询失败,也即所述第二节点在本地的居民户籍信息数据库中未查找到所述身份标识,则执行步骤S308和步骤S309。
[0063] 步骤S306,所述第二节点向所述第一节点发送居民户籍信息已存在的消息。
[0064] 步骤S307,所述第一节点向所述用户终端转发居民户籍信息已存在的消息。
[0065] 由于所述居民户籍信息已经被存储过,则无需再执行图2所示的步骤。
[0066] 步骤S308,所述第二节点向所述第一节点发送居民户籍信息不存在的消息。
[0067] 由于所述居民户籍信息尚未被存储过,则可继续执行图2所示的步骤。
[0068] 通过图3所示的步骤,在进行居民户籍信息存储之前,首先通过身份标识查询该居民户籍信息是否已被存储过,若未被存储过,则执行存储过程,若已被存储过,则不再执行存储过程,从而避免了同一居民户籍信息的多次存储,减少了对于存储资源的消耗,提高了存储资源的有效利用率。
[0069] 进一步地,当用户终端需要查询某个居民户籍信息时,可以包括如图4所示的步骤:
[0070] 步骤S401,所述第一节点接收用户终端发送的居民户籍信息查询请求。
[0071] 所述居民户籍信息查询请求中包括身份标识。
[0072] 步骤S402,所述第一节点提取所述居民户籍查询请求中的身份标识,并在本地的居民户籍信息数据库中查询所述身份标识。
[0073] 若查询成功,也即所述第一节点在本地的居民户籍信息数据库中查询到所述身份标识,则执行步骤S403,若查询失败,也即所述第一节点在本地的居民户籍信息数据库中未查找到所述身份标识,则执行步骤S404和步骤S405。
[0074] 步骤S403,所述第一节点向所述用户终端发送与所述身份标识对应的居民户籍信息。
[0075] 步骤S404,所述第一节点向所述第二节点发送第二协同处理请求。
[0076] 所述第二协同处理请求中包括所述身份标识;
[0077] 步骤S405,所述第二节点在接收到所述第一节点发送的所述第二协同处理请求后,在本地的居民户籍信息数据库中查询所述身份标识。
[0078] 若查询成功,也即所述第二节点在本地的居民户籍信息数据库中查询到所述身份标识,则执行步骤S406和步骤S407,若查询失败,也即所述第二节点在本地的居民户籍信息数据库中未查找到所述身份标识,则执行步骤S408和步骤S409。
[0079] 步骤S406,所述第二节点向所述第一节点发送与所述身份标识对应的居民户籍信息。
[0080] 步骤S407,所述第一节点向所述用户终端转发所述居民户籍信息。
[0081] 步骤S408,所述第二节点向所述第一节点发送居民户籍信息不存在的消息。
[0082] 步骤S409,所述第一节点向所述用户终端转发居民户籍信息不存在的消息。
[0083] 综上所述,本发明实施例中的居民户籍信息管理区块链包括一条主区块链及两条以上的次区块链,所述主区块链中包括两个以上的主节点,每条所述次区块链中包括一个主节点和至少一个次节点,且所述主节点与所述次区块链之间存在一一对应的关系。第一节点接收到用户终端发送的居民户籍信息时,根据所述居民户籍信息生成第一区块,并在所述第一节点所属的次区块链中广播所述第一区块,所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库,然后所述第一节点将所述居民户籍信息转发至第二节点,所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块,所述主区块链中的各个主节点根据所述第二区块更新本地的居民户籍信息数据库。通过本发明实施例,实现了将完整的居民户籍信息分散存储在各条次区块链中的各个次节点中,每个次节点中仅需存储部分的居民户籍信息,只在所述主区块链中的各个主节点中备份了完整的居民户籍信息,一方面,保证了居民户籍信息的整体安全性,另一方面,大大降低了整体的冗余度,减少了对于存储资源的消耗。
[0084] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0085] 对应于上文实施例所述的一种居民户籍信息管理方法,图5示出了本发明实施例提供的一种服务器的一个实施例结构图,所述服务器应用于所述第一节点中,所述服务器可以包括:
[0086] 居民户籍信息接收模块501,用于接收用户终端发送的居民户籍信息;
[0087] 第一区块生成模块502,用于根据所述居民户籍信息生成第一区块;
[0088] 第一区块广播模块503,用于在所述第一节点所属的次区块链中广播所述第一区块,以使所述第一节点所属的次区块链中的各个次节点根据所述第一区块更新本地的居民户籍信息数据库;
[0089] 第一转发模块504,用于将所述居民户籍信息转发至第二节点,所述第二节点为所述第一节点所属的次区块链的主节点,以使所述第二节点根据所述居民户籍信息生成第二区块,并在所述主区块链中广播所述第二区块。
[0090] 进一步地,所述服务器还可以包括:
[0091] 存储请求接收模块,用于接收所述用户终端发送的居民户籍信息存储请求,所述居民户籍信息存储请求中包括身份标识;
[0092] 第一提取模块,用于提取所述居民户籍存储请求中的身份标识;
[0093] 第一查询模块,用于在本地的居民户籍信息数据库中查询所述身份标识;
[0094] 消息发送模块,用于若在本地的居民户籍信息数据库中查询到所述身份标识,则向所述用户终端发送居民户籍信息已存在的消息;
[0095] 第一协同处理请求发送模块,用于若在本地的居民户籍信息数据库中未查找到所述身份标识,则向所述第二节点发送第一协同处理请求,以使所述第二节点在本地的居民户籍信息数据库中查询所述身份标识,所述第一协同处理请求中包括所述身份标识。
[0096] 进一步地,所述第一查询模块可以包括:
[0097] 哈希运算单元,用于根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
[0098] HashKeyk=HASHk(Identity)
[0099] 其中,Identity为所述身份标识,HASHk为序号为k的哈希函数,HashKeyk为运算得到的序号为k的哈希值,1≤k≤K,K为大于1的整数;
[0100] 查询数组获取单元,用于获取与本地的居民户籍信息数据库对应的查询数组,所述查询数组为预设的用于表征特定数据是否存储在本地的居民户籍信息数据库中的数组;
[0101] 条件判断单元,用于判断所述查询数组是否满足以下判断条件:对任意一个k的取值,等式ARRAY[HashKeyk]==Value_1均成立,其中,ARRAY为所述查询数组,Value_1为预设的第一数值;
[0102] 第一判定单元,用于若所述查询数组不满足所述判断条件,则判定在本地的居民户籍信息数据库中未查询到所述身份标识。
[0103] 进一步地,所述服务器还可以包括:
[0104] 第一赋值模块,用于当本地的居民户籍信息数据库中尚未存储任何居民户籍信息时,对任意一个m的取值,均执行以下赋值操作:
[0105] ARRAY[m]=Value_2
[0106] 其中,1≤m≤M,M为所述查询数组中的元素个数,Value_2为预设的第二数值;
[0107] 身份标识提取模块,用于当本地的居民户籍信息数据库中新增了一条居民户籍信息时,提取所述居民户籍信息中的身份标识;
[0108] 哈希运算单元,用于根据下式分别使用K个相互独立的哈希函数对所述身份标识进行哈希运算:
[0109] HashKeyExistk=HASHk(IdentityExist)
[0110] 其中,IdentityExist为所述身份标识,HashKeyExistk为运算得到的序号为k的哈希值;
[0111] 第二赋值模块,用于对任意一个k的取值,均执行以下赋值操作:
[0112] ARRAY[HashKeyExistk]=Value_1。
[0113] 进一步地,所述服务器还可以包括:
[0114] 查询请求接收模块,用于接收用户终端发送的居民户籍信息查询请求,所述居民户籍信息查询请求中包括身份标识;
[0115] 第二提取模块,用于提取所述居民户籍查询请求中的身份标识;
[0116] 第二查询模块,用于在本地的居民户籍信息数据库中查询所述身份标识;
[0117] 户籍信息发送模块,用于若所述第一节点在本地的居民户籍信息数据库中查询到所述身份标识,则向所述用户终端发送与所述身份标识对应的居民户籍信息;
[0118] 第二协同处理请求发送模块,用于若在本地的居民户籍信息数据库中未查找到所述身份标识,则向所述第二节点发送第二协同处理请求,以使所述第二节点在本地的居民户籍信息数据库中查询所述身份标识,所述第二协同处理请求中包括所述身份标识;
[0119] 第二转发模块,用于向所述用户终端转发所述第二节点发送的与所述身份标识对应的居民户籍信息。
[0120] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的服务器、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0121] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0122] 图6示出了本发明实施例提供的一种服务器的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
[0123] 在本实施例中,所述服务器6可以是本地服务器,也可以是端服务器。该服务器6可包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机可读指令62。所述处理器60执行所述计算机可读指令62时实现上述各个居民户籍信息管理方法实施例中由所述第一节点所执行的步骤,或者,所述处理器60执行所述计算机可读指令62时实现上述各虚拟装置实施例中各模块/单元的功能,例如图5所示模块501至504的功能。
[0124] 示例性的,所述计算机可读指令62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令62在所述服务器6中的执行过程。
[0125] 所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0126] 所述存储器61可以是所述服务器6的内部存储单元,例如服务器6的硬盘或内存。所述存储器61也可以是所述服务器6的外部存储设备,例如所述服务器6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述服务器6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机可读指令以及所述服务器6所需的其它指令和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0127] 在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0128] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
[0129] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈