CN109885264B - 一种区块链节点的逻辑分片方法及其系统 - Google Patents

一种区块链节点的逻辑分片方法及其系统 Download PDF

Info

Publication number
CN109885264B
CN109885264B CN201910305547.5A CN201910305547A CN109885264B CN 109885264 B CN109885264 B CN 109885264B CN 201910305547 A CN201910305547 A CN 201910305547A CN 109885264 B CN109885264 B CN 109885264B
Authority
CN
China
Prior art keywords
super node
fragment
node
super
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
Application number
CN201910305547.5A
Other languages
English (en)
Other versions
CN109885264A (zh
Inventor
吉建勋
杨慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruice Technology Co Ltd
Original Assignee
Beijing Ai Morui Strategic Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ai Morui Strategic Technology Co Ltd filed Critical Beijing Ai Morui Strategic Technology Co Ltd
Priority to CN201910305547.5A priority Critical patent/CN109885264B/zh
Publication of CN109885264A publication Critical patent/CN109885264A/zh
Application granted granted Critical
Publication of CN109885264B publication Critical patent/CN109885264B/zh
Priority to PCT/CN2019/129714 priority patent/WO2020211460A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

本申请公开了一种区块链节点的逻辑分片方法及其系统,所述系统包括M个超级节点、验证节点以及普通节点,该方法中:每个超级节点划分为M个逻辑分片;M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片;将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点。本申请方法能够提升区块链系统的TPS,提升区块链系统的垂直扩展能力;并且多条逻辑主链的节点并行出快,能够提升出块速度。

Description

一种区块链节点的逻辑分片方法及其系统
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链节点的逻辑分片方法及其系统。
背景技术
目前,区块链、物联网以及人工智能并列为未来科技的三大技术。区块链技术是基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯,但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
现有的区块链技术的每秒事务处理量(Transaction Per Second,TPS),无法支持实际应用的落地。如一些实际的应用需求:苹果和安卓市场(不包括中国大陆)在2017年Q3实现了260亿次下载,平均每秒下载3300次;每个月,YouTube的用户总共会观看时长60亿小时的视频,每天会看40亿部视频,平均每秒46296次。实际上仅YouTube系统在播放过程中以传输流量计费,以每256K(IPFS的分片方案)的为一个计费单位,每部(短)视频平均为5M计算,平均每秒计费就要接近百万次--确认地说是925920次。如果以每4K(SWARM/EDX的分片方案)为一个计费单位,每秒的计费接近6400万次,这是一个目前所有区块链都无法达到的数字。
随着区块链的场景应用越来越广泛,如何提升区块链系统的TPS,提升区块链系统的垂直扩展能力,成为亟待解决的问题。
发明内容
为了解决上述问题,本申请提供一种区块链节点的逻辑分片方法极其系统,该方法能够提升区块链系统的TPS,提升区块链系统的垂直扩展能力。
本申请第一方面提供一种区块链节点的逻辑分片方法,应用于区块链节点逻辑分片系统中,所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据,所述方法包括:
每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片;
将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点;
首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块;
所述区块被验证通过后,所述区块上链。
需要指出的是,上述任一区块被验证后,被验证的区块上链;区块上链之后,并没有成为不可逆块;只有该上链区块后续有多个区块(例如:后续有6个区块)被确认上链后,该区块才成为不可逆块。
在一种可能的实施方式中,所述方法还包括:所述第一超级节点根据所述M个超级节点资源利用率模型F(X,Y),确定所述第一超级节点的分片数量;其中,F(X,Y)=Max(X1、X2、…、Xn)*α+Max(Y1、Y2、…、Yn)*β,Xn为第n超级节点的CPU资源使用率,Yn为第n超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重;
当所述第一超级节点确定所述F(X,Y)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
在一种可能的实施方式中,所述方法还包括:所述第一超级节点根据所述第一超级节点资源利用率模型F(X1,Y1),确定所述第一超级节点的分片数量;其中,F(X1,Y1)=X1*α+Y1*β,X1为第一超级节点的CPU资源使用率,
Y1为第一超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重;
当所述第一超级节点确定所述F(X1,Y1)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
在一种可能的实施方式中,所述区块被验证通过后,所述区块上链;包括:通过可验证的VDPoS算法对所述区块进行验证,所述第一超级节点用于打包区块和验证区块,所述验证节点用于验证区块,具体为:
所述第一超级节点对所述区块验证通过后,将所述区块发送给其余超级节点进行验证,所述其余超级节点为所述M个超级节点中除所述第一超级节点外的超级节点;
所述其余超级节点采用实用拜占庭容错算法对所述区块进行验证;
当所述其余超级节点对所述区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择K个所述验证节点,K个所述验证节点采用实用拜占庭容错算法对所述区块进行验证,K为正整数;
当所述K个验证节点对所述区块验证通过后,所述区块上链。
在一种可能的实施方式中,所述方法还包括:用户通过客户端发起子链创建请求,所述子链创建请求包括所述子链与所述主链之间的智能合约,所述智能合约包括子链的共识机制和子链的验证方式;所述M个超级节点对所述子链创建请求进行投票;当所述投票通过后,所述子链创建成功。
在一种可能的实施方式中,L为正整数,取值范围1~100;M为正整数,取值范围10-100;N为正整数,取值范围为12~M-1;K为正整数,K的取值范围20-200。
本申请第二方面提供一种区块链节点的逻辑分片系统,所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;
每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片;
将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点;
首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块;
所述区块被验证通过后,所述区块上链。
本申请方法能够提升区块链系统的TPS,提升区块链系统的垂直扩展能力;并且多条逻辑主链的节点并行出快,能够提升出块速度(Block Per Second,BPS)。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请实施例提供的一种区块链节点的逻辑分片方法流程示意图;
图2为本申请实施例提供的一种区块链节点的逻辑分片系统结构示意图;
图3为本申请实施例提供的一种可验证的DPoS共识方法流程示意图;
图4为本申请实施例提供的一种区块链节点的逻辑分片示意图;
图5为本申请实施例提供的一种多主链和多子链的结构框架示意图。
具体实施方式
为了更清楚的阐释本申请的整体构思,下面结合说明书附图以示例的方式进行详细说明。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的顺序在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所称的节点,可以理解为响应外界特定触发条件,并按一定规则做状态转换的抽象机器,可以是手机、平板电脑、掌上电脑、个人PC电脑等可以按照应用软件且能够联网的设备。
区块链,具体可指一个各节点通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。区块链根据其网络节点的分布形式,可包括公有链、联盟链、私有链等。
在实际的应用中,通常为不同的场景设置单独的区块链,例如用于处理房屋租赁业务场景的区块链、用于处理音乐作品版权使用业务场景的区块链等;而且对于在一个较大的应用场景中设置的区块链,还会为其开发相关的业务细化子链,例如用于处理房屋租赁业务场景的区块链主链,可以下挂多条房屋租赁下多种细分业务的区块链子链,如专门用于收录房屋租赁订单的区块链子链,专门用于收录可供租赁的房屋详情的区块链子链等,上述子链即为遵循上述区块链主链协议的多个实例。
如图1所示,一种区块链节点的逻辑分片方法,应用于区块链节点逻辑分片系统中,所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据。
需要说明的是,超级节点以及验证节点都有普通节点的功能;上述M个超级节点可以由若干位权益人通过电脑(没有同步区块链上的数据)投票产生,也可以由若干位权益人通过普通节点(同步了区块链上的数据)投票产生。
所述方法包括步骤S101-S104。下述方法中,是用三个超级节点,每个超级节点采用三个分片,来对本申请的超级节点逻辑分片进行说明,本申请中超级节点的分片数量并不以此为限。
S101,每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片。
S102,将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点。
S103,首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块。
如图4所示,图中仅仅示出了5个超级节点,显然本申请并不以此为限。超级节点1逻辑分片1-1、1-2、1-3、1-n,1逻辑主链节点包括逻辑分片1-1、分片2-1、分片3-1、分片4-1、分片5-1。
上述讨论可知,每个超级节点逻辑分片连续打包L个区块。如图4所示,1逻辑主链节点中分片1-1连续打包了L个区块,分别为block#11、block#12、block#1n。多个逻辑主链节点的分片打包的区块,经过验证上链后,形成主链,图4中,主链block#11、block#12、……、block#41、blcok#42……。
也就是说,在每一条主链的超级节点上,每个超级节点的区块打包时间为n秒(下文以0.5s为例,进行说明),为了节约网络的使用和防止丢块,每个超级节点分片会连续打包L个区块,再轮到下一个超级节点打包区块。本申请的多逻辑主链会以上述描述同样的方式打包区块,但是打包区块的时间有0.5/m秒(m为逻辑主链的条数)的差距;在这0.5s内,每条逻辑主链的超级节点分片都会打包区块一次,即0.5秒内打包区块的超级节点分片均不在同一个超级节点上,从而最大化的利用了网络资源和超级节点资源。
举例来说,每个超级节点进行20分片的情况下,每隔0.5÷20=0.025s,一整条逻辑主链上的各逻辑主链节点就会打包区块一次,相对于现有的DPoS算法TPS提高了20倍,并且极大的缩短了打包区块的时间,即缩短了BPS。
在一个示例中,所述M个超级节点,每一轮打包顺序,由动态规划方法来决定;和/或在每一轮打包顺序确定后,所述M个超级节点之间的数据传输路径,由动态规划方法来确定。
上述提到的每轮打包区块之前,需要确定打包区块的超级节点分片的顺序,以使得在各超级节点在每一轮打包区块过程中,全局路径最短;此时,可以采用动态规划解决该旅行商问题(Traveling Salesman Problem,TSP),即已知任意两个节点的距离,求如何从一个节点遍历所有节点,路径最短的问题。动态规划可以采用最短路径迪杰斯特拉Dijkstra算法,也可以采用全局最短路径Floyd-warshall算法。
还需要说明的是,M个超级节点组成P2P网络,M个超级节点之间的数据传输,同样采用动态规划的方式来提高数据传输效率。每个超级节点传输数据时,不再直接向另外一个超级节点通信,而是通过动态规划方法选择两个超级节点之间的最短路径进行通信,能减少两个超级节点间的数据传输时间,从而提高网络效率。
S104,所述区块被验证通过后,所述区块上链。
在一个示例中,所述方法还包括:所述第一超级节点根据所述M个超级节点资源利用率模型F(X,Y),确定所述第一超级节点的分片数量。
F(X,Y)=Max(X1、X2、…、Xn)*α+Max(Y1、Y2、…、Yn)*β,Xn为第n超级节点的CPU资源使用率,Yn为第n超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重。当所述第一超级节点确定所述F(X,Y)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
此时,M个超级节点中每个超级节点根据M个超级节点的全局资源利用率来确定自身的逻辑分片数量,并且,每个超级节点的逻辑分片数量保持同步。
上述的示例中,资源利用率包括带宽资源利用率和CPU资源利用率;带宽资源利用率为当前超级节点使用的带宽占网络带宽的比例,CPU资源利用率为超级节点的CPU资源使用占CPU总资源的比例。M个超级节点中任一超级节点能够通过彼此的通信,获得其他超级节点的资源利用率,从而得到资源利用的值。上述中的α和β可以根据实际情况进行调整,本申请实施例不作详细说明;此外,第一阈值也可以根据实际情况进行调整,例如:第一阈值是80%,当M个超级节点的资源利用率的值超过80%时,任一超级节点降低逻辑分片数量。
在一个示例中,L为正整数,取值范围1~100;M为正整数,取值范围10-100;N为正整数,取值范围为12~M-1;K为正整数,K的取值范围20-200。
在一个示例中,所述方法还包括:所述第一超级节点根据所述第一超级节点资源利用率模型F(X1,Y1),确定所述第一超级节点的分片数量。
F(X1,Y1)=X1*α+Y1*β,X1为第一超级节点的CPU资源使用率,Y1为第一超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重;当所述第一超级节点确定所述F(X1,Y1)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
F(X1,Y1)的值中,也可以取X1或Y1的最大值,此时,X1或Y1的值相对大的对应的权重为1,其相对小的值对应的权重为0。
此时,M个超级节点中每个超级节点根据自身的资源使用率来确定自身的逻辑分片数量,并且每个超级节点的逻辑分片数量不同步。
除此之外,本示例跟上面M个超级节点中任一超级节点根据全局的资源使用率来确定自身的逻辑分片数量相近,可直接参考相关描述。
在一个示例中,L为正整数,取值范围1~100;M为正整数,取值范围20~200;N为正整数,取值范围为12~M-1。
在一个示例中,所述区块被验证通过后,所述区块上链;包括:通过可验证的VDPoS算法对所述区块进行验证,所述第一超级节点用于打包区块和验证区块,所述验证节点用于验证区块,具体包括步骤S301-S304。
S301,所述第一超级节点对所述区块验证通过后,将所述区块发送给其余超级节点进行验证,所述其余超级节点为所述M个超级节点中除所述第一超级节点外的超级节点。
S302,所述其余超级节点采用实用拜占庭容错算法对所述区块进行验证。
S303,当所述其余超级节点对所述区块验证通过后,所述第一超级节点通过可验证的随机(Verifiable Random Function,VRF)算法随机选择K个所述验证节点,K个所述验证节点采用实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法对所述区块进行验证,K为正整数。
S304,当所述K个验证节点对所述区块验证通过后,所述区块上链。
上述验证示例中,上述其余超级节点对上述区块进行验证,与第一超级节点打包生成新的区块过程,可以同时进行,不需要等待区块验证过程完全结束后,才开始产生新的区块,从而提高了区块的产生效率;同时,上述K个验证节点对区块进行验证,与第一超级节点产生新的区块的过程,也可以同时进行。
此时,利用VRF算法选择K个验证节点对区块进行验证,可以防止超过三分之一的超级节点做恶;如果有超过三分之一的超级节点做恶,第一超级节点随机选择的K个验证节点对区块拒绝验证,或者验证不通过,该区块不能成功上链。
从而,第一超级节点采用VRF算法对上链的区块进行验证,能够提升区块链系统的安全性;并且,上述讨论可知,第一超级节点采用VRF算法对上链的区块进行验证时,第一超级节点还可以继续打包生成新的区块,既还能够提升区块链系统的区块生成效率。
此外,由于K个验证节点能够存储整条区块链,相对于现有的DPoS算法(DPoS算法中,只有100个左右的代理权益节点才有验证的功能),增加了区块链系统的去中心化程度。验证节点发现该区块验证不通过时,将该区块废弃,从该区块的上一个区块重新进行区块生成和验证流程;并且将其余超级节点中判断该区块验证通过的超级节点,作为做恶节点;然后,验证节点将该做恶节点拉入黑名单,新增超级节点对做恶的超级节点进行替换。本申请的区块链系统中,根据上述机制,可以防止任意数量的超级节点做恶。
在一个示例中,所述方法还包括:用户通过客户端发起子链创建请求,所述子链创建请求包括所述子链与所述主链之间的智能合约,所述智能合约包括子链的共识机制和子链的验证方式;所述M个超级节点对所述子链创建请求进行投票;当所述投票通过后,所述子链创建成功。
此时,管理子链的智能合约可以由子链服务商提供,需要发起子链创建请求的用户,可以购买智能合约;为了避免子链服务商作恶,子链服务商需要抵押一定量的数字货币在主链上。
在一个示例中,所述共识机制包括工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,POS)以及授权股权证明(Delegated Proof of Stake,DPoS)的一种;其中,一条子链对应一个智能合约,对应一个共识机制。
所述子链的验证方式包括子链节点将验证区块进行哈希运算后,得到的哈希值存储在所述主链区块的区块体中;所述验证区块是相隔预设块高度的多个区块,或者所述验证区块是相隔随机块高度的多个区块,且相隔块的高度是由所述第一超级节点通过所述M个超级节点资源利用率决定。
如图5所示,子链1采用DPoS的共识方法,子链2采用PBFT的共识方法,子链3采用PoW的共识方法,不同的子链采用的共识方法可以相同,可以不同。每条子链与主链,都是通过智能合约进行关联,子链1与主链之间通过智能合约1关联;子链1中的验证区块的哈希值存在主链上,主链对该验证区块的哈希值进行验证后,才会存储该验证区块的哈希值,这样就能够保证子链上存储业务数据的可靠性。
此外,对子链1来说,验证区块可以是相隔预定区块高度的区块,也可以是随机选择的区块,也可以将每一个区块的哈希值存储在主链上。
从图5示例中可以看出,逻辑主链1包括Block#1、Block#4、Block#7。
在一个示例中,所述主链的区块存储交易数据,所述子链的区块存储结构化的业务数据;其中,所述业务数据包括业务属性数据、业务数据的交易价格以及所有者数据。
此外,业务数据可以包括业务数据的版本信息、价格信息、浏览次数信息、收藏次数信息、数据所有者信息以及数据创建者信息等中的一个或多个;并且,业务数据带有时间戳,是以时间轴连续的数据,例如:版本信息包括1.0版本、2.0版本,价格信息包括初始价格和变动价格。
换句话说,主链上存储数字货币或代币的交易数据,满足交易数据对高可信和不可篡改的需求;业务数据保存于子链上,满足高可用的需求。对于一些低价值或者过大的业务数据上主链的需求,主链可以将业务数据的哈希值保存在链上,原始数据在子链上存储。
在一个示例中,所述主链与其他公有区块链之间采用状态通道智能合约的方式交易,所述状态通道智能合约控制所述主链的一个地址和其他公有区块链的一个地址作映射。
举例来说:对于比特币BTC来说,主链将提供一个BTC跨链状态通道智能合约、一个接受BTC的地址和IBTC代币,IBTC代币为BTC在该主链的1:1映射。当用户将BTC存入该接受BTC的地址以后,该智能合约将自动给用户分配等量的IBTC代币,该IBTC代币的交易代表了真正BTC的交易。当用户想取回BTC时,把IBTC返回给该智能合约,该智能合约将自动把BTC打给用户指定的地址中。
在一个示例中,所述主链与所述子链之间采用所述状态通道智能合约的方式交易,或者采用委托执行智能合约的方式交易;其中,所述委托执行的方式为当子链节点执行交易时,所述交易通过委托执行智能合约转移到所述主链节点执行,所述主链节点将交易的执行结果发送给所述子链节点。
此外,对于子链之间的交易,可以使用主链作为公证人,在两条子链的智能合约中对相关的数据和资产进行监控和锁定;在两个子链的交易或者数据操作都完成以后,才能进行解锁。
如图2所示,一种区块链节点的逻辑分片系统。
所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据。
每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片。
将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点。
首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块。
所述区块被验证通过后,所述区块上链。
本申请方法能够提升区块链系统的TPS,提升区块链系统的垂直扩展能力;并且多条逻辑主链的节点并行出快,能够提升出块速度BPS。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种区块链节点的逻辑分片方法,应用于区块链节点的逻辑分片系统中,所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据,其特征在于,所述方法包括:
每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片;
将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点;
首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块;
所述区块被验证通过后,所述区块上链。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一超级节点根据所述M个超级节点资源利用率模型F(X,Y),确定所述第一超级节点的分片数量;其中,F(X,Y)=Max(X1、X2、…、Xn)*α+Max(Y1、Y2、…、Yn)*β,Xn为第n超级节点的CPU资源使用率,Yn为第n超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重;
当所述第一超级节点确定所述F(X,Y)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一超级节点根据所述第一超级节点资源利用率模型F(X1,Y1),确定所述第一超级节点的分片数量;其中,F(X1,Y1)=X1*α+Y1*β,X1为第一超级节点的CPU资源使用率,Y1为第一超级节点的带宽资源利用率,α为CPU资源使用率的权重,β为带宽资源利用的权重;
当所述第一超级节点确定所述F(X1,Y1)的值大于第一阈值时,所述第一超级节点降低自身M个逻辑分片到N个逻辑分片。
4.根据权利要求1所述的方法,其特征在于,所述区块被验证通过后,所述区块上链;包括:通过可验证的VDPoS算法对所述区块进行验证,所述第一超级节点用于打包区块和验证区块,所述验证节点用于验证区块,具体为:
所述第一超级节点对所述区块验证通过后,将所述区块发送给其余超级节点进行验证,所述其余超级节点为所述M个超级节点中除所述第一超级节点外的超级节点;
所述其余超级节点采用实用拜占庭容错算法对所述区块进行验证;
当所述其余超级节点对所述区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择K个所述验证节点,K个所述验证节点采用实用拜占庭容错算法对所述区块进行验证,K为正整数;
当所述K个验证节点对所述区块验证通过后,所述区块上链。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
用户通过客户端发起子链创建请求,所述子链创建请求包括所述子链与所述主链之间的智能合约,所述智能合约包括子链的共识机制和子链的验证方式;
所述M个超级节点对所述子链创建请求进行投票;
当所述投票通过后,所述子链创建成功。
6.根据权利要求5所述的方法,其特征在于,所述共识机制包括工作量证明、权益证明以及授权股权证明的一种;其中,一条子链对应一个智能合约,对应一个共识机制;
所述子链的验证方式包括子链节点将验证区块进行哈希运算后,得到的哈希值存储在主链区块的区块体中;所述验证区块是相隔预设块高度的多个区块,或者所述验证区块是相隔随机块高度的多个区块,且相隔块的高度是由所述第一超级节点通过所述M个超级节点资源利用率决定。
7.根据权利要求5所述的方法,其特征在于,所述主链的区块存储交易数据,所述子链的区块存储结构化的业务数据;其中,
所述业务数据包括业务属性数据、业务数据的交易价格以及所有者数据。
8.根据权利要求5所述的方法,其特征在于,所述主链与其他公有区块链之间采用状态通道智能合约的方式交易,所述状态通道智能合约控制所述主链的一个地址和其他公有区块链的一个地址作映射;
所述主链与所述子链之间采用所述状态通道智能合约的方式交易,或者采用委托执行智能合约的方式交易;其中,所述委托执行的方式为当子链节点执行交易时,所述交易通过委托执行智能合约转移到所述主链节点执行,所述主链节点将交易的执行结果发送给所述子链节点。
9.根据权利要求1所述的方法,其特征在于,所述M个超级节点,每一轮打包顺序,由动态规划方法来决定;和/或
在每一轮打包顺序确定后,所述M个超级节点之间的数据传输路径,由动态规划方法来确定。
10.一种区块链节点的逻辑分片系统,其特征在于,所述系统包括M个超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;其中,
每个所述超级节点划分为M个逻辑分片;其中,所述M个超级节点包括第一超级节点、第二超级节点以及第三超级节点,第一超级节点包括第一超级节点甲分片、第一超级节点乙分片、第一超级节点丙分片,所述第二超级节点包括第二超级节点甲分片、第二超级节点乙分片、第二超级节点丙分片,所述第三超级节点包括第三超级节点甲分片、第三超级节点乙分片、第三超级节点丙分片;
将所述第一超级节点、第二超级节点以及第三超级节点作为主链节点,将所述第一超级节点甲分片、第二超级节点甲分片以及第三超级节点甲分片作为第一逻辑主链节点,将所述第一超级节点乙分片、第二超级节点乙分片以及第三超级节点乙分片作为第二逻辑主链节点,将所述第一超级节点丙分片、第二超级节点丙分片以及第三超级节点丙分片作为第三逻辑主链节点;
首轮区块打包顺序:第一超级节点甲分片连续打包L个区块,第二超级节点乙分片连续打包L个区块,第三超级节点丙分片连续打包L个区块;第二轮区块打包顺序:第一超级节点乙分片连续打包L个区块,第二超级节点丙分片连续打包L个区块,第三超级节点甲分片连续打包L个区块;第三轮区块打包顺序:第一超级节点丙分片连续打包L个区块,第二超级节点甲分片连续打包L个区块,第三超级节点乙分片连续打包L个区块;
所述区块被验证通过后,所述区块上链。
CN201910305547.5A 2019-04-16 2019-04-16 一种区块链节点的逻辑分片方法及其系统 Active CN109885264B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910305547.5A CN109885264B (zh) 2019-04-16 2019-04-16 一种区块链节点的逻辑分片方法及其系统
PCT/CN2019/129714 WO2020211460A1 (zh) 2019-04-16 2019-12-30 一种区块链节点的逻辑分片方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910305547.5A CN109885264B (zh) 2019-04-16 2019-04-16 一种区块链节点的逻辑分片方法及其系统

