一种兼顾集中式与分布式特色的数据管理系统及方法与流程

文档序号:17818264发布日期:2019-06-05 22:00阅读:228来源:国知局
一种兼顾集中式与分布式特色的数据管理系统及方法与流程

本发明涉及计算机应用技术领域,具体涉及一种兼顾集中式与分布式特色的数据管理系统及方法。



背景技术:

随着计算机和互联网技术的发展,大数据时代已经来临,如何安全的保存这些文档数据已成为其迫切需要。而现有技术中,出现了利用区块链技术进行文档数据存储。区块链技术的特征是分布式数据存储、点对点传输、共识机制和加密算法,特点是去中心化。原始的区块链技术,由于过分强调去中心化,致使耗费资源巨大,效率低。



技术实现要素:

本发明实施例所解决的技术问题是在一定程度上克服现有技术中由于过分强调去中心化,致使耗费资源巨大,效率低的缺陷。

第一方面:本发明实施例提供了一种兼顾集中式与分布式特色的数据管理系统,包括从节点、主节点和散列节点;

所述从节点用于发送第一请求信息,所述第一请求信息通过所述从节点的输入所得;

所述主节点用于:

响应于所述第一请求信息,并根据预先设定的规则进行验证,验证通过后,将所述从节点添加到区块链中;

根据文件存储算法将文档数据进行分配并存储在所述区块链中的从节点上,同时对存储的所述文档数据进行加密以生成验证数据;

所述散列节点用于发送第二请求信息,所述第二请求信息通过所述散列节点的输入所得;

所述主节点还用于:

响应于所述第二请求信息,并根据预先设定的规则进行验证,验证通过后,将所述散列节点添加到区块链中;

将所述验证数据存储在所述区块链中的散列节点上。

作为本发明的一个优选的技术方案,所述主节点还用于对各从节点的运行情况进行监控,并根据监控情况自动添加/减少从节点的数量。

作为本发明的一个优选的技术方案,所述主节点还根据所述监控情况将所述从节点进行分类,并根据分类的情况将所述从节点标记为特殊从节点和普通从节点。

作为本发明的一个优选的技术方案,所述主节点根据文件存储算法将文档数据进行分配,具体包括:

所述主节点对验证后从节点的存储空间进行分区并对各分区进行编号;

所述主节点对所述文档数据进行校验计算以得到中间处理值;

所述主节点对所述中间处理值与预设值做取余计算以得到对应的结果值;

所述主节点根据所述结果值将所述文档数据存储在与所述编号相同的分区上。

第二方面:本发明实施例提供了一种兼顾集中式与分布式特色的数据管理方法,应用于上述第一方面所述的一种兼顾集中式与分布式特色的数据管理系统,包括如下步骤:

主节点接收第一请求信息,所述第一请求信息通过所述从节点的输入所得;

主节点响应于所述第一请求信息,并根据预先设定的规则进行验证,验证通过后,将所述从节点添加到区块链中;

主节点根据文件存储算法将文档数据进行分配并存储在所述区块链中的从节点上,同时对存储的所述文档数据进行加密以生成验证数据;

主节点接收第二请求信息,所述第二请求信息通过所述散列节点的输入所得;

主节点响应于所述第二请求信息,并根据预先设定的规则进行验证,验证通过后,将所述散列节点添加到区块链中;

主节点将所述验证数据存储在所述区块链中的散列节点上。

作为本发明的一个优选的技术方案,所述预先设定的规则为设定的共识规范协议,所述共识规范协议包括一致性协议、检查点协议和视图更换协议。

作为本发明的一个优选的技术方案,所述主节点对各从节点的运行情况进行监控,并根据监控情况自动添加/减少从节点的数量。

作为本发明的一个优选的技术方案,所述主节点还根据所述监控情况将所述从节点进行分类,并根据分类的情况将所述从节点标记为特殊从节点和普通从节点。

作为本发明的一个优选的技术方案,所述主节点根据文件存储算法将文档数据进行分配,具体包括:

所述主节点对验证后从节点的存储空间进行分区并对各分区进行编号;

所述主节点对所述文档数据进行校验计算以得到中间处理值;

