CN112988891B - 存储区块链账本的方法、装置、电子设备及存储介质 - Google Patents
存储区块链账本的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112988891B CN112988891B CN202110265799.7A CN202110265799A CN112988891B CN 112988891 B CN112988891 B CN 112988891B CN 202110265799 A CN202110265799 A CN 202110265799A CN 112988891 B CN112988891 B CN 112988891B
- Authority
- CN
- China
- Prior art keywords
- node
- blocks
- contact
- block
- storing
- 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/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
- 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/2219—Large Object storage; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
技术领域
本申请涉及区块链技术领域,尤其是涉及一种存储区块链账本的方法、装置、电子设备及存储介质。
背景技术
区块链是一种分布式数据存储的数据系统,其中包括多个节点,每个节点各自具有独立的区块链账本,常规形态的区块链账本由不断生成的区块组成链式结构的数据表构成。每个区块由区块号、前区块的哈希值、时间戳、默克尔树等构成,每个区块的默克尔树由树根、中间节点和叶子节点组成,叶子节点存储记录数据,中间节点和根节点为子节点的哈希值。通过默克尔树的树根、中间节点的哈希值,系统可以快速验证叶子节点的记录数据是否一致,以判断记录数据是否被修改。
在区块链的运行过程中,随着交易数量的增加,区块链账本也在不断的膨胀。然而,每个节点可能难以负担大规模区块链账本的存储,特别是诸如智能手机、平板电脑等的APP用户端,无法保存大量的区块链账本数据。
发明内容
鉴于现有的区块链节点难以保存大量的区块链账本数据的问题,本申请提供一种存储区块链账本的方法、装置、电子设备及存储介质。
根据本申请的第一方面提供一种存储区块链账本的方法,区块链网络包括多个节点,针对每个节点执行以下操作:存储区块链中的区块,形成当前节点的区块链账本的存储池;建立联系表,其中,所述联系表包括与当前节点连接的联系节点的区块链账本的区块存储信息,其中,所述当前节点能够基于所述存储池中存储的区块以及所述联系节点的区块链账本中存储的区块读取区块链中的所有区块。
可选地,所述存储区块链账本的方法还包括:基于所述联系表来调整所述存储池中存储的区块数量,其中,基于所述联系表来调整所述存储池中存储的区块数量,包括:S1、判断更新尝试次数是否小于预定阈值;S2、检查当前节点与所述联系表中的全部联系节点的连接的有效性;S3、测试当前节点是否能够通过所述联系表中的联系节点读取全部区块;S4、判断当前节点是否满足预定更新条件;S5、尝试减少所述存储池中的区块数量。
可选地,判断更新尝试次数是否小于预定阈值的步骤包括:当所述更新尝试次数小于预定阈值时,执行步骤S2;当所述更新尝试次数等于预定阈值时,尝试增加所述存储池中的区块数量,使所述更新尝试次数归零,并执行步骤S3。
可选地,通过以下方式来尝试增加所述存储池中的区块数量:S11、判断增加区块的尝试次数是否小于预定阈值;S12、向区块链网络中存储有预定增加的区块的节点发起读取区块的请求;S13、判断是否从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块;S14、将所述存储有预定增加的区块的节点添加到所述联系表,将接收到的区块存储在所述存储池中;S15、通知所述联系表中的所有联系节点关于当前节点的区块存储信息;其中,判断是否从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块的步骤包括:当从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,执行步骤S14;当未从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,查询区块链网络中存储有未接收到的区块的新的节点,将所述新的节点替换所述存储有预定增加的区块的节点,并且使所述增加区块的尝试次数增加一次,执行步骤S11;其中,判断增加区块的尝试次数是否小于预定阈值的步骤包括:当增加区块的尝试次数小于预定阈值时,执行步骤S12;当增加区块的尝试次数等于预定阈值时,结束增加区块的尝试。
可选地,检查当前节点与所述联系表中的全部联系节点的连接的有效性的步骤包括:当当前节点与所述联系表中的全部联系节点的网络连接均有效时,执行步骤S3;当当前节点与所述联系表中的至少一个联系节点的连接失效时,查询区块链网络中存储有失效的联系节点所存储的区块的新的联系节点,用新的联系节点替换所述联系表中的所述失效的联系节点,并且使所述更新尝试次数增加一次,执行步骤S1。
可选地,测试当前节点是否能够通过所述联系表中的联系节点读取全部区块的步骤包括:当当前节点能够通过所述联系表中的联系节点读取全部区块时,执行步骤S4;当当前节点不能通过所述联系表中的联系节点读取全部区块时,查询区块链网络中存储有当前节点不能读取到的区块的新的联系节点,将新的联系节点添加到所述联系表中,并且使所述更新尝试次数增加一次,执行步骤S1。
可选地,通过以下方式来尝试减少所述存储池中的区块数量:S21、判断减少区块的尝试次数是否小于预定阈值;S22、向存储有预定减少的区块的联系节点发起减少区块的请求;S23、判断是否从所述联系节点接收到同意减少区块的确认消息;S24、从所述存储池中删除所述预定减少的区块;S25、通知所述联系表中的所有联系节点关于当前节点的区块存储信息;其中,判断是否从所述联系节点接收到同意减少区块的确认消息的步骤包括:当从所述联系节点接收到同意减少区块的确认消息时,执行步骤S24;当从所述联系节点接收到不同意减少区块的确认消息时,查询区块链网络中存储有所要减少的区块的新的节点,用所述新的节点替换不同意减少区块的联系节点,并且使所述减少区块的尝试次数增加一次,执行步骤S21;其中,判断减少区块的尝试次数是否小于预定阈值的步骤包括:当所述减少区块的尝试次数小于预定阈值时,执行步骤S22;当所述减少区块的尝试次数等于预定阈值时,结束减少区块的尝试。
根据本申请的第二方面提供一种存储区块链账本的装置,区块链网络包括多个节点,所述存储区块链账本的装置针对每个节点执行以下操作:存储单元,存储区块链中的区块,形成当前节点的区块链账本的存储池;建表单元,建立联系表,其中,所述联系表包括与当前节点连接的联系节点的区块链账本的区块存储信息。
根据本申请的第三方面提供一种电子设备,所述电子设备包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现根据上述第一方面所述的存储区块链账本的方法。
根据本申请的第四方面提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时实现根据上述第一方面所述的存储区块链账本的方法。
根据本申请存储区块链账本的方法、装置、电子设备及存储介质,可以将区块链账本动态分布式存储在节点中,从而在保证区块链有效工作的同时,减轻节点的负担,提升工作效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了根据本申请的示例性实施例的存储区块链账本的方法的流程图;
图2示出了根据本申请的示例性实施例的存储区块链账本的方法中的基于联系表来调整存储池中存储的区块数量的流程图;
图3示出了根据本申请的示例性实施例的存储区块链账本的方法中的尝试增加存储池中的区块数量的步骤的流程图;
图4示出了根据本申请的示例性实施例的存储区块链账本的方法中的尝试减少存储池中的区块数量的步骤的流程图;
图5示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到减少区块数量的测试消息的处理流程图;
图6示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到减少区块数量的通知消息的处理流程图;
图7示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到增加区块数量的通知消息的处理流程图;
图8示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到查询消息的处理流程图;
图9示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到读取区块消息的处理流程图;
图10示出了根据本申请的示例性实施例的存储区块链账本的装置的示意性框图。
具体实施方式
为使本申请的实施例的目的、技术方案和优点更加清楚,下面将结合本申请的实施例中附图,对本申请的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请的实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其他的特征。
本申请的一方面涉及一种存储区块链账本的方法。该方法可以在保证区块链有效工作的同时,减轻节点的负担,提升工作效率。
值得注意的是,在本申请提出申请之前,在现有的区块链中,由于区块链随着交易记录数量的不断增长,区块链账本会无限的膨胀,如果每个节点都保存一套完整的账本,则节点的本地系统存储资源终将消耗殆尽。此外,在节点保存大量的区块链账本数据的情况下,大量的数据也会影响节点的本地系统的运行效率,增大记录信息查询的开销时间,影响用户的使用,并且将极大地降低数据查询和检索的效率。因此,本申请可以提供一种存储区块链账本的方法,其通过对区块链账本数据进行分布式存储,减轻节点的存储压力和数据查询检索负担,提高整个区块链网络运行的工作效率。
下面将结合图1至图4详细描述本申请的存储区块链账本的方法。
区块链网络可以包括多个节点,根据本申请的存储区块链账本的方法,可以针对每个节点执行以下操作:步骤S100、存储区块链中的区块,形成当前节点的区块链账本的存储池;步骤S200、建立包括与当前节点连接的联系节点的区块链账本的区块存储信息的联系表,其中,当前节点能够基于存储池中存储的区块以及联系节点的区块链账本中存储的区块读取区块链中的所有区块。
在存储区块链中的区块的步骤中,可选取区块链中的多个区块存储在当前节点的区块链账本中,这些区块形成当前节点的区块链账本的存储池。
在一示例中,存储池中存储的区块数量可表示为:
其中,节点的存储池的存储位数可为自然数,其可表征节点所存储的区块的数量。存储位数增大(即,升位),节点所存储的区块的数量可减少;存储位数减小(即,降位),节点所存储的区块的数量可增加。在初始状态下,存储位数可以是0,即,可在存储池中存储区块链中的所有区块,当存储位数大于0时,可在存储池中存储区块链中的一部分区块。
作为示例,可以以预定的选取规则来选取存储在存储池中的区块,这里,考虑到节点ID号和区块ID号均为二进制表示,因此可基于当前节点ID号和存储池的存储位数来选取所存储的区块。
具体来说,存储池存储的区块可以是按照存储位数确定的当前节点ID号(二进制)所对应的区块,如果存储位数超出节点ID号位数的长度,则前面超出的位数部分可以用节点ID号的最后相应位数的值补足。
例如,假定当前节点ID号为0101,当存储位数为0时,存储池中存储账本中的全部区块,即,一套完整的账本;当存储位数为1时,存储池中存储区块号(二进制)最后一位为1的区块;当存储位数为2时,存储池中存储区块号最后2位为01的区块;当存储位数为3时,存储池中存储区块号最后3位为101的区块。以此类推,当存储池位数超过节点ID号的长度,例如在存储位数为5时,前面超出的1位以节点ID号的最后一位“1”补足,使得存储池中存储区块号最后5位为10101的区块。
作为示例,单个节点存储的区块链账本中的区块可包括与该节点有过交易的相关记录所在的区块以及与该节点不相关的区块,这里,可以选取与该节点不相关的区块作为存储在存储池中的区块。例如,节点的存储池可包括第一存储池和第二存储池,可将与节点有过交易的相关记录所在的区块存储在第一存储池中,可将与节点不相关的区块存储在第二存储池中。在这种情况下,根据本申请的存储区块链账本的方法的升位过程和降位过程可以应用于第二存储池的区块。
在建立联系表的步骤中,可在区块链网络的每个节点中建立联系表,例如,联系表可以记录区块链网络上的与当前节点网络连接的节点的区块存储信息。在节点运行过程中,节点的系统对该联系表进行维护,用于同步区块链账本的更新,查询分布在区块链网络上的其他节点上的区块信息,使得当前节点可以通过获取联系表中的与当前节点连接的联系节点所存储的区块来覆盖区块链账本的所有区块。
作为示例,联系表还可以包括联系节点的IP地址、网络端口等网络连接信息,例如,联系表的字段包括但不限于:节点的ID号、存储位数、IP地址、端口号、平均响应时间和最后联络时间。具体地,联系表可如下表所示:
节点ID号 | 存储位数 | IP地址 | 端口号 | 平均响应时间 | 最后联络时间 |
根据本申请的存储区块链账本的方法还可以包括:基于联系表来更新存储池中存储的区块数量。
在该步骤中,为了减轻节点的存储负担,可以减少存储的区块数量,并且通过与联系表中的联系节点进行联系来覆盖到区块链账本中的全部区块,在减轻存储量的同时确保单个节点的区块链账本存储的完整性。因此,可以通过更新联系表中的联系节点以及存储位数来更新存储池中存储的区块数量,例如可以根据联系表尝试增加或减少当前节点的区块链账本中存储的区块数量。
在本申请中,在通过存储位数来表征节点所存储的区块的数量的情况下,减少当前节点的区块链账本中存储的区块数量可指执行存储升位,增加当前节点的区块链账本中存储的区块数量可指执行存储降位。
在一示例中,如图1所示,联系表可以通过以下方式来更新:
S1、判断更新尝试次数是否小于预定阈值。
在该步骤中,可以为尝试更新联系表预设尝试次数的阈值,在更新联系表的过程中,可以根据更新尝试次数是否小于预定阈值来继续执行更新或退出更新循环。更新尝试次数可以表征当前节点通过更新联系表来实现覆盖所有区块的难度,当达到或超过预定更新尝试次数时,可认为可能需要增加当前节点存储的区块来实现覆盖所有区块。如图2所示,初始的更新尝试次数可以为0,每尝试更新一次联系表,则更新尝试次数增加一次。
在一示例中,判断更新尝试次数是否达到预定阈值的步骤可以包括:当更新尝试次数未达到预定阈值时,可以执行下面将描述的步骤S2;当更新尝试次数达到预定阈值时,可以尝试增加存储池中的区块数量(例如,在通过存储位数来表征节点所存储的区块的数量的情况下,可尝试执行存储池的存储降位),使更新尝试次数归零,并执行下面将描述的步骤S3。这里,尝试增加存储池中的区块数量的具体操作将在下文中参照图3进行详细描述。
S2、检查当前节点与联系表中的全部联系节点的连接的有效性。
在该步骤中,可以检查当前节点与联系表中的全部联系节点的网络连接是否可用,当与某联系节点的网络连接失效时,表示当前节点无法从失效的联系节点处获取到其存储的区块信息。
在一示例中,检查当前节点与联系表中的全部联系节点的连接的有效性的步骤可包括:当当前节点与联系表中的全部联系节点的网络连接均有效时,执行下面将描述的步骤S3;当当前节点与联系表中的至少一个联系节点的连接失效时,查询区块链网络中存储有失效的联系节点所存储的区块的新的联系节点,用新的联系节点替换联系表中的失效的联系节点,并且使更新尝试次数增加一次,返回执行步骤S1。
在上述步骤中,在发起查询后,可能存在可确保当前节点的区块全覆盖的多个新的联系节点,在此情况下,优选地,可选取多个新的联系节点中存储有最多区块数量的新的联系节点。
S3、测试当前节点是否能够通过联系表中的联系节点读取全部区块。
在一示例中,测试当前节点是否能够通过联系表中的联系节点读取全部区块的步骤可包括:当当前节点能够通过联系表中的联系节点读取全部区块时,执行下面将描述的步骤S4;当当前节点不能通过联系表中的联系节点读取全部区块时,通过读取所述联系表中其他节点的联系表的方式查询区块链网络中存储有当前节点不能读取到的区块的新的联系节点,将新的联系节点添加到所述联系表中,并且使更新尝试次数增加一次,返回执行步骤S1。
作为示例,该步骤还可以包括设定读取全部区块的冗余度,这里,冗余度可以指可有效被读取区块的节点的最少数量。在这种情况下,可以在确保预定冗余度的情况下,测试当前节点是否能够通过联系表中的联系节点读取全部区块。例如,冗余度可以为3,在此情况下,需确保每个区块可以从至少3个节点被有效读取。
此外,冗余度可以与联系表的更新频率有关,当更新频率高时,可适当降低冗余度;当更新频率低时,可适当增加冗余度,从而可更有效地保证节点的区块链账本的完整性。
S4、判断当前节点是否满足预定更新条件。
在该步骤中,预定更新条件可以包括以下项中的至少一者:联系表中的存储有与当前节点的存储池中存储的区块相重合的区块的联系节点的数量大于2;在预定时间段内的读取预定数量的区块的次数小于预定值。
这里,预定时间段、预定数量的区块和预定值均可通过经验来设定,以判断近期读取频率不高的区块,从而尝试减少存储的区块数量(例如,尝试执行存储升位),使得本地系统能够保障良好的效率。
预定更新条件可以用于对减少当前节点存储的区块数量进行预评估,当满足预定更新条件时,表示可以删除当前节点存储的部分区块,并且在删除后,当前节点仍可以通过联系表中的联系节点来覆盖到所有区块。
在一示例中,判断当前节点是否满足预定更新条件的步骤包括:当当前节点满足所述预定更新条件时,执行下面将描述的S5;当当前节点不满足所述预定更新条件时,结束更新。
S5、尝试减少存储池中的区块数量。
在该步骤中,可以尝试删除当前节点存储的部分区块,以减少当前节点的存储量(例如,执行存储升位),释放本地系统的存储空间,以便于后续记录新的区块。这里,尝试减少存储池中的区块数量的具体操作将在下文中参照图4进行详细描述。
下面将参照图3详细描述尝试增加存储池中的区块数量的具体操作。
在一示例中,如上面的步骤S1中所述,当达到或超过预定更新尝试次数时,可认为可能需要增加当前节点存储的区块来实现覆盖所有区块。例如,在通过存储位数来表征节点所存储的区块的数量的情况下,可尝试执行存储池的存储降位。
在另一示例中,可不通过更新联系表来启动尝试增加存储池中的区块数量的步骤,例如,当节点的区块的查询效率降低时,或当联系表中有效冗余节点数量不足时,也可尝试增加存储池中的区块数量。
如图3所示,尝试增加存储池中的区块数量的步骤可以通过以下方式来实现:
S11、判断增加区块的尝试次数是否小于预定阈值。
在该步骤中,增加区块的尝试次数可以表征尝试通过联系表中的联系节点来增加当前节点存储的区块的难度,如图3所示,初始的更新尝试次数可以为0,每尝试一次增加区块,则增加区块的尝试次数增加一次。当达到或超过预定更新尝试次数时,可认为可能需要从联系表之外的途径获取所要增加的区块信息,或者可以设置预定的延迟时间,当达到或超过预定更新尝试次数时,可以在等待该延迟时间后再次进行尝试。
作为示例,判断增加区块的尝试次数是否小于预定阈值的步骤可包括:当增加区块的尝试次数小于预定阈值时,执行下面将描述的步骤S12;当增加区块的尝试次数等于预定阈值时,结束增加区块的尝试。
S12、向区块链网络中存储有预定增加的区块的节点发起读取区块的请求。
在该步骤中,当前节点需要预定增加的区块可以通过预定的存储规则来确定,例如如上所述的存储降位所需增加的区块,可以通过查询当前节点的联系表查询存储有这些预定增加的区块的节点。例如,可以首先查询当前节点的联系表中的联系节点是否存储有这些预定增加的区块,若存储有,则可向存储预定增加的区块的联系节点发起读取区块的请求;若联系节点均未存储预定增加的区块中的一个或多个,则可进一步查询当前节点的联系表中的联系节点所持有的联系表中的联系节点是否存储有这些预定增加的区块,若存储有,则可向存储预定增加的区块的节点发起读取区块的请求;若仍未存储预定增加的区块中的一个或多个,则可更进一步查询当前节点的联系节点所连接到的联系节点的联系表,直至查询到所有存储预定增加的区块的节点为止。通过上述方式,可以以当前节点的联系表为查询入口,逐层深入地查询存储有预定增加的区块的节点,以实现增加区块。
具体来说,区块链网络中存储有预定增加的区块的节点可以是当前节点的联系表中的联系节点,也可以是在当前节点的联系表中的联系节点的联系表中所包含的联系节点,因此,可以向联系表中的存储有预定增加的区块的节点发起读取区块的请求,以从联系节点获取当前节点未存储的区块,和/或,可以向当前节点的联系节点所持有的联系表中的节点发起读取区块的请求,以从所述节点获取当前节点未存储的区块。
S13、判断是否从存储有预定增加的区块的节点接收到全部预定增加的区块。
在一示例中,判断是否从存储有预定增加的区块的节点接收到全部预定增加的区块的步骤可以包括:当从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,执行下面将描述的步骤S14;当未从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,查询区块链网络中存储有未接收到的区块的新的节点,将新的节点替换所述存储有预定增加的区块的节点,并且使增加区块的尝试次数增加一次,返回执行步骤S11。
在该步骤中,当未从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,可再次执行查询存储有预定增加的区块的节点的操作,以再次进行获取区块的尝试。这里,查询存储有预定增加的区块的节点的具体操作与上面步骤S12中描述的相同,在此不再赘述。
S14、将所述存储有预定增加的区块的节点添加到联系表,将接收到的区块存储在存储池中。
在该步骤中,在从存储有预定增加的区块的节点接收到全部预定增加的区块后,可以将提供新增的区块的节点信息添加到联系表中,并且存储接收到的区块,以增加存储池中的区块数量。
S15、通知联系表中的所有联系节点关于当前节点的区块存储信息。
在该步骤中,由于当前节点所存储的区块数量增加,因此可通知区块链网络中的全部联系节点关于当前节点的区块存储情况,以更新整个区块链网络上与当前节点相关的联系节点的联系表。
下面将参照图4详细描述尝试减少存储池中的区块数量的具体操作。
如图4所示,尝试减少存储池中的区块数量的步骤可以通过以下方式来实现:
S21、判断减少区块的尝试次数是否小于预定阈值。
作为示例,判断减少区块的尝试次数小于预定阈值的步骤包括:当减少区块的尝试次数小于预定阈值时,执行步骤S22;当减少区块的尝试次数达到预定阈值时,结束减少区块的尝试。
S22、向存储有预定减少的区块的联系节点发起减少区块的请求。
例如,在通过存储位数来表征节点所存储的区块的数量的情况下,可发起执行存储升位的请求。
S23、判断是否从联系节点接收到同意减少区块的确认消息。
例如,在通过存储位数来表征节点所存储的区块的数量的情况下,可判断是否从联系节点接收到同意升位的确认消息。
作为示例,判断是否从所述联系节点接收到同意减少区块的确认消息的步骤可包括:
当从所述联系节点接收到同意减少区块的确认消息时,例如当从全部联系节点接收到同意减少区块的确认消息时,可执行下面将描述的步骤S24;当未从所述联系节点接收到不同意减少区块的确认消息时,查询区块链网络中存储有所要减少的区块的新的节点,用所述新的节点替换不同意减少区块的联系节点,并且使所述减少区块的尝试次数增加一次,执行步骤S21。
S24、从存储池中删除预定减少的区块,从而可以减少存储池中的区块数量。
S25、通知所述联系表中的所有联系节点关于当前节点的区块存储信息。
上面描述了本申请的方法中的更新联系表的步骤,在本申请中,可以以预定的时间间隔来执行更新联系表,该预定的时间间隔可根据经验来设定,例如,可根据当前节点的交易量或交易频率、区块链网络上的其他节点的交易量或交易频率等来设定。
根据本申请的存储区块链账本的方法,可在有效减少节点负担的同时,保证整个区块链网络的特性能正常发挥。
特别的是,根据本申请的存储区块链账本的方法,在全网活跃节点数量恒定的情况下,区块链账本增大,节点的存储池会逐渐变大;在区块链账本相对恒定的情况下,随着活跃节点数增加,节点的存储池会逐渐变小,从而在常态化运行中,随着运行时间的增长,两者将始终处于动态平衡之中,如此,可极大地优化区块链网络上单个节点的存储,并且不仅不会因后续节点的增加而使节点存储负担加重,反而能够在节点增加的情况下进一步减轻节点存储压力,实现了区块链账本存储良性的发展。
此外,优选地,在本申请的方法中,对于访问量大的节点而言,可存储更多的区块,即可为存储池保留更低的存储位数,有利于提升自身的查询效率,减少网络读取的时间开销,这也变相的激励机制节点保留更低的存储位,将更多的区块保留在本地,同时能为其他访问量少的节点提供查询服务,减少存储上的开销。
下面将参照图5至图8描述作为联系节点的节点在接收到其他节点发送的关于更新联系表和查询存储的区块的消息时的处理流程。
图5示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到减少区块数量的测试消息的处理流程图。
当作为联系节点的节点接收到其他节点发送的减少区块的请求(例如,上面的步骤S22中发送的请求)(步骤S101)时,可首先核查本节点的区块链账本是否存储有发送请求的节点所要减少的区块(步骤S102)。
如果存储有所要减少的区块,则可向发送请求的节点回复同意减少区块的确认消息(步骤S103)。如果未存储有所要减少的区块,则测试在发送请求的节点减少区块后本节点是否能够通过本节点的联系表覆盖所有区块(步骤S104)。
如果能覆盖,则可如步骤S103所述,向发送请求的节点回复同意减少区块的确认消息;如果不能覆盖,则可在假定发送请求的节点减少区块的情况下尝试更新一次联系表(步骤S105)后,再次测试在发送请求的节点减少区块后本节点是否能够通过本节点的联系表覆盖所有区块(步骤S106),如果仍不能保证覆盖全部区块,则向发送请求的节点回复不同意减少区块的消息(步骤S107)。
图6示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到减少区块数量的通知消息的处理流程图。
如图6所示,当作为联系节点的节点接收到来自其他节点的减少区块数量的消息(例如,上面的步骤S25中发送的通知消息)(步骤S201)时,可根据接收到的消息更新本节点的联系表(步骤S202),例如,更新减少区块数量的节点的信息。
在通过存储位数来表征节点所存储的区块的数量的情况下,作为联系节点的节点可收到其他节点的存储池的存储升位的消息。
图7示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到增加区块数量的通知消息的处理流程图。
如图7所示,当作为联系节点的节点接收到来自其他节点的增加区块数量的消息(例如,上面的步骤S15中发送的通知消息)(步骤S301)时,可根据接收到的消息更新本节点的联系表(步骤S302),例如,更新增加区块数量的节点的信息。
在通过存储位数来表征节点所存储的区块的数量的情况下,作为联系节点的节点可收到其他节点的存储池的存储降位的消息。
图8示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到查询联系表消息的处理流程图。
如图8所示,当区块链网络中的节点接收到来自其他节点的查询消息(例如,上面的步骤S2和S3中发送的查询消息)(步骤S401)时,可根据接收到的消息,查询本节点和/或本节点的联系节点是否存储有所需区块并反馈查询结果(步骤S402),具体来说,可以查询本节点的区块链账本是否存储有发送消息的节点所需的区块并向发送消息的节点反馈本节点存储有所述区块的结果,和/或,可根据接收到的消息查询本节点的联系表中的联系节点的区块链账本是否存储有发送消息的节点所需的区块并向发送消息的节点反馈存储有所述区块的联系节点的信息。
在一示例中,当区块链网络中的节点收到如上面的步骤S2中发送的查询消息时,可查询本节点中的是否可提供已失效的联系节点所存储的区块,如果查询到本节点可提供所述区块,则可向发送查询消息的节点反馈可提供区块的消息以及相应的区块数据;如果查询到本节点无法提供所述区块,则可向发送查询消息的节点反馈无法提供区块的消息。
在另一示例中,当区块链网络中的节点收到如上面的步骤S3中发送的查询消息时,可查询本节点中的是否可提供发送查询消息的节点需要读取的区块,如果查询到本节点可提供所述区块,则可向发送查询消息的节点反馈可提供区块的消息;如果查询到本节点无法提供所述区块,则可向发送查询消息的节点反馈无法提供区块的消息。
图9示出了根据本申请的示例性实施例的存储区块链账本的方法中的节点接收到读取区块消息的处理流程图。
如图9所示,当区块链网络中的节点接收到来自其他节点的读取区块的请求(例如,上面的步骤S12中发送的请求)(步骤S501)时,可根据接收到的请求,查询本节点的存储池并反馈查询结果(步骤S502),如果查询到存储池中存储有请求读取的区块,则可向发送请求的节点反馈存储有区块的消息;如果查询到存储池中未存储有请求读取的区块,则可向发送请求的节点反馈未存储有区块的消息。
本申请的另一方面提供一种存储区块链账本的装置,区块链网络可以包括多个节点。如图10所示,存储区块链账本的装置包括存储单元100和建表单元200。
存储单元100存储区块链中的区块,形成当前节点的区块链账本的存储池。
建表单元200建立联系表,使得当前节点能够基于存储池中存储的区块以及联系节点的区块链账本中存储的区块读取区块链中的所有区块,其中,联系表包括与当前节点连接的联系节点的区块链账本的区块存储信息。
存储区块链账本的装置还可包括更新单元300,更新单元300通过更新联系表来更新存储池中存储的区块。
存储单元100、建表单元200和更新单元300可以根据如上述图1至图9所示的方法实施例中的存储区块链账本的方法执行所述方法中的相应步骤,例如通过存储单元100、建表单元200和更新单元300可执行的机器可读指令来实现,存储单元100、建表单元200和更新单元300的具体实现方式可参见上面描述的方法实施例,在此不再赘述。
本申请的另一方面提供一种电子设备,电子设备包括处理器和存储器。存储器存储有计算机程序。当所述计算机程序被处理器执行时,电子设备可以执行如上述图1至图9所示的方法实施例中的存储区块链账本的方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请的另一方面提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时可以执行如上述图1至图9所示的方法实施例中的存储区块链账本的方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,均可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口、装置或单元的间接耦合或通信连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请存储区块链账本的方法、装置、电子设备及存储介质,可以将区块链账本动态分布式存储在节点中,从而在保证区块链网络有效工作的同时,减轻节点的负担,提升工作效率。
此外,根据本申请存储区块链账本的方法、装置、电子设备及存储介质,可以根据网络活跃节点的状况,在确保区块链账本有足够冗余度的情况下,在确保证区块链系统去中心化(Decentralized)、去信任(Trustless)、集体维护(Collectively Maintained)、可靠数据库(Reliable Database)等要求的同时,动态调整各节点存储的账本大小,减少节点负担,提高工作效率。
此外,根据本申请存储区块链账本的方法、装置、电子设备及存储介质,节点的存储池可根据网络中节点数量和自身的存取频率而动态变化,存储的区块也是在原有的基础上作有限增加或减少,不会出现大规模的数据变更,从而减少网络查询和数据传输的工作量,提高工作效率。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
虽然本申请包括具体示例,但是本领域普通技术人员将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可以对这些示例进行形式和细节上的各种改变。这里描述的示例仅以描述性意义被考虑,而不是限制的目的。每个示例中的特征或方面的描述将被考虑为可应用于其他示例的类似特征或方面。如果描述的技术以不同的顺序被执行和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或被其他组件或其等同物替换或补充,则可以得到适当的结果。因此,本申请的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且权利要求及其等同物范围内的所有变化将被解释为包括在本申请中。
Claims (8)
1.一种存储区块链账本的方法,其特征在于,区块链网络包括多个节点,针对每个节点执行以下操作:
存储区块链中的区块,形成当前节点的区块链账本的存储池;
建立联系表,其中,所述联系表包括与当前节点连接的联系节点的区块链账本的区块存储信息,
其中,所述当前节点能够基于所述存储池中存储的区块以及所述联系节点的区块链账本中存储的区块读取区块链中的所有区块;
所述存储区块链账本的方法还包括:基于所述联系表来调整所述存储池中存储的区块数量,
其中,基于所述联系表来调整所述存储池中存储的区块数量的步骤包括:
S1、判断更新尝试次数是否小于预定阈值;
S2、检查当前节点与所述联系表中的全部联系节点的连接的有效性;
S3、测试当前节点是否能够通过所述联系表中的联系节点读取全部区块;
S4、判断当前节点是否满足预定更新条件;
S5、尝试减少所述存储池中的区块数量;
判断更新尝试次数是否小于预定阈值的步骤包括:
当所述更新尝试次数小于预定阈值时,执行步骤S2;
当所述更新尝试次数等于预定阈值时,尝试增加所述存储池中的区块数量,使所述更新尝试次数归零,并执行步骤S3。
2.根据权利要求1所述的存储区块链账本的方法,其特征在于,通过以下方式来尝试增加所述存储池中的区块数量:
S11、判断增加区块的尝试次数是否小于预定阈值;
S12、向区块链网络中存储有预定增加的区块的节点发起读取区块的请求;
S13、判断是否从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块;
S14、将所述存储有预定增加的区块的节点添加到所述联系表,将接收到的区块存储在所述存储池中;
S15、通知所述联系表中的所有联系节点关于当前节点的区块存储信息;
其中,判断是否从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块的步骤包括:
当从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,执行步骤S14;
当未从所述存储有预定增加的区块的节点接收到全部所述预定增加的区块时,查询区块链网络中存储有未接收到的区块的新的节点,将所述新的节点替换所述存储有预定增加的区块的节点,并且使所述增加区块的尝试次数增加一次,执行步骤S11;
其中,判断增加区块的尝试次数是否小于预定阈值的步骤包括:
当增加区块的尝试次数小于预定阈值时,执行步骤S12;
当增加区块的尝试次数等于预定阈值时,结束增加区块的尝试。
3.根据权利要求1所述的存储区块链账本的方法,其特征在于,检查当前节点与所述联系表中的全部联系节点的连接的有效性的步骤包括:
当当前节点与所述联系表中的全部联系节点的网络连接均有效时,执行步骤S3;
当当前节点与所述联系表中的至少一个联系节点的连接失效时,查询区块链网络中存储有失效的联系节点所存储的区块的新的联系节点,用新的联系节点替换所述联系表中的所述失效的联系节点,并且使所述更新尝试次数增加一次,执行步骤S1。
4.根据权利要求1所述的存储区块链账本的方法,其特征在于,测试当前节点是否能够通过所述联系表中的联系节点读取全部区块的步骤包括:
当当前节点能够通过所述联系表中的联系节点读取全部区块时,执行步骤S4;
当当前节点不能通过所述联系表中的联系节点读取全部区块时,查询区块链网络中存储有当前节点不能读取到的区块的新的联系节点,将新的联系节点添加到所述联系表中,并且使所述更新尝试次数增加一次,执行步骤S1。
5.根据权利要求1所述的存储区块链账本的方法,其特征在于,通过以下方式来尝试减少所述存储池中的区块数量:
S21、判断减少区块的尝试次数是否小于预定阈值;
S22、向存储有预定减少的区块的联系节点发起减少区块的请求;
S23、判断是否从所述联系节点接收到同意减少区块的确认消息;
S24、从所述存储池中删除所述预定减少的区块;
S25、通知所述联系表中的所有联系节点关于当前节点的区块存储信息;
其中,判断是否从所述联系节点接收到同意减少区块的确认消息的步骤包括:
当从所述联系节点接收到同意减少区块的确认消息时,执行步骤S24;
当从所述联系节点接收到不同意减少区块的确认消息时,查询区块链网络中存储有所要减少的区块的新的节点,用所述新的节点替换不同意减少区块的联系节点,并且使所述减少区块的尝试次数增加一次,执行步骤S21;
其中,判断减少区块的尝试次数是否小于预定阈值的步骤包括:
当所述减少区块的尝试次数小于预定阈值时,执行步骤S22;
当所述减少区块的尝试次数等于预定阈值时,结束减少区块的尝试。
6.一种存储区块链账本的装置,其特征在于,所述存储区块链账本的装置能够执行如权利要求1-5中的任一项所述的存储区块链账本的方法,
区块链网络包括多个节点,所述存储区块链账本的装置针对每个节点执行以下操作:
存储单元,存储区块链中的区块,形成当前节点的区块链账本的存储池;
建表单元,建立联系表,其中,所述联系表包括与当前节点连接的联系节点的区块链账本的区块存储信息。
7.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现根据权利要求1至5中的任一项所述的存储区块链账本的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时实现根据权利要求1至5中的任一项所述的存储区块链账本的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265799.7A CN112988891B (zh) | 2021-03-11 | 2021-03-11 | 存储区块链账本的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265799.7A CN112988891B (zh) | 2021-03-11 | 2021-03-11 | 存储区块链账本的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988891A CN112988891A (zh) | 2021-06-18 |
CN112988891B true CN112988891B (zh) | 2023-04-21 |
Family
ID=76335140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110265799.7A Active CN112988891B (zh) | 2021-03-11 | 2021-03-11 | 存储区块链账本的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988891B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110741372A (zh) * | 2017-06-07 | 2020-01-31 | 区块链控股有限公司 | 用于管理区块链网络上的交易的计算机实现的系统和方法 |
CN110771127A (zh) * | 2017-06-20 | 2020-02-07 | 区块链控股有限公司 | 用于区块链网络中一致分布式内存池的方法和系统 |
CN110945548A (zh) * | 2017-07-24 | 2020-03-31 | 区块链控股有限公司 | 用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法 |
CN111242776A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 基于区块链的记账方法、装置、存储介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193490B (zh) * | 2017-05-16 | 2020-04-17 | 北京中星仝创科技有限公司 | 一种基于区块链的分布式数据存储系统及方法 |
US20190228386A1 (en) * | 2018-01-19 | 2019-07-25 | Xapo Holdings Limited | Recording evidence of address/account allocations in a distributed ledger |
CN109670321A (zh) * | 2018-11-30 | 2019-04-23 | 深圳灵图慧视科技有限公司 | 数据存储方法、数据查询方法及装置 |
CN111447055B (zh) * | 2019-01-17 | 2022-02-25 | 华为技术有限公司 | 区块链账本的存储方法及装置 |
US20200311699A1 (en) * | 2019-03-25 | 2020-10-01 | Salesforce.Com, Inc. | Reward systems and methods that employ blockchain and digital crypto tokens to reward users within an organization |
CN110928950A (zh) * | 2019-11-25 | 2020-03-27 | 深圳壹账通智能科技有限公司 | 区块链交易信息管理方法、装置、计算机设备及存储介质 |
CN112187866B (zh) * | 2020-09-03 | 2021-10-15 | 山东大学 | 一种基于共享存储的新型区块链共识方法 |
-
2021
- 2021-03-11 CN CN202110265799.7A patent/CN112988891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110741372A (zh) * | 2017-06-07 | 2020-01-31 | 区块链控股有限公司 | 用于管理区块链网络上的交易的计算机实现的系统和方法 |
CN110771127A (zh) * | 2017-06-20 | 2020-02-07 | 区块链控股有限公司 | 用于区块链网络中一致分布式内存池的方法和系统 |
CN110945548A (zh) * | 2017-07-24 | 2020-03-31 | 区块链控股有限公司 | 用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法 |
CN111242776A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 基于区块链的记账方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112988891A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376118B (zh) | 服务发布系统、方法、设备及存储介质 | |
JP5585062B2 (ja) | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム | |
EP2921974A1 (en) | Data restoration method and system | |
CN106302595B (zh) | 一种对服务器进行健康检查的方法及设备 | |
WO2020063763A1 (zh) | 数据存储方法、装置、系统、服务器、控制节点及介质 | |
CN112671928B (zh) | 设备集中管理架构、负载均衡方法、电子设备及存储介质 | |
WO2012139064A2 (en) | Cluster unique identifier | |
CN107493340A (zh) | 区块链网络中的数据分发校验方法、装置及系统 | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN113515531B (zh) | 数据访问方法、装置、客户端及存储介质 | |
CN113568566A (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN111901176B (zh) | 故障确定方法、装置、设备及存储介质 | |
CN103701899A (zh) | 资源访问方法及装置 | |
JP2021039585A (ja) | クライアント又はサーバとの接続を制御する方法 | |
CN109600254B (zh) | 全链路日志的生成方法及相关系统 | |
CN108874947B (zh) | 一种数据处理系统及数据处理方法 | |
CN112988891B (zh) | 存储区块链账本的方法、装置、电子设备及存储介质 | |
CN108200157B (zh) | 主节点触发回退的日志同步方法及装置 | |
CN110324384B (zh) | 数据推送的方法和装置 | |
US7933962B1 (en) | Reducing reliance on a central data store while maintaining idempotency in a multi-client, multi-server environment | |
JP2012168713A (ja) | メール保存バックアップシステムおよびバックアップ方法 | |
US8099550B1 (en) | System and method for single instance storage | |
US20220394091A1 (en) | Storing a Data Object as Data Regions in a Storage Network | |
CN111324632B (zh) | 利用客户端侧高速缓存的透明数据库会话恢复 | |
CN109753292B (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 |