Publications (2)

Publication Number Publication Date
CN109885264A CN109885264A (zh) 2019-06-14
CN109885264B true CN109885264B (zh) 2019-12-06

Family

ID=66937673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910305547.5A Active CN109885264B (zh) 2019-04-16 2019-04-16 一种区块链节点的逻辑分片方法及其系统

Country Status (2)

Country Link
CN (1) CN109885264B (zh)
WO (1) WO2020211460A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885264B (zh) * 2019-04-16 2019-12-06 北京艾摩瑞策科技有限公司 一种区块链节点的逻辑分片方法及其系统
CN110505223B (zh) * 2019-08-15 2021-09-14 腾讯科技(深圳)有限公司 区块链多链管理方法、装置和计算机可读存储介质
CN110995589B (zh) * 2019-10-14 2022-03-04 东软集团股份有限公司 一种区块链网络出块时的区块传递方法、装置及设备
CN111061735B (zh) * 2019-12-13 2023-07-25 度小满科技(北京)有限公司 一种基于单链区块链的扩容方法及装置
CN111131218A (zh) * 2019-12-19 2020-05-08 平安资产管理有限责任公司 一种黑名单管理方法、装置、计算机系统及可读存储介质
CN111339109B (zh) * 2020-02-21 2024-01-12 百度在线网络技术(北京)有限公司 一种区块链的资源处理方法、装置、设备和介质
CN111327699B (zh) * 2020-02-26 2021-07-09 吉林大学 双领导者心跳加权溯源共识方法
CN112101939A (zh) * 2020-09-14 2020-12-18 邢文超 基于区块链的节点管理方法及系统
CN112330019B (zh) * 2020-11-04 2024-03-15 安徽师范大学 区块链交易通道的数据传输优化方法
CN112261161B (zh) * 2020-12-21 2021-03-19 支付宝(杭州)信息技术有限公司 一种锁定区块链系统中分片区块的方法及区块链系统
CN113064768B (zh) * 2021-04-19 2022-08-09 支付宝(杭州)信息技术有限公司 在区块链系统中切换分片节点的方法和装置
CN113157457A (zh) * 2021-04-30 2021-07-23 工银科技有限公司 区块链分片负载均衡方法及装置
CN113067901B (zh) * 2021-06-02 2021-09-24 支付宝(杭州)信息技术有限公司 区块链子网的创建方法
CN115002221B (zh) * 2022-06-06 2023-06-23 长春理工大学 一种适用于物联网的区块链共识方法及系统
CN115481446A (zh) * 2022-08-31 2022-12-16 北京大学 一种泛在环境下的数字对象访问事务存证方法和装置
CN116957592B (zh) * 2023-09-20 2023-12-22 中铱数字科技有限公司 一种基于区块链生成数字藏品的方法
CN117478304B (zh) * 2023-12-28 2024-03-01 湖南天河国云科技有限公司 区块链管理方法、系统和计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN108600301A (zh) * 2018-03-08 2018-09-28 青岛墨客区块链有限公司 一种区块链之间的跨链方法及主区块链

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2970743A1 (en) * 2014-12-15 2016-06-23 Royal Bank Of Canada Verification of data processes in a network of computing resources
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
CN107438002B (zh) * 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
CN106530083B (zh) * 2016-10-27 2018-06-29 深圳壹账通智能科技有限公司 基于区块链的多链管理方法及系统
US10691763B2 (en) * 2016-11-11 2020-06-23 International Business Machines Corporation Trustable web searching verification in a blockchain
CN107704269A (zh) * 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及系统
CN107809484B (zh) * 2017-10-30 2020-08-18 中国联合网络通信集团有限公司 区块链交易信息处理方法及区块链节点
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
CN109885264B (zh) * 2019-04-16 2019-12-06 北京艾摩瑞策科技有限公司 一种区块链节点的逻辑分片方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN108600301A (zh) * 2018-03-08 2018-09-28 青岛墨客区块链有限公司 一种区块链之间的跨链方法及主区块链