所述主节点对所述中间处理值与预设值做取余计算以得到对应的结果值;

所述主节点根据所述结果值将所述文档数据存储在与所述编号相同的分区上。

采用上述技术方案,具有以下优点:本发明提出的一种兼顾集中式与分布式特色的数据管理系统及方法,通过将区块链网络中的各节点按角色分为从节点、主节点和散列节点,通过主节点对加入网络中的从节点和散列节点进行审定、管理,将文档数据按分配规则存储在区块链中的从节点上,将生成的验证数据存储在区块链中的散列节点上,这样就区别于传统区块链的完全去中心化的特点,通过主节点对加入各节点的管理和分配,其总的网络节点是有限的,降低了所耗费的资源,同时由于节点的减少,共识的效率会得到提升,进而单位时间内处理的交易量将更多,进而使得整个网络的运行效率更高。

附图说明

图1为本发明实施例提供的一种兼顾集中式与分布式特色的数据管理系统的结构示意图;

图2为本发明实施例提供的一种兼顾集中式与分布式特色的数据管理方法的流程图。

具体实施方式

为了使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。

参照图1所示,本发明实施例提供了一种兼顾集中式与分布式特色的数据管理系统,包括从节点、主节点和散列节点。

所述从节点用于发送第一请求信息,所述第一请求信息通过所述从节点的输入所得。

具体地,本实施例中的各节点都是相应的服务器设备,主节点和散列节点的数量均为多个,但是各类型节点均有最低数量和最高数量的限制,主节点和散列节点可以加入是企业还是个人进行区分,这里的第一请求信息可以理解为某个从节点发送的加入区块链的请求信息,这里的请求信息包括对应的设备信息(服务器的硬件设备)、设备运行环境信息(服务器的软件信息)和地域信息等。例如硬件设备的id,软件的版本信息,服务器的内存容量、服务器的吞吐量、响应时间、并发数、cpu使用率和网络占用情况等;

应用时,第一请求信息还包括其可存储的分类信息,例如,从节点可根据存储文档数据的类型进行分库存储,比如设置法规库、文件库、档案库、百科全书库、电子图书库、人名库、遗嘱库、各种数据信息等分库,一个分库包括多个从节点,同一个分库,可出于安全、容错、可靠性以及访问效率等因素考虑,每一个分库的节点数量可调。

所述主节点用于:

响应于所述第一请求信息,并根据预先设定的规则进行验证,验证通过后,将所述从节点添加到区块链中;

根据文件存储算法将文档数据进行分配并存储在所述区块链中的从节点上,同时对存储的所述文档数据进行加密以生成验证数据。

具体地,需要说明的是,这里的文档数据是广义的表述,包括文件、图片、视频、音频、动画、计算机程序、压缩文件、以及各种信息数据等数据,其来源包括区块链中本身存储的以及链上各从节点上传的,主节点对申请加入的从节点进行验证,也就是说,在区块链上的从节点都是验证通过后的,同理,后续的在区块链上的散列节点也都是通过验证后的,其中,所述预先设定的规则包括设定的共识规范协议。

所述共识规范协议包括一致性协议、检查点协议和视图更换协议,其中:

一致性协议要求来自从节点的请求在每个从节点上都按照一个确定的顺序执行。一致性协议至少包含三个阶段:发送请求、序号分配和返回结果。根据协议设计的不同,可能包含相互交互、序号确认等阶段。

在每执行一个请求,从节点需要记录日志。如果日志得不到及时的清理,就会导致系统资源被大量的日志所占用,影响系统性能及可用性,需要说明的是处理日志主要解决的问题就是区分哪些日志可以清理,哪些日志仍然需要保留。

在一致性协议里,已经知道主节点在整个系统中拥有序号分配,请求转发等核心能力,支配着这个系统的运行行为。视图更换协议的作用就是在主节点不能继续履行职责时,将其用一个从节点替换掉。然后视图更换协议一般有两种触发方式:

1)由主节点触发;2)由从节点触发。本实施例采用主节点触发的方式,当然其它实施例可采用从节点触发的方式或者两者结合的方式进行触发,在此不做限制。

