CN113239052A - 一种联盟链分组方法、装置、设备和介质 - Google Patents

一种联盟链分组方法、装置、设备和介质 Download PDF

Info

Publication number
CN113239052A
CN113239052A CN202110787353.0A CN202110787353A CN113239052A CN 113239052 A CN113239052 A CN 113239052A CN 202110787353 A CN202110787353 A CN 202110787353A CN 113239052 A CN113239052 A CN 113239052A
Authority
CN
China
Prior art keywords
transaction
chain
sub
information
storage list
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
Application number
CN202110787353.0A
Other languages
English (en)
Other versions
CN113239052B (zh
Inventor
张锦喜
梁增健
叶亚芳
陈胜俭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Zhuoqi Cloud Chain Technology Co ltd
Original Assignee
Guangdong Zhuoqi Cloud Chain Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Zhuoqi Cloud Chain Technology Co ltd filed Critical Guangdong Zhuoqi Cloud Chain Technology Co ltd
Priority to CN202110787353.0A priority Critical patent/CN113239052B/zh
Publication of CN113239052A publication Critical patent/CN113239052A/zh
Application granted granted Critical
Publication of CN113239052B publication Critical patent/CN113239052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种联盟链分组方法、装置、设备和介质,方法包括:对联盟链进行划分,得到若干子链;根据交易池中交易的交易双方信息和子链数量确定交易所属的子链,并将交易添加到对应的子链中;根据子链中交易的摘要和交易生成交易记录,并将交易记录插入到该子链的存储列表中;将序列化后的存储列表封装为区块,并将该区块广播到联盟链,改善了现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。

Description

一种联盟链分组方法、装置、设备和介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种联盟链分组方法、装置、设备和介质。
背景技术
区块链技术是实现可信互联网的关键技术之一,而目前制约区块链技术发展的关键难题除了共识算法的执行效率过低外,还有链式结构的数据冗余过大,以及由此带来的数据检索效率低的问题。数据的检索性能是衡量区块链底层平台的先进性的关键指标之一,目前业界主要关注交易速度的优化工作,而忽略了数据持久化后的数据检索与维护工作。特别在联盟链场景下,业务数据类型繁多,更增加了数据检索的难度。随着区块链的应用越来越广泛,链上数据量激增,链上数据的检索难度日益加大。因此,对原有的链式结构进行优化是目前亟需解决的技术问题。
现有技术将交易按照二叉树的形式组织起来,并将树根封装到区块头里,根的生成方式为:将交易池的每两个交易分成一组,然后将这些交易组依次求哈希值,得到数量减半的邻近的上层节点,然后按照同样的方法依次两两分组求哈希值,直到最后只剩下一个节点为止,这个最终节点就是树根。该方法使用树形结构作为链上交易的基本组成结构,使用了多次哈希操作,并将这些哈希操作作为辅助的中间节点,这些中间节点占据了大量的存储空间,是链上数据冗余的主要来源之一,另外,现有技术只是将交易随机地封装到各个区块里,对于业务数据类型复杂的联盟链场景而言,要将某条交易记录检索出来,特别是将相关联的所有记录全部快速检索出来非常困难。
发明内容
本申请提供了一种联盟链分组方法、装置、设备和介质,用于改善现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。
有鉴于此,本申请第一方面提供了一种联盟链分组方法,包括:
对联盟链进行划分,得到若干子链;
根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中;
根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中;
将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链。
可选的,所述对联盟链进行划分,得到若干子链,包括:
根据联盟链上的成员数对所述联盟链进行划分,得到若干子链;
其中,每个子链对应有一个子链序号。
可选的,所述根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中,包括:
根据交易池中交易的交易双方信息和子链数量计算所述交易所属的子链序号,其中,所述交易双方信息包括交易发送者的公钥和交易接收者的公钥;
将所述交易添加到该交易所属的子链序号对应的子链中。
可选的,所述根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中,包括:
以子链中所述交易的摘要为关键字,以所述交易为数值,生成交易记录;
将所述交易的交易双方信息按照字典序进行拼接,得到拼接信息;
查找子链中是否存在以所述拼接信息为关键字的存储列表,若存在,则将所述交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以所述拼接信息为关键字的存储列表后,将所述交易记录插入到该初始化后的存储列表中。
可选的,所述交易的摘要的获取过程为:
对所述交易进行序列化处理,得到字符串;
计算所述字符串的哈希值,得到所述交易的摘要。
可选的,所述将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链,包括:
将序列化后的存储列表封装为区块,并将该序列化后的存储列表的摘要作为该区块的关键字段;
将该区块广播到所述联盟链。
本申请第二方面提供了一种联盟链分组装置,包括:
划分单元,用于对联盟链进行划分,得到若干子链;
确定单元,用于根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中;
生成和插入单元,用于根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中;
封装和广播单元,用于将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链。
可选的,所述生成和插入单元具体用于:
以子链中所述交易的摘要为关键字,以所述交易为数值,生成交易记录;
将所述交易的交易双方信息按照字典序进行拼接,得到拼接信息;
查找子链中是否存在以所述拼接信息为关键字的存储列表,若存在,则将所述交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以所述拼接信息为关键字的存储列表后,将所述交易记录插入到该初始化后的存储列表中。
本申请第三方面提供了一种联盟链分组设备,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面任一种所述的联盟链分组方法。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面任一种所述的联盟链分组方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种联盟链分组方法,包括:对联盟链进行划分,得到若干子链;根据交易池中交易的交易双方信息和子链数量确定交易所属的子链,并将交易添加到对应的子链中;根据子链中交易的摘要和交易生成交易记录,并将交易记录插入到该子链的存储列表中;将序列化后的存储列表封装为区块,并将该区块广播到联盟链。
本申请中,采用列表结构存储数据,无需引入大量的辅助节点,几乎没有冗余的数据结构,减少了存储空间的消耗,在一定程度上提高了检索效率;通过交易的交易双方信息确定交易所属的子链,即根据交易双方信息可以将某两个用户的所有关联交易直接检索出来,实现关联查询,并且在子链内部,可以通过交易的摘要检索出某个特定的交易,改善了现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种联盟链分组方法的一个流程示意图;
图2为本申请实施例提供的一种去冗余的数据结构的一个结构示意图;
图3为本申请实施例提供的一种联盟链分组装置的一个结构示意图。
具体实施方式
本申请提供了一种联盟链分组方法、装置、设备和介质,用于改善现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,请参阅图1,本申请提供的一种联盟链分组方法的一个实施例,包括:
步骤101、对联盟链进行划分,得到若干子链。
根据联盟链上的成员数对联盟链进行划分,得到若干子链;其中,每个子链对应有一个子链序号。假设联盟链当前一共有NUM个成员,那么可以将联盟链划分为Num_subchain=NUM/divider个子链,divider的可选范围可以为[2,NUM/2],得到的子链序号范围为range=[0,NUM/divider-1]。
可以根据子链序号生成初始的创世区块,可以参考图2,创世区块中存储各个子链,联盟链上的成员通过该创世区块可以知道有几个子链。
步骤102、根据交易池中交易的交易双方信息和子链数量确定交易所属的子链,并将交易添加到对应的子链中。
根据交易池中交易的交易双方信息和子链数量计算交易所属的子链序号,其中,交易双方信息包括交易发送者的公钥和交易接收者的公钥;将交易添加到该交易所属的子链序号对应的子链中。
具体的,交易所属的子链序号的计算过程为:将交易tx的交易发送者的公钥pubKey1和交易接收者的公钥pubKey2转为整型变量后,计算这两个公钥的和combineStr=pubKey1+pubKey2;然后计算该交易所属的子链序号index=combineStr % Num_subchain。
假设某个交易所涉及的交易双方(交易发送者和交易接收者)的公钥分别为pubKey1=“a1d35e”和pubKey2=“f36a12”,子链数量Num_subchain=9。
首先,将交易双方的公钥转换为整型变量,例如转换为16进制的整数,即pubKey1=0xa1d35e,pubKey2=0xf36a12。
再求和combineStr=pubKey1+pubKey2=0xa1d35e+0xf36a12=0x1953d70。
最后,计算该交易所属的子链序号index=0x1953d70 % 0x9=0x5,那么可以将pubKey1和pubKey2之间的交易都放在子链5中。
在这种方式下,有可能有某些序号的子链会是空的,例如无论怎么算,都无法得出index=2的情况下,那么子链2是空的,但这并不影响,相当于实际的子链数只有8个。同时,也有可能每个子链有多个“交易发送者-交易接收者”对。
步骤103、根据子链中交易的摘要和交易生成交易记录,并将交易记录插入到该子链的存储列表中。
以子链中交易的摘要为关键字,以交易为数值,生成交易记录;将交易的交易双方信息按照字典序进行拼接,得到拼接信息;查找子链中是否存在以拼接信息为关键字的存储列表,若存在,则将交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以拼接信息为关键字的存储列表后,将交易记录插入到该初始化后的存储列表中。
具体的,对于某个子链i内部,首先,获取某个交易tx中的交易发送者sender、交易接收者receiver,并获取该交易tx的摘要digest。其中,交易的摘要的获取过程可以为:对交易进行序列化处理,得到字符串;计算字符串的哈希值,得到交易的摘要。
然后,将sender和receiver按照字典序拼接得到拼接信息sendRcv;以摘要digest为关键字(Key),tx为数值(Value),生成一个交易记录record;在该子链i内部查找以sendRcv为关键字的存储列表,该存储列表优选为Map结构,若存在该存储列表,则将交易记录record插入该存储列表,若不存在,则在该子链i内初始化一个以sendRcv为关键字的存储列表后,将交易记录插入该初始化后的存储列表。
假设一个交易tx={sender:“a1d35e”, receiver: “f36a12”, data: {name:“cat”, age: 11}},那么这个交易tx可以通过任何一种编程语言的序列化方法,将该交易tx转换为一个字符串serialized_tx。例如,该交易tx转换后的字符串可以为serialized_tx=“sender+a1d35e+receiver+f36a12++data+name+cat+age+11”,可以通过现有的哈希函数(如SHA1)计算serialized_tx的摘要digest,即digest=SHA1(serialized_tx)=“5246941f512746a2939ed6922d88354154961276”。
由上述方法计算得出,凡是这个sender和receiver之间的交易都放在“子链5”中,那么要查找他们之间的所有关联交易,只需在“子链5”中查找即可,这是粗粒度的分类。但还不知道他们之间的某个具体交易tx究竟放在哪里及如何查找。由于“子链5”可能会混杂多个“交易发送者和交易接收者之间”的交易,因此还需要以一种数据结构,区分不同的“交易发送者-交易接收者”对,这个数据结构优选为Map,每一个子链可能会超过一个Map。
然后通过字典序比较sender和receiver的大小,依次从首字母开始比较,以ASCII表为准,“a1d35e”的首字母是“a”,“f36a12”的首字母是“f”,因此“a1d35e”小于“f36a12”。若首字母相同,则依次比较下一字符。因为“a1d35e”小于“f36a12”,可以将小的排前面,此时将该交易tx的交易双方信息按照字典序进行拼接得到拼接信息sendRcv =sender +receiver =“a1d35ef36a12”。
以前面生成的digest =“061eaf6b81818eb250ff8e6b149eaa09593ea9a8”为关键字,原始的tx = {sender: “a1d35e”, receiver: “f36a12”, data: {name: “cat”, age:11}}为数值生成一个交易记录record的Map结构。
查找以sendRcv为关键字的Map结构,若非空,则将record插入该Map中;否则先初始化该Map,再插入record。
此时,若要查找所有该sender和receiver之间的交易往来,只需遍历该Map即可;若要查找他们之间的某个特定的tx,则只需在该Map内,再以该特定tx的digest为键,查找一次即可。
由于现有技术使用完全的二叉树结构,引入了大量的辅助节点,是数据冗余的核心来源。本申请实施例使用分组的列表结构,列表内部使用直接的Map结构,几乎没有冗余的数据结构,减少了存储消耗的同时也从根本上提高了检索效率。
步骤104、将序列化后的存储列表封装为区块,并将该区块广播到联盟链。
将序列化后的存储列表封装为区块,并将该序列化后的存储列表的摘要作为该区块的关键字段;将该区块广播到联盟链。
具体的,将Map序列化为serialized_map,使用编程语言自带的序列化方法即可实现,然后获取序列化为serialized_map的摘要hash_map,即hash_map=SHA1(serialized_map),并将hash_map封装到新生成的区块中,最终得到去冗余的数据结构,可以参考图2。
本申请实施例中,采用列表结构存储数据,无需引入大量的辅助节点,几乎没有冗余的数据结构,减少了存储空间的消耗,在一定程度上提高了检索效率;通过交易的交易双方信息确定交易所属的子链,即根据交易双方信息可以将某两个用户的所有关联交易直接检索出来,实现关联查询,并且在子链内部,可以通过交易的摘要检索出某个特定的交易,改善了现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。
以上为本申请提供的一种联盟链分组方法的一个实施例,以下为本申请提供的一种联盟链分组装置的一个实施例。
请参考图3,本申请实施例提供的一种联盟链分组装置,包括:
划分单元,用于对联盟链进行划分,得到若干子链;
确定单元,用于根据交易池中交易的交易双方信息和子链数量确定交易所属的子链,并将交易添加到对应的子链中;
生成和插入单元,用于根据子链中交易的摘要和交易生成交易记录,并将交易记录插入到该子链的存储列表中;
封装和广播单元,用于将序列化后的存储列表封装为区块,并将该区块广播到联盟链。
作为进一步地改进,划分单元具体用于:
根据联盟链上的成员数对联盟链进行划分,得到若干子链;
其中,每个子链对应有一个子链序号。
作为进一步地改进,确定单元具体用于:
根据交易池中交易的交易双方信息和子链数量计算交易所属的子链序号,其中,交易双方信息包括交易发送者的公钥和交易接收者的公钥;
将交易添加到该交易所属的子链序号对应的子链中。
作为进一步地改进,生成和插入单元具体用于:
以子链中交易的摘要为关键字,以交易为数值,生成交易记录;
将交易的交易双方信息按照字典序进行拼接,得到拼接信息;
查找子链中是否存在以拼接信息为关键字的存储列表,若存在,则将交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以拼接信息为关键字的存储列表后,将交易记录插入到该初始化后的存储列表中。
本申请实施例中,采用列表结构存储数据,无需引入大量的辅助节点,几乎没有冗余的数据结构,减少了存储空间的消耗,在一定程度上提高了检索效率;通过交易的交易双方信息确定交易所属的子链,即根据交易双方信息可以将某两个用户的所有关联交易直接检索出来,实现关联查询,并且在子链内部,可以通过交易的摘要检索出某个特定的交易,改善了现有的联盟链上的数据冗余,浪费存储空间以及单条和同类交易记检索困难的技术问题。
本申请实施例还提供了一种联盟链分组设备,设备包括处理器以及存储器;
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令执行前述方法实施例中的联盟链分组方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述方法实施例中的联盟链分组方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种联盟链分组方法,其特征在于,包括:
对联盟链进行划分,得到若干子链;
根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中;
根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中;
将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链。
2.根据权利要求1所述的联盟链分组方法,其特征在于,所述对联盟链进行划分,得到若干子链,包括:
根据联盟链上的成员数对所述联盟链进行划分,得到若干子链;
其中,每个子链对应有一个子链序号。
3.根据权利要求2所述的联盟链分组方法,其特征在于,所述根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中,包括:
根据交易池中交易的交易双方信息和子链数量计算所述交易所属的子链序号,其中,所述交易双方信息包括交易发送者的公钥和交易接收者的公钥;
将所述交易添加到该交易所属的子链序号对应的子链中。
4.根据权利要求1所述的联盟链分组方法,其特征在于,所述根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中,包括:
以子链中所述交易的摘要为关键字,以所述交易为数值,生成交易记录;
将所述交易的交易双方信息按照字典序进行拼接,得到拼接信息;
查找子链中是否存在以所述拼接信息为关键字的存储列表,若存在,则将所述交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以所述拼接信息为关键字的存储列表后,将所述交易记录插入到该初始化后的存储列表中。
5.根据权利要求1所述的联盟链分组方法,其特征在于,所述交易的摘要的获取过程为:
对所述交易进行序列化处理,得到字符串;
计算所述字符串的哈希值,得到所述交易的摘要。
6.根据权利要求1所述的联盟链分组方法,其特征在于,所述将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链,包括:
将序列化后的存储列表封装为区块,并将该序列化后的存储列表的摘要作为该区块的关键字段;
将该区块广播到所述联盟链。
7.一种联盟链分组装置,其特征在于,包括:
划分单元,用于对联盟链进行划分,得到若干子链;
确定单元,用于根据交易池中交易的交易双方信息和子链数量确定所述交易所属的子链,并将所述交易添加到对应的子链中;
生成和插入单元,用于根据子链中所述交易的摘要和所述交易生成交易记录,并将所述交易记录插入到该子链的存储列表中;
封装和广播单元,用于将序列化后的存储列表封装为区块,并将该区块广播到所述联盟链。
8.根据权利要求7所述的联盟链分组装置,其特征在于,所述生成和插入单元具体用于:
以子链中所述交易的摘要为关键字,以所述交易为数值,生成交易记录;
将所述交易的交易双方信息按照字典序进行拼接,得到拼接信息;
查找子链中是否存在以所述拼接信息为关键字的存储列表,若存在,则将所述交易记录插入到该存储列表中,若不存在,则在该子链中初始化一个以所述拼接信息为关键字的存储列表后,将所述交易记录插入到该初始化后的存储列表中。
9.一种联盟链分组设备,其特征在于,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-6任一项所述的联盟链分组方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-6任一项所述的联盟链分组方法。
CN202110787353.0A 2021-07-13 2021-07-13 一种联盟链分组方法、装置、设备和介质 Active CN113239052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110787353.0A CN113239052B (zh) 2021-07-13 2021-07-13 一种联盟链分组方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110787353.0A CN113239052B (zh) 2021-07-13 2021-07-13 一种联盟链分组方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN113239052A true CN113239052A (zh) 2021-08-10
CN113239052B CN113239052B (zh) 2021-09-28

Family

ID=77135369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110787353.0A Active CN113239052B (zh) 2021-07-13 2021-07-13 一种联盟链分组方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN113239052B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109285005A (zh) * 2018-08-16 2019-01-29 北京京东尚科信息技术有限公司 区块链的拆分处理方法、装置、区块链节点及存储介质
CN109508968A (zh) * 2018-10-25 2019-03-22 常州唯康信息科技有限公司 区块链系统以及其控制方法
CN109711836A (zh) * 2018-11-15 2019-05-03 远光软件股份有限公司 一种交易的存储方法、存储网络和电子设备
CN110458567A (zh) * 2019-08-23 2019-11-15 广东工业大学 一种基于区块链的物品交易管理系统和方法
WO2021017636A1 (zh) * 2019-07-26 2021-02-04 南京瑞祥信息技术有限公司 一种获得认证数字资产的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109285005A (zh) * 2018-08-16 2019-01-29 北京京东尚科信息技术有限公司 区块链的拆分处理方法、装置、区块链节点及存储介质
CN109508968A (zh) * 2018-10-25 2019-03-22 常州唯康信息科技有限公司 区块链系统以及其控制方法
CN109711836A (zh) * 2018-11-15 2019-05-03 远光软件股份有限公司 一种交易的存储方法、存储网络和电子设备
WO2021017636A1 (zh) * 2019-07-26 2021-02-04 南京瑞祥信息技术有限公司 一种获得认证数字资产的方法
CN110458567A (zh) * 2019-08-23 2019-11-15 广东工业大学 一种基于区块链的物品交易管理系统和方法

Also Published As

Publication number Publication date
CN113239052B (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
CN1552032B (zh) 数据库
US7080091B2 (en) Inverted index system and method for numeric attributes
EP1280050A2 (en) Data sort method, data sort apparatus, and data sort program
US20050267902A1 (en) Database and method of generating same
KR20130062889A (ko) 데이터 압축 방법 및 시스템
CN114281793A (zh) 数据校验方法、装置和系统
Radke The use of quadratic residue research
CN111209341B (zh) 区块链的数据存储方法、装置、设备及介质
US8140546B2 (en) Computer system for performing aggregation of tree-structured data, and method and computer program product therefor
Haj Rachid et al. A practical and scalable tool to find overlaps between sequences
Srivastav et al. An Approach for fast Compressed text Matching and to avoid false Matching using WBTC and Wavelet Tree
CN103780263B (zh) 数据压缩装置、数据压缩方法及记录介质
Srivastav et al. A method to improve exact matching results in compressed text using parallel wavelet tree
CN110825919B (zh) Id数据处理方法和装置
CN113239052B (zh) 一种联盟链分组方法、装置、设备和介质
JP5812007B2 (ja) インデックス作成装置、データ検索装置、インデックス作成方法、データ検索方法、インデックス作成プログラムおよびデータ検索プログラム
CN115130043B (zh) 基于数据库的数据处理方法、装置、设备及存储介质
EP2003577A2 (en) Methods of encoding and combining integers lists in a computer system, computer system and software product for implementing such methods
US20060101045A1 (en) Methods and apparatus for interval query indexing
CN112860712B (zh) 一种基于区块链的交易数据库构建方法、系统及电子设备
CN111831876B (zh) 查询方法、设备和存储介质
CN113239039A (zh) 动态数据的存储方法、查询方法、管理方法及管理系统
US10372917B1 (en) Uniquely-represented B-trees
CN113792227A (zh) 一种基于多维度智慧屏应用排名的方法、系统及介质
CN117743320A (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