Also Published As

Publication number Publication date
CN109885264A (zh) 2019-06-14
WO2020211460A1 (zh) 2020-10-22

Similar Documents

Publication Publication Date Title
CN109885264B (zh) 一种区块链节点的逻辑分片方法及其系统
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
CN108683747B (zh) 资源获取、分发、下载方法、装置、设备及存储介质
CN111445333B (zh) 区块生成方法、装置、计算机设备以及存储介质
CN111612613B (zh) 一种部署有中心化系统的区块链网络
CN111444211B (zh) 区块链共识节点校验方法、装置、设备以及存储介质
CN113395363B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN109146484A (zh) 基于区块链的共识验证方法、挖矿机及区块链系统
CN109087111A (zh) 基于区块链的共识验证方法、挖矿机及区块链系统
CN112749969B (zh) 一种数据处理方法、装置、计算机设备及存储介质
KR20190068799A (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
CN111241593A (zh) 用于区块链节点的数据同步方法及装置
WO2023077796A1 (zh) 骨干节点接入方法和区块链系统
CN109087105A (zh) 用于挖矿的哈希搜索方法、挖矿机及区块链系统
JP2022553963A (ja) 同期処理方法及び関連装置
CN110599144B (zh) 一种区块链节点的入网方法以及装置
Qin et al. A secure and effective construction scheme for blockchain networks
CN113923217B (zh) 一种基于dag的异步拜占庭共识方法及系统
Cong et al. DTNB: A blockchain transaction framework with discrete token negotiation for the delay tolerant network
Liu et al. Using blockchain technology in IoT manufacture environment for intelligence prediction
CN109921897A (zh) 工作量证明计算的触发方法、装置、计算设备及存储介质
CN109255614A (zh) 基于区块链的挖矿方法及装置、挖矿机及区块链系统
Chen et al. A provable softmax reputation-based protocol for permissioned blockchains
CN112417052B (zh) 区块链网络中的数据同步方法、装置、设备及存储介质
CN115766038A (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
CP01 Change in the name or title of a patent holder

Address after: Room 205, building 6, 1107 Yuyuan Road, Changning District, Shanghai

Patentee after: Beijing ruice Technology Co.,Ltd.

Address before: Room 205, building 6, 1107 Yuyuan Road, Changning District, Shanghai

Patentee before: BEIJING AIMO RUICE TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder