CN113315801B - 存储区块链数据的方法和系统 - Google Patents
存储区块链数据的方法和系统 Download PDFInfo
- Publication number
- CN113315801B CN113315801B CN202010513437.0A CN202010513437A CN113315801B CN 113315801 B CN113315801 B CN 113315801B CN 202010513437 A CN202010513437 A CN 202010513437A CN 113315801 B CN113315801 B CN 113315801B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- cloud
- blockchain
- full node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000001360 synchronised effect Effects 0.000 claims description 19
- 238000012795 verification Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000010076 replication Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Abstract
本申请公开了一种存储区块链数据的方法和系统。其中,该方法包括:获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。本申请解决了现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
Description
技术领域
本申请涉及区块链领域,具体而言,涉及一种存储区块链数据的方法和系统。
背景技术
区块链网络是指执行给定区块链P2P(Peer to Peer,对等网络)协议的节点集,是一种去中心化的网络结构。按照区块链网络(P2P网络)节点的功能划分,有一类节点存储了所有的区块链账本信息,能够独立校验区块链上的所有交易并实时更新区块(交易)数据,这一类节点被称之为全节点。因为全节点需要存储所有的区块(交易)数据,因此需要很大的存储空间,并且随着时间的推移,新的区块(交易)数据源源不断的产生,所需要的磁盘存储空间也会越来越大。
传统的全节点将区块数据(所有的账单和交易)按照一定的文件命名规则和存储结构以本地磁盘文件的形式存储于本地磁盘上面,然后利用leveldb(本地磁盘数据库)来存储区块和交易账单的各种索引信息(每个区块和交易所在的文件名以及在文件中的偏移位置),用于对区块和账单数据的快速检索。
但是,传统的全节点技术实现方式存在如下缺点:本地磁盘空间有限,总有一天磁盘空间会满,无法存储新产生的区块(交易)数据;其次本地磁盘文件存储可用性、可靠性不高,发生磁盘硬件故障,会造成数据丢失,导致该全节点失效;全节点需要向其他节点提供区块同步和检索服务,需要很大的机器运行性能、带宽资源和磁盘读写性能,对于运行在单机系统上面的全节点,存在性能瓶颈,其向外提供的服务能力有限。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种存储区块链数据的方法和系统,以至少解决现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
根据本申请实施例的一个方面,提供了一种存储区块链数据的方法,包括:获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
根据本申请实施例的另一方面,还提供了一种存储区块链数据的方法,包括:将部署在云端的云端全节点部署在对象存储系统中,其中,对象存储系统中的存储桶用于存储区块链中每个区块的数据,区块链为由多个区块组成的链式结构,每个区块分别对应存储桶中一个对象。
根据本申请实施例的另一方面,还提供了一种存储区块链数据的系统,包括:部署在云端的云端全节点,用于获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;第一存储桶,用于存储区块链中每个区块的数据,其中,每个区块分别对应第一存储桶中一个对象。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的存储区块链数据的方法。
根据本申请实施例的另一方面,还提供了一种计算设备,包括:存储器和处理器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述的存储区块链数据的方法。
在本申请实施例中,通过将云端全节点部署在对象存储系统中,可以充分发挥云端机器集群的优势,另外,通过将区块数据存储在对象存储系统中,利用对象存储系统具有多副本、无限存储容量,数据可用性较高的特性,从而达到了提高区块链数据同步、交易检索和验证服务的性能,提升区块数据的存储性能的技术效果,进而解决了现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现存储区块链数据的方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种存储区块链数据的方法的流程图;
图3是根据本申请实施例的另一种存储区块链数据的方法的流程图;
图4是根据本申请实施例的一种可选的存储区块链数据的方法的流程图;
图5是根据本申请实施例的一种存储区块链数据的装置的示意图;
图6是根据本申请实施例的另一种存储区块链数据的装置的示意图;
图7是根据本申请实施例的一种存储区块链数据的系统的示意图;以及
图8是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
传统的全节点技术具体实现如下:
普通磁盘文件用于存储区块链中的区块数据,文件名类似blk00000.dat,blk00001.dat等格式,文件名后缀中的数字序号依次递增,每个文件满128M后就会切换到新的数据文件,数据文件里面依次存储了区块序列化后的数据。
leveldb数据库存储了区块和交易的索引元数据。区块的索引元数据格式如<blockHash,xxxxx+npos>格式,blockHash为每个区块的hash值,其中xxxxx为dat文件序号,npos为区块写入dat文件的起始位置;交易的元数据格式如<txHash,xxxxx+npos+nTxOffset>格式,其中txHash为交易的唯一hash值,xxxxx、npos和上面的描述一致,nTxOffset为写入dat文件的起始位置(基于npos位置);上述所有元数据都将写入leveldb数据库中,其中hash值为key,后面的位置信息为value。当要读取某个区块数据或者交易数据时,先通过hash值可以找到数据所在的文件以及在文件中的偏移位置,然后读取指定位置的数据即可。
但是,上述方案存在如下缺点:本地磁盘存储空间有限;本地磁盘文件存储可用性、可靠性不高;单机系统的带宽、磁盘IO性能有限。
为了解决上述问题,本申请提供了一种存储区块链数据的方法,可以使用对象存储系统来存储区块数据,同时使用运行于云端的云端全节点服务来向外提供高性能的区块检索和账单同步服务。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
对象存储系统:是key、value的一种存储结构,每个对象在一个被称作存储桶(bucket)的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
object:对象存储系统中的对象,可以理解为一个文件。
bucket:对象存储系统中的存储桶,为存储object的容器。
全节点(full blockchain node):是区块链节点分类中的一种,拥有完整区块链账本的节点,需要同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的同步和验证
区块(Block):区块是区块链中的一个节点,区块链是由一个一个区块组成的链式结构;每个特定区块的块头都具有唯一的识别符,即头哈希值,也包含了其前面一个区块节点的哈希值;每个区块都包含了若干个交易(transaction)信息。
交易(transaction):区块链中的transaction(交易)就是一批输入和输出的集合,可以理解为一笔转账记录。
Leveldb:key/value存储引擎,是一个运行于本地磁盘的数据库。
实施例1
根据本申请实施例,提供了一种存储区块链数据的方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。图1示出了一种用于实现存储区块链数据的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的存储区块链数据的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的存储区块链数据的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的存储区块链数据的方法。图2是根据本申请实施例的一种存储区块链数据的方法的流程图。如图2所示,该方法包括如下步骤:
步骤S202,获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;
上述步骤中每个区块的数据可以是存储在本地全节点的所有区块数据,本地全节点是指运行在单机系统上的全节点,其中,全节点(full blockchain node)是拥有完整区块链账本的节点,全节点需要同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的同步和验证。
步骤S204,将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
上述步骤中的对象存储系统可以是部署在云端的对象存储系统,该系统是一个key/value数据库,而不是普通的磁盘文件存储。对于存储桶bucket,同一个bucket下面的object的key不能相同,但不同bucket下面的object的key可以相同,同一个object只能属于唯一的一个bucket;不同的用户可以创建不同的bucket,每个bucket的名字不同,这样不同的用户的数据就可以区分开来。
可选地,上述步骤中区块的数据包括:区块的唯一标识信息、区块的区块头数据和区块中区块体的数据,其中,区块的唯一标识信息用于表征对应对象的关键词key,采用对应对象的value值来表征区块中区块体的数据,区块的区块头数据为对应对象的元数据。
在一种可选的实施例中,可以利用对象存储系统的bucket来存储区块链中的区块数据,该bucket可以命名为block_data_bucket。每一个区块对应bucket中的一个object,可以用区块的唯一标识hash值作为object的key,object的value为区块中的区块体(交易)数据,object的meta数据(元数据)来存储区块的区块头数据。每个区块的存储信息如下表1所示。
表1
基于本申请上述实施例提供的方案,在获取到区块链中每个区块的数据之后,可以将区块链中每个区块的数据存储至对象存储系统中的存储桶,从而实现存储区块链数据的目的。容易注意到的是,区块数据存储在对象存储系统中,利用对象存储系统具有多副本、无限存储容量,数据可用性达到较高的特性,从而达到了提升区块数据的存储性能的技术效果,进而解决了现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
在本申请上述实施例中,使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
上述步骤中的对象可以是指区块中存储的交易,对象标识可以是指交易的唯一hash值,但不仅限于此。
在一种可选的实施例中,除了存储区块数据的bucket之外,还需要另一个bucket来存储和交易相关的位置信息,该bucket命名为tx_index_bucket,该bucket的每一个object对应一个交易的描述信息,object的key为交易的唯一hash值,object的value为空,object的元数据存储和交易有关的位置信息,通过这些位置信息可以找到交易的数据,这些元数据如表2所示:
表2
在获取到上述的bucket(tx_index_bucket)信息之后,可以通过给定任意一个交易的hash值,即可确定其所在的区块hash值,然后根据区块的hash值以及该交易在区块中的偏移位置和长度信息,可以直接读取出该交易的数据。
在本申请上述实施例中,采用溯源向上方式查询区块链上每个区块的数据。
在一种可选的实施例中,由于object的元数据存储有父区块的hash值,因此可以找到该区块的父区块(上一个区块)的数据,依次类推,可以根据指定的区块hash值,向上溯源找到区块链上每一个区块的数据,直至创世区块(第一个区块)为止。
在本申请上述实施例中,对象存储系统的存储桶中的数据允许进行跨区域迁移或复制,其中,当对象存储系统中的第一区域产生新的区块数据时,允许使用同步通道,将新的区块数据同步到其他区域。
在一种可选的实施例中,可以利用对象存储系统中的跨区域复制功能,将新的区块数据自动同步到全球几十个region(可用区),进一步的提升新区块在整个区块链网络中的同步速度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种存储区块链数据的方法。
图3是根据本申请实施例的另一种存储区块链数据的方法的流程图。如图3所示,该方法包括如下步骤:
步骤S302,将部署在云端的云端全节点部署在对象存储系统中,其中,对象存储系统中的存储桶用于存储区块链中每个区块的数据,区块链为由多个区块组成的链式结构,每个区块分别对应存储桶中一个对象。
上述步骤中的云端全节点(cloud_full_node)可以是指部署在云端的全节点,每一个云端region都可以集群化部署,甚至可以将全球几十个region都部署上,这样全球就有几十个集群化的全节点服务,从而可以向外提供性能强大、运行稳定的区块或者交易的查询、验证和同步服务。
上述步骤中的对象存储系统可以是部署在云端的对象存储系统。上述步骤中每个区块的数据可以是存储在本地全节点(local_full_node)的所有区块数据。
在一种可选的实施例中,可以将全节点服务部署在云端的对象存储系统服务中,向外提供区块和交易的检索、验证和同步服务。同时,可以利用对象存储系统的bucket来存储区块链中的区块数据,每一个区块对应bucket中的一个object。
基于本申请上述实施例提供的方案,将部署在云端的云端全节点部署在对象存储系统中,从而实现存储区块链数据的目的。容易注意到的是,云端全节点部署在对象存储系统中,可以充分发挥云端机器集群的优势,另外,区块数据存储在对象存储系统中,利用对象存储系统具有多副本、无限存储容量,数据可用性较高的特性,从而达到了提高区块链数据同步、交易检索和验证服务的性能,提升区块数据的存储性能的技术效果,进而解决了现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
在本申请上述实施例中,在启动云端全节点的服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到云端全节点的初始数据,其中,本地全节点为运行在单机系统上的全节点。
在一种可选的实施例中,云端全节点服务刚启动时,本身没有任何区块数据,需要将区块数据从其他本地全节点同步过来。
在本申请上述实施例中,在启动云端全节点的服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到云端全节点的初始数据,包括:启动云端全节点的服务,向本地全节点发送请求;云端全节点接收到本地全节点基于请求,返回的指定范围内的区块头信息;云端全节点基于指定范围内的区块头信息,从本地全节点下载到本地全节点指向的区块,以及该区块的数据;将区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选地,上述步骤中区块的数据包括:区块的唯一标识信息、区块的区块头数据和区块中区块体的数据,其中,区块的唯一标识信息用于表征对应对象的关键词key,采用对应对象的value值来表征区块中区块体的数据,区块的区块头数据为对应对象的元数据。
在一种可选的实施例中,云端全节点可以向本地全节点发送请求,请求获取指定范围内的区块头信息,本地全节点向云端全节点返回指定的区块头信息。在获取到区块头信息之后,云端全节点可以向本地全节点发送携带区块头信息的请求,向本地全节点请求下载具体的区块数据,本地全节点向云端全节点返回具体的区块数据。在获取到每个区块的数据之后,可以将区块的数据写入到block_data_bucket中,每个区块对应一个object,key为区块的唯一hash值,value为交易的数据,object的meta信息存储区块头信息。
在本申请上述实施例中,使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
在一种可选的实施例中,云端全节点在存储区块的数据之后,可以进一步解析区块中的交易信息,将解析出的信息写入到tx_index_bucket中,每个交易对应一个object,其中key为交易的唯一hash值,value为空,object的meta信息存储交易在区块中的偏移位置和长度信息。
在本申请上述实施例中,在云端全节点获取到本地全节点上的所有区块数据后,允许向其他区块链全节点或者客户端同步区块数据。
在一种可选的实施例中,云端全节点在获取到所有区块数据之后,可以向其他区块链全节点或者其他区块链角色等客户端提供区块数据同步服务。
在本申请上述实施例中,在云端全节点获取到本地全节点上的所有区块数据后,允许校验其他区块链全节点或者客户端上同步的区块数据。
在一种可选的实施例中,云端全节点在获取到所有区块数据之后,可以向其他区块链全节点或者其他区块链角色等客户端提供交易验证服务。
在本申请上述实施例中,对象存储系统的存储桶中的数据允许进行跨区域迁移或复制,其中,当对象存储系统中的第一区域产生新的区块数据时,允许使用同步通道,将新的区块数据同步到其他区域。
在一种可选的实施例中,云端对象存储系统具有跨区域数据复制服务,可以自动的将bucket中的数据从一个region复制到另外一个region,实现通过跨区域复制服务使用内部的高速同步通道,迅速的将新的区块数据同步到全球的其他几十个可用区。
下面结合图4对本申请一种优选的实施例进行详细说明。图4示出了对象存储系统中云端全节点模块和其他模块之间的数据交互,其中,实线箭头表示云端全节点从其他本地全节点获取数据的流程,虚线箭头表示云端全节点向外提供区块或者交易数据同步的流程。
在新的区块数据产生之后,可以将新的区块数据通过区块链网络进行全网广播,区块数据存储在本地全节点中,并保持该区块数据实时更新和同步。云端全节点服务刚启动时,本身没有任何区块数据,需要将区块数据从其他本地全节点同步过来。
如图4所示,整个实现流程如下:
步骤S41,云端全节点向本地全节点发送GETHEADERS协议消息,请求获取指定范围内的区块头信息;
步骤S42,本地全节点向云端全节点返回指定的区块头信息,既HEADERS协议消息,需要说明的是,最多一次能返回2000个区块头;
步骤S43,云端全节点向本地全节点发送GETDATA协议消息,这条消息里面有一批区块头信息,向本地全节点请求下载具体的区块信息;
步骤S44,本地全节点向云端全节点返回BLOCKS消息,里面包括一批具体的区块信息;
步骤S45,云端全节点解析BLOCKS消息,获取每个区块的信息,将区块的信息写入到block_data_bucket中,每个区块对应一个object,key为区块的唯一hash值,value为交易的数据,object的meta信息存储区块头信息;
步骤S46,云端全节点继续解析区块中的交易信息,将解析出的信息写入到tx_index_bucket中,每个交易对应一个object,其中key为交易的唯一hash值,value为空,object的meta信息存储交易在区块中的偏移位置和长度信息;
需要说明的是,通过重复执行上述步骤S41至步骤S46,直至将本地全节点的历史区块数据全都写入到对象存储系统中的两个bucket中,以后云端全节点也可以监听区块链网络中的新区块产生的广播消息,一旦监听到有新的区块数据产生,可以实时同步新的区块数据,将其写入到对象存储系统中的指定bucket中。
云端全节点存储了所有区块数据后,可以向其他区块链全节点或者其他区块链等客户端提供区块数据同步服务,或者交易验证服务。图4中步骤S47至步骤S410示出了其他区块链节点或者其他客户端从云端全节点获取区块数据的流程,分别使用的仍然是GETHEADERS、HEADERS、GETDATA、BLOCKS消息,在此不做赘述。
步骤S411,云端全节点可以自定义http(超文本传输协议,Hyper Text TransportProtocol)协议(不再使用原有的区块链P2P协议),通过http协议向外提供区块数据同步、交易验证等API(Application Programming Interface,应用程序编程接口)接口,任何需要区块同步服务、交易验证服务的客户端可以直接通过调用标准的http协议的API获取服务,而不是使用原有的P2P协议,这样可以极大降低用户的使用难度,方便区块链应用程序的开发。
步骤S412,云端对象存储系统具有跨区域数据复制服务,可以自动的将bucket中的数据从一个region复制到另外一个region。当主region中有了新的区块数据后,可以通过跨区域复制服务使用内部的高速同步通道,迅速的将新的区块数据同步到全球的其他几十个可用区,由于每个可用区都是数十台甚至数百台机器的集群化服务,可以向外提供非常强大的区块数据同步服务,会极大的加速新的区块数据再整个区块链网络中的同步,让每个区块链中的节点都能迅速的达到最新的区块状态,从而进一步的提升区块链网络中的对象处理速度,提升区块链对象处理效率,为社会创造价值。
需要说明的是,上述步骤S41至步骤S44,以及步骤S47至步骤S410所使用的协议是区块链网络中定义好的P2P协议。上述步骤S411至步骤S412所使用的协议是云端存储系统自定义的http消息。
通过上述方案,使用对象存储系统存储区块链中的区块数据,而不是使用原有的磁盘文件,数据具有更高的可用性;在云端部署区块链全节点服务,不影响原有的对象存储系统服务,对原有对象存储服务没有影响,并且可以充分利用云端集群、带宽优势,向外提供性能更强大的区块数据同步服务、交易验证服务,同时具有更高的稳定性,以及服务可用性;充分利用对象存储系统中的跨域区复制服务,将区块数据利用内部的高速通道迅速同步到全球的其他可用区,进一步促进新区块数据在整个区块链网络中的数据同步;自定义http接口,区块链客户端可以直接使用http协议的API接口进行开发,而不是使用原有的P2P协议,极大降低了区块链开发者的使用门槛。
实施例3
根据本申请实施例,还提供了一种用于实施上述存储区块链数据的方法的存储区块链数据的装置,如图5所示,该装置500包括:获取模块502和存储模块504。
其中,获取模块502用于获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;存储模块504用于将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
此处需要说明的是,上述获取模块502和存储模块504对应于实施例1中的步骤S202至步骤S204,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,存储模块还用于使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
在本申请上述实施例中,该装置还包括:查询模块。
其中,查询模块用于采用溯源向上方式查询区块链上每个区块的数据。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例4
根据本申请实施例,还提供了一种用于实施上述存储区块链数据的方法的存储区块链数据的装置,如图6所示,该装置600包括:部署模块602。
其中,部署模块602用于将部署在云端的云端全节点部署在对象存储系统中,其中,对象存储系统中的存储桶用于存储区块链中每个区块的数据,区块链为由多个区块组成的链式结构,每个区块分别对应存储桶中一个对象。
在本申请上述实施例中,该装置还包括:存储模块。
其中,存储模块用于在启动云端全节点的服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到云端全节点的初始数据,其中,本地全节点为运行在单机系统上的全节点。
在本申请上述实施例中,存储模块包括:发送单元、接收单元、下载单元和存储单元。
其中,发送单元用于启动云端全节点的服务,向本地全节点发送请求;接收单元用于通过云端全节点接收到本地全节点基于请求,返回的指定范围内的区块头信息;下载单元用于通过云端全节点基于指定范围内的区块头信息,从本地全节点下载到本地全节点指向的区块,以及该区块的数据;存储单元用于将区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
在本申请上述实施例中,存储模块还用于使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
在本申请上述实施例中,该装置还包括:同步模块。
其中,同步模块用于在云端全节点获取到本地全节点上的所有区块数据后,允许向其他区块链全节点或者客户端同步区块数据。
在本申请上述实施例中,该装置还包括:校验模块。
其中,校验模块用于在云端全节点获取到本地全节点上的所有区块数据后,允许校验其他区块链全节点或者客户端上同步的区块数据。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例2提供的方案以及应用场景、实施过程相同,但不仅限于实施例2所提供的方案。
实施例5
根据本申请实施例,还提供了一种存储区块链数据的系统。
图7是根据本申请实施例的一种存储区块链数据的系统的示意图。如图7所示,该系统70包括:部署在云端的云端全节点72和第一存储桶74。
其中,部署在云端的云端全节点72用于获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;第一存储桶74用于存储区块链中每个区块的数据,其中,每个区块分别对应第一存储桶中一个对象。
上述的存储区块链数据的系统可以是部署在云端的对象存储系统,例如,如图4所示的云端对象存储系统,上述的第一存储桶可以是云端对象存储系统中用来存储区块链中区块数据的block,例如,如图4所示的block_data_bucket。
上述步骤中的云端全节点(cloud_full_node)可以是指部署在云端的全节点,每一个云端region都可以集群化部署,甚至可以将全球几十个region都部署上,这样全球就有几十个集群化的全节点服务,从而可以向外提供性能强大、运行稳定的区块或者交易的查询、验证和同步服务。上述步骤中每个区块的数据可以是存储在本地全节点(local_full_node)的所有区块数据。
在本申请上述实施例中,云端全节点还用于在启动服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到初始数据,其中,本地全节点为运行在单机系统上的全节点。
在本申请上述实施例中,云端全节点还用于启动服务,向本地全节点发送请求;接收到本地全节点基于请求,返回的指定范围内的区块头信息;基于指定范围内的区块头信息,从本地全节点下载到本地全节点指向的区块,以及该区块的数据;将区块的数据存储至第一存储桶。
可选地,上述步骤中区块的数据包括:区块的唯一标识信息、区块的区块头数据和区块中区块体的数据,其中,区块的唯一标识信息用于表征对应对象的关键词key,采用对应对象的value值来表征区块中区块体的数据,区块的区块头数据为对应对象的元数据。
在本申请上述实施例中,如图7所示,该系统还包括:第二存储桶76。
其中,第二存储桶76用于存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
上述的第二存储桶可以是云端对象存储系统中用来存储和交易相关的位置信息的block,例如,如图4所示的tx_index_bucket。
在本申请上述实施例中,如图7所示,该系统还包括:第一接口78。
其中,第一接口78用于在云端全节点获取到本地全节点上的所有区块数据后,向其他区块链全节点或者客户端同步区块数据。
上述的第一接口可以是云端对象存储系统中向外提供区块数据同步、交易验证等API(Application Programming Interface)接口,该接口通过http协议向外提供服务,而不适用原有的P2P协议。任何需要区块同步服务、交易验证服务的客户端可以直接通过该接口获取云端对象存储服务(Oss server)。
在本申请上述实施例中,云端全节点还用于在获取到本地全节点上的所有区块数据后,校验其他区块链全节点或者客户端上同步的区块数据。
在本申请上述实施例中,第一存储桶中的数据允许进行跨区域迁移或复制,其中,如图7所示,该系统还包括:第二接口710。
其中,第二接口710用于当系统中的第一区域产生新的区块数据时,使用同步通道,将新的区块数据同步到其他区域。
上述的第二接口可以是云端对象存储系统中向外提供如图4所示的跨区域数据复制服务的接口。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例2提供的方案以及应用场景、实施过程相同,但不仅限于实施例2所提供的方案。
实施例6
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行存储区块链数据的方法中以下步骤的程序代码:获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选地,图8是根据本申请实施例的一种计算机终端的结构框图。如图8所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器802、以及存储器804。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的存储区块链数据的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的存储区块链数据的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选的,上述处理器还可以执行如下步骤的程序代码:使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
可选的,上述处理器还可以执行如下步骤的程序代码:采用溯源向上方式查询区块链上每个区块的数据。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:将部署在云端的云端全节点部署在对象存储系统中,其中,对象存储系统中的存储桶用于存储区块链中每个区块的数据,区块链为由多个区块组成的链式结构,每个区块分别对应存储桶中一个对象。
可选的,上述处理器还可以执行如下步骤的程序代码:在启动云端全节点的服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到云端全节点的初始数据,其中,本地全节点为运行在单机系统上的全节点。
可选的,上述处理器还可以执行如下步骤的程序代码:启动云端全节点的服务,向本地全节点发送请求;云端全节点接收到本地全节点基于请求,返回的指定范围内的区块头信息;云端全节点基于指定范围内的区块头信息,从本地全节点下载到本地全节点指向的区块,以及该区块的数据;将区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选的,上述处理器还可以执行如下步骤的程序代码:使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
可选的,上述处理器还可以执行如下步骤的程序代码:在云端全节点获取到本地全节点上的所有区块数据后,允许向其他区块链全节点或者客户端同步区块数据。
可选的,上述处理器还可以执行如下步骤的程序代码:在云端全节点获取到本地全节点上的所有区块数据后,允许校验其他区块链全节点或者客户端上同步的区块数据。
采用本申请实施例,提供了一种存储区块链数据的方案。通过将云端全节点部署在对象存储系统中,可以充分发挥云端机器集群的优势,另外,通过将区块数据存储在对象存储系统中,利用对象存储系统具有多副本、无限存储容量,数据可用性较高的特性,从而达到了提高区块链数据同步、交易检索和验证服务的性能,提升区块数据的存储性能的技术效果,进而解决了现有技术中的全节点是将区块数据按照一定的文件命名规则和存储结构,以本地磁盘文件的形式存储于本地磁盘,导致存储性能差的技术问题的技术问题。
本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述计算机可读存储介质可以用于保存上述实施例所提供的区块链数据的方法所执行的程序代码。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:获取区块链中每个区块的数据,其中,区块链为由多个区块组成的链式结构;将区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:采用溯源向上方式查询区块链上每个区块的数据。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:将部署在云端的云端全节点部署在对象存储系统中,其中,对象存储系统中的存储桶用于存储区块链中每个区块的数据,区块链为由多个区块组成的链式结构,每个区块分别对应存储桶中一个对象。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在启动云端全节点的服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到云端全节点的初始数据,其中,本地全节点为运行在单机系统上的全节点。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:启动云端全节点的服务,向本地全节点发送请求;云端全节点接收到本地全节点基于请求,返回的指定范围内的区块头信息;云端全节点基于指定范围内的区块头信息,从本地全节点下载到本地全节点指向的区块,以及该区块的数据;将区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应存储桶中一个对象。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:使用对象存储系统中的另一存储桶来存储与区块体相关的位置信息,以及区块体中任意一个或多个对象的对象标识,其中,位置信息用于指向区块体中任意一个或多个对象在所属区块体中的偏移位置。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在云端全节点获取到本地全节点上的所有区块数据后,允许向其他区块链全节点或者客户端同步区块数据。
可选的,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在云端全节点获取到本地全节点上的所有区块数据后,允许校验其他区块链全节点或者客户端上同步的区块数据。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (15)
1.一种存储区块链数据的方法,包括:
获取区块链中每个区块的数据,其中,所述区块链为由多个区块组成的链式结构;
将所述区块链中每个区块的数据存储至对象存储系统中的存储桶,其中,每个区块分别对应所述存储桶中一个对象;
其中,所述区块体相关的位置信息存储至所述对象存储系统中的另一存储桶中,所述位置信息用于指向所述区块体中任意一个或多个对象在所属区块体中的偏移位置。
2.根据权利要求1所述的方法,其中,所述区块的数据包括:区块的唯一标识信息、区块的区块头数据和区块中区块体的数据,其中,所述区块的唯一标识信息用于表征对应对象的关键词key,采用对应对象的value值来表征所述区块中区块体的数据,所述区块的区块头数据为对应对象的元数据。
3.根据权利要求1或2所述的方法,其中,使用所述另一存储桶来存储所述区块体中任意一个或多个对象的对象标识。
4.根据权利要求3所述的方法,其中,采用溯源向上方式查询所述区块链上每个区块的数据。
5.根据权利要求1所述的方法,其中,所述对象存储系统的存储桶中的数据允许进行跨区域迁移或复制,其中,当所述对象存储系统中的第一区域产生新的区块数据时,允许使用同步通道,将所述新的区块数据同步到其他区域。
6.一种存储区块链数据的系统,包括:
部署在云端的云端全节点,用于获取区块链中每个区块的数据,其中,所述区块链为由多个区块组成的链式结构;
第一存储桶,用于存储区块链中每个区块的数据,其中,每个区块分别对应所述第一存储桶中一个对象;
第二存储桶,用于存储与所述区块体相关的位置信息,其中,所述位置信息用于指向所述区块体中任意一个或多个对象在所属区块体中的偏移位置。
7.根据权利要求6所述的系统,其中,所述云端全节点还用于在启动服务时,将区块链网络中的至少一个本地全节点上保存的区块数据同步到云端,得到初始数据,其中,本地全节点为运行在单机系统上的全节点。
8.根据权利要求7所述的系统,其中,所述云端全节点还用于启动服务,向所述本地全节点发送请求;接收到所述本地全节点基于所述请求,返回的指定范围内的区块头信息;基于所述指定范围内的区块头信息,从所述本地全节点下载到所述本地全节点指向的区块,以及该区块的数据;将所述区块的数据存储至所述第一存储桶。
9.根据权利要求8所述的系统,其中,所述区块的数据还包括:区块的唯一标识信息、区块的区块头数据和区块中区块体的数据,其中,所述区块的唯一标识信息用于表征对应对象的关键词key,采用对应对象的value值来表征所述区块中区块体的数据,所述区块的区块头数据为对应对象的元数据。
10.根据权利要求8或9所述的系统,其中,所述第二存储桶,还用于存储所述区块体中任意一个或多个对象的对象标识。
11.根据权利要求8所述的系统,其中,所述系统还包括:
第一接口,用于在所述云端全节点获取到所述本地全节点上的所有区块数据后,向其他区块链全节点或者客户端同步所述区块数据。
12.根据权利要求8所述的系统,其中,所述云端全节点还用于在获取到所述本地全节点上的所有区块数据后,校验其他区块链全节点或者客户端上同步的所述区块数据。
13.根据权利要求8所述的系统,其中,所述第一存储桶中的数据允许进行跨区域迁移或复制,其中,所述系统还包括:
第二接口,用于当所述系统中的第一区域产生新的区块数据时,使用同步通道,将所述新的区块数据同步到其他区域。
14.一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至5中任意一项所述的存储区块链数据的方法。
15.一种计算设备,包括:存储器和处理器,所述处理器用于运行所述存储器中存储的程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的存储区块链数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513437.0A CN113315801B (zh) | 2020-06-08 | 存储区块链数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010513437.0A CN113315801B (zh) | 2020-06-08 | 存储区块链数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315801A CN113315801A (zh) | 2021-08-27 |
CN113315801B true CN113315801B (zh) | 2024-06-04 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562775A (zh) * | 2017-07-14 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN108491290A (zh) * | 2018-03-28 | 2018-09-04 | 新华三技术有限公司 | 一种数据写入方法及装置 |
CN108920966A (zh) * | 2018-06-25 | 2018-11-30 | 北京奇虎科技有限公司 | 一种区块链存证、取证方法及装置 |
US10318491B1 (en) * | 2015-03-31 | 2019-06-11 | EMC IP Holding Company LLC | Object metadata query with distributed processing systems |
CN110019101A (zh) * | 2018-07-23 | 2019-07-16 | 浪潮软件集团有限公司 | 一种区块链对象的外部存储方法及系统 |
CN110096220A (zh) * | 2018-01-31 | 2019-08-06 | 华为技术有限公司 | 一种分布式存储系统、数据处理方法和存储节点 |
CN110138733A (zh) * | 2019-04-03 | 2019-08-16 | 华南理工大学 | 基于区块链的对象存储系统可信存证与访问权限控制方法 |
CN110263001A (zh) * | 2019-06-18 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 文件管理方法、装置、系统、设备及计算机可读存储介质 |
AU2019101607A4 (en) * | 2019-03-28 | 2020-01-23 | Advanced New Technologies Co., Ltd. | System and method for parallel-processing blockchain transactions |
CN111159295A (zh) * | 2019-12-28 | 2020-05-15 | 深圳市网心科技有限公司 | 区块链系统、数据存储方法、数据存储装置和设备及介质 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318491B1 (en) * | 2015-03-31 | 2019-06-11 | EMC IP Holding Company LLC | Object metadata query with distributed processing systems |
CN107562775A (zh) * | 2017-07-14 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN110096220A (zh) * | 2018-01-31 | 2019-08-06 | 华为技术有限公司 | 一种分布式存储系统、数据处理方法和存储节点 |
CN108491290A (zh) * | 2018-03-28 | 2018-09-04 | 新华三技术有限公司 | 一种数据写入方法及装置 |
CN108920966A (zh) * | 2018-06-25 | 2018-11-30 | 北京奇虎科技有限公司 | 一种区块链存证、取证方法及装置 |
CN110019101A (zh) * | 2018-07-23 | 2019-07-16 | 浪潮软件集团有限公司 | 一种区块链对象的外部存储方法及系统 |
AU2019101607A4 (en) * | 2019-03-28 | 2020-01-23 | Advanced New Technologies Co., Ltd. | System and method for parallel-processing blockchain transactions |
CN110138733A (zh) * | 2019-04-03 | 2019-08-16 | 华南理工大学 | 基于区块链的对象存储系统可信存证与访问权限控制方法 |
CN110263001A (zh) * | 2019-06-18 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 文件管理方法、装置、系统、设备及计算机可读存储介质 |
CN111159295A (zh) * | 2019-12-28 | 2020-05-15 | 深圳市网心科技有限公司 | 区块链系统、数据存储方法、数据存储装置和设备及介质 |
Non-Patent Citations (1)
Title |
---|
基于TBchain区块链的高可信云存储模型;李莹;于亚新;张宏宇;李振国;;计算机科学(第09期);全文 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391509A (zh) | 一种更新应用程序的方法、系统及应用服务器 | |
US11943291B2 (en) | Hosted file sync with stateless sync nodes | |
CN107809383B (zh) | 一种基于mvc的路径映射方法及装置 | |
CN114785685A (zh) | 软件差分升级方法、装置、电子设备及可读存储介质 | |
CN115576599A (zh) | 软件开发的配置方法、系统和计算机设备 | |
US10938773B2 (en) | Method and apparatus for synchronizing contact information and medium | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
WO2013113255A1 (en) | Method and apparatus for obtaining web data | |
CN116827774A (zh) | 一种业务分析方法、装置、设备及存储介质 | |
CN113315801B (zh) | 存储区块链数据的方法和系统 | |
CN112988879B (zh) | 访问数据库的方法、系统、装置、存储介质及处理器 | |
CA2605366C (en) | Wireless gateway server | |
CN110958287B (zh) | 操作对象数据同步方法、装置及系统 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN110895583B (zh) | 数据资源获取的方法、装置和系统 | |
CN112732702B (zh) | 数据库引擎文件处理方法及装置 | |
CN114466387B (zh) | 基站的配置文件的更新方法、装置、存储介质和电子装置 | |
CN116055403A (zh) | 报文数据的传输方法、装置和服务器 | |
CN115996187A (zh) | 路由信息处理方法、装置、路由信息交互系统和路由设备 | |
CN109213955A (zh) | 数据处理方法及相关设备 | |
CN113315801A (zh) | 存储区块链数据的方法和系统 | |
US11409700B2 (en) | Method, electronic device and computer program product for snapshot replication | |
WO2022134830A1 (zh) | 区块节点数据的处理方法、装置、计算机设备和存储介质 | |
CN106407320B (zh) | 文件处理方法、装置及系统 | |
CN112669480A (zh) | 数据处理方法、装置、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |