CN110597922B - 数据处理方法、装置、终端及存储介质 - Google Patents
数据处理方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110597922B CN110597922B CN201910931495.2A CN201910931495A CN110597922B CN 110597922 B CN110597922 B CN 110597922B CN 201910931495 A CN201910931495 A CN 201910931495A CN 110597922 B CN110597922 B CN 110597922B
- Authority
- CN
- China
- Prior art keywords
- data
- blockchain
- external storage
- storage mode
- record data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、终端及存储介质,包括:获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。本申请实施例有利于实现通过区块链节点存储海量区块链数据。
Description
技术领域
本申请涉及计算机技术领域,具体涉及区块链领域,尤其涉及一种数据处理方法、一种数据处理装置、一种终端及一种存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,本质上是一个去中心化的数据库。区块链中的每一个区块的大小一般只有几兆,区块的大小能体现存储数据包的大小,但是随着区块链上的数据传输越来越多,会导致区块的数量快速增加,区块链系统中的全节点需要存储整个区块链中的数据,因此存储整个区块的数据需要巨大的存储空间。现有的区块链系统中,一般都将区块链智能合约产生的数据存储在区块链的节点本地当中,由于节点本地的存储空间是有限的,因此无法存储大规模的数据,如何使节点能存储海量的区块链数据,是当前需要研究的热点问题。
发明内容
本申请实施例提供了一种数据处理方法、装置、终端及存储介质,可实现通过区块链中的共识节点存储海量区块链数据。
第一方面,本申请实施例提供了一种数据处理方法,所述方法应用于区块链网络中的共识节点,所述方法包括:
获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
第二方面,本申请实施例提供了一种数据处理装置,其特征在于,包括:
获取单元,用于获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
第一存储单元,用于若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
确定单元,用于若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
第二存储单元,用于将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
第三方面,本申请实施例提供了一种终端,所述终端包括输入设备和输出设备,所述终端还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
本申请实施例提供的数据处理方法在区块链网络中的第一共识节点获取到待存储的记录数据时,会检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量,若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备,将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。采用这样的方式,一方面,扩大了第一共识节点的存储空间,使第一共识节点可以存储更多的区块链数据,同时,在将区块链数据存储到外接存储设备中时,才用了分表的方式,有利于后续进行数据查找,进而提高了数据存储和数据查找的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种分布式区块链系统的结构示意图;
图2是本发明实施例的一种区块链结构的示意图;
图3是本发明实施例的一种数据处理方法的流程示意图;
图4是本发明实施例的一种本地存储模式的示意图;
图5是本发明实施例的一种外接存储模式的示意图;
图6是本发明实施例的一种记录数据产生的示意图;
图7是本申请实施例提供的一种数据处理装置的结构示意图;
图8是本申请实施例提供的一种终端的结构示意图。
具体实施方式
本发明实施例提出了一种数据处理方法,该方法应用于区块链网络中的第一共识节点,区块链网络中的多个共识节点组成区块链系统,第一共识节点可以是接入区块链网络中的任意形式的计算设备,例如服务器,用户终端等,多个共识节点通过网络通信的形式连接并形成为分布式系统的区块链系统。以分布式系统为区块链系统为例,参见图1,图1是本发明实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图,分布式区块链系统由多个共识节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,共识节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式区块链系统中,任何机器如服务器、终端都可以加入而成为共识节点,共识节点包括硬件层、中间层、操作系统层和应用层。参见图1示出的分布式区块链系统也可称之为区块链网络,区块链网络中各共识节点的功能,涉及的功能包括路由功能,应用功能和区块链功能。
路由功能是指共识节点具有的基本功能,用于支持共识节点之间的通信,共识节点除具有路由功能外,还具有应用功能,应用功能用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他共识节点,供其他共识节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。例如,应用实现的业务包括:钱包,用于提供进行电子货币的交易的功能,包括发起交易,即将当前交易的交易记录发送给区块链系统中的其他共识节点,其他共识节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中,当然,钱包还支持查询电子货币地址中剩余的电子货币;共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他共识节点,其他共识节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的共识节点发送确认;智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。区块链功能包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中共识节点提交的记录数据。
参见图2,图2是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
请参见图3所示的一种数据处理方法的流程示意图,该方法应用于区块链网络中的第一共识节点,其中每个共识节点维护多条区块链,该第一共识节点可以为接入区块链网络中的任意形式的计算设备,如服务器、用户终端等。本发明实施例的所述方法包括如下步骤。
S301,获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式。
区块链系统也是一个数据共享系统,该数据共享系统中的多个共识节点之间可以进行数据共享,每个共识节点在进行正常工作时会接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。例如,当数据共享系统中的其他任意一个共识节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致,因此,共识节点需要存储的数据是海量的。
当第一共识节点根据实际业务需要实现特定业务时,记录实现该业务功能相关的数据并形成记录数据,记录数据中携带有数据签名以表示记录数据的来源,第一共识节点将记录数据发送到区块链系统中的其他共识节点,在其他共识节点验证记录数据来源以及完整性成功时,即达成共识,则将记录数据添加到临时区块链,第一共识节点需要存储更新后的区块链,即增加了记录数据的区块链。此时,第一共识节点检测当前的存储模式,存储模式包括本地存储模式和外接存储模式,如图4和图5所示,从图4中可以看出本地存储模式中将智能合约产生的数据存储在本地中,从图5中可以看出外接存储模式中将智能合约产生的数据存储在关联的外接存储设备中,从而实现海量存储。例如,第一共识节点为用户终端,本地存储模式则需要将记录数据存储在用户终端中,但是用户终端的存储容量有限,能存储的记录数据也是有限的,外接存储模式则不需要用户终端将记录数据存储在本地中。
S302,若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量。
第一共识节点可能参与了多个区块链,在确定了待存储的记录数据对应的区块链之后,需要将记录数据添加到目标区块链,因此,若为本的存储模式,则需要将记录数据存储到本地存储到目标区块链中,并检测本地存储的包括目标区块链的区块链集合的数据容量。
S303,若所述区块链集合的数据容量大于第一预设阈值,则确定所述第一共识节点关联的外接存储设备。
如果在在检测区块链集合的数据容量大雨第一预设阈值,第一预设阈值例如可以是用户根据第一共识节点对应的用户终端的存储容量设定的第一预设阈值,如第一预设阈值站用户终端存储容量的百分之六十,此时需要确定第一共识节点关联的外接存储设备,外接存储设备例如可以是一个硬盘服务器,或者一个大容量的外接存储设备,区块链网络中的每一个共识节点都关联有一个外接存储设备,用来存储该第一共识节点需要存储的区块链数据,第一共识节点可以将区块链数据显存储在本地中,当本地存储空间不够用时再将区块链数据存储在外接存储设备中,或者,第一共识节点可以直接将所有需要存储的区块链数据存储在关联的外接存储设备中,每个共识节点只关联一个外接存储设备,该外接存储设备也只对应一个区块链第一共识节点,即为一一对应关系。
S304,将所述第一共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
当需要将记录数据存储到目标区块链中时,第一共识节点存储的区块链集合的数据容量大于第一预设阈值,因此,次数需要将记录数据存储到第一共识节点关联的外接存储设备中,以避免区块链数据占用第一共识节点本地存储容量大于第一预设阈值,因此,在确定了第一共识节点管理的外接存储设备之后,需要将第一共识节点的存储模式由本地存储模式切换为外接存储模式,从而将记录数据存储在关联的外接存储设备中。
在一种可能的实施方式中,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:将所述目标区块链存储到所述外接存储设备中,并在所述本地存储中删除所述目标区块链。在将记录数据存储到第一共识节点关联的外接存储设备中时,是将记录数据添加到目标区块链的区块中,因此只是目标区块链对应的区块链数据量增大,而第一共识节点中存储了多条区块链中的数据,为避免第一共识节点本地存储容量的占用不会大于第一预设阈值,只需要记录数据对应的目标区块链存储在外接存储设备中,并在本地存储中删除目标区块链的数据,从而避免了本地存储的区块链集合的容量大于第一预设阈值,当第一共识节点需要存储新的记录数据,并且记录数据对应的区块链为目标区块链时,可直接将新的记录数据存储到第一共识节点关联的外接存储设备中。
在一种可能的实施方式中,所述第一共识节点周期性将所述本地存储的区块链集合同步到所述关联的外接存储设备;所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:将所述记录数据存储到外接存储设备中的目标区块链,并清除所述共识节点存储的区块链集合。针对区块链产生的数据,第一共识节点时优先将数据存储到本地中,只有在检测到本地存储的区块链集合的容量大于第一预设阈值时,第一共识节点才会将存储模式由本地存储模式切换到外接存储模式,此时,启动了第一共识节点关联的外接存储设备,该外接存储设备是一个存储容量远远大于第一共识节点,且仅仅用于存储数据的设备,当启动了该外接存储设备之后,第一共识节点本地则不需要在存储任何区块链所产生的数据了。由于第一共识节点在存储区块链数据的过程中,会周期性将的本地存储的区块链数据同步到关联的外接存储设备中,因此,第一共识节点可以将待存储的记录数据存储到外接存储设备中的目标区块链,同时清除本地存储的区块链结合中的区块链数据,
在一种可能的实施方式中,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:确定所述目标区块链包括的记录数据的条数;根据所述条数确定多条记录数据的数据标识,每条记录数据对应一个数据标识;根据所述数据标识将所述多条记录数据分表进行存储,分表后的每个子表名称包括对应子表存储的多条记录数据的数据标识信息。从前述的实施方式中可知,将记录数据存储到关联的外接存储设备中,可以是将记录数据对应的目标区块链的数据存储到外接存储设备中,并删除本地存储的目标区块链的数据,或者,将本地存储的包括目标区块链的区块链集合的数据都存储到外接存储设备中去,并删除本地存储的区块链数据,无论是哪一种方式,都需要将目标区块链存储到外接存储设备中去。当目标区块链中的每个区块对应一条记录数据时,可确定目标区块链对应的多条记录数据的数据标识,数据标识例如可以是该记录数据对应的哈希值,根据每条记录数据的哈希值,分表存储多条记录数据。
该记录数据对应的哈希值,可以是该记录数据主键的哈希值。在关系型数据库中,一条记录数据中有若干个数据,若其中某一个属性组能唯一标识一条记录数据,该属性组就可以成为一个主键。例如,学生表(学号,姓名,性别,班级),其中每个学生的学号是唯一的,学号就是一个主键,课程表(课程编号,课程名,学分),其中课程标号是唯一的,课程编号就是一个主键,成绩表(学号,课程号,成绩)中单一的一个属性无法唯一标识一条记录数据,学号和课程号组合后才可以唯一标识一条记录数据,因此学号和课程号的属性组是一个主键,由于主键是能确定一条记录数据的唯一标识,因此将主键作为分表因子,方便后续快速实现对某条记录数据的查找,在区块链中,可以将主键的哈希值作为分表的方法。针对目标区块链中的多条记录数据,将主键相同的多条记录数据(例如主键都为交易时间的多条记录数据)存储在一个子表中,并且子表中存储的是该多条记录数据的哈希值。
在一种可能的实施方式中,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,分表存储每个区块链包括的记录数据,每个类型的区块链的记录数据对应一个子表,且子表名称包括所述子表存储的区块链对应的类型信息。当需要将区块链集合中的所有区块链数据都存储到外接存储设备中时,先确定区块链集合中的各个区块链的类型,例如,可能包括交易类型的区块链,用户身份信息类型的区块链,又或者类型为公有链,私有链,联盟链等类型,根据区块链的类型分表存储各个区块链中的记录数据,在确定了目标区块链的类型之后,将目标区块链的记录数据存储到目标区块链类型所对应的子表中,此外,每个子表的名称包括了对应子表存储的区块链的类型信息,以方便后续根据区块链的类型进行查表操作。
在一种可能的实施方式中,所述第一共识节点关联的外接存储设备为多个用于存储不同类型区块链数据的外接存储设备,所述每个类型的外接存储设备对应一种类型的区块链数据,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,将包括所述目标区块链的所述各个区块链存储到所述多个外接存储设备中,例如,外接存储设备1用于存储公有区块链,外接存储设备2用于存储私有区块链,外接存储设备3用于存储联盟区块链。在本实施方式中,第一共识节点关联的外接存储设备为多个,每个外接存储设备用于存储一种类型的区块链数据,在将记录数据存储到第一共识节点关联的外接存储设备中时,若时将第一共识节点本地存储的区块链集合都存储到外接存储设备中,则需要先确定区块链集合中的各个区块链的类型,从而可以根据每个区块链的类型,将每个区块链存储到对应的外接存储设备中去,在确定了目标区块链对应的外接存储设备之后,将目标区块链存储到该对应外接存储设备中去,并且,可以是以分表的形式存储目标区块链包括的多条记录数据。
在一种可能的实施方式中,所述区块链网络包括数据共享系统;所述方法还包括:在检测到所述数据共享系统中的第二共识节点接收到输入信息时,控制所述第二共识节点根据共识算法获取所述输入信息,并确定所述输入信息为所述数据共享系统中的共享数据;确定所述共享数据为所述第一共识节点待存储的记录数据。数据共享系统是指用于进行节点与节点之间数据共享的系统,每个节点在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算。
如图6所示当区块链系统中的某个共识节点,当客户端通过第二共识节点的区块链接口向第二共识节点输入信息时,区块链系统中的其它共识节点根据共识算法获取该输入信息,每个共识节点的虚拟机执行逻辑启用,并通过账本校验,校验成功后通过区块链接口返回给客户端,并且通过区块链网络将数据同步到其它共识节点,即将校验数据发送给其它共识节点,当所有的共识节点都校验成功,则可将该共享数据作为待存储的记录数据,存储到共享账本中。
本申请实施例提供的数据处理方法在区块链网络中的第一共识节点获取到待存储的记录数据时,会检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量,若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备,将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。采用这样的方式,一方面,扩大了第一共识节点的存储空间,使第一共识节点可以存储更多的区块链数据,同时,在将区块链数据存储到外接存储设备中时,才用了分表的方式,有利于后续进行数据查找,进而提高了数据存储和数据查找的效率。
基于上述数据处理方法实施例的描述,本申请实施例还公开了一种数据处理装置,所述数据处理装置可以是运行于终端中的一个计算机程序(包括程序代码)。该数据处理装置可以执行图3所示的方法。请参见图7,所述数据处理装置可以运行如下单元:
获取单元701,用于获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
第一存储单元702,用于若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
确定单元703,用于若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
第二存储单元704,用于将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
在一种实施方式中,第二存储单元704在将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,具体用于:将包括所述记录数据所述目标区块链存储到所述外接存储设备中,并删除所述共识节点中存储的所述目标区块链的区块链数据。
在一种实施方式中,所述共识节点周期性将所述本地存储的区块链集合同步到所述关联的存储设备;第二存储单元704在将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,具体用于:将所述记录数据存储到外接存储设备中的目标区块链,并清除所述共识节点存储的区块链集合。
在一种实施方式中,第二存储单元704在将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,具体用于:确定所述目标区块链包括的记录数据的条数;根据所述条数确定多条记录数据的数据标识,每条记录数据对应一个数据标识;根据所述数据标识将所述多条记录数据分表进行存储,分表后的每个子表名称包括对应子表存储的多条记录数据的数据标识信息。
在一种实施方式中,第二存储单元704在将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,具体用于:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,分表存储每个区块链包括的记录数据,每个类型的区块链的记录数据对应一个子表,且子表名称包括所述子表存储的区块链对应的类型信息。
在一种实施方式中,所述共识节点关联的外接存储设备为多个用于存储不同类型区块链数据的外接存储设备,所述每个类型的外接存储设备对应一种类型的区块链数据;第二存储单元704在将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,具体用于:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,将包括所述目标区块链的所述各个区块链存储到所述多个外接存储设备中。
在一种实施方式中,第二存储单元704,具体用于:若检测到当前设置的存储模式为外接存储模式,确定与所述共识节点关联的外接存储设备,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
根据本申请的一个实施例,图3所示的方法所涉及的各个步骤均可以是由图7所示的数据处理装置中的各个单元来执行的。例如,图3中所示的步骤S301可以由图7中所示的获取单元701来执行,步骤S302可以由图7中所示的第一存储单元702来执行,步骤S303可以由图7中所示的确定单元703来执行,步骤S304可以由图7中所示的第二存储单元704来执行.
根据本申请的另一个实施例,图7所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的数据处理装置设备,以及来实现本申请实施例的数据处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例提供的数据处理方法在区块链网络中的第一共识节点获取到待存储的记录数据时,会检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量,若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备,将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。采用这样的方式,一方面,扩大了第一共识节点的存储空间,使第一共识节点可以存储更多的区块链数据,同时,在将区块链数据存储到外接存储设备中时,才用了分表的方式,有利于后续进行数据查找,进而提高了数据存储和数据查找的效率。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种终端。请参见图8,该终端至少包括处理器801、输入设备802、输出设备803以及计算机存储介质804。其中,终端内的处理器801、输入设备802、输出设备803以及计算机存储介质804可通过总线或其他方式连接。
计算机存储介质804可以存储在终端的存储器中,所述计算机存储介质804用于存储计算机程序,所述计算机程序包括程序指令,所述处理器801用于执行所述计算机存储介质804存储的程序指令。处理器801(或称CPU(Central Processing Unit,中央处理器))是终端的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本申请实施例所述的处理器801可以用于进行一系列的数据处理,包括:获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器801加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器801加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关数据处理实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器801加载并执行如下步骤:
获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式;
若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
再一种实施方式中,在所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,所述一条或多条指令还可由处理器801加载并具体执行:将包括所述记录数据所述目标区块链存储到所述外接存储设备中,并删除所述共识节点中存储的所述目标区块链的区块链数据。
再一种实施方式中,所述共识节点周期性将所述本地存储的区块链集合同步到所述关联的存储设备;在所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,所述一条或多条指令还可由处理器801加载并具体执行:将所述记录数据存储到外接存储设备中的目标区块链,并清除所述共识节点存储的区块链集合。
再一种实施方式中,在所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,所述一条或多条指令还可由处理器801加载并具体执行:确定所述目标区块链包括的记录数据的条数;根据所述条数确定多条记录数据的数据标识,每条记录数据对应一个数据标识;根据所述数据标识将所述多条记录数据分表进行存储,分表后的每个子表名称包括对应子表存储的多条记录数据的数据标识信息。
再一种实施方式中,在所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,所述一条或多条指令还可由处理器801加载并具体执行:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,分表存储每个区块链包括的记录数据,每个类型的区块链的记录数据对应一个子表,且子表名称包括所述子表存储的区块链对应的类型信息。
再一种实施方式中,所述共识节点关联的外接存储设备为多个用于存储不同类型区块链数据的外接存储设备,所述每个类型的外接存储设备对应一种类型的区块链数据;在所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,所述一条或多条指令还可由处理器801加载并具体执行:确定所述区块链集合中各个区块链的类型;根据所述各个区块链的类型,将包括所述目标区块链的所述各个区块链存储到所述多个外接存储设备中。
再一种实施方式中,所述一条或多条指令还可由处理器801加载并具体执行:若检测到当前设置的存储模式为外接存储模式,确定与所述共识节点关联的外接存储设备,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
本申请实施例提供的数据处理方法在区块链网络中的第一共识节点获取到待存储的记录数据时,会检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量,若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备,将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。采用这样的方式,一方面,扩大了第一共识节点的存储空间,使第一共识节点可以存储更多的区块链数据,同时,在将区块链数据存储到外接存储设备中时,才用了分表的方式,有利于后续进行数据查找,进而提高了数据存储和数据查找的效率。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法应用于区块链网络中的共识节点,所述区块链中的每个共识节点关联一个外接存储设备,共识节点与外接存储设备为一一对应关系,所述方法包括:
获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,存储模式包括本地存储模式和外接存储模式,其中,本地存储模式中将智能合约产生的数据存储在本地中,外接存储模式中将智能合约产生的数据存储在关联的外接存储设备中;
若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中;
其中,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:
确定所述目标区块链包括的记录数据的条数;
根据所述条数确定多条记录数据的数据标识,每条记录数据对应一个数据标识;所述数据标识为记录数据的主键的哈希值,且主键相同的多条记录数据存储在一个子表中;
根据所述数据标识将所述多条记录数据分表进行存储,分表后的每个子表名称包括对应子表存储的多条记录数据的数据标识信息。
2.如权利要求1所述的方法,其特征在于,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:
将包括所述记录数据所述目标区块链存储到所述外接存储设备中,并删除所述共识节点中存储的所述目标区块链的区块链数据。
3.如权利要求1所述的方法,其特征在于,所述共识节点周期性将所述本地存储的区块链集合同步到所述关联的存储设备;所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:
将所述记录数据存储到外接存储设备中的目标区块链,并清除所述共识节点存储的区块链集合。
4.如权利要求3所述的方法,其特征在于,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:
确定所述区块链集合中各个区块链的类型;
根据所述各个区块链的类型,分表存储每个区块链包括的记录数据,每个类型的区块链的记录数据对应一个子表,且子表名称包括所述子表存储的区块链对应的类型信息。
5.如权利要求3所述的方法,其特征在于,所述共识节点关联的外接存储设备为多个用于存储不同类型区块链数据的外接存储设备,所述每个类型的外接存储设备对应一种类型的区块链数据,所述将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中,包括:
确定所述区块链集合中各个区块链的类型;
根据所述各个区块链的类型,将包括所述目标区块链的所述各个区块链存储到所述多个外接存储设备中。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到当前设置的存储模式为外接存储模式,确定与所述共识节点关联的外接存储设备,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中。
7.一种数据处理装置,其特征在于,所述装置应用于区块链网络中的共识节点,所述区块链中的每个共识节点关联一个外接存储设备,共识节点与外接存储设备为一一对应关系,包括:
获取单元,用于获取待存储的记录数据,并检测当前设置的存储模式,所述存储模式用于指示所述区块链网络产生的记录数据的存储方式,存储模式包括本地存储模式和外接存储模式,其中,本地存储模式中将智能合约产生的数据存储在本地中,外接存储模式中将智能合约产生的数据存储在关联的外接存储设备中;
第一存储单元,用于若检测到当前设置的存储模式为本地存储模式,则将所述记录数据存储于在所述共识节点中存储的区块链集合中的目标区块链,并检测包括所述目标区块链的区块链集合的数据容量;
确定单元,用于若所述区块链集合的数据容量大于第一预设阈值,则确定与所述共识节点关联的外接存储设备;
第二存储单元,用于将所述共识节点的存储模式由所述本地存储模式切换为外接存储模式,并将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中;
所述存储单元,在用于将包括所述记录数据的目标区块链存储到所述关联的外接存储设备中时,用于确定所述目标区块链包括的记录数据的条数;根据所述条数确定多条记录数据的数据标识,每条记录数据对应一个数据标识;所述数据标识为记录数据的主键的哈希值,且主键相同的多条记录数据存储在一个子表中;根据所述数据标识将所述多条记录数据分表进行存储,分表后的每个子表名称包括对应子表存储的多条记录数据的数据标识信息。
8.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的数据处理方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令适于由处理器加载并执行如权利要求1-6任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931495.2A CN110597922B (zh) | 2019-09-27 | 2019-09-27 | 数据处理方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910931495.2A CN110597922B (zh) | 2019-09-27 | 2019-09-27 | 数据处理方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597922A CN110597922A (zh) | 2019-12-20 |
CN110597922B true CN110597922B (zh) | 2024-05-14 |
Family
ID=68864556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910931495.2A Active CN110597922B (zh) | 2019-09-27 | 2019-09-27 | 数据处理方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597922B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125255B (zh) * | 2019-12-24 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 区块数据的处理方法、装置、终端及可读存储介质 |
CN113138710B (zh) * | 2020-01-19 | 2023-09-22 | 深圳市理邦精密仪器股份有限公司 | 存储设备的管理方法、系统及医疗仪器与存储装置 |
CN111368005A (zh) * | 2020-03-18 | 2020-07-03 | 财付通支付科技有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN114116883A (zh) | 2020-08-28 | 2022-03-01 | 京东方科技集团股份有限公司 | 数据管理方法、数据管理装置、区块链网络和系统 |
CN113254537A (zh) * | 2021-06-17 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链状态的存储、读取方法和区块链节点 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN108252363A (zh) * | 2018-02-06 | 2018-07-06 | 北京安洁康生物科技有限公司 | 区块链技术在二次供水设施中的应用方法 |
CN108389129A (zh) * | 2018-02-27 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE541581C2 (en) * | 2018-01-05 | 2019-11-05 | Telia Co Ab | Method and a node for storage of data in a network |
-
2019
- 2019-09-27 CN CN201910931495.2A patent/CN110597922B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
CN108252363A (zh) * | 2018-02-06 | 2018-07-06 | 北京安洁康生物科技有限公司 | 区块链技术在二次供水设施中的应用方法 |
CN108389129A (zh) * | 2018-02-27 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110597922A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN111291060B (zh) | 一种管理区块链节点的方法、装置及计算机可读介质 | |
CN111405019B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111400112B (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
JP5741150B2 (ja) | 中継装置、中継プログラム、及び中継方法 | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
WO2023045620A1 (zh) | 一种交易数据处理方法、装置、计算机设备以及存储介质 | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
CN111083179B (zh) | 物联网云平台、基于物联网云平台的设备交互方法及装置 | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN111245910B (zh) | 一种区块链轻节点多副本的部署方法 | |
CN112417001B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN110910143A (zh) | 身份标识生成方法、装置、相关节点及介质 | |
CN111226206A (zh) | 拍摄区块链数据的快照 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112040015B (zh) | 一种共识节点列表生成方法及相关装置 | |
CN112100234B (zh) | 基于随机共识的图式账本的内容寻址方法和系统 | |
CN109743188A (zh) | 日志数据处理方法和装置 | |
JP7424490B2 (ja) | 登録者端末、検証者端末、管理システムおよびプログラム | |
CN113379542B (zh) | 一种区块链交易的查询方法、装置、介质及电子设备 | |
WO2023160040A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |