CN108596767A - 区块链历史数据清理方法及装置 - Google Patents
区块链历史数据清理方法及装置 Download PDFInfo
- Publication number
- CN108596767A CN108596767A CN201810437130.XA CN201810437130A CN108596767A CN 108596767 A CN108596767 A CN 108596767A CN 201810437130 A CN201810437130 A CN 201810437130A CN 108596767 A CN108596767 A CN 108596767A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- state
- block chain
- 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.)
- Granted
Links
Classifications
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链历史数据清理方法及装置,其中,该方法包括:在接收到一个区块时,计算当前区块高度;在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;该可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理。上述技术方案实现了区块链的历史数据清理,大大提高了交易系统的工作效率,满足大交易量系统的高可用性要求,特别适用于涉及资产所有权转移类的基于区块链技术的交易系统。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链历史数据清理方法及装置。
背景技术
区块链中的每个区块通过哈希算法生成数据指纹并嵌入后续区块中(该指纹又充当了后一区块指向前序区块的指针),这种牢固的关系使得入了链的数据是不能被篡改的,因此,区块链可以看作为“历史链”。即区块链是基于完整的历史进行交易和数据检验,如,查询到需要转移的资产、是否双重支付(双花),若按传统的“历史数据清理”(斩断久远的区块链尾部),当该斩断部分中的“长期不动资金”来做交易时,会由于链条缺失而找不到数据(当需要使用该笔资金时找不到)。即传统的“历史数据清理”等动作在这里行不通,现在技术尚未有行之有效的解决方法。
然而,不做“历史数据清理”带来的问题是:随着时间的推移,区块链越来越长,数据越来越大,需要大容量的存储,检验的范围也越来越大,导致交易的效率逐步下降。对于大数据量应用,问题更加突出。
随着区块链的发展,逐步衍生出各类区块链产品。面对如银行或者关键行业,对性能及容量提出了更高的要求。当前区块链存在无法进行历史数据清理,显然不能满足这一要求,因此,需要一种区块链历史数据清理的方法。
发明内容
本发明实施例提供了一种区块链历史数据清理方法,用以对区块链历史数据进行清理,该方法包括:
在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;
在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
本发明实施例还提供了一种区块链历史数据清理装置,用以对区块链历史数据进行清理,该装置包括:
计算模块,用于在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
状态处理模块,用于在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;
清理模块,用于在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链历史数据清理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述区块链历史数据清理方法的计算机程序。
本发明实施例通过技术方案:首先,在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;其次,在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;最后,在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理,大大提高了交易系统的工作效率,满足大交易量系统的高可用性要求。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例中区块链历史数据清理的应用场景示意图;
图2是本发明实施例中区块数据处理单元的结构示意图;
图3是本发明实施例中区块链世纪块示意图;
图4是本发明实施例中区块链历史数据清理方法的流程示意图;
图5是本发明实施例中生成世纪块功能模块的结构示意图;
图6是本发明实施例中验证世纪块功能模块的结构示意图;
图7是本发明实施例中切尾清理功能模块的结构示意图;
图8是本发明实施例中区块链切尾示意图(C2);
图9是本发明实施例中区块链切尾示意图(Cn+1);
图10是本发明实施例中区块链数据处理流程图(验证及清理部分);
图11是本发明实施例中区块链数据处理流程图(数据块构造部分);
图12是本发明实施例中区块链历史数据清理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例的论述中,我们有时又可以这样表述:以“向右生长的链”替代前述的“向上生长的链”,以“世纪”替代本发明实例中的“窗口”,原理不变。同时,本发明实施例中的“之下”,“以下”,“之后”均是相对的概念,是本领域技术人员容易理解的,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
发明人发现:区块链是基于完整的历史进行交易和数据检验,如,查询到需要转移的资产、是否双重支付(双花),若按传统的“历史数据清理”(斩断久远的区块链尾部),当该斩断部分中的“长期不动资金”来做交易时,会由于链条缺失而找不到数据。即传统的“历史数据清理”等动作在这里行不通。然而,不做“历史数据清理”带来的问题是:随着时间的推移,区块链越来越长,数据越来越大,需要大容量的存储,检验的范围也越来越大,导致交易的效率逐步下降。对于大数据量应用,问题更加突出。
由于考虑到了上述技术问题,发明人提出了一种区块链历史数据清理的方案,该方案适用于涉及资产所有权转移类交易的区块链,这种交易系统中,资产所有权的频繁转移(如,支付交易)是常态,只需对极少数“长期不动资金”进行技术处理即可,即通过技术手段周期性地将区块链尾部的“长期不动资金”进行“可清理”处理(注:“可清理”交易数据是指新交易不会使用的数据,交易的所有金额去向全部被后续其它交易的金额注入所对应的交易数据;“不可清理”交易数据是指设定期限内账户未动用资金的交易数据,交易中存在金额去向未被后续其它交易的金额注入所对应的交易数据,新交易还会再使用的数据),并适时“切掉”区块链尾部(即将其移出交易系统,并进行离线备份,备份数据只是在日后追踪或审计时使用,日常交易系统不使用),基于这种技术实现了区块链的“历史数据清理”,将大大提高交易系统的工作效率,满足大交易量系统的高可用性要求。
同时,本发明实施例提供的区块链历史数据清理的方案,在区块链网络节点中的区块数据处理单元中增加新的处理模块,通过对区块链进行高度计算,仿照“年历”的叙述方式(如,1900年到2000年为19世纪,1900年和2000年为特殊的年份,称为世纪年),引入世纪块和世纪的概念,在相间隔一定的区块链高度上生成的区块称为世纪块,两世纪块之间的区块链称为世纪。
世纪块是一种特殊的区块,即在生成世纪块时,在一般区块的基础上,增加两项工作:
1、对区块链中的历史交易进行“灭活”处理(即将清理状态为不可清理状态的交易数据处理为可清理状态交易数据),历史交易是指上一世纪的交易,如,产生第20个世纪块时,它作为21世纪的开端和20世纪的结束,需要清理的历史交易为19世纪,而不是20世纪,因为20世纪刚刚结束,交易资金还没有成为“长期不动资金”。
2、通过公告方式将即将切尾处的位置信息对外发布(该公告实际上是嵌在某区块的特殊位置,称为公告牌),各网络节点对区块数据及公告信息达成共识。切尾处即为前一个世纪块(如,上例,第19个世纪块),需要公告的信息通常为该世纪块的指纹和编号。各网络节点可以依公告对当前世纪块(如,上例,第20个世纪块)中是否完成上述第1点进行验证。
当区块链达到清理点(即清理时刻)时,对历史区块进行切尾清理处理,从而实现对历史数据的清理。
本发明实施例提供的方案主要针对涉及资产所有权转移类的基于区块链技术的交易系统。
在介绍本发明实施例之前,首先介绍本发明实施例提供的区块链历史数据清理的应用场景,如1所示,图1为区块链网络节点部署图,区块链网络节点应包含区块数据存储单元和区块数据处理单元。
上述区块数据存储单元主要用于存放区块数据,区块一般分为两部分:区块头和数据体。区块头包含了三个最基本的元素:时间戳、指向前序区块的指针、指向数据体的指针,交易数据存贮在数据体中。
上述区块数据处理单元主要通过区块链处理程序,其中包含区块数据的处理算法,实现区块链数据的管理。
各个网络节点中区块数据处理单元都是一致的,各网络节点的区块数据存储单元也会保持同步。本发明实施例提供的方案主要对该区块数据处理单元的功能进行了扩展,本发明实施例提供的方案中提及的功能模块将部署在该区块数据处理单元中。如图2所示,该区块数据处理单元的结构可以包含以下功能模块单元:高度计算功能模块11、生成世纪块功能模块12、验证世纪块功能模块13、切尾清理功能模块14。这些功能模块的具体结构、作用及应用可以参见下述实施例的介绍。
如图3所示,区块链可以视为一条向右不断生长的链,本发明实施例以一定的跨度(M个区块,该“M”可以根据实际需要进行设置,灵活性高)自左至右进行切分为“世纪”,即:以“创世纪”块作为起始,记为C0,向右数,至第M+1个区块,将其定义为第一个世纪块C1,再以C1为起点(视新世纪的第一个区块),向右数,至第M+1个区块,将其定义为第二个世纪块C2,并以此类推产生世纪块序列为:C0,C1,C2,C3,……。第一世纪为[C0,C1),第二世纪为[C1,C2),以此类推。
以日历作为类比,将“年”视为一个区块,100年为一个世纪,当我们定义长度为M的链为一个世纪时,M是作为系统的一个常数,它确定了一次清理的数据量。M的取值可以通过业务情况进行框算,假设某区块链应用计划每月进行一次数据清理,而每月的数据量约产生10000个区块,则M可以取值为10000。
一般地,本发明定义第n世纪:记号[Cn-1,Cn)表示区块链中Cn-1到Cn之间的所有区块(M个),包含前者Cn-1但不包含后者Cn。
本发明实施例是在Cn+1之后切除[Cn-1,Cn),如,C2后,切除[C0,C1);C3后,切除[C1,C2),以此类推,从而实现历史数据清理的目的。
注:这里列出世纪块系列,是一种复盘式的叙述,实际情况是逐步推进的,如,C2后,切除[C0,C1)时,C3并未生成(区块链还没有成长到这个位置)。
下面对该区块链历史数据清理的方案进行详细介绍。
图4是本发明实施例中区块链历史数据清理方法的流程示意图,如图4所示,该区块链历史数据清理方法包括如下步骤:
步骤101:在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
步骤102:在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应,即可清理状态交易数据再不起作用(已被“花掉”);
步骤103:在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
本发明实施例通过技术方案:首先,在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;其次,在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;最后,在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理,大大提高了交易系统的工作效率,满足大交易量系统的高可用性要求。
首先介绍上述步骤101。
在一个实施例中,在上述步骤101之前包括一个验证区块合法性的步骤:
判断当前区块的生成节点;
如果当前区块不是本地节点生成,对当前区块进行合法性验证;
在验证通过后,计算当前区块高度。
具体实施时,在接收区块之前,通过上述实施例对区块的合法性进行验证,保证了安全性,具体实施详见下述实施例步骤S901至步骤S906的介绍。
具体实施时,可以利用一高度计算功能模块(如图2中的高度计算功能模块11),计算当前区块高度,该高度计算功能模块11主要作用是用于计算区块链的高度(亦称区块链长度)和某区块的高度(即该区块所在位置的高度,设想将区块链竖立起来,每个区块为一层楼,区块所在的层楼即为该区块的高度,注:底层为0层)。区块链高度可表现为绝对高度和相对高度。绝对高度是指以初始区块为0高度,到当前区块的实际高度。相对高度是指当前区块距上一世纪块的高度。举例说明,假设我们定义M个区块为一个世纪,则从初始区块C0开始的第x个区块Bx(其中x=n*M+i),其绝对高度为x,相对高度为i。本文中无特别说明,都以相对高度进行比较。区块链的高度的计算方式,通常是通过区块的指针回溯机制来计数得到,回溯到C0则得到绝对高度x,回溯到Cn则得到相对高度i。当然,技术上可以缩短回溯路径,如,若该网络节点自己已经计算出了一些区块的高度了,当需要求新区块所在的高度时,该网络节点只需回溯到最近的已知高度的区块即可,如,已知区块A的高度为x,求新区块B的高度,设B通过指针回溯到达A需要k步,则B的高度为x+k,之后,区块B的高度又可以作为已知,为后续计算提供可信信息。
由高度计算功能模块即可判断区块是否为前述世纪块:C1,C2,C3,……。
其次,介绍步骤102。
具体实施时,在当前区块高度达到第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据,可以包括:在当前区块高度达到第二预设高度时,即生成新的世纪块时,判断前一世纪中所有区块中交易数据的清理状态,对不可清理状态的历史交易进行“灭活”处理,即将清理状态为不可清理状态的交易数据处理为可清理状态交易数据。
具体实施时,可以利用一生成世纪块功能模块12实施上述步骤102,该生成世纪块功能模块12,主要实现生成灭活交易组,构造世纪区块并完成对外公告的功能,详见图5,如图5所示,该模块包含了生成灭活交易组子模块121、对外公告子模块122、构造区块子模块123,其中:
所述的生成灭活交易组子模块121主要实现将当前世纪块的上一世纪的区块中的交易数据进行交易灭活处理,交易灭活处理即为将清理状态为不可清理状态的交易数据处理为可清理状态交易数据的过程,如,产生当前世纪块(如,第20个世纪块)时,它作为21世纪的开端和20世纪的结束,需要进行灭活处理的历史交易范围为19世纪,而不是20世纪,因为20世纪刚刚结束,交易资金还没有成为“长期不动资金”。
灭活交易的说明详见下文。
所述的对外公告子模块122主要实现通过公告方式将即将切尾处的位置信息对外发布(该公告实际上是嵌在某区块的特殊位置,称为公告牌),各网络节点对区块数据及公告信息达成共识。切尾处即为前一个世纪块(如,上例,第19个世纪块),需要公告的信息通常为该世纪块的指纹和编号。各网络节点可以依公告对当前世纪块(如,上例,第20个世纪块)中是否完成上述子模块121的功能进行验证,及对公告信息达成共识。
所述的构造区块子模块123主要实现世纪块区块的数据构建。依构造区块的方法(各区块链特有的方法)构造世纪块,世纪块除包含常规交易数据外,还包括有灭活交易数据以及公告牌。
下面介绍灭活交易的过程,即将清理状态为不可清理状态的交易数据处理为可清理状态交易数据的过程,在生成灭活交易组子模块121中,需要明确以下内容:
1、“可清”状态:
清理后,应不影响正常的交易,即区块应处于“可清”状态才能被清理,关于交易的“可清”状态,首先先举例介绍最简单的情况,再介绍一般情况:
(1)简单交易:简单交易是指由0个IN(金额注入)或1个IN(金额来源)和1个OUT(金额去向)组成,若一个交易A的OUT,被另一个交易B的IN所对应(IN是一个指针,指向对应的OUT,即将该OUT的金额全都转移过来,则这个交易A成为“可清”状态,即以后的交易不会与A发生关系,A成为历史明细纪录。例如,交易A:将a的钱转给b(IN 金额 from a,OUT 金额tob);交易B:b将钱转给c(IN 金额from b,OUT 金额to c);则交易A处于“可清”状态。交易A在交易B未完成前,其状态为活交易;交易A在交易B完成后,其状态则为死交易(处于“可清”状态)。
(2)一般交易:一般交易是指有一组IN(金额来源)和一组OUT(金额去向)组成,例如,一个代发工资交易,IN:资金来源为公司账户(一个或几个账户),OUT:资金去向为公司员工账户。一段时期后,当一般交易的所有OUT都有后续交易的IN与之对应时,则这个一般交易处于“可清”状态。例如,上述代发工资交易,若某天发现,该交易的所有OUT都有后续交易的IN,即公司员工都动用了自己的这笔工资,则该代发工资交易这时就处于“可清”状态。需要注意的是,员工“动用”该笔工资,并不是要将此工资用完。如,员工a的工资3000元,他用其中2400元从b那里购物,则他做的交易为:[(IN 3000,from a),(OUT1 2400,to b;OUT2600,to a)],这个交易中的OUT2是指余下的钱归自己。
综合上述讨论,一个交易处于“可清”状态就是指这个交易的所有OUT,全部被后续其它交易的IN所对应。即它的所有资金(所有OUT)都已被花掉,处于“可清”状态。一旦某交易达到“可清”状态,则新交易将不会使用到该交易的数据,这是区块链交易系统的避免“双花”机制所保证的。
综上,所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应、且新的交易不会再使用到该可清理状态交易的数据,即可清理状态交易数据再不起作用(已被“花掉”)。
区块处于“可清”状态:区块是由交易组成的,若该区块中的所有交易都处于“可清”状态时,该区块就处于“可清”状态。
世纪处于“可清”状态:第n世纪[Cn-1,Cn)中的所有区块都处于“可清”状态时,该世纪就处于“可清”状态。只有处于“可清”状态的世纪才能被整体切除,即清理。
2、“灭活”交易
前面论述了“可清”状态,显然,这种理想状态在实际情况下,很难发生。随着时间的推移,总有极少量交易不处于“可清”状态,即处于不可请状态。因此,需要借助外力来强制达到,这就是“灭活”处理,即将清理状态为不可清理状态的交易数据处理为可清理状态交易数据。下面介绍“灭活”处理的详细过程。
在一实施例中,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据,可以包括:
针对不可清理状态的交易数据发起转账交易,所述转账交易为将不可清理状态的交易数据中设定期限内账户未动用资金转账给设定期限内未动用资金的所述账户,所述转账交易由网络节点实施(不需要拥有该账户的客户参与、不改变资金的所有权),交易数据纳入正在构建的新区块,所述新区块包含一个公告牌(指示第一预设高度处的区块,即切尾处),即由系统在客户不参与的情况下,将“未动”的资金“动”一下,但仍保持资金的所有权不变:将客户的资金“转账”给客户自己,而不是转账给其它客户;
具体实施时,上述设定期限账户未动用资金账户指的是长期未动用资金账户,即系统发起一笔转账交易,该转账交易是系统发起,将账户的未动用资金转给账户本身(自己)的特殊交易,这样,不可清理状态的交易数据中交易的所有金额去向全部被后续其它交易(由系统发起的转给账户自己的特殊交易)的金额注入所对应,不可清理状态的交易数据变为可清理状态,再针对该特殊交易构建新的区块,将新的区块加入区块链,在判断到达清理时刻,就可以进行后续的区块链清理工作。
举例说明怎样“灭活”一个OUT,例如,上述代发工资交易有一个员工2,长期没有动用他的这笔工资,这时,系统做一个特殊交易(称为“灭活”交易)来“灭活”员工2所在的OUT:
代发工资交易A:[(IN 工资总额,from 公司账户);(OUT1 员工1的工资,to 员工1)、(OUT2 员工2的工资,to 员工2)、…、(OUT k员工k的工资额,to 员工k)],则“灭活”员工2的上述OUT2的交易B:[(IN 员工2的工资,from 员工2);(OUT 员工2的工资,to 员工2)]。
注意到交易A和B对应的OUT的斜体加粗部分,称为保持不变性(这就保证该“灭活”交易后,员工2的资金仍为员工2的),而联接它们的IN:(IN 员工2的工资,from 员工2),在区块链的技术实现上,实际上是用指向所“灭活”的OUT的指针,而不必重写该数据,即IN表现为(IN 交易A的指针+OUT的编号)。
在一个实施例中,将不可清理状态的交易数据中账户未动用资金转账给设定期限内未动用资金的所述账户,包括:将所述账户多笔交易的设定期限内未动用资金合并处理后转账给设定期限内未动用资金的所述账户。
具体实施时,“灭活”交易中同一员工的资金可以合并,以减少OUT数。如,员工2的两次代发工资都需要“灭活”的情形:
代发工资交易A1:[…(OUT2 员工2的工资1,to 员工2)、…];
代发工资交易A2:[…(OUT2 员工2的工资2,to 员工2)、…];
则“灭活”员工2的上述两OUT的交易B:[(IN1 交易A1的指针+OUT的编号)、(IN2 交易A2的指针+OUT的编号);(OUT 员工2的工资1+工资2,to 员工2)]。斜体加粗部分仍具有保持不变性。
“灭活”交易中可以有多个IN(如上述),也可以有多个OUT(如果不只一个员工需要“灭活”时,每个员工在“灭活”交易中都有一个OUT),故一个“灭活”交易可以“灭活”多个OUT,其数量取决于交易的容量。多个“灭活”交易可集合为“灭活”交易组,即将资金合并处理。
“灭活”交易是系统发起一笔转账交易,将用户自己长期未动用的资金转给用户自己的的一个新的交易,与实际交易一样都是交易,如,具有相同的交易结构,有IN(组)和OUT(组);都需要由区块链系统验证、确认和接收。但它们也有一些区别,这些区别由相关的模块实现和验证,下面对该灭活交易与实际交易的区别进行介绍。
1、IN的要求:实际交易有具体的交易发起人(资金拥有者将资金花出去),“灭活”交易的发起者为系统(区块的构建模块);实际交易需要交易发起者进行签名(签名是放在IN中,是对(本交易+前序OUT)进行签名),“灭活”交易因为是系统发起,所以不需要进行签名(可以用特殊的数字填冲该字段,如000…01,并以此作为“灭活”交易的标志。进一步地,可以用作“灭活”计数,如,“灭活”交易产生的数据,在下一上“灭活”周期到来时仍是“长期不动资金”,则要再次“灭活”,这时“灭活”次数加1。使用“灭活”计数的好处是,对于超过一定“灭活”次数的资金作特殊处理——本专利不涉及这方面的讨论)。这样,实际交易的IN为:(IN[编号],前序OUT(指针形式),交易签名);“灭活”交易的IN为:(IN[编号],前序OUT(所“灭活”的OUT),000…01)。
2、OUT的要求:“灭活”交易的OUT必须与它所“灭”的前序OUT保持不变性(见上述描述的斜体加粗)。
3、实际交易是日常系统的交易,分散在不同的时间点、不同的地点进行,而“灭活”交易一般是在创建世纪块时批量进行。
实际交易的上述各要求由原区块链系统保证,而“灭活”交易的上述要求由本发明实现。
系统可以通过一个或多个“灭活”交易,作用于[Cn-1,Cn)中的“活”OUT,将其“灭活”,从而使一个世纪[Cn-1,Cn)变成“可清”状态。
产生新世纪块Cn+1时的要求:
系统在构造区块时,将通过世纪块的编号规则,判断正在构造的块是不是新的世纪块,若是,则要增加一些特殊处理。在产生区块Cn+1(第n+1代世纪块,n=1,2,3,……)时,除要满足区块链产生规则外,还要通过上述的“灭活”交易,使区间[Cn-1,Cn)的区块全处于“可清”状态。
在产生新世纪块Cn+1时,需要使用对外公告模块(123)在该区块中公告前一个世纪块Cn,即在Cn+1的一个特殊位置定义字段(作为公告牌),公告信息:n和Cn的指纹(指针)。即该公告信息在Cn+1中,同Cn+1一起被公之于众,并接受公众的验验。由这些公告,可以通过指针回溯出[Cn-1,Cn)范围的所有区块,即确定出切尾的区块。注:前述Cn+1的特殊位置可以是这两者之一:1、区块头的专设字段或备用字段中;2、特殊交易(如,币基交易)的自由区中。
再次,介绍上述步骤103。
首先介绍在将清理状态为不可清理状态的交易数据处理为可清理状态交易数据之后,验证第一预设高度之下之下的所有区块中的交易数据是否处于可清理状态的过程。具体实施时,可以利用一验证世纪块功能模块13完成该过程,验证世纪块功能模块13,主要实现该对是否为世纪块的判断,通过验证灭活交易组及公告内容,达到验证世纪块的的目的,详见图6,如图6所示,模块包含了判断是否为世纪块131、验证灭活交易组132、验证公告子模块133,其中:
所述的判断是否为世纪块131主要通过计算当前区块的高度来判断新接收的区块是否为世纪块。
所述的验证灭活交易组132主要功能为对世纪区块中的灭活交易组进行验证,确认上一世纪的区块中的交易已为灭活状态。
所述的验证公告子模块133对收到的公告信息进行验证,根据信息的正确性决定是否接收区块。
具体实施时,网络节点在对Cn+1区块进行共识时,除区块的一般要求进行验证外,还要对Cn+1区块的这两点进行验证:1、区间[Cn-1,Cn)的区块全处于“可清”状态;2、公告信息正确。只有验证后,才接收该Cn+1区块。
通过公告方式将即将切尾处的位置信息对外发布(该公告实际上是嵌在某区块的特殊位置,称为公告牌),各网络节点对区块数据及公告信息达成共识。切尾处即为前一个世纪块(如,上例,第19个世纪块),需要公告的信息通常为该世纪块的指纹和编号。
接着,介绍区块的清理步骤,即依据公告牌中公告的切尾处的位置信息,将区块链的尾部切除,实现将历史区块从区块链中清理。可以利用切尾清理功能模块14实现清理步骤,所述的切尾清理功能模块14,主要实现在确定的“清理”时刻将数据备份迁移并完成数据块清理工作,详见图7,如图7所示,切尾清理功能模块14包含了确定“清理”时刻141、数据备份迁移子模块142、数据块清理子模块143,其中:
所述的确定“清理”时刻141主要根据高度的计算确定具体的区块“清理”时间点(清理时刻)。
所述的数据备份迁移子模块142主要根据实际情况,对待清理的数据区块进行备份迁移,用于后续的历史数据查询。一般而言,备份迁移的数据建议放在本地。
所述的数据块清理子模块143主要实现对历史数据区块的切尾清理工作。
具体实施时,本发明实例中提到的切尾、切除均可以代表清理的含义。
在一个实施例中,在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理,包括:
在清理时刻,将第一预设高度之下的所有区块从区块链中清理。
下面对进行确定清理时刻的原因及作用进行介绍。
清理时刻(清理点)为:第二预设高度所在的区块(联盟链时),或第二预设高度再滞后少数几个区块(公有链时),清理区间(清理内容)为第一预设高度以下的区块;或者表述为:清理时刻为世纪区块Cn+1(联盟链时),或世纪区块Cn+1再滞后少数几个区块(公有链时),清理区间为[Cn-1,Cn)中的区块)。
具体实施时,对于具体的公有链网络节点而言,它先前所承认的新世纪块Cn+1有可能被剪枝,可能调整为承认另一个新世纪块而验证时需要再次用到[Cn-1,Cn)中的区块,故在Cn+1时进行“清理”则太早。因此,需要确定“清理”时刻(141),即一个滞后时间,这个滞后时间设为等于(或大于)区块链的共识时间即可。一个区块被全网共识的时间应大于将此区块传播到全网的足够多的节点(半数以上)和基于此区块产生新的区块并被广泛传播与验证时间。不同的区块链都有自已特有的共识时间,将时间转化为对应的区块数。设该共识时间(即滞后时间)为L块,如将共识时间设为一小时,每10分钟产生一个区块,则L=6,这就是比特币的设定。即在[Cn+1+L块]时,Cn+1已被完全共识,故在此时进行“清理”合理。注:记号[Cn+1+L块]表示Cn+1后第L个区块。
以图8区块链切尾示意图(C2)进行说明,当区块链生长到[C2+L块]时,如上文所述,C2已被完全共识,此时[C0,C1)的区块就已全处于“可清”状态(在生成C2时实现的),因此,网络节点此时刻进行清理:即在生成或承认[C2+L块]区块时,将网络节点本地的[C0,C1)移到本地的备份目录中,表示区间[C0,C1)被清理。C1替代了C0充当了原“创世纪”块的角色。
更一般地,如图9区块链切尾示意图(Cn+1)所示,在上述“清理”的时刻之前,[Cn-1,Cn)的区块就已全处于“可清”状态(Cn+1中实现的),因此,网络节点此时刻进行清理:即在生成或承认[Cn+1+L块]区块时,将网络节点本地的[Cn-1,Cn)移到本地的备份目录中,表示区间[Cn-1,Cn)被清理,我们又可称之为跨“世纪”清理。即在区块链的左端(尾部)切掉一整个“世纪”(M个区块),我们称之为“切尾”。我们后续也可通过其它手段进行离线备份,在此不再赘叙。
对于联盟链而言,由于不存在“软分叉”及剪枝问题,上面论述中,L可以取为0,即这时简化为新世纪块和清理点区块重合,即在Cn+1时清理[Cn-1,Cn)。
由此,C0,C1,C2,C3,……,依次充当了“创世纪”块的角色,即日常交易及验证工作中,对区块链的搜寻止于前一个世纪块Cn-1(假定区块链已成长到了第n+1世纪中),从而大大压缩了搜寻范围(不超过两个世纪的长度,也可以说区块链长度不超过两个窗口跨度(待清理区+工作窗口))。而区块链的历史数据清理流程将不断循环,周而复始,以达到清理区块链历史数据的目的,保证区块链的高效运作。
即,在一个实施例中,上述区块链历史数据清理方法还包括:
将工作窗口向上提升一个工作窗口的跨度,即当前工作窗口变为待清理区,工作窗口向上提升一个窗口跨度,即新工作窗口的下沿“上升”到原窗口的上沿位置;
在将第一预设高度之下的所有区块从区块链中清理之后,根据提升跨度后的新工作窗口中的第一预设高度和第二预设高度,进入下一轮区块链清理工作,即重复上述步骤101-步骤103,如此周而复始,随着区块链的不断生长而不断清理,这就使得在线的区块链长度不超过两个窗口跨度(待清理区+工作窗口),实现了区块链的历史数据清理,大大提高了交易系统的工作效率,满足大交易量系统的高可用性要求。特别适用于涉及资产所有权转移类的基于区块链技术的交易系统。
在一个实施例中,上述区块链历史数据清理方法还包括:将从区块链中清理的所有区块进行离线备份。
具体实施时,历史数据在“清理”后,若事后审计需要对某个交易的历史进行跟踪,则可以使用以下方式实现:(1)近期数据(即当前世纪块和上世纪块数据)通过在线查询,(2)历史数据,通过离线数据查询进行历史明细查询。
图10和图11的区块链数据处理流程图为本发明实现的一个方法,流程图分为图10区块链数据处理流程图(验证及清理部分)和图11区块链数据处理流程图(数据块构造部分)。
图10区块链数据处理流程图(验证及清理部分),可以包括如下步骤:
步骤S901:区块链节点收到一个新的区块,该区块的来源可能是本地生成,也可能是其他节点公告广播的区块。
步骤S902:判断收到的区块是否是本地节点生成。如果区块为本地节点生成的,基于对自身的信任机制,可以到步骤S903直接接收;如果非本地节点生成,则需要先到步骤S904对区块进行验证。
步骤S903:接收区块,将在步骤S901中收到的区块加入本地区块链尾部。
步骤S904:对区块进行验证,涉及区块的签名,保证数据完整无篡改。
步骤S905:验证区块是否合法,如果区块合法则到步骤S906进一步判断区块是否为世纪块;如果区块不合法,则到步骤S907直接丢弃区块。
步骤S906:计算区块的高度,用于后续判断是否为新世纪块。
步骤S907:将在步骤S901收到的区块丢弃掉。
步骤S908:判断区块是否为新世纪块,如果是新世纪块则到步骤S908对区块进行新世纪块验证;如果不是新世纪块,则到步骤S903接收区块。
步骤S909:验证新世纪块。可以参考前面图6所示的验证世纪块功能模块图。
步骤S910:判断区块是否符合新世纪块标准,即如前文所述达至定长区块,如果不符合标准,则到步骤S907丢弃区块;如果符合标准,则到步骤S903接收区块。
步骤S911:判断是否到区块历史数据清理点,如果到清理点,则到步骤S912进行切尾清理;如果未到清理点(清理时刻),则返回到步骤S901接收新区块。
步骤S912:对历史区块进行切尾清理。可以参考前面的图7切尾清理功能模块图。并在切尾清理后进入步骤S1004计算将要生成的新数据块的高度。
需要说明的是,在此区块链数据处理流程图中,步骤S908判断区块是否为新世纪块、步骤S909验证新世纪块、步骤S910判断区块是否符合新世纪块标准、步骤S911判断是否到清理点、步骤S912切尾清理为本方案对区块数据处理单元的功能进行的扩展。
图11区块链数据处理流程图(数据块构造部分),可以包括步骤:
步骤S1001:计算将要生成的数据块的高度,过程参考上文图2区块链中区块功能模块图中的高度计算功能模块。
步骤S1002:根据步骤S1001计算出的区块链高度判断新生成的区块是否为新世纪的起点,如果是,则到步骤S1003对历史数据进行交易灭活;如果否,则到步骤S1004生成新区块。
步骤S1003:对上一个世纪中的数据块交易进行灭活处理,即在产生新世纪区块Cn+1时,通过“灭活”交易,使区间[Cn-1,Cn)的区块全处于“可清”状态。并在步骤S1004填写世纪块相关信息。
步骤S1004:填写公告牌,在原有规则下,每个区块均在特殊位置中记录有初始化信息,比如空格,可以称之为公告牌。当系统识别当前区块为世纪块时,系统将以下信息:n和Cn的指纹(指针),填入到公告牌中,以便其他区块链节点对世纪区块进行验证。
步骤S1005:按区块链的生成规则组装生成新区块。
步骤S1006:对外广播新区块,使得其他区块链节点对区块进行验证。随后将循环步骤S1001继续将要生成的数据块的高度。
需要说明的是,在此区块链数据处理流程图中,步骤S1001计算将要生成的新数据块的高度、步骤S1002判断新区块是否为新世纪的起点、步骤S1003交易灭活处理、步骤S1004填写公告牌为本方案对区块数据处理单元的功能进行的扩展。
基于同一发明构思,本发明实施例中还提供了一种区块链历史数据清理装置,如下面的实施例。由于区块链历史数据清理装置与区块链历史数据清理方法的解决问题的原理相似,因此该区块链历史数据清理装置的实施可以参见区块链历史数据清理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图12是本发明实施例中区块链历史数据清理装置的结构示意图,如图12所示,该装置包括:
计算模块02,用于在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
状态处理模块04,用于在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应,即可清理状态交易数据再不起作用(已被“花掉”);
清理模块06,用于在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
具体实施时,计算模块02的实施可参见上述高度计算功能模块11的实施。状态处理模块04的实施请参见上述生成世纪块功能模块12的实施。清理模块06的实施请参见上述验证世纪块功能模块13和切尾清理功能模块14的实施。
在一个实施例中,所述状态处理模块具体用于:
针对不可清理状态的交易数据发起转账交易,所述转账交易为将不可清理状态的交易数据中设定期限内账户未动用资金转账给设定期限内未动用资金的所述账户,所述转账交易由网络节点实施,交易数据纳入正在构建的新区块,所述新区块包含一个公告牌。
在一个实施例中,所述状态处理模块具体用于:将所述账户多笔交易的未动用资金合并处理后转账给设定期限内未动用资金的所述账户。
在一个实施例中,所述清理模块具体用于:
在清理时刻,将第一预设高度之下的所有区块从区块链中清理,切尾位置已在公告牌中预设。
在一个实施例中,上述区块链历史数据清理装置还包括:
将工作窗口向上提升一个工作窗口的跨度;
在将第一预设高度之下的所有区块从区块链中清理之后,根据提升跨度后的新工作窗口中的第一预设高度和第二预设高度,进入下一轮区块链清理工作。
在一个实施例中,上述区块链历史数据清理装置还包括:离线备份模块,用于将从区块链中清理的所有区块进行离线备份。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链历史数据清理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述区块链历史数据清理方法的计算机程序。
本发明实施提供的技术方案的有益技术效果为:
本发明提供了一种区块链历史数据清理的系统与方法,针对涉及资产所有权转移类交易的区块链,通过采取灭活交易、创建新“世纪块”、切尾清理等技术手段,使在线区块链长度控制在两个“世纪”以内(2M个区块),从而大大压缩了搜寻范围、提高了整个区块链的效率,满足大交易量系统的高可用性要求。
1、降低了区块链的空间占用要求。本发明提供的数据清理方法,在保证历史数据不丢失的同时,可以降低区块链的长度,减少空间的占用。
2、提高区块链在日常交易中的查验效率。由于区块链长度的降低,在对区块进行验证查询时,可有效缩小查询的范围,范围不超过两个世纪块的跨度,有效提高了检验查询的效率。
3、提高了区块链的适用性。在当今的网路环境中,随着网络数据的爆炸性增长,对大数据处理能力的要求也在不断提高,本发明提供的方法可满足大交易量系统的高可用性要求,提供了区块链在这一领域的适用性。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链历史数据清理方法,其特征在于,包括:
在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;
在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
2.如权利要求1所述的区块链历史数据清理方法,其特征在于,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据,包括:
针对不可清理状态的交易数据发起转账交易,所述转账交易为将不可清理状态的交易数据中设定期限内账户未动用资金转账给设定期限内未动用资金的所述账户,所述转账交易由网络节点实施,交易数据纳入正在构建的新区块,所述新区块包含一个公告牌。
3.如权利要求2所述的区块链历史数据清理方法,其特征在于,将不可清理状态的交易数据中账户未动用资金转账给设定期限内未动用资金的所述账户,包括:将账户多笔交易的未动用资金合并处理后转账给设定期限内未动用资金的所述账户。
4.如权利要求1所述的区块链历史数据清理方法,其特征在于,在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理,包括:
在清理时刻,将第一预设高度之下的所有区块从区块链中清理。
5.如权利要求1所述的区块链历史数据清理方法,其特征在于,还包括:
将工作窗口向上提升一个工作窗口的跨度;
在将第一预设高度之下的所有区块从区块链中清理之后,根据提升跨度后的新工作窗口中的第一预设高度和第二预设高度,进入下一轮区块链清理工作。
6.如权利要求1所述的区块链历史数据清理方法,其特征在于,还包括:将从区块链中清理的所有区块进行离线备份。
7.一种区块链历史数据清理装置,其特征在于,包括:
计算模块,用于在接收到一个区块时,计算区块链的当前区块高度;所述区块链在一预设大小的工作窗口内向上生长,所述工作窗口的下沿为第一预设高度,所述工作窗口的上沿为第二预设高度;
状态处理模块,用于在当前区块高度达到所述第二预设高度时,判断第一预设高度之下的所有区块中交易数据的清理状态,将清理状态为不可清理状态的交易数据处理为可清理状态交易数据;所述可清理状态交易数据为交易的所有金额去向全部已被后续其它交易的金额输入所对应;
清理模块,用于在验证第一预设高度之下的所有区块中的交易数据处于可清理状态时,将第一预设高度之下的所有区块从区块链中清理;当前工作窗口变为待清理区。
8.如权利要求7所述的区块链历史数据清理装置,其特征在于,所述状态处理模块具体用于:
针对不可清理状态的交易数据发起转账交易,所述转账交易为将不可清理状态的交易数据中设定期限内账户未动用资金转账给设定期限内未动用资金的所述账户,所述转账交易由网络节点实施,交易数据纳入正在构建的新区块,所述新区块包含一个公告牌。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437130.XA CN108596767B (zh) | 2018-05-09 | 2018-05-09 | 区块链历史数据清理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437130.XA CN108596767B (zh) | 2018-05-09 | 2018-05-09 | 区块链历史数据清理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108596767A true CN108596767A (zh) | 2018-09-28 |
CN108596767B CN108596767B (zh) | 2021-11-02 |
Family
ID=63636394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810437130.XA Active CN108596767B (zh) | 2018-05-09 | 2018-05-09 | 区块链历史数据清理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108596767B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933592A (zh) * | 2019-03-22 | 2019-06-25 | 杭州复杂美科技有限公司 | 数据存储方法、数据回滚方法、设备和存储介质 |
CN110009347A (zh) * | 2019-03-20 | 2019-07-12 | 深圳前海微众银行股份有限公司 | 一种区块链交易信息审计的方法及装置 |
CN111741121A (zh) * | 2020-07-03 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 区块链中的垃圾信息的处理方法和系统 |
CN112153085A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种数据处理方法、节点及区块链系统 |
WO2021012562A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链数据清理方法、装置、计算机设备和存储介质 |
CN112434020A (zh) * | 2020-11-26 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 数据库账号的清理方法、装置及电子设备 |
CN112714192A (zh) * | 2021-03-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机可读介质及电子设备 |
WO2022048359A1 (zh) * | 2020-09-03 | 2022-03-10 | 深圳壹账通智能科技有限公司 | 一种数据归档方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850802A (zh) * | 2017-02-04 | 2017-06-13 | 先锋支付有限公司 | 一种区块链生成方法、分布式节点和区块链网络 |
CN107728941A (zh) * | 2017-09-28 | 2018-02-23 | 中国银行股份有限公司 | 一种区块链数据压缩方法及系统 |
-
2018
- 2018-05-09 CN CN201810437130.XA patent/CN108596767B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850802A (zh) * | 2017-02-04 | 2017-06-13 | 先锋支付有限公司 | 一种区块链生成方法、分布式节点和区块链网络 |
CN107728941A (zh) * | 2017-09-28 | 2018-02-23 | 中国银行股份有限公司 | 一种区块链数据压缩方法及系统 |
Non-Patent Citations (2)
Title |
---|
JUAN GARAY: "The Bitcoin Backbone Protocol:", 《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH 2015》 * |
于雷等: "区块链全局账本数据的拆分技术研究", 《高技术通讯》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009347A (zh) * | 2019-03-20 | 2019-07-12 | 深圳前海微众银行股份有限公司 | 一种区块链交易信息审计的方法及装置 |
CN110009347B (zh) * | 2019-03-20 | 2024-05-24 | 深圳前海微众银行股份有限公司 | 一种区块链交易信息审计的方法及装置 |
CN109933592A (zh) * | 2019-03-22 | 2019-06-25 | 杭州复杂美科技有限公司 | 数据存储方法、数据回滚方法、设备和存储介质 |
CN109933592B (zh) * | 2019-03-22 | 2021-06-01 | 杭州复杂美科技有限公司 | 数据存储方法、数据回滚方法、设备和存储介质 |
CN112153085A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种数据处理方法、节点及区块链系统 |
WO2020259352A1 (zh) * | 2019-06-26 | 2020-12-30 | 华为技术有限公司 | 一种数据处理方法、节点及区块链系统 |
CN112153085B (zh) * | 2019-06-26 | 2022-05-17 | 华为技术有限公司 | 一种数据处理方法、节点及区块链系统 |
WO2021012562A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链数据清理方法、装置、计算机设备和存储介质 |
CN111741121A (zh) * | 2020-07-03 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 区块链中的垃圾信息的处理方法和系统 |
WO2022048359A1 (zh) * | 2020-09-03 | 2022-03-10 | 深圳壹账通智能科技有限公司 | 一种数据归档方法、装置、电子设备和存储介质 |
CN112434020A (zh) * | 2020-11-26 | 2021-03-02 | 腾讯科技(深圳)有限公司 | 数据库账号的清理方法、装置及电子设备 |
CN112714192B (zh) * | 2021-03-25 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机可读介质及电子设备 |
CN112714192A (zh) * | 2021-03-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机可读介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108596767B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108596767A (zh) | 区块链历史数据清理方法及装置 | |
US11416920B2 (en) | Analytics engine for multiple blockchain nodes | |
Mohanta et al. | An overview of smart contract and use cases in blockchain technology | |
CN109242681B (zh) | 资产数据的存储方法、装置、设备及系统 | |
CN102292737B (zh) | 用于处理请求方案以及管理库存的方法和系统 | |
Reijers et al. | Improved model management with aggregated business process models | |
CN108154400A (zh) | 基于区块链的电子商务的评价方法及系统 | |
Bartoletti et al. | Maximizing extractable value from automated market makers | |
US20080183512A1 (en) | System and method for estimating seat value | |
Mishra et al. | Cloud-based multi-agent architecture for effective planning and scheduling of distributed manufacturing | |
Klapper et al. | Civil conflict and firm performance: evidence from Cote d'Ivoire | |
CN108520307A (zh) | 数据处理方法及相关装置 | |
AU2022201721A1 (en) | Blockchain-based transaction system for green certificate | |
CN101273355A (zh) | 企业计划系统中的更新处理 | |
CN109684519A (zh) | 一种基于区块链的去中心化芯片研发交易数据存储方法及系统 | |
CN102194163A (zh) | 企业资源规划管理方法、服务器及系统 | |
CN111444213B (zh) | 基于信贷业务的台账清分系统和方法 | |
Ramkumar et al. | Quality enhanced framework through integration of blockchain with supply chain management | |
Liu et al. | Ai vs. human buyers: A study of alibaba’s inventory replenishment system | |
Mohamed et al. | The re‐structuring of the information technology infrastructure library (ITIL) implementation using knowledge management framework | |
US20210012421A1 (en) | Method and device for trading on an electronic trading platform | |
US20240220894A1 (en) | Work management platform | |
US20240220893A1 (en) | Work management platform | |
JP7264870B2 (ja) | 電子的代理投票システムおよび方法 | |
WO2017021998A1 (ja) | 電子稟議書の更新方法およびシステム |
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 |