CN108681572A - 区块链的数据存储方法、装置及电子设备 - Google Patents
区块链的数据存储方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108681572A CN108681572A CN201810423954.1A CN201810423954A CN108681572A CN 108681572 A CN108681572 A CN 108681572A CN 201810423954 A CN201810423954 A CN 201810423954A CN 108681572 A CN108681572 A CN 108681572A
- Authority
- CN
- China
- Prior art keywords
- block
- configuration
- chain
- target
- configuration information
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链的数据存储方法、装置及电子设备,应用于区块结构包括主链和配置链的区块链,涉及数据处理技术领域,该方法包括:当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与该写入交易请求对应的配置引用地址;根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。本发明提供的区块链的数据存储方法、装置及电子设备,通过引入用于存储配置信息的配置链,主链上的交易数据中只需要留配置引用地址即可,使得每个版本的区块链参与者的身份信息只存储一份,大幅减少了配置信息的重复存储,节省了区块链数据的存储空间,提高了区块链数据存储量的优化度。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种区块链的数据存储方法、装置及电子设备。
背景技术
区块链技术作为一种分布式账本技术,由于其“不可篡改”、“唯一可信”、“数据加密”的特性,使得区块链技术的应用领域越来越广泛。而区块链技术的核心-分布式账本,是一个只增有序的区块的链表。对于区块链应用来说,随着时间和交易量的日益增长,区块链的账本越来越长,所需存储空间不断增大,而且节点间全量账本的拷贝更让存储空间的需求成几何型增长。因此为了满足市场业务需求和挑战,需要采用区块扩容、紧凑和压缩存储方法来改进区块链区块存储,提高区块交换和传输效率已刻不容缓。
区块链普遍存在扩容问题。随着区块链交易数量的增长,区块链的账本大小同比增长,诸多区块链方案随着交易量的迅速增长,已经对区块容量进行扩大,但是区块容量扩容不是银弹,因为区块容量扩大后,不易于区块的传输和存储,例如比特币,如此简单的交易类型、低速的交易频率,如果将区块的容量扩容到30MB,那么一年产生的交易数据也将占用1.5TB的空间,这对于普通机器节点,带来了极大的存储压力;而如果将区块扩容到300MB,一年15TB的交易数据,恐怕是大部分节点无法承受的。
现有技术中采用传统压缩方式将全量节点的相应区块压缩为一数据块,从而根据该数据块生成压缩交易进行发布。然而这种方式优化度有限,并且在节点账本同步时的有效性验证方面加大了复杂度;另外,这种用户发压缩交易的方式在公链或者节点多的联盟链场景的实施难度较大。
发明内容
有鉴于此,本发明的目的在于提供一种区块链的数据存储方法、装置及电子设备,以节省区块链数据的存储空间,提高区块链数据存储量的优化度。
第一方面,本发明实施例提供了一种区块链的数据存储方法,应用于区块结构包括主链和配置链的区块链,所述配置链用于存储配置信息,所述配置信息包括区块链参与者的身份信息;所述方法包括:
当监听到所述主链接收到写入交易请求时,根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址;
根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址,包括:
从所述配置链的各个配置区块存储的配置信息中查找与所述写入交易请求对应的目标配置信息;
如果在目标配置区块中查找到所述目标配置信息,则将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述方法还包括:
如果未查找到所述目标配置信息,则根据所述写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在所述配置链的目标配置区块中;
将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中,包括:
将与所述写入交易请求对应的目标交易数据中包含的配置信息替换为所述配置引用地址;
将替换后的目标交易数据写入所述主链中生成的对应主区块中。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:
对所述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
第二方面,本发明实施例还提供一种区块链的数据存储装置,应用于区块结构包括主链和配置链的区块链,所述配置链用于存储配置信息,所述配置信息包括区块链参与者的身份信息;所述装置包括:
引用地址获取模块,用于当监听到所述主链接收到写入交易请求时,根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址;
数据存储模块,用于根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述引用地址获取模块具体用于:
从所述配置链的各个配置区块存储的配置信息中查找与所述写入交易请求对应的目标配置信息;
如果在目标配置区块中查找到所述目标配置信息,则将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址;
所述引用地址获取模块具体还用于:
如果未查找到所述目标配置信息,则根据所述写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在所述配置链的目标配置区块中;
将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述数据存储模块具体用于:
将与所述写入交易请求对应的目标交易数据中包含的配置信息替换为所述配置引用地址;
将替换后的目标交易数据写入所述主链中生成的对应主区块中。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述装置还包括:
压缩模块,用于对所述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或其任一种可能的实施方式所述的方法。
本发明实施例带来了以下有益效果:
本发明实施例应用于区块结构包括主链和配置链的区块链,配置链用于存储配置信息,配置信息包括区块链参与者的身份信息;当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与该写入交易请求对应的配置引用地址;根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。本发明实施例提供的区块链的数据存储方法、装置及电子设备,通过引入用于存储配置信息的配置链,主链上的交易数据中只需要留配置引用地址即可,使得每个版本的区块链参与者的身份信息只存储一份,大幅减少了配置信息的重复存储;由于配置链的引入仍然具有与传统区块链存储方案一致的不可篡改性,因此在不增加有效性验证复杂度和实施难度的情况下,节省了区块链数据的存储空间,提高了区块链数据存储量的优化度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链的数据存储方法的流程示意图;
图2为本发明实施例提供的一种区块链的结构示意图;
图3为本发明实施例提供的一种主区块与配置区块之间引用关系的细化图;
图4为本发明实施例提供的一种写入交易的流程示意图;
图5为本发明实施例提供的一种区块链的数据存储装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统区块链的区块结构如下表1所示,区块包含区块头(块头)和区块数据(块数据)这两个数据域。其中,区块头存储着区块的基本描述信息:块大小、块版本、父区块的哈希HASH值(前块哈希值)、当前区块的HASH值、时间戳等;区块数据是区块的主要内容,包含该区块中所有的交易数据,部分联盟链实现中每个交易还需要记录所调用智能合约的信息、输入、输出、交易人和背书人的身份信息和签名等。背书人即完成该交易参与共识过程的区块链参与者,一笔交易可以有多个背书人,所以会有背书人列表。表1中的行为列表即是该交易的具体步骤,一笔交易同样可以有多个步骤,包括获取了什么数据,写入了什么数据,其中写入的方式包括新增、修改和删除。有的区块链还有尾部,比如记录区块产生者的身份和签名等。
表1
目前传统压缩方法优化度有限,在节点账本同步时的有效性验证方面加大了复杂度,且在公链或者节点多的联盟链场景的实施难度较大。基于此,本发明实施例提供的一种区块链的数据存储方法、装置及电子设备,采用组合链的模式分离出配置链,在仅仅增加一些引用地址存储空间的消耗下,通过配置链减少大量配置信息(身份标识和证书)的重复存储,从而节省区块链数据的存储空间,提高区块链数据存储量的优化度。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种区块链的数据存储方法进行详细介绍。
实施例一:
区块链的区块存储的每笔交易数据都包含该交易达成共识时所有背书人的身份信息,例如标识(名字)和签名(证书/公钥)等,而背书人实质上就是区块链某个参与者,是一个有限集,因此随着交易量的增长,区块链中包含了大量重复的背书人的标识和签名,并且每个背书人的标识和签名所占存储空间在KB级别。所以,避免背书人身份信息的重复存储和压缩每个背书人身份信息的存储空间是提高区块链存储效率和可扩容性的有效方法之一。基于上述内容,本发明实施例提供了一种区块链的数据存储方法,该方法应用于区块结构包括主链和配置链的区块链,配置链用于存储配置信息,配置信息包括区块链参与者的身份信息。
具体地,配置链是主要存储区块链内配置信息相关的链。此处的配置信息主要指参与者的身份信息(名字,证书等)。该配置链记录所有参与方的证书信息(公钥),每次区块链网络中发生新成员加入、证书更新等动作时,都会被记录到配置链上,因此总能从配置链上获取最新的区块链网络参与者有效的身份信息。
因为配置链的存在,整个区块链中每个版本的背书人信息只存在了一份,消除了现有区块链中背书人信息的大量重复存储,主链上交易数据中只需要留一个对配置链某个背书人的引用即可。配置链的地址引用可以以<配置链块编号(4bytes),偏移量(1byte)>来标识,这是从KB级别到5bytes的改进(压缩了200倍左右)。这在庞大而面临扩容问题的区块链中,大大节省了区块链存储空间。
配置链的引入大幅减少了配置信息的重复存储,并且仍然具有与传统区块链存储方案一致的不可篡改性。主链中存储的是配置链的引用地址,因为主块的哈希值是对主块所有信息的哈希,后一区块保存了前一区块的哈希值,所以存储在主块中的配置链引用地址具有传统区块链存储方案一致的不可篡改性。同时配置链也是具有和主链一致的哈希方法和链式结构,配置块头中包含该配置区块中所有信息的哈希值和前一配置区块的哈希值,所以也是具有不可篡改性。
图1为本发明实施例提供的一种区块链的数据存储方法的流程示意图,该方法可由控制器执行。如图1所示,该方法包括以下步骤:
步骤S102,当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与该写入交易请求对应的配置引用地址。
具体地,在一些可能的实施例中,当监听到主链接收到写入交易请求时,从配置链的各个配置区块存储的配置信息中查找与写入交易请求对应的目标配置信息。如果在目标配置区块中查找到目标配置信息,则直接将目标配置区块的区块编号和目标配置信息在目标配置区块中的地址偏移量确定为与写入交易请求对应的配置引用地址。如果未查找到目标配置信息,则先根据写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在配置链的目标配置区块中;再将目标配置区块的区块编号和目标配置信息在目标配置区块中的地址偏移量确定为与写入交易请求对应的配置引用地址。
另外,由于一个交易可以包括多个背书人,每个背书人对应的最新配置信息可能存储在不同的配置区块中,因此一个写入交易请求可以具有多个配置引用地址。
步骤S104,根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。
具体地,在一些可能的实施例中,将与写入交易请求对应的目标交易数据中包含的配置信息替换为上述配置引用地址;将替换后的目标交易数据写入主链中生成的对应主区块中。这样,主区块中存储的区块数据仅包含占用存储空间较少的配置引用地址,整个区块链中占用存储空间较多的相同的配置信息仅存储一份(存储在配置链中),较少了配置信息的大量重复存储,从而节约了存储空间。
图2为本发明实施例提供的一种区块链的结构示意图,如图2所示,主链有3个主区块,分别为主区块1、主区块2和主区块3;在主链生成这3个主区块的时间内,整个区块链内配置的改动仅仅有1次,所以配置链上配置区块的个数为2(含初始化配置区块);主区块1指向配置区块1,主区块2指向配置区块1和配置区块2,主区块3指向配置区块2。从图2可以看出,主区块和配置区块之间可以是多对多的关系,因为主区块和配置区块的关系具体是主区块内部各个交易对配置区块内部配置信息的引用,在主区块内部多个交易的产生过程中,配置信息可能已经发生改变,生成新的配置区块,导致一个主区块内部多个交易分别引用不同的配置区块。同时,显然当配置信息不改变时,交易一直在产生并生成新的主区块,这样使得一个配置区块也会被多个主区块引用。
图3为本发明实施例提供的一种主区块与配置区块之间引用关系的细化图,如图3所示,某个主区块包含两个交易(交易1和交易2),交易2由背书人1和背书人2进行共识达成,这两个交易、两个背书人的共识动作、2个背书人的信息都存储在一个主区块中。在本实施例中,新的主区块产生时,主区块包含了块头、交易1和交易2,每个交易包括交易的步骤信息和背书人地址(背书人的配置引用地址);配置区块包含了块头和成员身份信息(如图3中的成员标识、公钥),配置链记录的是整个区块链参与者身份信息的变化;主链当有新的主区块产生时,直接引用配置链当时最新的配置区块。
如图3所示,初始配置区块1包含了成员1标识、公钥以及成员2标识、公钥,而新增成员3标识、公钥以及更新成员1标识、公钥生成了配置区块2。此时主块的交易2生成过程中,得到其背书人1引用配置区块2的成员1标识、公钥,其背书人2引用配置区块1的成员2标识、公钥。
图4为本发明实施例提供的一种写入交易的流程示意图,如图4所示,当主链收到写入交易请求时,调用配置链的获取配置操作,在配置链中查找配置,判断是否查找成功;如果是,则返回配置引用地址;如果否,说明该写入交易请求对应的配置信息所对应的参与者是第一次参与区块链交易,则新建配置信息并返回配置引用地址;主链获取配置引用地址完成后,生成主区块需要的前置工作和准备条件已完成,继而生成主区块。
根据图4的上述过程可以看出,配置信息没有在区块链网络产生之时存入配置链,而是在该配置信息对应的参与者参与到区块链第一次交易或共识等活动中时才存入配置链,这算是一种延迟配置加载,以此来提高区块链网络新成员加入的便捷高效性。
本发明实施例应用于区块结构包括主链和配置链的区块链,配置链用于存储配置信息,配置信息包括区块链参与者的身份信息;当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与该写入交易请求对应的配置引用地址;根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。本发明实施例提供的区块链的数据存储方法,通过引入用于存储配置信息的配置链,主链上的交易数据中只需要留配置引用地址即可,使得每个版本的区块链参与者的身份信息只存储一份,大幅减少了配置信息的重复存储;由于配置链的引入仍然具有与传统区块链存储方案一致的不可篡改性,因此在不增加有效性验证复杂度和实施难度的情况下,节省了区块链数据的存储空间,提高了区块链数据存储量的优化度。
为了进一步提高区块链数据存储量的优化度,上述方法还包括:对上述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
具体地,对应主区块的区块数据包括主链中存储的用配置引用地址替换配置信息后的目标交易数据以及配置链中存储的配置信息。通过上述主链-配置链区块结构对配置信息的优化,剩下的区块数据中配置信息都是无重复性的,并且区块结构本身是基于JSON格式,可以考虑使用压缩算法进行链压缩,压缩对文本类的内容很有效果。表2示出了一些现有的压缩算法以及对应的压缩比、压缩速度和解压速度。如表2所示,一些主流的压缩算法可以达到2~3倍的压缩比,压缩效果较好。
表2
压缩算法 | 压缩比 | 压缩速度 | 解压速度 |
zstd 1.1.3-1 | 2.877 | 430MB/s | 1110MB/s |
zlib 1.2.8-1 | 2.743 | 110MB/s | 400MB/s |
brotli 0.5.2-0 | 2.708 | 400MB/s | 430MB/s |
quicklz 1.5.0-1 | 2.238 | 550MB/s | 710MB/s |
lzo1x 2.09-1 | 2.108 | 650MB/s | 830MB/s |
lz4 1.7.5 | 2.101 | 720MB/s | 3600MB/s |
snappy 1.1.3 | 2.091 | 500MB/s | 1650MB/s |
综上,本发明实施例提供的区块链的数据存储方法,根据区块结构中身份信息重复存储的特点,通过主链-配置链的方式去重优化,具有以下有益效果:1.直面全量账本的存储问题,大幅减少账本的存储空间;2.适用于各种区块链技术,包括公有链、联盟链和私有链,适用度广。
实施例二:
图5为本发明实施例提供的一种区块链的数据存储装置的结构示意图,该装置应用于区块结构包括主链和配置链的区块链,配置链用于存储配置信息,配置信息包括区块链参与者的身份信息。如图5所示,该装置包括:
引用地址获取模块52,用于当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与写入交易请求对应的配置引用地址;
数据存储模块54,用于根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。
在一些可能的实施例中,上述引用地址获取模块52具体用于:
从配置链的各个配置区块存储的配置信息中查找与写入交易请求对应的目标配置信息;如果在目标配置区块中查找到目标配置信息,则将目标配置区块的区块编号和目标配置信息在目标配置区块中的地址偏移量确定为与写入交易请求对应的配置引用地址;
上述引用地址获取模块52具体还用于:
如果未查找到目标配置信息,则根据写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在配置链的目标配置区块中;将目标配置区块的区块编号和目标配置信息在目标配置区块中的地址偏移量确定为与写入交易请求对应的配置引用地址。
在一些可能的实施例中,上述数据存储模块54具体用于:
将与写入交易请求对应的目标交易数据中包含的配置信息替换为配置引用地址;将替换后的目标交易数据写入主链中生成的对应主区块中。
为了进一步提高区块链数据存储量的优化度,上述装置还包括压缩模块,压缩模块与数据存储模块54连接,压缩模块用于对上述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
本发明实施例应用于区块结构包括主链和配置链的区块链,配置链用于存储配置信息,配置信息包括区块链参与者的身份信息;当监听到主链接收到写入交易请求时,根据配置链存储的配置信息获取与该写入交易请求对应的配置引用地址;根据配置引用地址将与写入交易请求对应的目标交易数据存储在主链的对应主区块中。本发明实施例提供的区块链的数据存储装置,通过引入用于存储配置信息的配置链,主链上的交易数据中只需要留配置引用地址即可,使得每个版本的区块链参与者的身份信息只存储一份,大幅减少了配置信息的重复存储;由于配置链的引入仍然具有与传统区块链存储方案一致的不可篡改性,因此在不增加有效性验证复杂度和实施难度的情况下,节省了区块链数据的存储空间,提高了区块链数据存储量的优化度。
实施例三:
参见图6,本发明实施例还提供一种电子设备100,包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的区块链的数据存储装置及电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供的区块链的数据存储装置及电子设备,与上述实施例提供的区块链的数据存储方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的进行区块链的数据存储方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种区块链的数据存储方法,其特征在于,应用于区块结构包括主链和配置链的区块链,所述配置链用于存储配置信息,所述配置信息包括区块链参与者的身份信息;所述方法包括:
当监听到所述主链接收到写入交易请求时,根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址;
根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址,包括:
从所述配置链的各个配置区块存储的配置信息中查找与所述写入交易请求对应的目标配置信息;
如果在目标配置区块中查找到所述目标配置信息,则将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果未查找到所述目标配置信息,则根据所述写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在所述配置链的目标配置区块中;
将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中,包括:
将与所述写入交易请求对应的目标交易数据中包含的配置信息替换为所述配置引用地址;
将替换后的目标交易数据写入所述主链中生成的对应主区块中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
6.一种区块链的数据存储装置,其特征在于,应用于区块结构包括主链和配置链的区块链,所述配置链用于存储配置信息,所述配置信息包括区块链参与者的身份信息;所述装置包括:
引用地址获取模块,用于当监听到所述主链接收到写入交易请求时,根据所述配置链存储的配置信息获取与所述写入交易请求对应的配置引用地址;
数据存储模块,用于根据所述配置引用地址将与所述写入交易请求对应的目标交易数据存储在所述主链的对应主区块中。
7.根据权利要求6所述的装置,其特征在于,所述引用地址获取模块具体用于:
从所述配置链的各个配置区块存储的配置信息中查找与所述写入交易请求对应的目标配置信息;
如果在目标配置区块中查找到所述目标配置信息,则将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址;
所述引用地址获取模块具体还用于:
如果未查找到所述目标配置信息,则根据所述写入交易请求对应的区块链参与者的身份信息新建配置信息,并将新建的配置信息作为目标配置信息存储在所述配置链的目标配置区块中;
将所述目标配置区块的区块编号和所述目标配置信息在所述目标配置区块中的地址偏移量确定为与所述写入交易请求对应的配置引用地址。
8.根据权利要求6所述的装置,其特征在于,所述数据存储模块具体用于:
将与所述写入交易请求对应的目标交易数据中包含的配置信息替换为所述配置引用地址;
将替换后的目标交易数据写入所述主链中生成的对应主区块中。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
压缩模块,用于对所述对应主区块的区块数据进行压缩,并将压缩后的压缩区块数据存储在数据库中。
10.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810423954.1A CN108681572B (zh) | 2018-05-04 | 2018-05-04 | 区块链的数据存储方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810423954.1A CN108681572B (zh) | 2018-05-04 | 2018-05-04 | 区块链的数据存储方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108681572A true CN108681572A (zh) | 2018-10-19 |
CN108681572B CN108681572B (zh) | 2020-12-29 |
Family
ID=63802930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810423954.1A Active CN108681572B (zh) | 2018-05-04 | 2018-05-04 | 区块链的数据存储方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108681572B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011788A (zh) * | 2019-04-10 | 2019-07-12 | 深圳市网心科技有限公司 | 一种基于区块链的数据处理方法、系统及相关设备 |
CN110099108A (zh) * | 2019-04-26 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种区块链事件去重方法、装置、计算机设备及存储介质 |
CN110222535A (zh) * | 2019-05-06 | 2019-09-10 | 平安科技(深圳)有限公司 | 区块链配置文件的处理装置、方法及存储介质 |
CN110264189A (zh) * | 2019-04-29 | 2019-09-20 | 北京清红微谷技术开发有限责任公司 | 区块链节点数据存储方法和系统、终端及区块链系统 |
CN110276610A (zh) * | 2019-05-31 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 基于交易偏移量实现动态加密的方法及装置 |
CN110555036A (zh) * | 2019-08-21 | 2019-12-10 | 上海易点时空网络有限公司 | 基于异步处理的数据排重方法及装置 |
CN110602455A (zh) * | 2019-09-10 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 视频存储系统、视频处理方法、装置、设备及存储介质 |
CN110768979A (zh) * | 2019-10-22 | 2020-02-07 | 王慧君 | 一种基于蚂蚁算法的区块链大数据处理方法及系统 |
CN111324902A (zh) * | 2018-12-14 | 2020-06-23 | 航天信息股份有限公司 | 一种基于区块链的数据存取方法、装置及系统 |
CN111444270A (zh) * | 2020-02-25 | 2020-07-24 | 吴燕琼 | 一种基于区块链的控制有害信息的方法及系统 |
CN112053153A (zh) * | 2020-08-27 | 2020-12-08 | 中信银行股份有限公司 | 背书签名数据存储方法、装置、电子设备及可读存储介质 |
CN113206851A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 平行链共识方法、计算机设备和存储介质 |
CN113721972A (zh) * | 2020-05-25 | 2021-11-30 | Oppo广东移动通信有限公司 | 硬件加速器配置信息的配置方法、装置及存储介质 |
CN114723564A (zh) * | 2022-06-01 | 2022-07-08 | 杭州天谷信息科技有限公司 | 一种区块链生成方法以及区块链结构 |
CN111414412B (zh) * | 2019-01-07 | 2023-04-07 | 国际商业机器公司 | 基于机器学习的视频压缩 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357640A (zh) * | 2016-09-18 | 2017-01-25 | 江苏通付盾科技有限公司 | 基于区块链网络的身份认证方法、系统及服务器 |
CN107103098A (zh) * | 2017-05-12 | 2017-08-29 | 曾建伟 | 一种包含智能合约的区块链网式数据库及工作方法 |
CN107135079A (zh) * | 2017-06-30 | 2017-09-05 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及系统 |
CN107257340A (zh) * | 2017-06-19 | 2017-10-17 | 阿里巴巴集团控股有限公司 | 一种认证方法、基于区块链的认证数据处理方法及设备 |
CN107342866A (zh) * | 2017-06-30 | 2017-11-10 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及系统 |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易系统及方法 |
US20180115425A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
-
2018
- 2018-05-04 CN CN201810423954.1A patent/CN108681572B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357640A (zh) * | 2016-09-18 | 2017-01-25 | 江苏通付盾科技有限公司 | 基于区块链网络的身份认证方法、系统及服务器 |
US20180115425A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
CN107103098A (zh) * | 2017-05-12 | 2017-08-29 | 曾建伟 | 一种包含智能合约的区块链网式数据库及工作方法 |
CN107257340A (zh) * | 2017-06-19 | 2017-10-17 | 阿里巴巴集团控股有限公司 | 一种认证方法、基于区块链的认证数据处理方法及设备 |
CN107135079A (zh) * | 2017-06-30 | 2017-09-05 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及系统 |
CN107342866A (zh) * | 2017-06-30 | 2017-11-10 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及系统 |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易系统及方法 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324902A (zh) * | 2018-12-14 | 2020-06-23 | 航天信息股份有限公司 | 一种基于区块链的数据存取方法、装置及系统 |
CN111414412B (zh) * | 2019-01-07 | 2023-04-07 | 国际商业机器公司 | 基于机器学习的视频压缩 |
CN110011788A (zh) * | 2019-04-10 | 2019-07-12 | 深圳市网心科技有限公司 | 一种基于区块链的数据处理方法、系统及相关设备 |
CN110011788B (zh) * | 2019-04-10 | 2020-12-25 | 深圳市网心科技有限公司 | 一种基于区块链的数据处理方法、系统及相关设备 |
CN110099108A (zh) * | 2019-04-26 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种区块链事件去重方法、装置、计算机设备及存储介质 |
CN110264189A (zh) * | 2019-04-29 | 2019-09-20 | 北京清红微谷技术开发有限责任公司 | 区块链节点数据存储方法和系统、终端及区块链系统 |
CN110264189B (zh) * | 2019-04-29 | 2021-10-26 | 北京清红微谷技术开发有限责任公司 | 区块链节点数据存储方法和系统、终端及区块链系统 |
CN110222535B (zh) * | 2019-05-06 | 2024-03-12 | 平安科技(深圳)有限公司 | 区块链配置文件的处理装置、方法及存储介质 |
WO2020224100A1 (zh) * | 2019-05-06 | 2020-11-12 | 平安科技(深圳)有限公司 | 区块链配置文件的处理装置、系统、方法及存储介质 |
CN110222535A (zh) * | 2019-05-06 | 2019-09-10 | 平安科技(深圳)有限公司 | 区块链配置文件的处理装置、方法及存储介质 |
CN113435883B (zh) * | 2019-05-31 | 2024-07-16 | 创新先进技术有限公司 | 基于交易偏移量实现动态加密的方法及装置 |
CN110276610A (zh) * | 2019-05-31 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 基于交易偏移量实现动态加密的方法及装置 |
CN113435883A (zh) * | 2019-05-31 | 2021-09-24 | 创新先进技术有限公司 | 基于交易偏移量实现动态加密的方法及装置 |
CN110276610B (zh) * | 2019-05-31 | 2021-04-06 | 创新先进技术有限公司 | 基于交易偏移量实现动态加密的方法及装置 |
CN110555036A (zh) * | 2019-08-21 | 2019-12-10 | 上海易点时空网络有限公司 | 基于异步处理的数据排重方法及装置 |
CN110602455A (zh) * | 2019-09-10 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 视频存储系统、视频处理方法、装置、设备及存储介质 |
CN110602455B (zh) * | 2019-09-10 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 视频存储系统、视频处理方法、装置、设备及存储介质 |
CN110768979A (zh) * | 2019-10-22 | 2020-02-07 | 王慧君 | 一种基于蚂蚁算法的区块链大数据处理方法及系统 |
CN111444270B (zh) * | 2020-02-25 | 2023-09-08 | 吴燕琼 | 基于区块链的控制有害信息的方法及系统 |
CN111444270A (zh) * | 2020-02-25 | 2020-07-24 | 吴燕琼 | 一种基于区块链的控制有害信息的方法及系统 |
CN113721972A (zh) * | 2020-05-25 | 2021-11-30 | Oppo广东移动通信有限公司 | 硬件加速器配置信息的配置方法、装置及存储介质 |
CN113721972B (zh) * | 2020-05-25 | 2024-04-16 | Oppo广东移动通信有限公司 | 硬件加速器配置信息的配置方法、装置及存储介质 |
CN112053153A (zh) * | 2020-08-27 | 2020-12-08 | 中信银行股份有限公司 | 背书签名数据存储方法、装置、电子设备及可读存储介质 |
CN113206851A (zh) * | 2021-05-06 | 2021-08-03 | 杭州复杂美科技有限公司 | 平行链共识方法、计算机设备和存储介质 |
CN114723564A (zh) * | 2022-06-01 | 2022-07-08 | 杭州天谷信息科技有限公司 | 一种区块链生成方法以及区块链结构 |
CN114723564B (zh) * | 2022-06-01 | 2022-10-28 | 杭州天谷信息科技有限公司 | 一种区块链生成方法以及区块链结构 |
Also Published As
Publication number | Publication date |
---|---|
CN108681572B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681572A (zh) | 区块链的数据存储方法、装置及电子设备 | |
CN108563796A (zh) | 区块链的数据压缩处理方法、装置及电子设备 | |
WO2021217863A1 (zh) | 订单标识生成方法、装置、服务器及存储介质 | |
CN103593440B (zh) | 日志文件的读写方法及装置 | |
CN106156070B (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN103703467A (zh) | 存储数据的方法和装置 | |
CN107147724A (zh) | 一种消息推送方法、服务器及计算机可读存储介质 | |
TWI686705B (zh) | 分頁查詢方法及裝置和電子設備 | |
CN110570311B (zh) | 区块链的共识方法、装置及设备 | |
CN106855861A (zh) | 一种文件合并方法、装置及电子设备 | |
CN107391506A (zh) | 用于查询数据的方法和装置 | |
CN110727857A (zh) | 针对业务对象识别潜在用户的关键特征的方法及装置 | |
CN107145574A (zh) | 数据库数据处理方法、装置及存储介质和电子设备 | |
CN110727702A (zh) | 数据查询方法、装置、终端和计算机可读存储介质 | |
CN109271564A (zh) | 保单查询方法及设备 | |
CN110222282A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN108874297A (zh) | 合并文件的方法、存储装置、存储设备和存储介质 | |
CN109597804A (zh) | 基于大数据的客户合并方法及装置、电子设备及存储介质 | |
CN112527900A (zh) | 一种数据库读多副本一致性的方法、装置、设备及介质 | |
CN110460987A (zh) | 一种写卡方法、装置、服务器和存储介质 | |
CN110119430A (zh) | 一种智能合约管理方法、服务器及计算机可读存储介质 | |
CN105589969A (zh) | 一种数据处理方法及装置 | |
CN111031052B (zh) | 基于多应用程序的数据处理方法、计算设备及存储介质 | |
CN109547526B (zh) | 一种消息推送方法、计算机可读存储介质及服务器 | |
CN114490704A (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: Room 803, No.20, business center, Meishan Avenue, Beilun District, Ningbo City, Zhejiang Province, 315000 Applicant after: Rose Tree Technology Co., Ltd Address before: Room 803, No.20, business center, Meishan Avenue, Beilun District, Ningbo City, Zhejiang Province, 315000 Applicant before: QIANGWEI INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |