CN109032802A - 一种区块链系统和管理方法 - Google Patents
一种区块链系统和管理方法 Download PDFInfo
- Publication number
- CN109032802A CN109032802A CN201810836830.6A CN201810836830A CN109032802A CN 109032802 A CN109032802 A CN 109032802A CN 201810836830 A CN201810836830 A CN 201810836830A CN 109032802 A CN109032802 A CN 109032802A
- Authority
- CN
- China
- Prior art keywords
- block
- block group
- network node
- copies
- group
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种区块链系统和方法,该系统包括:至少一个网络节点,所述网络节点包括至少一个第一网络节点,所述至少一个第一网络节点:基于接收到的其它网络节点广播或自身生成的数据信息,生成区块;以及,以区块组的形式,将包括设定数目的区块链入其所维护的区块链中;以及,基于区块组删除命令,从其所维护的区块链中删除所述区块组删除命令所指示的区块组。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种区块链系统和管理方法。
背景技术
区块链技术,简称BT(Blockchain technology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。基于区块链的特性,区块链技术已得到了广泛应用,且前景广阔。
在区块链系统中,数据会随着应用快速增长,而当前的区块链协议要求区块链中的每个全节点必须包含完整链,数据的快速增长将会给节点带来处理、存储的压力,增加整个区块链网络的负载。
发明内容
有鉴于此,本申请的目的在于提供一种区块链系统和管理方法,提高区块数据存储的可扩展性,减轻系统的负载压力。
第一方面,本申请实施例提供了一种区块链系统,该系统包括至少一个网络节点,所述网络节点包括至少一个第一网络节点,所述至少一个第一网络节点:基于接收到的其它网络节点广播或自身生成的数据信息,生成区块;以及,以区块组的形式,将包括设定数目的区块链入其所维护的区块链中;以及,基于区块组删除命令,从其所维护的区块链中删除所述区块组删除命令所指示的区块组。
可选地,所述至少一个网络节点还包括:至少一个第二网络节点,所述至少一个第二网络节点,在监测到所述至少一个第一网络节点生成的区块数目达到所述设定数目后,向所述至少一个第一网络节点中的部分节点或全部节点发送区块组存储命令;
所述至少一个第一网络节点中的部分节点或全部节点,基于接收到的所述区块组存储命令,以区块组的形式,将包含所述设定数目的区块链入到其所维护的区块链中。
可选地,所述至少一个网络节点还包括:至少一个第二网络节点,其中,对于系统已经存储的部分或全部区块组中的每个:
所述至少一个第二网络节点,确定该区块组在系统中可以删除的副本数或需要增加的副本数,以及,根据结果,选择适当数量的第一网络节点,发送区块组删除命令或区块组存储命令;所述被选择的第一网络节点,基于接收到的所述区块组删除命令,从所维护的区块链中将该区块组所包含的区块删除,或者,基于接收到的所述区块组存储命令,将区块组中所包含的区块链入到其所维护的区块链中。
可选地,所述确定该区块组在系统中可以删除的副本数或需要增加的副本数,包括:
确定该区块组在系统中实际的副本数以及需要的副本数,根据所述实际的副本数与需要的副本数的比较结果,确定该区块组在系统中可以删除的副本数或需要增加的副本数;
或者,基于预先设定好的副本删除数值或副本增加数值,确定该区块组在系统中可以删除的副本数或需要增加的副本数。
可选地,每隔设定的时间间隔之后,确定区块组在系统中可以删除的副本数或需要增加的副本数;和/或,
每当完成新生成的区块上链存储之后,确定区块组在系统中需要删除的副本数或需要增加的副本数。
可选地,所述需要的副本数随时间逐渐减少和/或随区块组的增多逐渐减少。
可选地,所述至少一个第二网络节点:对于系统中的每个区块组,维持区块组与存储该区块组的第一网络节点之间的对应关系。
第二方面,本申请实施例提供了一种区块链管理方法,应用于区块链系统中,该方法包括:
基于区块链系统中的数据信息,生成区块并进行缓存;
当缓存的区块数量达到设定数目之后,以区块组的形式,将包括所述设定数目的区块链入到区块链中;
基于区块组删除命令,从区块链中删除所述删除命令所指示的区块组。
第三方面,本申请实施例提供了一种区块链管理方法,应用于包括至少一个网络节点的区块链系统中,该方法包括:
监测所述区块链系统中生成并缓存的区块的数量;
当缓存的区块数量达到设定数目之后,向网络节点发送区块组存储命令,指示所述至少一个网络节点以区块组的形式,将包含所述设定数目的区块链入到所述至少一个网络节点所维护的区块链中;以及
对于所述区块链系统已经上链存储的部分或全部区块组中的每个:确定该区块组在所述区块链系统中可以删除的副本数,并根据结果,选择适当数量的网络节点发送区块组删除命令,指示选择的网络节点从所维护的区块链中删除该区块组。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
本申请实施例提供的区块链系统及管理方法,以区块组的形式,将多个区块链入到区块链中,并提供了面向区块组的删除操作,从而降低了节点处理、存储数据的压力,减轻了系统负载。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种区块链系统的第一种结构示意图;
图2为本申请实施例提供的一种区块链系统的第二种结构示意图;
图3为本申请实施例提供的一种表征诚实链概率与区块之间对应关系的示意图;
图4为本申请实施例提供的另一种表征诚实链概率与区块之间对应关系的示意图;
图5为本申请实施例提供的一种区块链管理方法的第一种流程示意图;
图6为本申请实施例提供的一种区块链管理方法的第二种流程示意图;
图7为本申请实施例提供的一种计算机设备700的结构示意图;
图8为本申请实施例提供的一种计算机设备800的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种区块链系统,如图1所示,该系统包括:至少一个网络节点11,在本申请实施例中,网络节点11可以是私有设备、运营商网络设备(例如,基站设备),也可以是一定行业组织、团体和个人部署的站点(Station)等。具体而言,构成区块链系统的网络节点11可以包括但不限于移动台、移动终端、移动电话、用户设备、手机及便携设备(portable equipment)、车辆(vehicle)等,例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,终端设备还可以是便携式、袖珍式、手持式、计算机内置或者车载移动装置,本申请实施例对此不予限制。
图1中网络节点的数量、连接关系仅是示例,本申请对此并不做限制。
这里,区块链系统中的网络节点11的数目可以根据区块链系统的需要设置,也可以根据实际需要增加或者减少,本申请实施例对此不予限制。这里应当注意,
所述网络节点11包括至少一个第一网络节点112,第一网络节点112可以包括但不限于移动台、移动终端、移动电话、用户设备、手机及便携设备(portable equipment)、车辆(vehicle)等,例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,终端设备还可以是便携式、袖珍式、手持式、计算机内置或者车载移动装置,本申请实施例对此不予限制。第一网络节点112的数目可以根据区块链系统的需要设置,也可以根据实际需要增加或者减少,并且,图1中第一网络节点112之间的连接关系也仅是示例,本申请实施例对此均不予限制。
所述至少一个第一网络节点112,均维护一个区块链,用于记录系统中的数据信息,根据应用场合,区块链可以存储在磁盘、硬盘、光盘、闪存、内存、缓存中,此处并不限制存储类型。
在区块链系统运行过程中,所述至少一个第一网络节点112,基于接收到的其它网络节点广播或自身生成的数据信息,需要说明的是,本申请实施例中,数据信息包括但不限于与网络节点11(含第一网络节点112)相关的数据、与网络系统有关的数据。在描述时,具体以交易数据为例进行描述,但这并不限定本申请实施例的范围。
基于该数据信息,第一网络节点112生成区块,并将区块缓存,例如:根据应用场合,可以存储到内存、缓存、寄存器中,此处同样不限制缓存类型。
当缓存的区块达到设定数目时,例如达到设定的10个、20个、50个、100个、150个、200个等,优选地,设定数目为100,该第一网络节点112生成控制命令,例如:当区块达到设定数目时,触发该第一网络节点112产生相应的控制命令,或者,根据第二网络节点114(如起控制作用的网络节点)发送的控制命令(该发送的控制命令可以由其他网络节点转发),以区块组的形式,将包括设定数目的区块链入该第一网络节点112所维护的区块链中,使得区块链包含最近所缓存的区块。
另一方面,第一网络节点112基于区块组删除命令,例如:根据第二网络节点114(如起控制作用的网络节点)发送的区块组删除命令,从其所维护的区块链中删除所述区块组删除命令所指示的区块组。具体而言,在实际应用中,由于第一网络节点接收到数据信息后就会生成区块,为了减少第一网络节点存储区块的次数,在第一网络节点112生成一个区块后不会第一时间进行区块上链存储,而是在区块数目达到设定数目(如,100)后进行存储,也就是,以区块组的形式将设定数目的区块进行上链操作。
以数据信息为例,第一网络节点112在接收到其它网络节点广播的数据信息后,会生成区块,第一网络节点112也会基于自身的数据信息,生成区块。这里的区块是对接收的数据信息生成的区块或对自身的数据信息生成的区块的统称。在实际应用中,虽然各个第一网络节点112相互之间并未进行直接通信连接,但是每个第一网络节点112与多个其它第一网络节点112通信连接,最终,区块链系统的各第一网络节点112均可以相互通信,因此,系统中的每个第一网络节点112均可获得该数据信息,并产生区块。对数据信息的传播、验证、加密以及区块生成等操作在现有技术中已有详细的介绍,此处不再进行过多说明。对于除数据信息之外的其他数据信息,操作与此类似,不再进行过多叙述。
第一网络节点112监测到自身生成的区块的数目达到设定数目后,根据控制命令,以区块组的形式将区块组包括的区块链入该第一网络节点112所维护的区块链中,或者,在第一网络节点112接收到区块组存储命令后,将包含设定数目区块的区块链入到区块链中。以及,第一网络节点112在接收到区块组删除命令后,将区块组删除命令所指示的区块组从自身维护的区块链中删除。
区块组存储命令和区块组删除命令可以为自身节点生成的,也可以为第二网络节点114(下文详述)发送的。其中,第二网络节点114可以为从第一网络节点112中选择的一个节点,也可以为一个独立于第一网络节点112外的节点,第二网络节点114可作为系统中的管理节点。
本申请实施例提供了一种区块链系统,如图2所示,该系统与图1中的系统相比,至少一个网络节点11还包括至少一个第二网络节点114,该第二网络节点114的数量可以根据需要设定。应该知道,图2中各网络节点的数量、连接关系仅是示例,本申请对此并不做限制。
所述至少一个第二网络节点114,在监测到所述至少一个第一网络节点112生成的区块数目达到所述设定数目后,向所述至少一个第一网络节点112中的部分节点或全部节点发送区块组存储命令;所述至少一个第一网络节点114中的部分节点或全部节点,基于接收到的所述区块组存储命令,以区块组的形式,将包含所述设定数目的区块链入到其所维护的区块链中。
这里,监测可以通过以下方式实现:监测某一或某些第一网络节点112当前所缓存的区块数,或者监测该第二网络节点114自身或其他第二网络节点114当前所缓存的区块数,用以推断系统或第一网络节点112当前所缓存的区块数。更进一步,为了方便操作,对于系统中的所产生过的每个区块组,第二网络节点114可以维持区块组与存储该区块组的第一网络节点之间的对应关系。
在具体实施中,第二网络节点114实时监测第一网络节点112所缓存的区块的数目,若监测到存在部分第一网络节点112中缓存的区块数目达到设定数目后,第二网络节点114向该达到设定数目的部分第一网络节点112发送区块组存储命令,上述部分第一网络节点112中的每个第一网络节点112在接收到区块组存储命令后,将包含设定数目区块的区块组链入到自身维护的区块链中;或者,若检测到全部第一网络节点112中的区块数目达到设定数目后,第二网络节点114向全部第一网络节点112发送区块组存储命令,每个第一网络节点112在接收到区块组存储命令后,将包含设定数目区块的区块组链入到自身维护的区块链中。
由于不同的第一网络节点112可能运行在不同的网络环境或拥有不同的处理能力的计算设备中,不同的第一网络节点112在生成区块的耗时可能不同,因此,当区块数目未达到设定数目的第一网络节点112接收到区块组存储命令后,该第一网络节点112会等待区块数目到达设定数目后,再将区块组链入自身维护的区块链中。
第一网络节点112在将当前的区块组链入到自身维护的区块链中后,第二网络节点114会存储区块组标识和/或区块标识与第一网络节点112标识之间的对应关系。其中,区块组标识一般为预先设置的区块组编号,区块标识一般为预先设置的区块编号,第一网络节点标识可以为预设的第一网络节点112的编号、网络地址、节点名称等等。如,三个第一网络节点112的编号分别为q1、q2、q3,q1、q2、q3均将区块组编号为s1的区块组入到区块链中后,区块组s1对应的区块的编号为1-100,第二网络节点114中会对应存储区块组编号s1、区块编号1-100、第一网络节点编号为(q1、q2、q3)之间的对应关系,表示第一网络节点q1、q2、q3存储了区块组s1和/或区块1-100。
随着时间的推移,各个第一网络节点112维护的区块链中的区块组会慢慢增多,第二网络节点114也会相应记录区块组的存储信息。第二网络节点对于系统已经存储的部分或全部区块组中的每个:
确定该区块组在系统中可以删除的副本数或需要增加的副本数,每一副本,代表由一个第一网络节点112或一个第二网络节点114存储该区块组。
根据计算结果,选择适当数量的第一网络节点112,发送区块组删除命令或区块组存储命令;被选择的第一网络节点112,基于接收到的所述区块组删除命令,从所维护的区块链中将该区块组所包含的区块删除,或者,基于接收到的所述区块组存储命令,将区块组中所包含的区块链入到其所维护的区块链中。例如:可以删除的副本数为3,则选择3个第一网络节点112发送区块组删除命令,指示该3个第一网络节点112从其所维护的区块链中删除该区块组所对应的区块。
第一网络节点114在确定该区块组在系统中可以删除的副本数或需要增加的副本数时,可以包括以下步骤:
确定该区块组在系统中实际的副本数以及需要的副本数,根据所述实际的副本数与需要的副本数的比较结果,确定该区块组在系统中可以删除的副本数或需要增加的副本数;此处实际的副本数,即为系统中当前存储该区块组的网络节点(包括第一网络节点和第二网络节点)的个数。例如:当前系统中,第一网络节点q1、q2、q3以及第二网络节点p1、p2存储了区块组s1,则区块组s1的副本数即为5。而需要的副本数即为系统保持性能所需要存储区块组的网络节点(包括第一网络节点和第二网络节点)的个数,例如需要的副本数为4,则意味着系统需要至少有4个网络节点在其保持的区块链中保存该区块组。
通常而言,区块链系统中对于每个区块需要保存足够量的副本数,以保证区块链的安全性能。推导如下:
假设p是诚实节点发现下一个区块的概率,q是攻击者发现下一个区块的概率。当攻击开始后,区块z已经被链接时,攻击者的潜在分布是泊松分布,并且依据公式1计算期望值:
λ=z(q/p) (1)
其中,λ为诚实节点发现下一个区块的概率,q为攻击者发现下一个区块的概率,z为链入区块链的区块的编号。
攻击者追上诚实链的概率是PZ:
其中,PZ为攻击者追上诚实链的概率,k为正整数。
为了避免对无穷序列求和,转换公式(2)为:
其中,q=0.1,z的范围是0到30,采用java语言计算PZ,然后使用matlab工具生成PZ的概率曲线图,如图3所示。追赶诚实链的概率随着区块数量的增加而降低:在刚开始时,概率值是非常大的,即成功几率也越大;但当区块的数量增加时,攻击是不可能成功的。由于PZ值随着z数值的增加而快速降低,当z大于5时,PZ的值在图3中不能明显地表示出来。因此,在图4中得到当z取10到15时PZ的曲线。
图3和图4可知,当块的数量增加时,攻击者想要赶上诚实链的可能性越来越低。系统中已经生成的区块越多,区块链被篡改的可能性就越小,且安全性越高,因此,每个区块的副本数(保存该区块的节点数)由区块的位置决定,在区块链系统要保证存储小部分较早产生的区块的副本数,对于新产生的区块,需要保证存储足够量的副本数,而对于较早产生的区块,副本数可以降低。
存储区块的副本数可以参考公式(4)所示。M代表区块链中的节点总数,i为每个区块的序列号,n表示当前区块的总数,mi表示要存储的副本数。Pn-i表示区块i被攻击者追上的概率,也可以被认为是区块i的安全因素。
区块链的共识机制认为如果有超过50%的节点都存储相同的数据,则数据被视为诚实的。也就是说,如果网络中有超过一半的节点被控制,那个整个网络的数据都将被控制。因此,不能将每个区块的副本数设置为很小的值。根据区块链系统中不同的安全级别,需要为每个区块设置副本数的最小值k,例如,最小副本数k为2个,4个等。根据公式(3)计算PZ的概率,直到该概率值随着z的增加降为10-50,此时,概率已足够低,攻击者不可能会追赶上诚实节点。在这里,将z替换表示为一系列用于存储相同副本数量的区块组。例如,当q=0.1,首先根据公式(3)计算PZ。当z大于等于100时,PZ的值低于10-50。即至少每100个区块都在相同数量的副本中被保存为一系列区块组。然后根据公式(4)计算每个区块组的副本数量。例如:区块组中区块的设定数量可以优选为100。采用Weibull函数拟合MATLAB的PZ曲线,拟合结果如公式(5)所示。
f(x)=a×b×x(b-1)×exp(-a×xb) (5)
其中,a为实数,优选地为1.905,b为实数,优选地为0.723。拟合方差(SSE)为1.215e-5,R-square为0.9997。
从拟合结果可以看出PZ与z有负指数关系。因此,为了简化计算过程,将公式(3)修改为公式(6)来计算副本数量。
因此,在本申请的某个实施例中,以区块组中区块的数量为100为例,可以采用上述公式(6)来计算每个区块组所需要的副本数量。每100个连续的区块作为一个组,计算其副本数量,作为这100个区块共同的副本数量值,i取值为100、200、300……。此外,还可以设定每个区块组副本数量的最小值,例如,当区块数量为100时,每个区块组的最小副本数值为2,当达到最小值时,不再执行删除操作。
根据前面的推导可以知道,每个区块组所需要的副本数可以随着区块的增加而逐渐减少,因此,除了按照公式计算所需要的副本数,并根据实际的副本数与所需要的副本数之间的差值,选择网络节点删除特定的区块组,还可以预先设定好副本的删除数值,例如,设定每一间隔周期副本的删除数值,该副本的删除数值可以是固定值,如2,即每一间隔周期之后,系统之前保存的每个区块组的副本减少2个,或者是随间隔时间的规律变化,副本删除数值减少/增大,例如,经过某个间隔时间之后,副本减少2个,经过下一间隔时间之后,副本减少1个,或者3个(等差),或者4个(成倍),等等。同样,对于每个区块组,还可以预先设定好副本的最小值,当需要的副本数已经到达最小值时,不再执行副本删除操作。
对于某一或某些区块组,存在需要增加副本的可能性,例如:误操作,导致删除的副本数超过需要删除的副本数,或者保存副本的网络节点被移除、发生故障等,或者系统刚刚启动时,区块/区块组的数量较少,或者新加入网络节点时,等等,导致当前的副本数小于实际需要的副本数。为此,还需要增加区块组的副本数。同样,增加的副本数量可以是一次增加到位,也可以是逐步增加,例如:按照设定好的副本增加数值,每隔时间间隔之后增加2个,或者随时间间隔增加有所变化,等等。
在本申请的某个实施例中,可以在特定的时刻,例如:当新生成的区块达到设定数目时(也即新区块组生成时),或者将新生成的区块组执行上链保存后,或者是设定固定的间隔周期,执行每个区块组所需要的副本数的计算,并根据计算结果,选择合适数量的网络节点,增加或删除选择的网络节点中的区块组。
在某个实施例中,上述的计算可以由第二网络节点执行。例如:第二网络节点可以通过以下方式计算任一区块组的需要的副本数m_new:
其中,m_new为存储区块组的需要的副本数,m_cur为存储区块组的实际的副本数,n为第一网络节点中的区块数目,f为区块组的编号,γ为正常数,优选地为100,β为实数,优选地为2。
在具体实施中,针对系统中存储的每个区块组,第二网络节点获取该区块组在系统的实际的副本数和需要的副本数,比较实际的副本数和需要的副本数,若实际的副本数大于需要的副本数,则计算实际的副本数和需要的副本数之间的差值,将该差值作为可以删除的副本数,也就是,需要删除该区块组的第一网络节点的数目,并更新第二网络节点存储的对应关系表中该区块组对应第一网络节点的标识。第二网络节点存储该区块组的第一网络节点中选择可以删除的副本数个第一网络节点,并通知选择的第一网络节点从自身维护的区块链中删除该区块组,以增加系统的存储空间。其中,在选择可以删除的副本数时,可以随机选择,也可以根据当前区块组的重要性进行选择,本申请对此不做限制。
若实际的副本数小于需要的副本数,则计算需要的副本数和实际的副本数之间的差值,将该差值作为需要增加的副本数,也就是,需要存储该区块组的第一网络节点的数目,更新第一网络节点中对应关系表中存储的该区块组对应的第一网络节点的标识。第二网络节点从除实际存储该区块组的第一网络节点外的第一网络节点中,选择需要增加的副本数个第一网络节点,并指示选择的第一网络节点将该区块组链入到对应的区块链中。其中,在选择需要增加的副本数时,可以随机选择,也可以根据当前区块组的重要性进行选择,本申请对此不做限制。
若实际的副本数等于需要的副本数,则不对区块组做任何操作,此时,不需要更新第二网络节点存储该区块组的对应关系表。
为了保证系统的安全性,每个区块组的副本数均需大于系统中预先设定的副本阈值,也即最小值,副本阈值可以为预先设置的,例如,为2个。
例如,系统存储有10个区块组,以确定第5个区块组P的需要的副本数为例进行说明,第5个区块组P的实际的副本数为6,若通过计算得到区块组P的需要的副本数为4,那么,需要删除系统中部分第一网络节点112中的存储的区块组P,需要删除的副本数为2,此时,第二网络节点可以在存储区块组P的6个第一网络节点112中,选择2个第一网络节点112,并指示选择的2个第一网络节点112从区块链删除存储的区块组P,更新存储的区块组P对应的第一网络节点112的标识。
若通过上述公式计算得到P的需要的副本数为8,那么,则需要更多的第一网络节点112存储该区块组P,即需要增加的副本数为2,此时,从除存储区块组P的6个第一网络节点112外的其它第一网络节点112中,选择2个第一网络节点112,并指示选择的2个第一网络节点112将区块组P链入区块链中,更新存储的区块组P对应的第一网络节点112的标识。
若通过上述公式计算得到区块组P的需要的副本数为6,也就是,需要的副本数与实际的副本数相同,此时,不要对区块组P执行任何操作,也不需要更新存储的区块组P对应的第一网络节点的标识。此外,若通过上述公式计算得到区块组P的需要的副本数为3,需要的副本数小于系统设定的副本阈值(如,4),则将副本数阈值作为当前计算的需要的副本数,得到需要删除的副本数为2,此时,第二网络节点114需要在存储区块组P的6个第一网络节点中,选择2个第一网络节点112,指示其删除存储的区块组P,更新存储区块组P对应的第一网络节点112的标识。
这样,在保证系统安全性的前提下,减少了网络节点的存储负担,减少了系统负载。。
本申请实施例提供了一种区块链管理方法,如图5所示,应用于区块链系统中,该方法包括:
S501,基于区块链系统中的数据信息,如:交易信息,生成区块并进行缓存;
S502,当缓存的区块数量达到设定数目之后,以区块组的形式,将包括所述设定数目的区块链入到区块链中;
S503,基于区块组删除命令,从区块链中删除所述删除命令所指示的区块组。
可选地,该方法还包括:
基于接收到的区块组存储命令,以区块组的形式,将包含所述设定数目的区块链入到其所维护的区块链中,所述区块组存储命令为区块链系统在监测到生成的区块数目达到所述设定数目后发送的。
这里,区块组存储命令和区块组删除命令一般为区块链系统中的第二网络节点发送的,第二网络节点在上文已进行详细叙述,此处不再进行过多说明。
本申请实施例提供了另一种区块链管理方法,如图6所示,应用于包括至少一个网络节点的区块链系统中,该方法包括:
S601,监测所述区块链系统中生成并缓存的区块的数量;
S602,当缓存的区块数量达到设定数目之后,向网络节点发送区块组存储命令,指示所述至少一个网络节点以区块组的形式,将包含所述设定数目的区块链入到所述至少一个网络节点所维护的区块链中;以及
S603,对于所述区块链系统已经上链存储的部分或全部区块组中的每个:确定该区块组在所述区块链系统中可以删除的副本数,并根据结果,选择适当数量的网络节点发送区块组删除命令,指示选择的网络节点从所维护的区块链中删除该区块组。
这里,适当数量一般是基于通过计算得到的,也就是上文中可以删除的副本数。
可选地,所述方法还包括:确定该区块组在系统中可以删除的副本数或需要增加的副本数,以及,根据结果,选择适当数量的第一网络节点,发送区块组删除命令或区块组存储命令,以使被选择的第一网络节点基于接收到的所述区块组删除命令,从所维护的区块链中将该区块组所包含的区块删除,或者,基于接收到的所述区块组存储命令,将区块组中所包含的区块链入到其所维护的区块链中。
可选地,所述确定该区块组在系统中可以删除的副本数或需要增加的副本数,包括:
确定该区块组在系统中实际的副本数以及需要的副本数,根据所述实际的副本数与需要的副本数的比较结果,确定该区块组在系统中可以删除的副本数或需要增加的副本数;
或者,基于预先设定好的副本删除数值或副本增加数值,确定该区块组在系统中可以删除的副本数或需要增加的副本数。
可选地,该方法还包括:
每隔设定的时间间隔之后,确定区块组在系统中可以删除的副本数或需要增加的副本数;和/或,
每当完成新生成的区块上链存储之后,确定区块组在系统中需要删除的副本数或需要增加的副本数
可选地,所述需要的副本数随时间逐渐减少和/或随区块组的增多逐渐减少。
可选地,所述方法还包括:对于系统中的每个区块组,维持区块组与存储该区块组的第一网络节点之间的对应关系。
对应于图5中的区块链管理方法,本申请实施例还提供了一种计算机设备700,如图7所示,该设备包括存储器701、处理器702及存储在该存储器701上并可在该处理器702上运行的计算机程序,其中,上述处理器702执行上述计算机程序时实现上述区块链管理方法。
具体地,上述存储器701和处理器702能够为通用的存储器和处理器,这里不做具体限定,当处理器702运行存储器701存储的计算机程序时,能够执行上述区块链管理方法,从而提高区块数据存储的可扩展性,减轻系统的负载压力,本申请以区块组的形式,将多个区块链入到区块链中,并提供了面向区块组的删除操作,从而降低了节点处理、存储数据的压力,减轻了系统负载。
对应于图5中的区块链管理方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述区块链管理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述区块链管理方法,从而提高区块数据存储的可扩展性,减轻系统的负载压力,本申请以区块组的形式,将多个区块链入到区块链中,并提供了面向区块组的删除操作,从而降低了节点处理、存储数据的压力,减轻了系统负载。
对应于图6中的区块链管理方法,本申请实施例还提供了一种计算机设备800,如图8所示,该设备包括存储器801、处理器802及存储在该存储器801上并可在该处理器802上运行的计算机程序,其中,上述处理器802执行上述计算机程序时实现上述区块链管理方法。
具体地,上述存储器801和处理器802能够为通用的存储器和处理器,这里不做具体限定,当处理器802运行存储器801存储的计算机程序时,能够执行上述区块链管理方法,从而提高区块数据存储的可扩展性,减轻系统的负载压力,本申请以区块组的形式,将多个区块链入到区块链中,并提供了面向区块组的删除操作,从而降低了节点处理、存储数据的压力,减轻了系统负载。
对应于图6中的区块链管理方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述区块链管理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述区块链管理方法,从而提高区块数据存储的可扩展性,减轻系统的负载压力,本申请以区块组的形式,将多个区块链入到区块链中,并提供了面向区块组的删除操作,从而降低了节点处理、存储数据的压力,减轻了系统负载。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种区块链系统,其特征在于,该系统包括至少一个网络节点,所述网络节点包括至少一个第一网络节点,所述至少一个第一网络节点:基于接收到的其它网络节点广播或自身生成的数据信息,生成区块;以及,以区块组的形式,将包括设定数目的区块链入其所维护的区块链中;以及,基于区块组删除命令,从其所维护的区块链中删除所述区块组删除命令所指示的区块组。
2.如权利要求1所述的系统,其特征在于,所述至少一个网络节点还包括:至少一个第二网络节点,所述至少一个第二网络节点,在监测到所述至少一个第一网络节点生成的区块数目达到所述设定数目后,向所述至少一个第一网络节点中的部分节点或全部节点发送区块组存储命令;
所述至少一个第一网络节点中的部分节点或全部节点,基于接收到的所述区块组存储命令,以区块组的形式,将包含所述设定数目的区块链入到其所维护的区块链中。
3.如权利要求1所述的系统,其特征在于,所述至少一个网络节点还包括:至少一个第二网络节点,其中,对于系统已经存储的部分或全部区块组中的每个:
所述至少一个第二网络节点,确定该区块组在系统中可以删除的副本数或需要增加的副本数,以及,根据结果,选择第一网络节点,发送区块组删除命令或区块组存储命令;被选择的第一网络节点,基于接收到的所述区块组删除命令,从所维护的区块链中将该区块组所包含的区块删除,或者,基于接收到的所述区块组存储命令,将区块组中所包含的区块链入到其所维护的区块链中。
4.如权利要求3所述的系统,其特征在于,所述确定该区块组在系统中可以删除的副本数或需要增加的副本数,包括:
确定该区块组在系统中实际的副本数以及需要的副本数,根据所述实际的副本数与需要的副本数的比较结果,确定该区块组在系统中可以删除的副本数或需要增加的副本数;
或者,基于预先设定好的副本删除数值或副本增加数值,确定该区块组在系统中可以删除的副本数或需要增加的副本数。
5.如权利要求4所述的系统,其特征在于,每隔设定的时间间隔之后,确定区块组在系统中可以删除的副本数或需要增加的副本数;和/或,
每当完成新生成的区块组上链存储之后,确定区块组在系统中需要删除的副本数或需要增加的副本数。
6.如权利要求4所述的系统,其特征在于,所述需要的副本数随时间逐渐减少和/或随区块组的增多逐渐减少。
7.如权利要求2-6任一所述的系统,其特征在于,所述至少一个第二网络节点:对于系统中的每个区块组,维持区块组与存储该区块组的第一网络节点之间的对应关系。
8.一种区块链管理方法,其特征在于,应用于区块链系统中,该方法包括:
基于区块链系统中的数据信息,生成区块并进行缓存;
当缓存的区块数量达到设定数目之后,以区块组的形式,将包括所述设定数目的区块链入到区块链中;
基于区块组删除命令,从区块链中删除所述删除命令所指示的区块组。
9.一种区块链管理方法,其特征在于,应用于包括至少一个网络节点的区块链系统中,该方法包括:
监测所述区块链系统中生成并缓存的区块的数量;
当缓存的区块数量达到设定数目之后,向网络节点发送区块组存储命令,指示所述至少一个网络节点以区块组的形式,将包含所述设定数目的区块链入到所述至少一个网络节点所维护的区块链中;以及
对于所述区块链系统已经上链存储的部分或全部区块组中的每个:确定该区块组在所述区块链系统中可以删除的副本数,并根据结果,选择适当数量的网络节点发送区块组删除命令,指示选择的网络节点从所维护的区块链中删除该区块组。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求8或9所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810836830.6A CN109032802A (zh) | 2018-07-26 | 2018-07-26 | 一种区块链系统和管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810836830.6A CN109032802A (zh) | 2018-07-26 | 2018-07-26 | 一种区块链系统和管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109032802A true CN109032802A (zh) | 2018-12-18 |
Family
ID=64645715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810836830.6A Pending CN109032802A (zh) | 2018-07-26 | 2018-07-26 | 一种区块链系统和管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032802A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885258A (zh) * | 2019-02-01 | 2019-06-14 | 立旃(上海)科技有限公司 | 基于区块链的数据删除装置及方法 |
CN110011981A (zh) * | 2019-03-15 | 2019-07-12 | 湖北工程学院 | 一种基于区块链的可信云存储方法及系统 |
CN110084595A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种通过闪电网络的防止攻击的区块链交易方法和装置 |
CN110995776A (zh) * | 2019-10-12 | 2020-04-10 | 平安科技(深圳)有限公司 | 区块链的区块分发方法、装置、计算机设备和存储介质 |
WO2020199703A1 (zh) * | 2019-04-01 | 2020-10-08 | 杜晓楠 | 一种区块链交易的方法、装置和系统 |
CN112468601A (zh) * | 2021-02-03 | 2021-03-09 | 柏科数据技术(深圳)股份有限公司 | 一种分布式存储系统的数据同步方法、访问方法及系统 |
CN112506914A (zh) * | 2019-09-16 | 2021-03-16 | 西安华域网络文化发展有限公司 | 基于双链结构的区块链数据管理方法、系统、装置及介质 |
CN112733197A (zh) * | 2019-10-28 | 2021-04-30 | 本田技研工业株式会社 | 信息管理系统 |
TWI759791B (zh) * | 2019-11-06 | 2022-04-01 | 大陸商支付寶(杭州)信息技術有限公司 | 基於錯誤校正碼的共享區塊鏈資料儲存的方法、系統及裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
CN106844523A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 顺序型多维拓展的区块链的生成方法及系统 |
US20170200147A1 (en) * | 2016-01-08 | 2017-07-13 | Akbar Ali Ansari | System and the computer methods of issuing, transferring and manipulating value or gift cards using blockchain technology |
-
2018
- 2018-07-26 CN CN201810836830.6A patent/CN109032802A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
US20170200147A1 (en) * | 2016-01-08 | 2017-07-13 | Akbar Ali Ansari | System and the computer methods of issuing, transferring and manipulating value or gift cards using blockchain technology |
CN106844523A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 顺序型多维拓展的区块链的生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
贾大宇,信俊昌,王之琼,郭薇,王国仁: "区块链的存储容量可扩展类型", 《计算机科学与探索》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885258A (zh) * | 2019-02-01 | 2019-06-14 | 立旃(上海)科技有限公司 | 基于区块链的数据删除装置及方法 |
CN109885258B (zh) * | 2019-02-01 | 2023-02-21 | 立旃(上海)科技有限公司 | 基于区块链的数据删除装置及方法 |
CN110011981A (zh) * | 2019-03-15 | 2019-07-12 | 湖北工程学院 | 一种基于区块链的可信云存储方法及系统 |
CN110011981B (zh) * | 2019-03-15 | 2021-06-29 | 湖北工程学院 | 一种基于区块链的可信云存储方法及系统 |
CN110084595A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种通过闪电网络的防止攻击的区块链交易方法和装置 |
WO2020199703A1 (zh) * | 2019-04-01 | 2020-10-08 | 杜晓楠 | 一种区块链交易的方法、装置和系统 |
CN112506914A (zh) * | 2019-09-16 | 2021-03-16 | 西安华域网络文化发展有限公司 | 基于双链结构的区块链数据管理方法、系统、装置及介质 |
CN112506914B (zh) * | 2019-09-16 | 2024-02-27 | 西安华域网络文化发展有限公司 | 基于双链结构的区块链数据管理方法、系统、装置及介质 |
CN110995776B (zh) * | 2019-10-12 | 2021-11-02 | 平安科技(深圳)有限公司 | 区块链的区块分发方法、装置、计算机设备和存储介质 |
CN110995776A (zh) * | 2019-10-12 | 2020-04-10 | 平安科技(深圳)有限公司 | 区块链的区块分发方法、装置、计算机设备和存储介质 |
CN112733197A (zh) * | 2019-10-28 | 2021-04-30 | 本田技研工业株式会社 | 信息管理系统 |
TWI759791B (zh) * | 2019-11-06 | 2022-04-01 | 大陸商支付寶(杭州)信息技術有限公司 | 基於錯誤校正碼的共享區塊鏈資料儲存的方法、系統及裝置 |
CN112468601B (zh) * | 2021-02-03 | 2021-05-18 | 柏科数据技术(深圳)股份有限公司 | 一种分布式存储系统的数据同步方法、访问方法及系统 |
CN112468601A (zh) * | 2021-02-03 | 2021-03-09 | 柏科数据技术(深圳)股份有限公司 | 一种分布式存储系统的数据同步方法、访问方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032802A (zh) | 一种区块链系统和管理方法 | |
CN103294675B (zh) | 一种分布式存储系统中的数据更新方法及装置 | |
CN109933592A (zh) | 数据存储方法、数据回滚方法、设备和存储介质 | |
CN101404627B (zh) | 即时通讯系统更新联系人状态的方法及即时通讯系统 | |
CN1859379B (zh) | 一种可扩展标记语言文档管理方法及系统 | |
CN109697133A (zh) | Id生成方法、装置及系统 | |
CN107025289B (zh) | 一种数据处理的方法及相关设备 | |
CN106776146A (zh) | 一种数据校验方法、装置及系统 | |
CN108038114A (zh) | 一种路径查询方法、终端、计算机可读存储介质 | |
CN106572153A (zh) | 集群的数据存储方法及装置 | |
CN103092687B (zh) | 一种应用程序管理装置和方法 | |
CN109450996A (zh) | 一种数据上链管理方法、装置、设备和区块链系统 | |
CN109194707A (zh) | 分布式图嵌入的方法及装置 | |
CN109756566B (zh) | 基于区块链的数据存储方法、相关设备及存储介质 | |
CN104331343B (zh) | 文件备份方法和系统 | |
CN105095313A (zh) | 一种数据访问方法和设备 | |
CN106603270A (zh) | 分布式系统中调用链路的追踪方法及装置 | |
CN107231400A (zh) | 一种数据的同步方法和装置 | |
CN109445687A (zh) | 一种数据存储方法以及协议服务器 | |
CN109445902A (zh) | 一种数据操作方法和系统 | |
CN107967279A (zh) | 分布式数据库的数据更新方法及装置 | |
CN110083504B (zh) | 分布式任务的运行状态监控方法及装置 | |
CN107145449A (zh) | 存储设备和存储方法 | |
CN105204782B (zh) | 一种实现数据存储的方法及装置 | |
CN108960801B (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 | ||
CB02 | Change of applicant information |
Address after: 101-8, 1st floor, building 31, area 1, 188 South Fourth Ring Road West, Fengtai District, Beijing Applicant after: Guoxin Youyi Data Co., Ltd Address before: 100070, No. 188, building 31, headquarters square, South Fourth Ring Road West, Fengtai District, Beijing Applicant before: SIC YOUE DATA Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181218 |
|
RJ01 | Rejection of invention patent application after publication |