CN111026767B - 区块链的数据存储方法、装置及硬件设备 - Google Patents
区块链的数据存储方法、装置及硬件设备 Download PDFInfo
- Publication number
- CN111026767B CN111026767B CN202010025027.1A CN202010025027A CN111026767B CN 111026767 B CN111026767 B CN 111026767B CN 202010025027 A CN202010025027 A CN 202010025027A CN 111026767 B CN111026767 B CN 111026767B
- Authority
- CN
- China
- Prior art keywords
- data storage
- contract
- contract set
- set block
- block
- 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
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种区块链的数据存储方法、装置及硬件设备,涉及区块链技术领域,用于提高区块链运行的效率。本发明的主要技术方案为:接收验证节点发送的合约集合区块;获取合约集合区块的哈希值、达成共识的时间戳、及描述信息;根据合约集合区块的哈希值和数据存储节点的数量确定合约集合区块将要存储的数据存储节点;将合约集合区块将要存储的数据存储节点、以及合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中;验证合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;若合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将合约集合区块发送给将要存储的数据存储节点进行存储。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链的数据存储方法、装置及硬件设备。
背景技术
区块链是一种与传统集中记账方式不同的记录技术,参与到区块链系统上的节点,可能不属于同一组织、彼此无须信任;区块链数据由所有节点共同维护,每个参与维护的节点都能获得一份完整记录的拷贝。与传统的记账技术相比,其特点包括:维护一条不断增长的链,只可能添加记录,而发生过的记录不可篡改;无须集中控制而能达成共识等特点。
随着区块链节点越来越多,区块链运行效率就越来越低,这个问题已经严重影响了区块链技术的应用发展。区块链验证节点合约集合验证通过后,会将合约集合以区块的形式存储到全网节点,但是,随着存储的数据越来越多,节点之间需要同步存储的数据就越多,导致每次同步存储的耗时更长,而且,随着节点的越来越多,一个最新的数据要同步到所有节点所需的时间也就越来越多,这样就导致了区块链运行的效率越来越低。
发明内容
本发明提供一种区块链的数据存储方法、装置、及硬件设备,用于提高区块链运行的效率。
本发明实施例提供一种区块链的数据存储方法,所述方法应用于存储管理节点,所述存储管理节点对应多个数据存储节点,所述方法包括:
接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
本发明实施例提供一种区块链的数据存储装置,所述装置应用于存储管理节点,所述存储管理节点对应多个数据存储节点,所述装置包括:
接收模块,用于接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取模块,用于获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
确定模块,用于根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
存储模块,用于将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证模块,用于对所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
发送模块,用于若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链的数据存储方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链的数据存储装置。
本发明提供的一种区块链的数据存储方法、装置、计算机设备及存储介质,应用于存储管理节点,存储管理节点对应多个数据存储节点,首先接收验证节点发送的合约集合区块;然后获取合约集合区块的哈希值、达成共识的时间戳、及描述信息;并根据合约集合区块的哈希值和数据存储节点的数量确定合约集合区块将要存储的数据存储节点;接着将合约集合区块将要存储的数据存储节点、合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中;验证合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;若合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将合约集合区块发送给将要存储的数据存储节点,使得数据存储节点存储合约集合区块。与目前区块链中所有的节点均需要存储验证节点验证通过的合约集合区块相比,本发明在接收到合约集合区块后,根据合约集合区块生成哈希值,并根据生成的哈希值和数据存储节点的数量确定合约集合区块的将要存储的数据存储节点,如此既保证了区块链中节点存储数据的负载均衡,又避免了区块链中所有节点均需要存储合约集合区块的问题,从而通过本发明可以减少区块链中存储的重复数据量,进而提高了区块链运行的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中区块链的数据存储方法的一流程图;
图2是本发明一实施例中区块链的数据存储方法的另一流程图;
图3是本发明一实施例中数据查询的一流程图;
图4是本发明一实施例中区块链的数据存储装置的一原理框图;
图5是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一实施例中,如图1所示,提供一种区块链的数据存储方法,所述方法应用于存储管理节点,所述存储管理节点对应多个数据存储节点,该方法包括如下步骤:
S10,接收验证节点发送的合约集合区块。
其中,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约。具体的,在接收验证节点发送的合约集合区块之前,交易双方在达成合约之后,合约通过P2P方式在区块链全网中广播,每个节点都会收到一份合约,区块链中的验证节点将会收到广播的合约,收到之后会先保存到内存中,等待共识时间的到来。共识时间到来之后,验证节点会把该时间区间内收到的所有合约打包成一个合约集合,然后将合约集合封装在一个区块结构里,然后发送至存储管理节点,以便于存储管理节点对合约集合区块进行管理存储。
S20,获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息。
其中,所述描述信息中用于记录所述合约集合区块的摘要信息,具体的该描述信息具体可以为合约集合中每个合约的摘要。
S30,根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点。
在本发明实施例中,每个数据存储节点都有对应的标识信息,如存在5个数据存储节点,则可以使用0、1、2、3、4分别标识数据存储节点。具体的,本发明实施例可以根据合约集合区块的哈希值与数据存储节点的数量相除的余数确定对应的数据存储节点,如合约集合区块的哈希值与数据存储节点的数量相除的余数为2,则确定标识信息为2的数据存储节点为存储合约集合区块的节点。
S40,将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中。
其中,预置数据查找表用于存储集合区块的基本信息和存储位置信息,具体的,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息。例如,按照时间的先后顺序分别接收到合约集合区1,合约集合区2,则在预置数据查找表中首先记录合约集合区1对应的标识信息,及其所存储的数据存储节点,以及记录合约集合区1的哈希值、达成共识的时间戳、描述信息,然后记录合约集合区2对应的标识信息,及其所存储的数据存储节点,以及记录合约集合区2的哈希值、达成共识的时间戳、描述信息。
S50,验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配。
在本发明实施例中,验证通过的合约才会最终写入区块链中,即真正的写入到数据存储节点中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。
S60A,若合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将合约集合区块发送给将要存储的数据存储节点,以使得数据存储节点存储所述合约集合区块。
本发明提供的一种区块链的数据存储方法,应用于存储管理节点,存储管理节点对应多个数据存储节点,首先接收验证节点发送的合约集合区块;然后获取合约集合区块的哈希值、达成共识的时间戳、及描述信息;并根据合约集合区块的哈希值和数据存储节点的数量确定合约集合区块将要存储的数据存储节点;接着将合约集合区块将要存储的数据存储节点、合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中;验证合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;若合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将合约集合区块发送给将要存储的数据存储节点,使得数据存储节点存储合约集合区块。与目前区块链中所有的节点均需要存储验证节点验证通过的合约集合区块相比,本发明在接收到合约集合区块后,根据合约集合区块生成哈希值,并根据生成的哈希值和数据存储节点的数量确定合约集合区块的将要存储的数据存储节点,如此既保证了区块链中节点存储数据的负载均衡,又避免了区块链中所有节点均需要存储合约集合区块的问题,从而通过本发明可以减少区块链中存储的重复数据量,进而提高了区块链运行的效率。
如图2所示,在本发明提供的一个实施例中,所述验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配之后,所述方法还包括:
S60B,若合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约,则剔除所述合约集合区块中验证不通过的合约得到新的合约集合区块。
其中,步骤S60B是步骤S60A的并列步骤,若合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约,则剔除合约集合区块中验证不通过的合约得到新的合约集合区块,即去除合约集合区块中验证不通过的合约后,再将所有验证通过的合约进行打包得到新的合约集合区块。然后获取新的合约集合区块的哈希值、达成共识的时间戳、及描述信息。
S70B,根据所述新的合约集合区块的哈希值和所述数据存储节点的数量确定所述新的合约集合区块将要存储的数据存储节点。
S80B,将预置数据查找表中已经存储的所述合约集合区块对应的内容,更新成新的合约集合区块将要存储的数据存储节点、以及新的合约集合区块的哈希值、达成共识的时间戳、以及描述信息。
对于本发明实施例,由于合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约的情况,因此需要根据验证通过的合约重新生成合约集合区块,以便于可将合约集合区块真正的写入到数据存储节点中。但是,由于在之前的步骤中已经在预置数据查找表已经记录了合约集合区块的相关信息,而记录的内容由于合约集合区块已经发生了改变,因此需要及时更新预置数据查找表中相应的内容,以便于在后续步骤中根据预置数据查找表记录的内容查找相应的数据。
在本发明提供的一个实施例中,所述合约集合区块中还包括重要程度信息和数据量信息,所述方法还包括:根据所述重要程度信息和数据量信息确定存储所述合约集合区块的备份数据存储节点;将存储所述合约集合区块的备份数据存储节点的信息存储在预置区块数据查找表中;将所述合约集合区块发送给所述备份数据存储节点,以使得所述备份数据存储节点备份存储所述合约集合区块。其中,重要程度信息是用户根据实际需求进行选择的,如可将重要程度信息分成:普通、重要、非常重要三个等级,以重要程度信息确定需要备份数据存储节点的数量,重要程度等级信息越高需要备份的节点越多。数据量信息是合约集合区块需要占用的存储空间的大小。
例如,合约集合区块的重要程度信息为重要,数据量信息为1G,则需要从备份数据存储节点中选取剩余存储量大于1G的2个备份数据存储节点存储该合约集合区块,然后将选取的备份数据存储节点的信息存储在预置区块数据查找表中;将合约集合区块发送给所述备份数据存储节点,以使得备份数据存储节点备份存储合约集合区块。
在本发明提供的一个实施例中,所述数据存储节点用于存储对应类型的合约集合区块,每个所述数据存储节点包含多个子数据存储节点,所述接收验证节点发送的合约集合区块之后,所述方法还包括:对所有的合约集合区块进行解析,获取所述合约集合区块中的合约及每个合约的合约类型;将属于同一类型的合约进行打包生成新的合约集合区块,并确定所述新的合约集合区块对应的数据存储节点;获取所述新的合约集合区块的哈希值、达成共识的时间戳、及描述信息;根据所述新的合约集合区块的哈希值和所述子数据存储节点的数量确定所述新的合约集合区块对应的数据存储节点中将要存储的子数据存储节点。其中,每个数据存储节点存储对应合约类型的数据,而合约类型的划分具体可以根据业务需求进行设定。例如,对所有的合约集合区块进行解析之后,将转账类型的合约进行打包生成新的合约集合区块,然后确定存储转账类型数据的数据存储节点,并确定该数据存储中的子数据存储节点的数量,然后根据新的合约集合区块的哈希值和子数据存储节点的数量确定对应的数据存储节点中将要存储的子数据存储节点。
对于本发明实施例,将属于同一类型的合约进行打包生成新的合约集合区块,并确定所述新的合约集合区块对应的数据存储节点,然后将新的合约集合区块对应的数据存储节点中将要存储的子数据存储节点,可实现合约集合区块的分类型的存储,提高了后续步骤中查找数据的效率。
如图3所示,在本发明提供的一个实施例中,所述方法还包括:
S70,接收客户端用户的数据查询请求。
其中,所述数据查询请求中包含查询内容及查询时间段。
S80,根据查询内容及所述查询时间段从预置数据查找表中确定与数据查询请求对应的数据存储节点。
具体的,本发明实施例根据查询内容及查询时间段与预置数据查找表中记录的描述信息和数据记录的时间确定对应的数据存储节点。
S90,将数据查询请求发送给对应的数据存储节点,以使得对应的数据存储节点根据数据查询请求查询数据,并将查询结果发送给客户端用户。
在本发明实施例中,存储管理节点接收客户端用户的数据查询请求,并根据查询内容及查询时间段从预置数据查找表中确定与数据查询请求对应的数据存储节点,以便于数据存储节点根据数据查询请求查询数据,并将查询结果发送给客户端用户。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明提供的一实施例中,提供一种区块链的数据存储装置,所述装置应用于存储管理节点,所述存储管理节点对应多个数据存储节点。如图4所示,该区块链的数据存储装置包括:接收模块10、获取模块20、确定模块30、存储模块40、验证模块50、发送模块60。各功能模块详细说明如下:
接收模块10,用于接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取模块20,用于获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
确定模块30,用于根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
存储模块40,用于将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证模块50,用于对所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
发送模块60,用于若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
进一步地,所述装置还包括:
剔除模块70,用于若所述合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约,则剔除所述合约集合区块中验证不通过的合约得到新的合约集合区块;
所述确定模块30,还用于根据所述新的合约集合区块的哈希值和所述数据存储节点的数量确定所述新的合约集合区块将要存储的数据存储节点;
更新模块80,用于将所述预置数据查找表中已经存储的所述合约集合区块对应的内容,更新成所述新的合约集合区块将要存储的数据存储节点、以及所述新的合约集合区块的哈希值、达成共识的时间戳、以及描述信息。
在本发明提供的一个实施例中,所述合约集合区块中还包括重要程度信息和数据量信息,所述确定模块30,还用于根据所述重要程度信息和数据量信息确定存储所述合约集合区块的备份数据存储节点;
所述存储模块40,还用于将存储所述合约集合区块的备份数据存储节点的信息存储在预置区块数据查找表中;
所述发送模块60,还用于将所述合约集合区块发送给所述备份数据存储节点,以使得所述备份数据存储节点备份存储所述合约集合区块。
在本发明提供的一个实施例中,所述数据存储节点用于存储对应类型的合约集合区块,每个所述数据存储节点包含多个子数据存储节点,所述接收验证节点发送的合约集合区块之后,所述装置还包括:
所述获取模块20,还用于对所有的合约集合区块进行解析,获取所述合约集合区块中的合约及每个合约的合约类型;
所述确定模块30,还用于将属于同一类型的合约进行打包生成新的合约集合区块,并确定所述新的合约集合区块对应的数据存储节点;
所述确定模块30,还用于获取所述新的合约集合区块的哈希值、达成共识的时间戳、及描述信息;
所述确定模块30,还用于根据所述新的合约集合区块的哈希值和所述子数据存储节点的数量确定所述新的合约集合区块对应的数据存储节点中将要存储的子数据存储节点。
所述接收模块10,还用于接收客户端用户的数据查询请求,所述数据查询请求中包含查询内容及查询时间段;
所述确定模块30,还用于根据所述查询内容及所述查询时间段从所述预置数据查找表中确定与所述数据查询请求对应的数据存储节点;
所述发送模块60,还用于将所述数据查询请求发送给对应的数据存储节点,以使得所述对应的数据存储节点根据所述数据查询请求查询数据,并将查询结果发送给所述客户端用户。
关于区块链的数据存储装置的具体限定可以参见上文中对于区块链的数据存储方法的限定,在此不再赘述。上述区块链的数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链的数据存储方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链的数据存储方法,其特征在于,所述方法应用于存储管理节点,所述存储管理节点对应多个数据存储节点,所述方法包括:
接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
2.根据权利要求1所述的区块链的数据存储方法,其特征在于,所述验证所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配之后,所述方法还包括:
若所述合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约,则剔除所述合约集合区块中验证不通过的合约得到新的合约集合区块;
根据所述新的合约集合区块的哈希值和所述数据存储节点的数量确定所述新的合约集合区块将要存储的数据存储节点;
将所述预置数据查找表中已经存储的所述合约集合区块对应的内容,更新成所述新的合约集合区块将要存储的数据存储节点、以及所述新的合约集合区块的哈希值、达成共识的时间戳、以及描述信息。
3.根据权利要求1所述的区块链的数据存储方法,其特征在于,所述合约集合区块中还包括重要程度信息和数据量信息,所述方法还包括:
根据所述重要程度信息和数据量信息确定存储所述合约集合区块的备份数据存储节点;
将存储所述合约集合区块的备份数据存储节点的信息存储在预置区块数据查找表中;
将所述合约集合区块发送给所述备份数据存储节点,以使得所述备份数据存储节点备份存储所述合约集合区块。
4.根据权利要求1所述的区块链的数据存储方法,其特征在于,所述数据存储节点用于存储对应类型的合约集合区块,每个所述数据存储节点包含多个子数据存储节点,所述接收验证节点发送的合约集合区块之后,所述方法还包括:
对所有的合约集合区块进行解析,获取所述合约集合区块中的合约及每个合约的合约类型;
将属于同一类型的合约进行打包生成新的合约集合区块,并确定所述新的合约集合区块对应的数据存储节点;
获取所述新的合约集合区块的哈希值、达成共识的时间戳、及描述信息;
根据所述新的合约集合区块的哈希值和所述子数据存储节点的数量确定所述新的合约集合区块对应的数据存储节点中将要存储的子数据存储节点。
5.根据权利要求1所述的区块链的数据存储方法,其特征在于,所述方法还包括:
接收客户端用户的数据查询请求,所述数据查询请求中包含查询内容及查询时间段;
根据所述查询内容及所述查询时间段从所述预置数据查找表中确定与所述数据查询请求对应的数据存储节点;
将所述数据查询请求发送给对应的数据存储节点,以使得所述对应的数据存储节点根据所述数据查询请求查询数据,并将查询结果发送给所述客户端用户。
6.一种区块链的数据存储装置,其特征在于,所述装置应用于存储管理节点,所述存储管理节点对应多个数据存储节点,所述装置包括:
接收模块,用于接收验证节点发送的合约集合区块,所述合约集合区块是所有的验证节点在规定的时间内对最新合约集合中达成一致的合约;
获取模块,用于获取所述合约集合区块的哈希值、达成共识的时间戳、及描述信息;所述描述信息中用于记录所述合约集合区块的摘要信息;
确定模块,用于根据所述合约集合区块的哈希值和所述数据存储节点的数量确定所述合约集合区块将要存储的数据存储节点;
存储模块,用于将所述合约集合区块将要存储的数据存储节点、以及所述合约集合区块的哈希值、达成共识的时间戳、以及描述信息对应存储在预置区块数据查找表中,所述预置数据查找表中按照时间的先后顺序存储有不同合约集合区块分别对应的数据存储节点、哈希值、达成共识的时间戳、以及描述信息;
验证模块,用于对所述合约集合区块中的各个合约的合约参与者的私钥签名是否与账户匹配;
发送模块,用于若所述合约集合区块中所有合约的合约参与者的私钥签名均与账户匹配,则将所述合约集合区块发送给将要存储的数据存储节点,以使得所述数据存储节点存储所述合约集合区块。
7.根据权利要求6所述的区块链的数据存储装置,其特征在于,所述装置还包括:
剔除模块,用于若所述合约集合区块中存在合约参与者的私钥签名与账户不匹配的合约,则剔除所述合约集合区块中验证不通过的合约得到新的合约集合区块;
所述确定模块,还用于根据所述新的合约集合区块的哈希值和所述数据存储节点的数量确定所述新的合约集合区块将要存储的数据存储节点;
更新模块,用于将所述预置数据查找表中已经存储的所述合约集合区块对应的内容,更新成所述新的合约集合区块将要存储的数据存储节点、以及所述新的合约集合区块的哈希值、达成共识的时间戳、以及描述信息。
8.根据权利要求6所述的区块链的数据存储装置,其特征在于,所述合约集合区块中还包括重要程度信息和数据量信息,所述确定模块,还用于根据所述重要程度信息和数据量信息确定存储所述合约集合区块的备份数据存储节点;
所述存储模块,还用于将存储所述合约集合区块的备份数据存储节点的信息存储在预置区块数据查找表中;
所述发送模块,还用于将所述合约集合区块发送给所述备份数据存储节点,以使得所述备份数据存储节点备份存储所述合约集合区块。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述区块链的数据存储方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025027.1A CN111026767B (zh) | 2020-01-04 | 2020-01-04 | 区块链的数据存储方法、装置及硬件设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025027.1A CN111026767B (zh) | 2020-01-04 | 2020-01-04 | 区块链的数据存储方法、装置及硬件设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026767A CN111026767A (zh) | 2020-04-17 |
CN111026767B true CN111026767B (zh) | 2023-05-26 |
Family
ID=70198848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010025027.1A Active CN111026767B (zh) | 2020-01-04 | 2020-01-04 | 区块链的数据存储方法、装置及硬件设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026767B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102316620B1 (ko) * | 2020-04-22 | 2021-10-25 | 장동인 | 관계형 데이터베이스들을 이용한 블록체인 시스템 및 블록체인 관리 방법 |
CN111415251A (zh) * | 2020-05-09 | 2020-07-14 | 杭州时戳信息科技有限公司 | 基于区块链的抵押借贷方法、系统、存储介质及计算设备 |
CN111683120A (zh) * | 2020-05-22 | 2020-09-18 | 哈尔滨工程大学 | 一种支持验证节点动态变化的联盟节点存储方法 |
CN114281605B (zh) * | 2022-03-07 | 2022-06-21 | 杭州费尔斯通科技有限公司 | 一种基于区块链分区存储的计算方法和系统 |
CN116662453B (zh) * | 2023-08-01 | 2023-11-03 | 天津理工大学 | 基于区块链的数字资产存储方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN108985100A (zh) * | 2018-08-15 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 基于区块链的元素安全性证明方法、装置、设备和介质 |
CN109271283A (zh) * | 2018-09-06 | 2019-01-25 | 北京云测信息技术有限公司 | 一种基于区块链的数据备份方法 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN109885423A (zh) * | 2019-01-04 | 2019-06-14 | 上海七印信息科技有限公司 | 一种区块链源数据备份方法 |
CN110263035A (zh) * | 2019-05-31 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 基于区块链的数据存储、查询方法及装置和电子设备 |
CN110300173A (zh) * | 2019-06-28 | 2019-10-01 | 杭州复杂美科技有限公司 | 去中心化数据存储方法、验证方法、设备和存储介质 |
CN110427346A (zh) * | 2019-08-13 | 2019-11-08 | 河南中盾云安信息科技有限公司 | 一种基于区块链的文件存储系统及其文件存储方法 |
-
2020
- 2020-01-04 CN CN202010025027.1A patent/CN111026767B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN108985100A (zh) * | 2018-08-15 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 基于区块链的元素安全性证明方法、装置、设备和介质 |
CN109271283A (zh) * | 2018-09-06 | 2019-01-25 | 北京云测信息技术有限公司 | 一种基于区块链的数据备份方法 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN109885423A (zh) * | 2019-01-04 | 2019-06-14 | 上海七印信息科技有限公司 | 一种区块链源数据备份方法 |
CN110263035A (zh) * | 2019-05-31 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 基于区块链的数据存储、查询方法及装置和电子设备 |
CN110300173A (zh) * | 2019-06-28 | 2019-10-01 | 杭州复杂美科技有限公司 | 去中心化数据存储方法、验证方法、设备和存储介质 |
CN110427346A (zh) * | 2019-08-13 | 2019-11-08 | 河南中盾云安信息科技有限公司 | 一种基于区块链的文件存储系统及其文件存储方法 |
Non-Patent Citations (1)
Title |
---|
能源互联网中基于区块链的电力交易和阻塞管理方法;邰雪 等;电网技术;第40卷(第12期);3630-3638 * |
Also Published As
Publication number | Publication date |
---|---|
CN111026767A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026767B (zh) | 区块链的数据存储方法、装置及硬件设备 | |
CN108573371B (zh) | 数据审批方法、装置、计算机设备和存储介质 | |
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN110647582A (zh) | 区块链网络共识校验的方法、装置、存储介质和计算机设备 | |
WO2020253122A1 (zh) | 数据核对方法、装置、计算机设备和存储介质 | |
CN112559637B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN111522874B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN112905616B (zh) | 一种区块链账本的存储系统 | |
WO2012048555A1 (zh) | 数据入库方法和装置 | |
CN111324623A (zh) | 资源转移数据核对方法、装置、计算机设备和存储介质 | |
CN110008206A (zh) | 一种基于区块链系统的数据处理方法及装置 | |
WO2023011022A1 (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
CN110599267A (zh) | 电子发票开票方法、装置、计算机可读存储介质和计算机设备 | |
CN111339551B (zh) | 数据的验证方法及相关装置、设备 | |
WO2017008658A1 (zh) | 一种文本数据的存储校验方法和系统 | |
CN110597820A (zh) | 基于区块链的信息处理方法、装置、存储介质和设备 | |
CN110879900B (zh) | 一种基于区块链系统的数据处理方法及装置 | |
CN108882230B (zh) | 通话记录管理方法、装置及系统 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN111400399B (zh) | 区块链系统的账本同步方法、装置及硬件设备 | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
CN117010889A (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN114238052A (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 |