在从节点通过验证后,所述主节点根据文件存储算法将文档数据进行分配,具体包括:

所述主节点对验证后从节点(即区块链上的从节点)的存储空间进行分区并对各分区进行编号;

所述主节点对所述文档数据进行校验计算以得到中间处理值;

所述主节点对所述中间处理值与预设值做取余计算以得到对应的结果值;

所述主节点根据所述结果值将所述文档数据存储在与所述编号相同的分区上。

应用时,所述校验计算采用crc16校验的方式,预设值为16384,也就是说,采用了redishashslot算法,在其它实施例中还可采用类似一致性hash算法等分布式存储算法,在此不做限制,也就是说,所述文件存储算法采用redishashslot算法、hash算法、一致性hash算法和基于虚拟节点的一致性hash算法中的任一一种。

所述散列节点用于发送第二请求信息,所述第二请求信息通过所述散列节点的输入所得。

具体地,这里的第二请求信息可以理解为某个散列节点发送的加入区块链的请求信息,这里的请求信息包括对应的设备信息、设备运行环境信息和地域信息等。

所述主节点还用于:

响应于所述第二请求信息,并根据预先设定的规则进行验证,验证通过后,将所述散列节点添加到区块链中。

将所述验证数据存储在所述区块链中的散列节点上。

具体地,散列节点进行验证时方式与上述从节点的过程类似,在此不再赘述。

加入区块链中的(即验证后的散列节点)散列节点被主节点用于专门存储生成的验证数据,散列节点数可调,每一条文档数据信息的验证数据所应存放的散列节点数可调,并根据预先设定的规则随机发送给若干个散列节点存储。其中,主节点对验证数据的存储分配方式与上述主节点对从节点的分配方式相同,在此不再赘述。需要说明的是,验证数据的具体生成方式是,对存储的文档数据进行加密,其加密采用第三方认证机构发布的证书,并可进行多重加密,然后,再计算哈希值,然后再对其他文档数据逐条计算哈希值作为所述验证数据。当然应用时,还可引入其他加密算法,类如:des(dataencryptionstandard)加密算法、idea(internationaldataencryptionalgorithm)国际数据加密算法、rsa加密算法和dsa(digitalsignaturealgorithm)数字签名算法等。

上述方案给出了相应的各节点加入的方案,其各节点的退出的方案与加入的方案类似,退出都是需要主节点进行审定、管理,在此不再赘述。

通过上述方案,采用将区块链网络中的各节点按角色分为从节点、主节点和散列节点,通过主节点对加入网络中的从节点和散列节点进行审定、管理,将文档数据按分配规则存储在区块链中的从节点上,将生成的验证数据存储在区块链中的散列节点上,这样就区别于传统区块链的完全去中心化的特点,通过主节点对加入各节点的管理和分配,其总的网络节点是有限的,降低了所耗费的资源,同时由于节点的减少,共识的效率会得到提升,进而单位时间内处理的交易量将更多,进而使得整个网络的运行效率更高。

需要说明的是,系统运行后,所述主节点还用于对各从节点和散列节点的运行情况进行监控,并根据监控情况自动添加/减少节点的数量。

这里的监控情况包括地域信息、网络质量、访问频度、服务器性能、剩余存储量和守约情况等,例如,主节点判定新加入的一个从节点的各方面技术指标都优于已添加的从节点,在总节点数量不超过设定数的情况下直接添加,在总数超过的情况下,主节点自动减少其性能最差的一个从节点,但是要根据地域分散的原则,同一地域有多个从节点的情况时,优选减少同一地域中的从节点;同样的,在某一从节点停止运行时,主节点也会自动增加新的从节点,并进行验证后,将停止运行从节点的数据进行重新分配,或是直接转存在新增加的从节点上。

在文档数据信息获取时,直接在从节点获取文档数据信息,然后再根据预先设定的规则随机抽取若干个散列节点的验证数据,通过验证才能正常获取文档信息。

所述主节点还根据所述监控情况将所述从节点进行分类,并根据分类的情况将所述从节点标记为特殊从节点和普通从节点。这样可进一步提高其效率,这样在本身从节点数量有限的情况下,进一步减少需达到共识节点的数量,也就是说,只需要几个特殊从节点的投票,即可完成对交易的验证和确认;同时,主节点可优选将文件的存储放置在特殊从节点上。

在本发明的另一优选的实施例中,各请求信息中还包括各自加入的目的,根据目的不同分为公益节点和经营节点,例如,所述公益节点存储的文档数据信息,无需付费就可查看;所述经营节点存储的文档数据信息,需要付费才能查看。

基于与上述的一种兼顾集中式与分布式特色的数据管理系统相同的发明构思,本发明实施例还提供了一种兼顾集中式与分布式特色的数据管理方法,参照图2所示:

s101,主节点接收第一请求信息,所述第一请求信息通过所述从节点的输入所得。

具体地,这里的第一请求信息可以理解为某个从节点发送的加入区块链的请求信息,这里的请求信息包括对应的设备信息(服务器的硬件设备)、设备运行环境信息(服务器的软件信息)和地域信息等。例如硬件设备的id,软件的版本信息,服务器的内存容量、服务器的吞吐量、响应时间、并发数、cpu使用率和网络占用情况等;

应用时,第一请求信息还包括其可存储的分类信息,例如,从节点可根据存储文档数据的类型进行分库存储,比如设置法规分库、文件分库、档案分库、百科全书分库、电子图书分库、人名分库、遗嘱分库、数据信息库等分库,一个分库包括多个从节点,同一个文档数据分库,可出于安全、容错、可靠性以及访问效率等因素考虑,每一个分库的节点数量可调。

s102,主节点响应于所述第一请求信息,并根据预先设定的规则进行验证,验证通过后,将所述从节点添加到区块链中。

具体地,主节点对申请加入的从节点进行验证,其中,所述预先设定的规则包括设定的共识规范协议。

所述共识规范协议包括一致性协议、检查点协议和视图更换协议,其中:

一致性协议要求来自从节点的请求在每个从节点上都按照一个确定的顺序执行。一致性协议至少包含三个阶段:发送请求、序号分配和返回结果。根据协议设计的不同,可能包含相互交互、序号确认等阶段。

在每执行一个请求,从节点需要记录日志。如果日志得不到及时的清理,就会导致系统资源被大量的日志所占用,影响系统性能及可用性,需要说明的是处理日志主要解决的问题就是区分那些日志可以清理,那些日志仍然需要保留。

在一致性协议里,已经知道主节点在整个系统中拥有序号分配,请求转发等核心能力,支配着这个系统的运行行为。视图更换协议的作用就是在主节点不能继续履行职责时,将其用一个从节点替换掉。然后视图更换协议一般有两种触发方式:

1)由主节点触发;2)由从节点触发。本实施例采用主节点触发的方式,当然其它实施例可采用从节点触发的方式或者两者结合的方式进行触发,在此不做限制。

s103,主节点根据文件存储算法将文档数据进行分配并存储在所述区块链中的从节点上,同时对存储的所述文档数据进行加密以生成验证数据。

具体地,在从节点通过验证后,所述主节点根据文件存储算法将文档数据进行分配,具体包括:

所述主节点对验证后从节点的存储空间进行分区并对各分区进行编号;

所述主节点对所述文档数据进行校验计算以得到中间处理值;

所述主节点对所述中间处理值与预设值做取余计算以得到对应的结果值;

所述主节点根据所述结果值将所述文档数据存储在与所述编号相同的分区上。

应用时,所述校验计算采用crc16校验的方式,预设值为16384,也就是说,采用了redishashslot算法,在其它实施例中还可采用类似一致性hash算法等分布式存储算法,在此不做限制,也就是说,所述文件存储算法采用redishashslot算法、hash算法、一致性hash算法和基于虚拟节点的一致性hash算法中的任一一种。

s104,主节点接收第二请求信息,所述第二请求信息通过所述散列节点的输入所得。

具体地,这里的第二请求信息可以理解为某个散列节点发送的加入区块链的请求信息,这里的请求信息包括对应的设备信息、设备运行环境信息和地域信息等。

s105,主节点响应于所述第二请求信息,并根据预先设定的规则进行验证,验证通过后,将所述散列节点添加到区块链中。

具体地,散列节点进行验证是方式与上述从节点的过程类似,在此不再赘述。

s106,主节点将所述验证数据存储在所述区块链中的散列节点上。

具体地,加入区块链中的散列节点(即验证后的散列节点)被主节点用于专门存储生成的验证数据,散列节点数可调,每一条文档信息的验证数据所应存放的散列节点数可调,并根据预先设定的规则随机发送给若干个散列节点存储。其中,主节点对验证数据的存储分配方式与上述主节点对从节点的分配方式相同,在此不再赘述。需要说明的是,验证数据的具体生成方式是,对存储的文档数据进行加密,其加密采用第三方认证机构发布的证书,并可进行多重加密,然后,再计算哈希值,然后再对其他文档数据逐条计算哈希值作为所述验证数据。当然应用时,还可引入其他加密算法,类如:des(dataencryptionstandard)加密算法、idea(internationaldataencryptionalgorithm)国际数据加密算法、rsa加密算法和dsa(digitalsignaturealgorithm)数字签名算法等。

上述方案给出了相应的各节点加入的方案,其各节点的退出的方案与加入的方案类似,退出都是需要主节点进行审定、管理,在此不再赘述。

通过上述方法,采用将区块链网络中的各节点按角色分为从节点、主节点和散列节点,通过主节点作为一个中心,这样就区别于传统区块链的完全去中心化的特点,兼顾了集中管理和分布式管理的优点,通过主节点对加入各节点的管理和分配,其总的网络节点是有限的,降低了所耗费的资源,同时由于节点的减少,共识的效率会得到提升,进而单位时间内处理的交易量将更多,进而使得整个网络的运行效率更高。

在应用上述方案时,为了进一步提高运行效率,所述主节点还用于对各从节点的运行情况进行监控,并根据监控情况自动添加/减少从节点的数量。

具体地,监控情况包括地域信息、网络质量、访问频度、服务器设备性能、剩余存储量和守约情况等,例如,主节点判定新加入的一个从节点的各方面技术指标都优于已添加的从节点,在总节点数量不超过设定数的情况下直接添加,在总数超过的情况下,主节点自动减少其性能最差的一个从节点,但是要根据地域分散的原则,同一地域有多个从节点的情况时,优选减少同一地域中的从节点;同样的,在某一从节点停止运行时,主节点也会自动增加新的从节点,并进行验证后,将停止运行从节点的数据进行重新分配,或是直接转存在新增加的从节点上。

所述主节点还根据所述监控情况将所述从节点进行分类,并根据分类的情况将所述从节点标记为特殊从节点和普通从节点。这样可进一步提高其效率,这样在本身从节点数量有限的情况下,进一步减少需达到共识节点的数量,也就是说,只需要几个特殊从节点的投票,即可完成对交易的验证和确认;同时,主节点可优选将文件的存储放置在特殊从节点上。

基于同样的思路,主节点也将散列节点分为特殊散列节点和普通散列节点,提高其验证效率,在此不再赘述。

本发明实施例还提供了一种计算机设备,包括处理器和与处理器连接的存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述所述的方法。

应当理解,在本实施例中,所称处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。

本实施例的计算机设备,执行上述实施例所述的方法,通过将区块链网络中的各节点按角色分为从节点、主节点和散列节点,通过主节点作为一个中心,这样就区别于传统区块链的完全去中心化的特点,兼顾了集中管理和分布式管理的优点,通过主节点对加入各节点的管理和分配,其总的网络节点是有限的,降低了所耗费的资源,同时由于节点的减少,共识的效率会得到提升,进而单位时间内处理的交易量将更多,进而使得整个网络的运行效率更高。

本发明实施例还提供了一种计算机可读存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行第一方面所述的方法。

所述计算机可读存储介质可以是前述所述计算机设备的存储器,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的存储器也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。

本实施例的计算机可读存储介质,执行实施例中所述的方法,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的系统模块及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

最后需要说明的是,上述描述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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