一种基于分链技术的联盟链数据处理方法与流程
未命名
08-13
阅读:123
评论:0
1.本发明涉及区块链领域,尤其涉及一种基于分链技术的联盟链数据处理方法。
背景技术:
2.区块链在不同场景下的应用,都因高冗余存储(每个节点存储一份完整的数据)增强了数据的公开性、透明性,提高了系统的可用性;但另一方面,每个节点都同步最新账本会给区块链带来性能问题和巨大的存储压力;从应用开发的方面来说,基于区块链的应用开发需要满足可扩展性要求和一致性要求,区块链的一致性是指存储在区块链不同节点中的数据副本的取值必须一致,它通过共识算法、数据的可靠传输、高冗余存储和加密技术来实现,但是高冗余存储会增加节点的存储压力,导致存储可扩展性问题。因此如何兼顾区块链特性的同时,解决因业务发展带来的高冗余存储成为关注和研究的重点。
3.针对现有技术中出现的区块链高冗余存储问题,有学者提出了链上存储和链下存储两种方式。链上存储是指节点不需存储完整账本数据,每个节点约定仅存储部分账本,只需要在整条链可查询完整账本即可,这种形式的存储方式存在较大的安全问题,如存储某部分数据的节点异常下线后,该区块链的这部分数据将不能通过其他节点找回。链下存储是将部分数据的存储转移到另一个外部存储系统中,从而缓解大部分区块链网络节点的存储压力,但是这种存储形式不支持历史数据的查询,导致整条区块链的信用崩盘。比如一个白酒溯源区块链,酒厂在2000年生产的酒,数据上链后,在20年后消费者想要查询真伪时,由于数据链下存储导致溯源系统返回查询为空,若因此消费者认为是假酒,那么对品牌商业信誉造成的影响是无可估量的。
4.当前链上存储数据在随着业务的增长,数据量不断的叠加其存储空间也不断增大,但是现有链上扩展存储还是链下扩展存储的方式,都会牺牲掉一部分区块链的信息公开透明、不可篡改、可追溯的特性以保证链上数据的高速访问和可用。
5.所以如何能够提供一种既能够解决高冗余存储又能够查找历史数据的数据链处理方法成为亟待解决的问题。
技术实现要素:
6.本发明提供一种基于分链技术的联盟链数据处理方法,用以解决现有技术无法在解决高冗余问题的同时实现查找历史数据的问题。
7.为了实现上述目的,本发明技术方案提供了一种基于分链技术的联盟链数据处理方法,包括:根据维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链;根据维度中的有效标记设置所述主干链和各所述历史支链上的节点属性;其中,所述历史支链上仅有只读节点,所述主干链包括只读节点和共识节点;使用所述共识节点和前置索引节点进行链上交易,使用所述只读节点进行链上交易查询。
8.作为上述技术方案的优选,较佳的,根据维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链,包括:从所述目标区块链中提取符合维度要求的链,将
其作为新的主干链,所述目标区块链中的各剩余链为历史支链;新的主干链的主干链服务器根据节点的个数创建新的相同数量的只读节点,构成一条新的主干链;当前主干链服务器上运行着两条主干链,运行节点包括原主干链共识节点和只读节点、新主干链只读节点;历史支链服务器上运行若干条历史支链,历史支链的运行节点为只读节点。
9.作为上述技术方案的优选,较佳的,根据所述时间维度中的有效标记设置所述主干链和各所述历史支链上的节点属性,包括:触发节点变更,新的主干链中的只读节点中除规定不变更的只读节点之外,剩余均转化为共识节点,原主干链上的各共识节点全部转化为只读节点;各历史支链上的运行节点维持原类型不变。
10.作为上述技术方案的优选,较佳的,历史支链服务器创建和原主干链上节点相同的若干个只读节点,并同步所述原主干链上的只读节点数据,从而构成一条新的历史支链。
11.作为上述技术方案的优选,较佳的,构成一条新的历史支链之后,包括:卸载原主干链上的所有只读节点,使得当前主干链服务器仅运行新的主干链。
12.作为上述技术方案的优选,较佳的,使用所述共识节点和前置索引节点进行链上交易,包括:前置索引节点根据接收到的上链交易请求生成时间戳,并结合交易请求发送至所述共识节点;共识节点确认所述交易请求后,向剩余共识节点广播交易;剩余共识节点收到广播消息,向发起广播的共识节点和所述只读节点广播交易上链结果;发起广播的共识节点收到2/3共识节点的相同广播消息后,确认交易上链成功并向前置节点返回交易请求上链结果;所述前置节点将交易请求上链结果及上链时间戳返回业务系统。
13.作为上述技术方案的优选,较佳的,使用所述只读节点进行链上交易查询,包括:前置索引节点根据查询请求中的商品信息查询各个只读节点;若商品信息中的商品流转环节号大于零,则根据商品时间戳查询对应的主干链或历史支链;若当前当前链查询结果为空,则查询上一条支链,否则,记录查询结果并将其添加到输出总结果;若所述商品流转环节号小于或等于零,则返回总结果。
14.本发明技术方案提供了一种基于分链技术的联盟链数据处理方法,根据时间维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链;根据时间维度中的时间有效期设置所述主干链和各所述历史支链上的节点属性;使用共识节点和前置索引节点进行链上交易,使用只读节点进行链上交易查询。
15.本发明的优点是在应用系统访问链上数据之间增加索引节点,交易请求经由索引节点指向业务交易对应使用基于时间逻辑定义的私有链,提升联盟链数据的访问效率,缓解业务增长带来的海量数据存储压力;采用基于维度(例如时间)索引分链技术的联盟链数据处理模型,将一条区块链化整为零,形成一条主干链加多条历史支链的联盟链组合,既解决历史数据高冗余存储的压力,同时保留区块链信息公开透明、不可篡改、可追溯的特性。得到的联盟链主干链和历史支链的节点严格区分实现联盟链数据的读写分离,查询数据用只读节点,交易写入数据用共识节点,可大大缓解联盟链的压力,提高联盟链的性能。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单介绍,显而易见地,下面描述中的附图是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1a为本发明提供的一种基于分链技术的联盟链数据处理方法中联盟链数据处理方法的模型图。
18.图1b为本发明提供一种基于分链技术的联盟链数据处理方法中联盟链数据处理方法的完整流程图。
19.图2a为本发明中新主干链对生成逻辑图。
20.图2b为生成流程新主干链的流程图。
21.图3a 为打包交易数据上链处理模型图。
22.图3b为交易上链的流程图。
23.图3c 打包交易数据上链的处理逻辑图。
24.图4a 链上数据查询流程图。
25.图4b 链上数据查询逻辑图。
具体实施方式
26.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.先对本发明流程进行简要说明,图1a为本发明实施例提供的模型图,图1b为流程图:本实施例中的维度以时间维度为例进行说明,并不以此作为维度类型的限制,维度可以是地域维度、商品类型维度、交易金额维度、交易类型维度等等能够将目标区块链中各区块以此进行拆分、分类的特征。有效标记以时间有效期(日、月、年)为例进行说明,并不以此作为标记类型的限制,有效标记可以是地域中某一区域、交易货币类型、商品尺寸等等。
28.步骤101、根据时间维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链。其中,历史支链上仅有只读节点,所述主干链包括只读节点和共识节点。
29.首先,从目标区块链中提取符合时间要求的链,将其作为新的主干链,目标区块链中的各剩余链为历史支链。运行新主干链的主干链服务器根据节点的个数创建新的相同数量的只读节点,构成一条新的主干链,此时,当前主干链服务器上运行着两条主干链,运行节点包括原主干链共识节点和只读节点、新主干链只读节点;历史支链服务器上运行若干条历史支链,历史支链的运行节点为只读节点。
30.步骤102、根据时间维度中的时间有效期设置主干链和各历史支链上的节点属性。
31.具体的,根据时间维度中的时间有效期设置原主干链、新主干链和各历史支链上的节点属性。具体的,触发节点变更,新主干链中的只读节点中除规定不变更的只读节点之外,剩余均转化为共识节点,原主干链上的各共识节点全部转化为只读节点;各历史支链上的运行节点维持原类型不变。
32.进一步的,历史支链服务器创建和原主干链上节点相同的若干个只读节点,这些
只读节点同步原主干链上的只读节点数据,从而构成一条新的历史支链。在构成一条新的历史支链之后,从主干链服务器卸载原主干链上的所有只读节点,使得当前主干链服务器仅运行新的主干链。
33.步骤103、新主干链和各历史支链生成完毕后,使用共识节点和前置索引节点进行链上交易,使用只读节点进行链上交易查询。
34.进行链上交易,包括:前置索引节点根据接收到的上链交易请求生成时间戳,并将其与交易请求结合发送至共识节点。在共识节点确认交易请求后,向剩余共识节点广播交易;剩余共识节点收到广播消息,向发起广播的共识节点和只读节点广播交易上链结果;发起广播的共识节点收到2/3共识节点的相同广播消息后,确认交易上链成功并向前置节点返回交易请求上链结果。
35.进行链上交易查询,包括:前置索引节点根据查询请求中的商品信息查询各个只读节点;若商品信息中的商品流转环节号大于零,则根据商品时间戳查询对应的主干链或历史支链;若当前当前链查询结果为空,则查询上一条支链,否则,记录查询结果并将其添加到输出总结果;若商品流转环节号小于或等于零,则返回总结果。基于以上流程,本发明大程度的缓解现有区块链随着业务发展引入的历史数据量过大,查询和存证业务访问缓慢的问题现结合图2a和图2b对本发明提供的分链技术进行详细说明:步骤201、对当前主干链服务器中各链进行标记。
36.当前主干链服务器上运行一条主干链标记为l1,历史支链服务器运行n条历史支链分别标记为h2000、h2001、h2002...h2020、h2021。需要说明的是,当前主干链服务器上仅运行主干链l1,其共识节点和两个只读节点(用于数据查询)组成。
37.步骤202、根据年份对l1进行分链。
38.在本实施例中,分链规则是根据年份进行分链,在实际实施中可以是根据商品类型、颜色、月份等需求进行分链。分链规则和节点类型修改包括但不限于以时间维度、区块高度等规则划分。
39.步骤203、得到新主干链l2。
40.具体的,主干链服务器根据l1中节点的个数创建新的相同数量的只读节点,新的只读节点构成一条新主干链l2。
41.此时,主干链服务器上运行着原主干链l1和新主干链l2,运行节点分别为原主干链l1的共识节点和只读节点、新主干链l2的只读节点,历史支链服务器上运行n条历史支链,运行节点为历史支链只读节点。
42.步骤204、触发节点类型修改规则,对新主干链和原主干链的节点类型进行修改。
43.具体的,本步骤中所指的触发可以通过年份等时间节点(例如新年第一天0点时自动触发修改节点类型规),也可以是代码写定时任务服务来触发节点类型修改(例如在某时刻或某种情况下节点类型修改)。
44.节点类型进行修改时,新主干链l2链的只读节点类型有两个只读节点不变(类型不变的节点数量根据需求设定),其余全部转化为共识节点。原主干链l1上的共识节点全部转化为只读节点。此时,新主干链l2转变为主干链。此时,主干链服务器上运行两条主干
链,运行节点分别为原主干链l1上的只读节点、主干链上的共识节点和只读节点,历史支链服务器上运行n条历史支链,运行节点为历史支链只读节点。
45.步骤205、对将两个主干链上的节点进行数据同步。
46.在历史支链服务器创建和原主干链l1上节点相同的两个只读节点,并同步l1上的只读节点数据,并构成一条新的历史支链h2022。
47.当前主干服务器上运行原主干链l1和主干链,运行的节点分别是l1只读节点、的共识节点和只读节点,历史支链服务器上运行的历史支链分别为h2000、h2001、h2002...h2020、h2021、h2022,历史支链的节点都为只读节点。
48.步骤206、数据同步完毕后卸载原主干链l1。
49.具体的,待数据同步完全,原主干链l1卸载所有的只读节点变更为干链,当前主干服务器上运行着,此时就是原主干链l1,再将卸载,此时主干链服务器上不存在中的任何节点,当前主干链为新主干链,历史支链服务器运行着h2000、h2001、h2002...h2020、h2021、h2022(新的历史支链)。
50.至此,联盟链生成完毕。
51.联盟链生成完毕后,使用共识节点和前置索引节点进行链上交易,使用只读节点进行链上交易查询。需要提前说明的是,前置索引节点是在应用系统访问链上数据之间增加的索引节点,在交易请求和查询请求经由索引节点指向业务交易对应使用基于时间逻辑定义的私有链,提升联盟链数据的访问效率,缓解业务增长带来的海量数据存储压力对于链上交易,如图3a、图3b、图3c所示:步骤301、业务系统向前置索引节点发起上链交易请求。
52.其中,上链交易请求包括但不限于如下字段:商品序列号snid、商品流转环节号sp_count、交易哈希值hash;步骤302、前置索引节点生成当前系统时间戳,将交易请求、系统时间戳发至新主干链的共识节点。
53.步骤303、共识节点接受交易请求,验证消息的真实性。
54.步骤304、共识节点判断消息是否真实,若真实,对交易消息进行事务签名、打包交易后,向链上其他共识节点进行广播交易;否则结束。
55.步骤305、剩余共识节点收到广播消息,向发起广播的共识节点和只读节点广播交易上链结果。
56.步骤306共识节点收到高于阈值的相同广播消息数量后,确认交易上链成功。
57.具体的,本实施例中设置在2/3共识节点的相同广播消息后,确认交易上链成功。
58.步骤307、共识节点向前置节点返回交易请求上链结果。
59.步骤308、前置节点将交易请求上链结果及上链时间戳返回业务系统。
60.对于链上交易查询,如图4a和图4b所示:步骤401、业务系统向前置索引节点发起查询请求。
61.其中链上数据查询交易请求包括如下字段:商品序列号snid、流转环节号sp_count、商品上链时间戳timestamp。
62.步骤402、前置索引节点依据查询请求中的商品序列号、商品时间戳、商品流转环节号定位查询主链或历史支链的只读节点。
63.步骤403、判断商品流转环节号是否大于零,若大于零,则执行步骤404根据商品时间戳查询对应的主干链或历史支链的只读节点,否则执行步骤405。
64.步骤404、判断当前链查询结果是否为空,若是,则查询上一条支链,否则记录查询结果,数据添加到输出总结果且流转环节号减1。
65.步骤405、若商品流转环节号小于或等于零,则返回总结果。
66.本发明中提及的业务系统指的是与调用联盟链数据的应用业务系统,如食品溯源的溯源系统、金融行业的投保系统、金融行业的支付系统等。
67.具体的,若业务系统为食品溯源系统,则可根据食品的销售年份/类型/生产年份等维度实现联盟链的生成,可以根据相应食品条形码实现上链交易和查询。若业务系统为投保系统,可以根据投保年份/投保类型/投保金额等维度实现联盟链的生成,根据投保的编码/类型等实现上链交易和查询。若业务系统为支付系统,可以根据支付时间/支付金额区间/支付终端等维度实现联盟链的生成。
68.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
技术特征:
1.一种基于分链技术的联盟链数据处理方法,其特征在于,所述方法包括:根据维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链;根据所述维度中的有效标记设置所述主干链和各所述历史支链上的节点属性;其中,所述历史支链上仅有只读节点,所述主干链包括只读节点和共识节点;使用所述共识节点和前置索引节点进行链上交易,使用所述只读节点进行链上交易查询。2.根据权利要求1所述的数据处理方法,其特征在于,所述根据维度将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链,包括:从所述目标区块链中提取符合维度要求的链,将其作为新的主干链,所述目标区块链中的各剩余链为历史支链;所述新的主干链的主干链服务器根据节点的个数创建新的相同数量的只读节点,构成一条新的主干链;当前主干链服务器上运行着两条主干链,运行节点包括原主干链共识节点和只读节点、新主干链只读节点;历史支链服务器上运行若干条历史支链,历史支链的运行节点为只读节点。3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述维度中的有效标记设置所述主干链和各所述历史支链上的节点属性,包括:触发节点变更,新的主干链中的只读节点中除规定不变更的只读节点之外,剩余均转化为共识节点,原主干链上的各共识节点全部转化为只读节点;各历史支链上的运行节点维持原类型不变。4.根据权利要求3所述的数据处理方法,其特征在于,还包括,历史支链服务器创建和原主干链上节点相同的若干个只读节点,并同步所述原主干链上的只读节点数据,从而构成一条新的历史支链。5.根据权利要求4所述的数据处理方法,其特征在于,还包括,所述构成一条新的历史支链之后,包括:卸载原主干链上的所有只读节点,使得当前主干链服务器仅运行新的主干链。6.根据权利要求1所述的数据处理方法,其特征在于,所述使用所述共识节点和前置索引节点进行链上交易,包括:所述前置索引节点根据接收到的上链交易请求生成时间戳,并结合交易请求发送至所述共识节点;所述共识节点确认所述交易请求后,向剩余共识节点广播交易;所述剩余共识节点收到广播消息,向发起广播的共识节点和所述只读节点广播交易上链结果;发起广播的共识节点收到2/3共识节点的相同广播消息后,确认交易上链成功并向前置节点返回交易请求上链结果;所述前置节点将交易请求上链结果及上链时间戳返回业务系统。7.根据权利要求1所述的数据处理方法,其特征在于,所述使用所述只读节点进行链上交易查询,包括:前置索引节点根据查询请求中的商品信息查询各个只读节点;
若商品信息中的商品流转环节号大于零,则根据商品时间戳查询对应的主干链或历史支链;若当前链查询结果为空,则查询上一条支链,否则,记录查询结果并将其添加到输出总结果;若所述商品流转环节号小于或等于零,则返回总结果。
技术总结
本发明提供一种基于分链技术的联盟链数据处理方法,通过将目标区块链拆分,得到由一条主干链和若干条历史支链组成的联盟链;根据维度中的有效标记设置所述主干链和各所述历史支链上的节点属性;使用共识节点和前置索引节点进行链上交易,使用只读节点进行链上交易查询。优点是,增加索引节点,交易请求经由索引节点指向业务交易对应使用定义的私有链,提升数据的访问效率,缓解业务存储压力;将一条区块链化整为零,构成联盟链组合,解决历史数据高冗余存储的压力,同时保留区块链的特性。联盟链主干链和历史支链的节点严格区分,从而实现数据的读写分离,查询数据用只读节点,交易写入数据用共识节点,缓解联盟链的压力,提高联盟链的性能。联盟链的性能。联盟链的性能。
技术研发人员:蒋作琛 尚可 杨波 孙茂增 张彦超 佟冬 马志鹏 王京 鲍帅
受保护的技术使用者:北京银联金卡科技有限公司
技术研发日:2023.07.10
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
