CN107332876B - 区块链状态的同步方法及装置 - Google Patents
区块链状态的同步方法及装置 Download PDFInfo
- Publication number
- CN107332876B CN107332876B CN201710402042.1A CN201710402042A CN107332876B CN 107332876 B CN107332876 B CN 107332876B CN 201710402042 A CN201710402042 A CN 201710402042A CN 107332876 B CN107332876 B CN 107332876B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- state
- block chain
- synchronization
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Abstract
本发明公开了一种区块链状态的同步方法及装置,应用于区块链网络中,所述区块链网络包括多个节点,所述方法包括:在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块;将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。本发明减小了区块链节点中占用的存储空间,从而延长了区块链节点的使用寿命。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链状态的同步方法及装置。
背景技术
目前大部分的区块链节点的数据存储,都是存储自创世块开始的全量区块,同时存储一份最新的区块链状态,以此执行交易、进行区块链状态同步及区块链共识。当全新节点加入区块链网络时,会执行区块链状态同步,以同步除创世块以外的所有区块,使自身状态与区块链网络内各节点的状态一致。由于区块链节点存储数据时,全量区块均存在关联,因此区块链状态同步需要按顺序依次执行各个区块中的交易,才可构建完整的状态,缺少了任一区块,状态即无法同步。
这种情况下,会导致容量过大的问题,即区块链节点无法丢弃任何区块,区块链节点存储的区块数量将随着时间无限增长,导致存储空间占用过大,由于节点的存储空间是有限的,且按区块链网络的设计,区块链节点存储空间无法水平扩容,在存储空间到达上限时,该区块链节点就无法使用,导致使用寿命较短。
发明内容
本发明的主要目的在于提出一种区块链状态的同步方法及装置,旨在解决现有的区块链状态的同步方式,占用存储空间过大,导致区块链节点使用寿命较短的技术问题。
为实现上述目的,本发明提供的一种区块链状态的同步方法,应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步方法包括:
在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,其中,所述预设条件为区块高度最高;
将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
优选地,所述对选定的第一节点创建状态区块的步骤之前,所述方法还包括:
确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
将所述区块链状态总容量与所述区块总容量进行比对;
在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
优选地,所述在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求的步骤之后,所述方法还包括:
统计区块链网络中包含状态区块的节点数量;
在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
优选地,所述统计区块链网络中包含状态区块的节点数量的步骤之后,所述方法还包括:
在统计的节点数量小于所述预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
优选地,所述在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块的步骤之后,所述方法还包括:
在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
此外,为实现上述目的,本发明还提出一种区块链状态的同步方法,应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步方法包括:
区块链网络中的第二节点向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
所述第二节点从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
存储获取的所述状态区块,以实现区块链状态的同步。
优选地,所述第二节点从所述第一节点中获取所述状态区块的步骤包括:
所述第二节点确定当前区块高度与所述第一节点的状态区块高度;
在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
优选地,在所述第二节点存储有区块时,所述存储获取的所述状态区块的步骤包括:
将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述存储获取的所述状态区块的步骤之后,所述方法还包括:
删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
此外,为实现上述目的,本发明还提出一种区块链状态的同步装置,应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步装置包括:
处理模块,用于在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,其中,所述预设条件为区块高度最高;
汇总模块,用于将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
响应模块,用于在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
优选地,所述装置还包括:
确定模块,用于确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
比对模块,用于将所述区块链状态总容量与所述区块总容量进行比对;
暂停模块,用于在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
优选地,所述装置还包括:
统计模块,用于统计区块链网络中包含状态区块的节点数量;
开启模块,用于在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
优选地,所述装置还包括:
撤销模块,用于在统计的节点数量小于所述预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
优选地,所述装置还包括:
删除模块,用于在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
此外,为实现上述目的,本发明还提出一种区块链状态的同步装置,应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步装置包括:
广播模块,用于向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
获取模块,用于从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
存储模块,用于存储获取的所述状态区块,以实现区块链状态的同步。
优选地,所述获取模块包括:
确定单元,用于确定当前区块高度与所述第一节点的状态区块高度;
获取单元,用于在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
同步单元,用于在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
优选地,在第二节点存储有区块时,所述存储模块,还用于将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述装置还包括:裁剪模块,用于删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
本发明提出的区块链状态的同步方法及装置,先在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,然后将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,后续在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。本方案中,由于状态区块存储有最新区块链状态数据,因此区块链网络中的其它节点只要同步并存储状态区块即可,无须再同步其它各个区块,使得区块链节点中占用的存储空间减小,从而延长了区块链节点的使用寿命。
附图说明
图1为本发明区块链状态的同步方法第一实施例的流程示意图;
图2为本发明区块链状态的同步方法第二实施例的流程示意图;
图3为图2中步骤S50的细化流程示意图;
图4为本发明区块链状态的同步装置第一实施例的功能模块示意图;
图5为本发明区块链状态的同步装置第二实施例的功能模块示意图;
图6为图5中获取模块50的细化功能模块示意图;
图7为本发明区块链网络各个节点的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:先在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,然后将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,后续在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。以解决现有的区块链状态的同步方式,占用存储空间过大,导致区块链节点使用寿命较短的问题。
本发明中涉及的专业术语包括:
区块链:即去中心化的分布式账本数据库。区块链本身其实是一串使用密码学算法所产生的数据块,每一个数据块中包含了多次区块链网络交易有效确认的信息。区块链技术起源于比特币的应用,是一种成熟技术,并非本文阐述的发明内容,本文阐述的是将区块链技术用于金融领域的资产交易业务。
P2P(Peer to Peer)对等网络:中心化网络中,交易各方通过一个中心节点代理和中转数据通信。P2P对等网络中,节点之间可以互相直接通信,构成一个对等的网状结构,减少了中心网络的开销;一个节点产生的数据,可以同时向多个节点发送广播,也可以向其他任意节点查询和获取数据。
节点:指参与到区块链网络里,进行交易和数据交换的网络节点,每个独立机构可以拥有一个到多个交易节点,每个交易节点是一组物理网络,计算机,区块链应用软件以及数据库的组合。节点和节点之间,通过TCP(Transmission Control Protocol,传输控制协议)/IP(Internet protocol,网际协议)协议互相连接。
区块链状态:定义创世块的区块序号(下称序号)为0,区块n的序号为n,定义状态n为从序号0区块执行到序号n区块的结果状态,则有:
状态1=f(状态0,区块1)
状态n=f(状态n-1,区块n)
区块链状态同步:一个P2P对等网络,网络中所有的节点均持有相同的创世块,P2P对等网络各节点中最大的区块链状态为状态n,定义P2P对等网络中某个持有状态m(m<n)的节点从P2P对等网络的其它节点同步区块,使自身从状态m变迁为状态n的过程为区块链状态同步。
区块链共识:一个可以进行区块链状态同步的P2P对等网络,P2P对等网络各节点中最大的区块链状态为状态n,定义P2P对等网络上各交易节点,使用共同的算法,对区块n+1进行确认,并使P2P对等网络中某个节点由状态n变迁为状态n+1的过程为区块链共识。
定义上文中,各交易节点,使用共同的算法,对区块n+1进行确认的算法和机制,为区块链共识机制。
区块链网络:一个可以进行区块链状态同步和区块链共识的P2P对等网络,定义一个过程:网络中各节点中持有的最大区块链状态为状态n,使P2P对等网络中某个节点通过区块链共识由状态n变迁为状态n+1,P2P对等网络的其它节点通过区块链状态同步,最终P2P对等网络的部分节点均达到状态n+1;重复上述过程,不断更新网络内节点之最大区块链状态的网络,定义为区块链网络。
本发明提供一种区块链状态的同步方法。
参照图1,图1为本发明区块链状态的同步方法第一实施例的流程示意图。
在本实施例中,所述区块链状态的同步方法应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步方法包括:
在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块;将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
在本实施例中,所述区块链网络中的节点是以P2P对等网络的形式进行通信的,即一个节点产生的数据,可以同时向多个节点发送广播,也可以向其它任意节点查询和获取数据,具体可参照图7。
需要说明的是,本实施例中的第一节点不限于一个节点,也可以是多个节点,只要是区块高度符合预设条件的节点即可,所述预设条件在下文详述。同理,第二节点也不限于一个节点,可以是多个节点,只要是需要进行区块链状态同步的节点即可。
以下是本实施例中逐步实现区块链状态同步的具体步骤:
步骤S10,在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,其中,所述预设条件为区块高度最高;
在本实施例中,先在区块链网络中选定区块高度符合预设条件的第一节点,所述预设条件优选为高度最高,并且所述第一节点是共识节点,因此,在区块链网络中选定区块高度符合预设条件的第一节点,相当于是先在区块链网络中选定区块高度最高的共识节点,将选定的节点作为第一节点。在选定第一节点之后,对选定的第一节点创建状态区块。本实施例中,创建状态区块,可以是在当前最高区块的基础上加多一级,例如当前最高区块为n,则创建的状态区块就为n+1。
在本实施例中,在选定区块高度符合预设条件的第一节点之后,且所述“对选定的第一节点创建状态区块”的步骤之前,所述方法还包括:
步骤a,确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
步骤b,将所述区块链状态总容量与所述区块总容量进行比对;
步骤c,在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
即,本实施例中,在区块链网络中选定区块高度符合预设条件的第一节点之后,确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量,然后获取该区块链状态总容量,以及所有区块(自创世块到当前区块)的总容量,再比较两者大小,若区块链状态总容量小于区块总容量的预设比例,如30%,则认为第一节点需要执行区块链数据裁剪操作,并且可以进行区块链状态同步以使各个节点同步有状态区块。需要注意的是,由于后续要进行区块链状态的同步,若是不暂停区块链网络中各个节点的记账功能,后续生成的状态区块会覆盖以往所有区块,因此在所述区块链状态总容量小于所述区块总容量的预设比例时,必须先暂停当前区块链网络的记账,避免新生成区块的信息被状态区块覆盖。其中,在基于有限节点共识机制的区块链网络中,可以同时暂停所有共识节点的记账,进行区块链数据裁剪,因此本实施例中,优选暂停的是共识节点的记账功能。
步骤S20,将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
在对选定的第一节点创建状态区块之后,再将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,其中,所述最新区块链状态数据是指第一节点中各个区块的状态数据,如账户余额信息、合约余额信息、智能合约的代码数据、智能合约的局部变量数据等等。
应当理解,本实施例将各个区块的状态数据汇总到所述状态区块中,那么该状态区块就包含了第一节点从创世块开始到此区块所有的状态数据,通过此区块可构建本地的区块链状态,后续就可正常执行区块链的交易、状态同步和共识。
进一步地,所述“将所述第一节点中的最新区块链状态数据汇总到所述状态区块中”的步骤之后,所述方法还包括:
步骤d,对所述第一节点中的状态区块进行哈希值计算,以进行状态区块网络传输的校验;
步骤e,在网络传输校验正常时,采用预设的压缩算法对所述状态区块的数据进行压缩,以便后续将压缩后的状态区块同步至其它节点。
本实施例中,所述压缩算法包括但不限于gzip(GNUzip的缩写,是一个GNU自由软件的文件压缩程序)算法。
步骤S30,在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
在本实施例中,在状态区块建立完成并汇总完状态数据之后,所述第一节点可将所述状态区块发送给另一个区块链节点,使另一个区块链的状态与该第一节点一致,具体地:所述第一节点监听区块链网络中其它各个节点广播的区块链状态的同步请求,本实施例中为了方便理解,用第二节点来表示其它节点,在监听到第二节点广播的区块链状态的同步请求时,所述第一节点回复一个响应信息,然后第二节点根据响应信息,从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
本实施例中,由于第一节点和第二节点都可以包括多个节点,因此第二节点广播信息时,可以向任一节点进行广播,第一节点回复响应信息时,可以向最先监听到广播的第二节点进行回复,同理第二节点需要获取状态区块时,可以从最先响应的第一节点中获取,以保持区块链状态同步的高效。此外,各个节点在进行状态区块同步时,会附上记账者的签名,保证状态区块同步的安全性。
进一步地,所述步骤S30之后,所述方法还包括:
步骤f,统计区块链网络中包含状态区块的节点数量;
步骤g,在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
步骤h,在统计的节点数量小于预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
即,在本实施例中,在第二节点从第一节点中获取所述状态区块,以实现区块链状态的同步之后,再统计区块链网络中包含状态区块的节点数量,然后将统计的节点数量与预设阈值进行比对,本实施例中,所述预设阈值根据实际情况进行设置,此处不做限定。
在统计的节点数量达到预设阈值时,说明当前区块链网络符合区块链共识的要求,那么将包含状态区块的各个节点中的状态区块作为创世块,并开启记账功能。也就是说,在符合区块链共识的要求的情况下,根据包含状态区块的节点进行区块链网络的共识,以使区块链网络中其它所有节点都同步有状态区块。
在统计的节点数量未达到预设阈值时,说明当前区块链网络不符合区块链共识的要求,那么此时通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。即,撤销之前的状态区块操作,以重新进行状态区块的同步。
进一步地,所述步骤S30之后,所述方法还包括:
步骤i,在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
即区块链网络中的各个节点开始记账后,区块链节点可按自身的策略,删除状态区块以前的旧区块,以达到节约存储空间的目的,其中,所述策略事先根据实际情况进行设置,此处不做限定。
可以理解,与同步历史所有区块的方法相比,本实施例所采用的方法,使用状态区块进行区块链状态同步和区块链存储,无需同步全量区块,并且,之前的各个区块也可删除,最终实现区块链裁剪,在适合的场景中,能节省区块链节点的存储容量和网络带宽,从而节省空间。。
此外,现有的区块同步方式,当区块链网络中有新节点加入时,需要从创世块开始执行区块链状态同步,同步除创世块以外的所有区块,通过执行各个区块的交易,将自身状态变迁到最新,此期间无法处理任何交易。执行过程中的开销主要来自:重新执行交易逻辑的开销、重新计算前缀树的开销,数据写入磁盘的开销,因此,还会导致效率较低。针对这种缺点,本发明所采用的方案,区块链节点可直接套用状态,无需从创世块开始重新计算所有交易,减少了计算资源消耗,避免了这种情况的发生,会提高同步的效率。
本实施例提出的区块链状态的同步方法,先在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,然后将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,后续在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。本方案中,由于状态区块存储有最新区块链状态数据,因此区块链网络中的其它节点只要同步并存储状态区块即可,无须再同步其它各个区块,使得区块链节点中占用的存储空间减小,从而延长了区块链节点的使用寿命。
本发明进一步提供一种区块链状态的同步方法。
参照图2,图2为本发明区块链状态的同步方法第二实施例的流程示意图。
在本实施例中,所述区块链状态的同步方法应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步方法包括:
区块链网络中的第二节点向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;所述第二节点从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;存储获取的所述状态区块,以实现区块链状态的同步。
以下是本实施例中逐步实现区块链状态同步的具体步骤:
步骤S40,区块链网络中的第二节点向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
步骤S50,所述第二节点从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
在本实施例中,所述第二节点可以是区块链网络中已存储有区块的节点,也可以是刚加入区块链网络的新节点,若是新节点,新节点未存储有区块。具体地,参照图3,所述步骤S50包括:
步骤S51,所述第二节点确定当前区块高度与所述第一节点的状态区块高度;
步骤S52,在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
步骤S53,在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
即,第二节点先确定当前区块高度与状态区块高度,若当前区块高度与状态区块高度都为n,则接收状态区块,并使用状态区块构建新的区块链状态,然后将新的区块链状态与本地的区块链状态进行对比,若两个状态相等,则接收状态区块并纳入本地区块链,若状态不相等,需要人工介入,进行损失和处理的评估。
此时,如果接收状态区块的节点当前区块高度小于n,则先同步本地高度至高度n这两者之间的区块,执行交易并使本地区块链状态到达高度为n的状态,再接收状态区块n,并使用状态区块构建新的区块链状态,将新的区块链状态与本地区块链状态进行对比,若两个状态相等,则接收状态区块并纳入本地区块链,若状态不相等,需要人工介入,进行损失和处理的评估。
需要说明的是,本实施例中,在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,然后再从所述第一节点中获取所述状态区块,相当于是第二节点先进行区块的同步,然后从第一节点中获取状态区块时,可以对获取的状态区块进行验证,从而提高区块同步的准确性。在其它实施例中,在当前区块高度小于状态区块高度时,第二节点也可直接从所述第一节点中获取所述状态区块,以实现区块的同步,但是就无法对获取的状态区块进行验证。因此本实施例中,在第二节点的当前区块高度与状态区块高度一致时,即可对获取的状态区块进行验证。
步骤S60,存储获取的所述状态区块,以实现区块链状态的同步。
在本实施例中,若第二节点未存储有区块,则可直接存储获取的所述状态区块,以实现区块链状态的同步。
在所述第二节点存储有区块时,所述步骤S60包括:
将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述步骤S60之后,所述方法还包括:
删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
即,在所述第二节点存储有区块时,此时,由于状态区块已经存储有区块链最新区块链状态,此时,可直接删除所述第二节点之前存储的区块,以对所述区块链进行裁剪,从而增加区块链节点的存储空间。
本实施例提出的区块链状态的同步方法,区块链网络中的第二节点先向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求,再从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据,最终存储获取的所述状态区块,以实现区块链状态的同步。本方案中,由于状态区块存储有最新区块链状态数据,因此区块链网络中的其它节点只要同步并存储状态区块即可,无须再同步各个区块,使得区块链节点中占用的存储空间减小,从而延长了区块链节点的使用寿命。
本发明提供一种区块链状态的同步装置。
参照图4,图4为本发明区块链状态的同步装置第一实施例的功能模块示意图。
需要强调的是,对本领域的技术人员来说,图4所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图4所示的区块链状态的同步装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该区块链状态的同步装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
在本实施例中,所述区块链状态的同步方法应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步装置包括:
处理模块10,用于在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块;
汇总模块20,用于将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
响应模块30,用于在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
在本实施例中,所述区块链网络中的节点是以P2P对等网络的形式进行通信的,即一个节点产生的数据,可以同时向多个节点发送广播,也可以向其它任意节点查询和获取数据,具体可参照图7。
需要说明的是,本实施例中的第一节点不限于一个节点,也可以是多个节点,只要是区块高度符合预设条件的节点即可,所述预设条件在下文详述。同理,第二节点也不限于一个节点,可以是多个节点,只要是需要进行区块链状态同步的节点即可。
以下是本实施例中逐步实现区块链状态同步的各个模块具体功能:
其中,处理模块10,用于在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块;
在本实施例中,处理模块10先在区块链网络中选定区块高度符合预设条件的第一节点,所述预设条件优选为高度最高,并且所述第一节点是共识节点,因此,在区块链网络中选定区块高度符合预设条件的第一节点,相当于是先在区块链网络中选定区块高度最高的共识节点,将选定的节点作为第一节点。在选定第一节点之后,对选定的第一节点创建状态区块。本实施例中,创建状态区块,可以是在当前最高区块的基础上加多一级,例如当前最高区块为n,则创建的状态区块就为n+1。
在本实施例中,所述装置还包括:
确定模块,用于确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
比对模块,用于将所述区块链状态总容量与所述区块总容量进行比对;
暂停模块,用于在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
即,本实施例中,在区块链网络中选定区块高度符合预设条件的第一节点之后,确定模块确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量,然后获取该区块链状态总容量,以及所有区块(自创世块到当前区块)的总容量,比对模块再比较两者大小,若区块链状态总容量小于区块总容量的预设比例,如30%,则认为第一节点需要执行区块链数据裁剪操作,并且可以进行区块链状态同步以使各个节点同步有状态区块。需要注意的是,由于后续要进行区块链状态的同步,若是不暂停区块链网络中各个节点的记账功能,后续生成的状态区块会覆盖以往所有区块,因此在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停模块先暂停当前区块链网络的记账,避免新生成区块的信息被状态区块覆盖。其中,在基于有限节点共识机制的区块链网络中,可以同时暂停所有共识节点的记账,进行区块链数据裁剪,因此本实施例中,优选暂停的是共识节点的记账功能。
其中,汇总模块20,用于将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
在对选定的第一节点创建状态区块之后,汇总模块20再将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,其中,所述最新区块链状态数据是指第一节点中各个区块的状态数据,如账户余额信息、合约余额信息、智能合约的代码数据、智能合约的局部变量数据等等。
应当理解,本实施例将各个区块的状态数据汇总到所述状态区块中,那么该状态区块就包含了第一节点从创世块开始到此区块所有的状态数据,通过此区块可构建本地的区块链状态,后续就可正常执行区块链的交易、状态同步和共识。
进一步地,所述汇总模块20“将所述第一节点中的最新区块链状态数据汇总到所述状态区块中”之后,所述装置还包括:
校验模块,用于对所述第一节点中的状态区块进行哈希值计算,以进行状态区块网络传输的校验;
压缩模块,用于在网络传输校验正常时,采用预设的压缩算法对所述状态区块的数据进行压缩,以便后续将压缩后的状态区块同步至其它节点。
本实施例中,所述压缩算法包括但不限于gzip(GNUzip的缩写,是一个GNU自由软件的文件压缩程序)算法。
其中,响应模块30,用于在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
在本实施例中,在状态区块建立完成并汇总完状态数据之后,响应模块30可将所述状态区块发送给另一个区块链节点,使另一个区块链的状态与该第一节点一致,具体地:所述第一节点监听区块链网络中其它各个节点广播的区块链状态的同步请求,本实施例中为了方便理解,用第二节点来表示其它节点,在监听到第二节点广播的区块链状态的同步请求时,所述第一节点回复一个响应信息,然后第二节点根据响应信息,从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
本实施例中,由于第一节点和第二节点都可以包括多个节点,因此第二节点广播信息时,可以向任一节点进行广播,第一节点回复响应信息时,可以向最先监听到广播的第二节点进行回复,同理第二节点需要获取状态区块时,可以从最先响应的第一节点中获取,以保持区块链状态同步的高效。此外,各个节点在进行状态区块同步时,会附上记账者的签名,保证状态区块同步的安全性。
进一步地,所述装置还包括:
统计模块,用于统计区块链网络中包含状态区块的节点数量;
开启模块,用于在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
撤销模块,用于在统计的节点数量小于预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
即,在本实施例中,在第二节点从第一节点中获取所述状态区块,以实现区块链状态的同步之后,统计模块再统计区块链网络中包含状态区块的节点数量,然后将统计的节点数量与预设阈值进行比对,本实施例中,所述预设阈值根据实际情况进行设置,此处不做限定。
在统计的节点数量达到预设阈值时,说明当前区块链网络符合区块链共识的要求,那么开启模块将包含状态区块的各个节点中的状态区块作为创世块,并开启记账功能。也就是说,在符合区块链共识的要求的情况下,根据包含状态区块的节点进行区块链网络的共识,以使区块链网络中其它所有节点都同步有状态区块。
在统计的节点数量未达到预设阈值时,说明当前区块链网络不符合区块链共识的要求,那么此时撤销模块通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。即,撤销之前的状态区块操作,以重新进行状态区块的同步。
进一步地,所述装置还包括:
删除模块,用于在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
即区块链网络中的各个节点开始记账后,区块链节点可按自身的策略,删除状态区块以前的旧区块,以达到节约存储空间的目的,其中,所述策略事先根据实际情况进行设置,此处不做限定。
可以理解,与同步历史所有区块的方法相比,本实施例所采用的方法,使用状态区块进行区块链状态同步和区块链存储,无需同步全量区块,并且,之前的各个区块也可删除,最终实现区块链裁剪,在适合的场景中,能节省区块链节点的存储容量和网络带宽,从而节省空间。
此外,现有的区块同步方式,当区块链网络中有新节点加入时,需要从创世块开始执行区块链状态同步,同步除创世块以外的所有区块,通过执行各个区块的交易,将自身状态变迁到最新,此期间无法处理任何交易。执行过程中的开销主要来自:重新执行交易逻辑的开销、重新计算前缀树的开销,数据写入磁盘的开销,因此,还会导致效率较低。针对这种缺点,本发明所采用的方案,区块链节点可直接套用状态,无需从创世块开始重新计算所有交易,减少了计算资源消耗,避免了这种情况的发生,会提高同步的效率。
本实施例提出的区块链状态的同步装置,先在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,然后将所述第一节点中的最新区块链状态数据汇总到所述状态区块中,后续在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。本方案中,由于状态区块存储有最新区块链状态数据,因此区块链网络中的其它节点只要同步并存储状态区块即可,无须再同步其它各个区块,使得区块链节点中占用的存储空间减小,从而延长了区块链节点的使用寿命。
本发明进一步提供一种区块链状态的同步装置。
参照图5,图5为本发明区块链状态的同步装置第二实施例的功能模块示意图。
在本实施例中,所述区块链状态的同步装置,应用于区块链网络中,所述区块链网络包括多个节点,所述区块链状态的同步装置包括:
广播模块40,用于向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
获取模块50,用于从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
存储模块60,用于存储获取的所述状态区块,以实现区块链状态的同步。
在本实施例中,所述第二节点可以是区块链网络中已存储有区块的节点,也可以是刚加入区块链网络的新节点,新节点未存储有区块。
在所述第二节点存储有区块时,参照图6,所述获取模块50包括:
确定单元51,用于确定当前区块高度与所述第一节点的状态区块高度;
获取单元52,用于在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
同步单元53,用于在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
即,确定单元51先确定当前区块高度与状态区块高度,若当前区块高度与状态区块高度都为n,则获取单元52接收状态区块,并使用状态区块构建新的区块链状态,然后将新的区块链状态与本地的区块链状态进行对比,若两个状态相等,则接收状态区块并纳入本地区块链,若状态不相等,需要人工介入,进行损失和处理的评估。
此时,如果接收状态区块的节点当前区块高度小于n,则同步单元53先同步本地高度至高度n这两者之间的区块,执行交易并使本地区块链状态到达高度为n的状态,再接收状态区块n,并使用状态区块构建新的区块链状态,将新的区块链状态与本地区块链状态进行对比,若两个状态相等,则接收状态区块并纳入本地区块链,若状态不相等,需要人工介入,进行损失和处理的评估。
需要说明的是,本实施例中,在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,然后再从所述第一节点中获取所述状态区块,相当于是第二节点先进行区块的同步,然后从第一节点中获取状态区块时,可以对获取的状态区块进行验证,从而提高区块同步的准确性。在其它实施例中,在当前区块高度小于状态区块高度时,第二节点也可直接从所述第一节点中获取所述状态区块,以实现区块的同步,但是就无法对获取的状态区块进行验证。因此本实施例中,在第二节点的当前区块高度与状态区块高度一致时,即可对获取的状态区块进行验证。。
在本实施例中,若第二节点未存储有区块,则可直接存储获取的所述状态区块,以实现区块链状态的同步。
在第二节点存储有区块时,所述存储模块,还用于将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述装置还包括:裁剪模块,用于删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
即,在所述第二节点存储有区块时,此时,由于状态区块已经存储有区块链最新区块链状态,此时,裁剪模块可直接删除所述第二节点之前存储的区块,以对所述区块链进行裁剪,从而增加区块链节点的存储空间。
本实施例提出的区块链状态的同步装置,区块链网络中的第二节点先向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求,再从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据,最终存储获取的所述状态区块,以实现区块链状态的同步。本方案中,由于状态区块存储有最新区块链状态数据,因此区块链网络中的其它节点只要同步并存储状态区块即可,无须再同步各个区块,使得区块链节点中占用的存储空间减小,从而延长了区块链节点的使用寿命。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (16)
1.一种区块链状态的同步方法,应用于区块链网络中,所述区块链网络包括多个节点,其特征在于,所述区块链状态的同步方法包括:
在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,其中,所述预设条件为区块高度最高;
将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
2.如权利要求1所述的区块链状态的同步方法,其特征在于,所述对选定的第一节点创建状态区块的步骤之前,所述方法还包括:
确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
将所述区块链状态总容量与所述区块总容量进行比对;
在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
3.如权利要求1所述的区块链状态的同步方法,其特征在于,所述在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求的步骤之后,所述方法还包括:
统计区块链网络中包含状态区块的节点数量;
在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
4.如权利要求3所述的区块链状态的同步方法,其特征在于,所述统计区块链网络中包含状态区块的节点数量的步骤之后,所述方法还包括:
在统计的节点数量小于所述预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
5.如权利要求1-4任一项所述的区块链状态的同步方法,其特征在于,所述在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块的步骤之后,所述方法还包括:
在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
6.一种区块链状态的同步方法,应用于区块链网络中,所述区块链网络包括多个节点,其特征在于,所述区块链状态的同步方法包括:
区块链网络中的第二节点向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
所述第二节点从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
存储获取的所述状态区块,以实现区块链状态的同步。
7.如权利要求6所述的区块链状态的同步方法,其特征在于,所述第二节点从所述第一节点中获取所述状态区块的步骤包括:
所述第二节点确定当前区块高度与所述第一节点的状态区块高度;
在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
8.如权利要求6或7所述的区块链状态的同步方法,其特征在于,在所述第二节点存储有区块时,所述存储获取的所述状态区块的步骤包括:
将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述存储获取的所述状态区块的步骤之后,所述方法还包括:
删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
9.一种区块链状态的同步装置,应用于区块链网络中,所述区块链网络包括多个节点,其特征在于,所述区块链状态的同步装置包括:
处理模块,用于在区块链网络中选定区块高度符合预设条件的第一节点,并对选定的第一节点创建状态区块,其中,所述预设条件为区块高度最高;
汇总模块,用于将所述第一节点中的最新区块链状态数据汇总到所述状态区块中;
响应模块,用于在监听到所述区块链网络中第二节点广播的区块链状态的同步请求时,响应所述区块链状态的同步请求,以供所述第二节点从所述第一节点中获取所述状态区块,以实现区块链状态的同步。
10.如权利要求9所述的区块链状态的同步装置,其特征在于,所述装置还包括:
确定模块,用于确定区块链网络中所选定的第一节点当前的区块链状态总容量,以及所述第一节点中所有区块的区块总容量;
比对模块,用于将所述区块链状态总容量与所述区块总容量进行比对;
暂停模块,用于在所述区块链状态总容量小于所述区块总容量的预设比例时,暂停区块链网络的记账功能。
11.如权利要求9所述的区块链状态的同步装置,其特征在于,所述装置还包括:
统计模块,用于统计区块链网络中包含状态区块的节点数量;
开启模块,用于在统计的节点数量达到预设阈值时,将各个节点中的状态区块作为创世块,并开启记账功能。
12.如权利要求11所述的区块链状态的同步装置,其特征在于,所述装置还包括:
撤销模块,用于在统计的节点数量小于所述预设阈值时,通过第一节点广播撤销信息,以撤销各个节点同步状态区块的操作,并将各个节点恢复为原来的区块高度,以重新进行记账。
13.如权利要求9-12任一项所述的区块链状态的同步装置,其特征在于,所述装置还包括:
删除模块,用于在区块链网络中的各个节点中,根据预设的策略删除除状态区块以外的各个区块。
14.一种区块链状态的同步装置,应用于区块链网络中,所述区块链网络包括多个节点,其特征在于,所述区块链状态的同步装置包括:
广播模块,用于向区块链网络广播区块链状态的同步请求,以供创建有状态区块的第一节点响应所述区块链状态的同步请求;
获取模块,用于从所述第一节点中获取所述状态区块,其中,所述状态区块中汇总有最新区块链状态数据;
存储模块,用于存储获取的所述状态区块,以实现区块链状态的同步。
15.如权利要求14所述的区块链状态的同步装置,其特征在于,所述获取模块包括:
确定单元,用于确定当前区块高度与所述第一节点的状态区块高度;
获取单元,用于在当前区块高度与状态区块高度一致时,从所述第一节点中获取所述状态区块;
同步单元,用于在当前区块高度小于状态区块高度时,先同步当前区块高度至状态区块高度这两者之间的区块,并从所述第一节点中获取所述状态区块。
16.如权利要求14或15所述的区块链状态的同步装置,其特征在于,在第二节点存储有区块时,所述存储模块,还用于将获取的所述状态区块接入所述第二节点的区块链中,以存储所述状态区块;
所述装置还包括:裁剪模块,用于删除所述第二节点之前存储的区块,以对所述区块链进行裁剪。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710402042.1A CN107332876B (zh) | 2017-05-31 | 2017-05-31 | 区块链状态的同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710402042.1A CN107332876B (zh) | 2017-05-31 | 2017-05-31 | 区块链状态的同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107332876A CN107332876A (zh) | 2017-11-07 |
CN107332876B true CN107332876B (zh) | 2020-05-08 |
Family
ID=60192817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710402042.1A Active CN107332876B (zh) | 2017-05-31 | 2017-05-31 | 区块链状态的同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107332876B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023896B (zh) * | 2017-12-28 | 2020-09-08 | 江苏通付盾科技有限公司 | 区块同步方法及系统 |
CN108664216B (zh) * | 2018-04-04 | 2021-06-04 | 北京小米移动软件有限公司 | 数据存储方法及装置 |
CN108600353B (zh) * | 2018-04-12 | 2021-01-12 | 北京天德科技有限公司 | 一种区块链节点的并行块同步方法 |
CN110417833B (zh) * | 2018-04-27 | 2022-05-20 | 百度在线网络技术(北京)有限公司 | 基于区块链的数据处理方法、装置及存储介质 |
CN108650267B (zh) * | 2018-05-14 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
CN108805570B (zh) * | 2018-06-01 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN108881231A (zh) * | 2018-06-21 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种集群系统中同步账户信息的方法、装置和存储介质 |
CN109120669B (zh) * | 2018-07-03 | 2021-06-04 | 泰链(厦门)科技有限公司 | 基于p2p互联网络构建区块链的方法、介质和系统 |
CN109189327B (zh) * | 2018-07-27 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 区块链数据的压缩处理方法和装置 |
CN109063109A (zh) * | 2018-07-27 | 2018-12-21 | 电子科技大学 | 一种基于以太坊的数据查询系统 |
CN109033884B (zh) * | 2018-09-10 | 2021-09-17 | 湖南智慧政务区块链科技有限公司 | 不动产业务处理方法及区块链网络 |
CN109391690A (zh) * | 2018-10-18 | 2019-02-26 | 尚维斯 | 一种单账户加入多条区块链的方法 |
CN110175178B (zh) * | 2018-11-01 | 2022-06-07 | 花瓣云科技有限公司 | 一种数据处理的方法、节点设备和系统 |
CN109714412B (zh) * | 2018-12-25 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 区块同步方法、装置、设备及计算机可读存储介质 |
CN109885258B (zh) * | 2019-02-01 | 2023-02-21 | 立旃(上海)科技有限公司 | 基于区块链的数据删除装置及方法 |
CN109933592B (zh) * | 2019-03-22 | 2021-06-01 | 杭州复杂美科技有限公司 | 数据存储方法、数据回滚方法、设备和存储介质 |
CN110011788B (zh) * | 2019-04-10 | 2020-12-25 | 深圳市网心科技有限公司 | 一种基于区块链的数据处理方法、系统及相关设备 |
CN110213368B (zh) * | 2019-05-31 | 2021-07-16 | 联想(北京)有限公司 | 数据处理方法、数据处理装置和计算机系统 |
CN110569305B (zh) * | 2019-08-27 | 2021-09-03 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110609872B (zh) * | 2019-09-20 | 2021-03-05 | 北京海益同展信息科技有限公司 | 用于同步节点数据的方法和装置 |
CN110737664B (zh) * | 2019-10-21 | 2022-11-25 | 深圳前海微众银行股份有限公司 | 一种区块链节点同步的方法及装置 |
CN111026569B (zh) * | 2019-10-25 | 2023-09-15 | 贵阳信息技术研究院(中科院软件所贵阳分部) | 一种在联盟链中修复指定区块数据的方法 |
CN110958300B (zh) * | 2019-10-30 | 2022-06-07 | 京东科技信息技术有限公司 | 一种数据的上传方法、系统、装置、电子设备和计算机可读介质 |
CN111161064A (zh) * | 2019-12-12 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
CN111159289B (zh) * | 2019-12-17 | 2024-03-01 | 深圳前海微众银行股份有限公司 | 一种区块同步的方法及装置 |
CN111371557B (zh) * | 2020-02-26 | 2024-01-23 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备及介质 |
CN111400277B (zh) * | 2020-03-06 | 2020-10-16 | 安徽中科智链信息科技有限公司 | 区块链健康状态评估方法及区块链动态锚定系统和方法 |
CN111444203B (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种同步处理方法、装置、设备及介质 |
CN111444204B (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种同步处理方法、装置、设备及介质 |
CN111694852A (zh) * | 2020-05-28 | 2020-09-22 | 平安科技(深圳)有限公司 | 基于分布式事务的数据处理方法、装置、终端及存储介质 |
CN111724148B (zh) * | 2020-06-22 | 2024-03-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易广播方法及节点 |
CN111475501B (zh) * | 2020-06-24 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 区块链网络的数据清理方法及装置 |
CN111796845B (zh) * | 2020-07-03 | 2022-05-24 | 杭州复杂美科技有限公司 | 数据库升级方法、状态数据查询方法、设备和存储介质 |
CN112383610B (zh) * | 2020-11-11 | 2022-12-09 | 上海保险交易所股份有限公司 | 区块链状态数据的同步处理方法及系统 |
CN112287031B (zh) * | 2020-12-15 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 区块链系统的数据同步方法、装置、可读介质及电子设备 |
CN112799879B (zh) * | 2021-01-15 | 2024-04-05 | 北京百度网讯科技有限公司 | 节点的故障处理方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826073B (zh) * | 2009-03-06 | 2013-08-28 | 华为技术有限公司 | 分布式数据库同步方法、设备及系统 |
CN102088489B (zh) * | 2010-12-31 | 2013-05-22 | 北京理工大学 | 一种分布式数据同步系统及方法 |
CN106157142A (zh) * | 2016-06-30 | 2016-11-23 | 惠众商务顾问(北京)有限公司 | 一种区块链共识及同步方法、系统和装置 |
CN106339639A (zh) * | 2016-08-30 | 2017-01-18 | 弗洛格(武汉)信息科技有限公司 | 基于区块链的学分成绩管理方法及系统 |
CN106570757B (zh) * | 2016-11-07 | 2020-12-04 | 北京金股链科技有限公司 | 一种基于区块链的众筹方法、装置及系统 |
-
2017
- 2017-05-31 CN CN201710402042.1A patent/CN107332876B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107332876A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN108881354B (zh) | 一种推送信息存储方法、装置、服务器和计算机存储介质 | |
CN110995513B (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
CN108062243B (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN101009516A (zh) | 一种进行数据同步的方法及系统 | |
CN103780679A (zh) | 基于http协议的长延时远程调用方法 | |
CN110336848B (zh) | 一种访问请求的调度方法及调度系统、设备 | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
CN108055157B (zh) | 一种服务节点的获取方法及装置 | |
CN111262822B (zh) | 文件存储方法、装置、区块链节点和系统 | |
CN111885133A (zh) | 基于区块链的数据处理方法、装置及计算机存储介质 | |
CN111447069B (zh) | 一种基于区块链的低频访问数据处理方法 | |
CN113064707B (zh) | 一种消息处理方法、装置及设备 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN111708743A (zh) | 文件存储管理方法、文件管理客户端及文件存储管理系统 | |
CN111984735A (zh) | 一种数据归档方法、装置、电子设备和存储介质 | |
CN111460038A (zh) | 一种数据准实时同步方法及装置 | |
CN111309696A (zh) | 日志处理方法及装置、电子设备、可读介质 | |
EP3998754B1 (en) | Data distribution method, storage server and subscription server | |
CN117176796A (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN104079663A (zh) | 分布式实时同步网络系统及其通告数据的方法 | |
CN110888892A (zh) | 一种区块同步方法、装置及存储介质 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
CN113760519A (zh) | 分布式事务处理方法、装置、系统和电子设备 | |
CN104869056A (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 |