一种区块链数据存储方法及计算机存储介质技术

技术编号:21059989 阅读:26 留言:0更新日期:2019-05-08 06:51
本发明专利技术实施例提供一种区块链数据存储方法及装置,首先接收区块链数据的存储请求,并根据存储请求从键值数据库中获得服务器范围信息;然后根据服务器范围信息,判断是否存在可用于存储区块链数据的存储服务器,如果是,则根据设定的筛选规则从存储服务器中选取目标服务器,并确定目标服务器的标识信息;从而根据目标服务器的标识信息,从键值数据库中获得目标服务器对应的存储地址信息,以将区块链数据存储至目标服务器中。由于采用了键值数据库对存储服务器的标识信息和存储地址信息进行存储,使得存储系统扩展性好、数据查询速度快。

【技术实现步骤摘要】
一种区块链数据存储方法及计算机存储介质
本专利技术实施例涉及计算机
,尤其涉及一种区块链数据存储方法及计算机存储介质。
技术介绍
区块链是一种利用了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链分为三类,分别是:公有区块链、联盟区块链(也称联合区块链、行业区块链)和私有区块链三种。其中,公有区块链针对的是所有人;联盟区块链针对的是某个特定的群体以及有限的第三方;私有区块链针对的是个人。以比特币采用的区块链技术来说,由于区块链网络中不存在中央控制方,每一个区块链节点都需要保存全部数据,随着近年来比特币交易的火热发展,比特币上的交易数据越来越多,到目前为止已经超过200G,并且还处于持续增加过程中,因此区块链数据存储对数据存取效率和存储服务器的可扩展性要求越来越高。
技术实现思路
有鉴于此,本专利技术实施例所解决的技术问题之一在于提供一种区块链数据存储方法及计算机存储介质,用以克服现有技术中的区块链数据存储效率偏低,且存储服务器可扩展性不高的问题。本专利技术实施例提供一种区块链数据存储方法,包括:接收区块链数据的存储请求,并根据所述存储请求从键值数据库中获得服务器范围信息;根据所述服务器范围信息,判断是否存在可用于存储所述区块链数据的存储服务器;如果是,则根据设定的筛选规则从所述存储服务器中选取目标服务器,并确定所述目标服务器的标识信息;根据所述目标服务器的标识信息,从所述键值数据库中获得所述目标服务器对应的存储地址信息,以将所述区块链数据存储至所述目标服务器中。根据本专利技术实施例的另一个方面,还提供了一种计算机存储介质,所述计算机存储介质中存储有:用于接收区块链数据的存储请求,并根据所述存储请求从键值数据库中获得服务器范围信息的指令;用于根据所述服务器范围信息,判断是否存在可用于存储所述区块链数据的存储服务器的指令;用于如果是,则根据设定的筛选规则从所述存储服务器中选取目标服务器,并确定所述目标服务器的标识信息的指令;用于根据所述目标服务器的标识信息,从所述键值数据库中获得所述目标服务器对应的存储地址信息,以将所述区块链数据存储至所述目标服务器中的指令。由以上技术方案可见,本专利技术实施例的区块链数据存储方案,首先接收区块链数据的存储请求,并根据存储请求从键值数据库中获得服务器范围信息;然后根据服务器范围信息,判断是否存在可用于存储区块链数据的存储服务器,如果是,则根据设定的筛选规则从存储服务器中选取目标服务器,并确定目标服务器的标识信息;从而根据目标服务器的标识信息,从键值数据库中获得目标服务器对应的存储地址信息,以将区块链数据存储至目标服务器中。由于采用了键值数据库对存储服务器的标识信息和存储地址信息进行存储,使得存储系统扩展性好、数据查询速度快。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1示出了本专利技术的实施例一的区块链数据存储方法的流程图。图2示出了本专利技术的实施例二的区块链数据存储方法的流程图。具体实施方式为了使本领域的人员更好地理解本专利技术实施例中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术实施例一部分实施例,而不是全部的实施例。基于本专利技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本专利技术实施例保护的范围。区块链网络中包括多个区块链节点,根据区块链的共识机制,当区块链网络中的各区块链节点对一个业务请求达成共识后,需要将该业务请求的相关信息进行数字化处理,生成区块链数据并存储在各个区块链节点的存储服务器中,即每个区块链节点均会接收区块链数据的存储请求,并将区块链数据进行存储,因此本专利技术的实施例可应用于区块链网络中任一区块链节点对区块链数据的存储,各区块链节点可以是硬件形式的,也可以是诸如虚拟机等软件形式的。下面结合本专利技术实施例附图进一步说明本专利技术实施例具体实现。实施例一图1示出了本专利技术的实施例一的区块链数据存储方法的流程图。如图1所示,本专利技术的实施例的区块链数据存储方法包括以下步骤:步骤S101:接收区块链数据的存储请求,并根据存储请求从键值数据库中获得服务器范围信息。本实施例中,由于单个存储服务器的存储空间有限,为了提高区块链节点的整体存储空间,一个区块链节点中可包括多个用于存储区块链数据的存储服务器,以及一个用于对多个存储服务器进行数据存储、读取、运行维护等整体管理的管理服务器。其中,存储服务器和管理服务器的硬件和网络连接形式不限,例如,可以是局域网中的多台电脑。本实施例中,区块链数据的存储请求至少用于触发管理服务器选取一个存储服务器进行区块链数据存储。存储请求中所记载的信息内容不限,例如,可以仅为一个触发信号,也可以为区块链数据的属性相关信息。本实施例中,为了便于对可进行数据存储的存储服务器进行识别和管理,需预先获得或者设定每个存储服务器的标识信息,以及每个存储服务器对应的存储地址信息,并将每个存储服务器的标识信息和存储地址信息建立索引后存储至键值数据库中。本实施例中,由于键值数据库(key-value,缩写KV)是非关系型数据库(nostructuredquerylanguage,缩写NoSQL)中的一类,将数据按照键(key)值(value)对的形式进行组织、索引和存储。键值数据库的种类包括LevelDB、RocksDB、HyperDex、TokyoCabinet、Voldemort、AmazonDynamo、Tair、Accumulo、Redis、LevelDB、SSTable等多种。由于键值数据库的存储语义简单,因此利用键值数据库进行区块链数据存储可实现存储系统扩展性好、数据查询速度快、数据存储量大的效果。本实施例中,服务器范围信息中所记载的信息内容不限,至少包括用于确定标识区块链节点中是否存在可用于存储区块链数据的存储服务器的信息。步骤S102:根据服务器范围信息,判断是否存在可用于存储区块链数据的存储服务器。本实施例中,判断是否存在可用于存储区块链数据的存储服务器的方法不限,可根据实际应用需求自由设定。例如,若服务器范围信息中包括可用于存储区块链数据的存储服务器数量信息,则可根据数量是否为0,判断是否存在可用于存储区块链数据的存储服务器。步骤S103:如果是,则根据设定的筛选规则从存储服务器中选取目标服务器,并确定目标服务器的标识信息。本实施例中,目标服务器为响应存储请求进行区块链数据存储的服务器,可以是存储服务器中的一个或者多个。目标服务器的筛选规则不限,可根据需求或者应用场景预先自由设定。步骤S104:根据目标服务器的标识信息,从键值数据库中获得目标服务器对应的存储地址信息,以将区块链数据存储至目标服务器中。本实施例中,由于键值数据库中预先存储了每个存储服务器的标识信息和存储地址信息,并且对存储服务器的标识信息和存储地址信息建立了索引,因此可根据目标服务器的标识信息,从键值数据库中获得目标服务器对应的存储地址信息。由以上本专利技术实施例可见,本本文档来自技高网...

【技术保护点】
1.一种区块链数据存储方法,其特征在于,包括:接收区块链数据的存储请求,并根据所述存储请求从键值数据库中获得服务器范围信息;根据所述服务器范围信息,判断是否存在可用于存储所述区块链数据的存储服务器;如果是,则根据设定的筛选规则从所述存储服务器中选取目标服务器,并确定所述目标服务器的标识信息;根据所述目标服务器的标识信息,从所述键值数据库中获得所述目标服务器对应的存储地址信息,以将所述区块链数据存储至所述目标服务器中。

【技术特征摘要】
1.一种区块链数据存储方法,其特征在于,包括:接收区块链数据的存储请求,并根据所述存储请求从键值数据库中获得服务器范围信息;根据所述服务器范围信息,判断是否存在可用于存储所述区块链数据的存储服务器;如果是,则根据设定的筛选规则从所述存储服务器中选取目标服务器,并确定所述目标服务器的标识信息;根据所述目标服务器的标识信息,从所述键值数据库中获得所述目标服务器对应的存储地址信息,以将所述区块链数据存储至所述目标服务器中。2.根据权利要求1所述的区块链数据存储方法,其特征在于,在所述接收区块链数据的存储请求之前,还包括:接收所述存储服务器发送的注册请求,并根据所述注册请求获得所述存储服务器对应的存储地址信息;根据所述存储服务器对应的存储地址信息,判断所述键值数据库中是否已存储所述存储服务器的标识信息;如果否,则为所述存储服务器分配标识信息,并将所述存储服务器对应的存储地址信息和所述存储服务器的标识信息存储至所述键值数据库中。3.根据权利要求1所述的区块链数据存储方法,其特征在于,所述键值数据库中包括第一键值对,所述第一键值对的key为可存储属性标签,所述第一键值对的value为可用于存储所述区块链数据的全部所述存储服务器的标识信息;对应地,所述接收区块链数据的存储请求,并根据所述存储请求从键值数据库中获得服务器范围信息包括:接收所述存储请求,触发利用所述可存储属性标签查找所述第一键值对的value;根据所述第一键值对的value,获得所述服务器范围信息。4.根据权利要求3所述的区块链数据存储方法,其特征在于,所述键值数据库中包括第二键值对,所述第二键值对的key为存储记录标签,所述第二键值对的value为最近一次进行数据存储的所述存储服务器的标识信息;对应地,所述根据设定的筛选规则从所述存储服务器中选取目标服务器,并确定所述目标服务器的标识信息包括:对所述存储服务器的标识信息进行排序,获得标识序列;以及利用所述存储记录标签查找所述第二键值对的value,以获得最近一次进行数据存储的所述存储服务器的标识信息;将所述标识序列中位于最近一次进行数据存储的所述存储服务器的标识信息之后的一个标识信息,确定为所述目标服务器的标识信息。5.根据权利要求4所述的区块链数据存储方法,其特征在于,所述根据所述目标服务器的标识信息,从所述键值数据库中获得所述目标服务器对应的存储地址信息,以将所述区块链数据存储至所述目标服务器中之后,还包括:利用所述存储记录标签查找所述第二键值对的value,并将查找到的所述...

【专利技术属性】
技术研发人员:高海刚牛冬王海平
申请(专利权)人:北京新唐思创教育科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1