CN114331732B - 一种共识报文压缩方法 - Google Patents
一种共识报文压缩方法 Download PDFInfo
- Publication number
- CN114331732B CN114331732B CN202210249746.0A CN202210249746A CN114331732B CN 114331732 B CN114331732 B CN 114331732B CN 202210249746 A CN202210249746 A CN 202210249746A CN 114331732 B CN114331732 B CN 114331732B
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- consensus
- block
- offset
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种共识报文压缩方法,基于交易预排序的新型出块方案,重新定义报文结构,主节点仅需广播交易序列偏移量,而不需重复广播所有交易;投票仅需广播各节点签名后的在读写集hash,能够压缩共识流程中的报文体积,减少通信开销和带宽占用,提升共识效率。基于对交易预排序,能够确保交易一致且有序,基于此可加速交易执行、验证及共识处理速度,提升出块效率和共识系统整体性能。
Description
技术领域
本发明涉及共识算法技术领域,更具体的说是涉及一种共识报文压缩方法。
背景技术
目前,现有技术中提出的在共识广播区块信息时,采用全局区块压缩传输的方法,并且在区块中添加额外信息以便验证主体区块所包含的交易是否满足全局一致性,从而减少共识报文传播量,同时扩展全局区块包括的交易数量上限。采用上述全局区块压缩传输方式,受限于压缩算法效率,难以实现全量交易的块内交易数扩展,且解压缩本身需要消耗一定时间,同时为保证区块所包含的交易是否满足全局一致性,并且需要在区块中添加额外信息,增加了区块大小,且基于压缩算法的报文传递存在报文丢失的可能。
因此,如何压缩公式流程中的报文体积,提升共识效率是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种共识报文压缩方法,基于交易预排序的出块方案,重新定义报文结构,主节点仅需广播交易序列偏移量,而不需重复广播所有交易,各节点在共识投票阶段仅需广播各节点签名的读写集hash,从而能够实现压缩共识流程中报文体积,减少共识广播占用带宽,提升共识效率。
为了实现上述目的,本发明采用如下技术方案:
一种共识报文压缩方法,包括以下步骤:
步骤1:共识节点中的共识主节点从提供交易预排序服务的节点拉取预排序后的交易;所有共识节点均拥有相同一致的预排序后的交易序列;
步骤2:共识主节点在进行共识广播时,广播所述偏移量;而不需重复广播所有交易,从而避免了交易的全量广播,可减少共识流程通信开销、降低传输带宽占用,提高共识效率;
步骤3:共识从节点在接收所述偏移量后,根据接收的所述偏移量在节点本地拉取与共识主节点相同的一批交易;
步骤4:共识主节点和共识从节点对拉取的交易预执行后,各节点只广播节点签名后的读写集hash,并进行共识投票。
优选的,偏移量为预排序后的交易序列信息,用于选取一批交易的标量;所述共识主节点拉取预排序后的交易时交易选取方法为将上一区块偏移量与本区块偏移量之间的交易作为一个区块;所述共识主节点拉取偏移量时偏移量选取方法为可基于实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况等参数进行配置。
优选的,交易预排序通过区块出块流程获得,包括以下步骤:
步骤11:基于设定规则对交易进行预排序,获得预排序后交易序列;
步骤12:向各节点广播偏移量后均进行交易,各节点各自独立对预排序后交易进行预处理或执行,各节点获得各自候选区块信息;
步骤13:各节点广播各自候选区块信息;
步骤14:各节点对候选区块信息进行共识,若各节点对候选区块信息达成共识则各节点将各自的候选区块、区块中的交易和区块链的状态变更等写入存储介质,完成区块落库。
优选的,所述设定规则包括交易发生时间、接收交易顺序或发送者优先级中的一种或多种组合。
优选的,所述步骤12中进行预处理后,预处理结果中包含返回交易执行结果,所述交易执行结果包括读写集信息、交易执行顺序信息的DAG。读写集信息中包括读写集hash。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种共识报文压缩方法,基于交易预排序的新型出块方案,重新定义报文结构,主节点仅需广播交易序列偏移量,而不需重复广播所有交易;投票仅需广播各节点签名后的在读写集hash,能够压缩共识流程中的报文体积,减少通信开销和带宽占用,提升共识效率。基于对交易预排序,能够确保交易一致且有序,基于此可加速交易执行、验证及共识处理速度,提升出块效率和共识系统整体性能。相比传统非预排序共识的共识报文,本发明通过重新定义报文结构,能够最大程度压缩共识过程中的报文体积,可减少带宽占用,提升共识效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明提供的共识报文压缩方法流程示意图;
图2附图为本发明提供的区块出块流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种共识报文压缩方法,包括以下步骤:
步骤1:共识节点中的共识主节点从提供交易预排序服务的节点拉取预排序后的交易;所有共识节点均拥有相同一致的预排序后的交易序列;
步骤2:共识主节点在进行共识广播时,广播偏移量;而不需重复广播所有交易,从而避免了交易的全量广播,可减少共识流程通信开销、降低传输带宽占用,提高共识效率;
步骤3:共识从节点在接收偏移量后,根据接收的偏移量在节点本地拉取与共识主节点相同的一批交易;
步骤4:共识主节点和共识从节点完成拉取的交易预执行后,各节点只广播节点签名后的读写集hash,并进行共识投票。
为了进一步优化上述技术方案,偏移量为预排序后的交易序列信息,用于选取一批交易的标量;共识主节点拉取预排序后的交易时交易选取方法为将上一区块偏移量与本区块偏移量之间的交易作为一个区块;共识主节点拉取偏移量时偏移量选取方法为可基于实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况等参数进行配置。
为了进一步优化上述技术方案,交易预排序通过区块出块流程获得,包括以下步骤:
步骤11:基于设定规则对交易进行预排序,获得预排序后交易序列;
步骤12:向各节点广播偏移量后均进行交易,各节点各自独立对预排序后交易进行预处理或执行,各节点获得各自候选区块信息;
步骤13:各节点广播各自候选区块信息;
步骤14:各节点对候选区块信息进行共识,若各节点对候选区块信息达成共识则各节点将各自的候选区块、区块中的交易和区块链的状态变更等写入存储介质,完成区块落库。
为了进一步优化上述技术方案,设定规则包括交易发生时间、接收交易顺序或发送者优先级中的一种或多种组合。
为了进一步优化上述技术方案,步骤12中进行预处理后,预处理结果中包含返回交易执行结果,交易执行结果包括读写集信息、交易执行顺序信息的DAG。读写集信息中包括读写集hash。
实施例
基于预排序、共识报文压缩方法的共识方法,具有以下具体步骤:
(1):主节点接收预排序后的交易序列,基于预排序交易序列,主节点选择一个偏移量,将上一区块偏移量与本区块偏移量之间的交易作为一个区块,预执行并打包交易形成候选区块;
(2):主节点将偏移量和打包区块信息广播给从节点;打包区块信息包括preHash、blockHash、区块链高度、时间戳和提案人签名;主节点向从节点的广播报文里不包含原始的交易以及全部读写集,即对报文进行了压缩,几乎减掉了原始报文里的绝大部分内容,通过共识算法和流程减少了报文的内容,从而实现压缩;
(3):从节点基于接收到的偏移量,将上一区块偏移量与本区块偏移量之间的交易作为一个区块,预执行交易并打包形成本节点候选区块;
(4):从节点的交易执行后生成读写集hash,对读写集hash签名并广播;
(5):各从节点接收到满足共识算法要求的投票数后,执行区块落库。
共识过程中共识主节点仅需要广播选定的偏移量信息,而不需要对交易作全量广播,其他节点按照接收的偏移量即可从预排序交易序列中选取与主节点完全相同的一批交易。综上,该共识报文压缩方法避免了交易的全量广播,可减少共识流程通信开销、降低传输带宽占用,达到提高共识效率的目的。
交易:对区块链智能合约的一次调用,包含调用智能合约的全部信息:智能合约名称、调用函数名称、参数等。
交易预排序:节点基于设定规则,如按照交易发生时间、发送者优先级等对一批交易进行排序的操作。
共识算法:区块链系统中各节点间为达成一致采用的计算方法。
共识报文:共识过程广播的信息。
偏移量:在预排序交易序列中选定的一个标量,基于上一区块偏移量与本区块偏移量可确定一组交易,形成一个区块。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种共识报文压缩方法,其特征在于,包括以下步骤:
步骤1:共识节点中的共识主节点从提供交易预排序服务的节点拉取预排序后的交易和偏移量;
步骤2:共识主节点在进行共识广播时,广播所述偏移量;
步骤3:共识从节点在接收所述偏移量后,根据接收的所述偏移量在节点本地拉取与共识主节点相同的一批交易;
步骤4:共识主节点和共识从节点对拉取的交易预执行后,各节点只广播节点签名后的读写集hash,并进行共识投票。
2.根据权利要求1所述的一种共识报文压缩方法,其特征在于,偏移量为预排序后的交易序列信息,用于选取一批交易的标量;所述共识主节点拉取预排序后的交易时交易选取方法为将上一区块偏移量与本区块偏移量之间的交易作为一个区块;所述共识主节点拉取偏移量时偏移量选取方法为基于实际交易并发量需求、区块链系统的区块大小配置情况和出块时间配置情况的参数进行配置。
3.根据权利要求1所述的一种共识报文压缩方法,其特征在于,交易预排序通过区块出块流程获得,包括以下步骤:
步骤11:基于设定规则对交易进行预排序,获得预排序后交易序列;
步骤12:向各节点广播偏移量后均进行交易,各节点各自独立对预排序后交易进行预处理或执行,各节点获得各自候选区块信息;
步骤13:各节点广播各自候选区块信息;
步骤14:各节点对候选区块信息进行共识,若各节点对候选区块信息达成共识则各节点将各自的候选区块、区块中的交易和区块链的状态变更写入存储介质,完成区块落库。
4.根据权利要求3所述的一种共识报文压缩方法,其特征在于,所述设定规则包括交易发生时间、接收交易顺序或发送者优先级中的一种或多种组合。
5.根据权利要求3所述的一种共识报文压缩方法,其特征在于,所述步骤12中进行预处理后,预处理结果中包含返回交易执行结果,所述交易执行结果包括读写集信息、交易执行顺序信息的DAG。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249746.0A CN114331732B (zh) | 2022-03-15 | 2022-03-15 | 一种共识报文压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249746.0A CN114331732B (zh) | 2022-03-15 | 2022-03-15 | 一种共识报文压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114331732A CN114331732A (zh) | 2022-04-12 |
CN114331732B true CN114331732B (zh) | 2022-05-24 |
Family
ID=81033241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249746.0A Active CN114331732B (zh) | 2022-03-15 | 2022-03-15 | 一种共识报文压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114331732B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114493887A (zh) * | 2022-04-15 | 2022-05-13 | 北京微芯感知科技有限公司 | 区块出块方法及装置 |
CN117812092B (zh) * | 2024-02-28 | 2024-05-14 | 中国信息通信研究院 | 基于谓词的区块压缩传输方法和装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339110A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 基于区块链的交易备份方法及系统 |
CN111740951A (zh) * | 2015-01-26 | 2020-10-02 | 卢森堡商创研腾智权信托有限公司 | 借由云端安全动态传输数据资料的方法 |
CN111988264A (zh) * | 2019-05-22 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 区块链与网络系统、数据接收与发送方法及设备 |
CN113810378A (zh) * | 2021-08-19 | 2021-12-17 | 广东中科智能区块链技术有限公司 | 一种基于共识排序的交易预处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11693979B2 (en) * | 2019-11-27 | 2023-07-04 | International Business Machines Corporation | Dynamic permission assignment and enforcement for transport process |
-
2022
- 2022-03-15 CN CN202210249746.0A patent/CN114331732B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740951A (zh) * | 2015-01-26 | 2020-10-02 | 卢森堡商创研腾智权信托有限公司 | 借由云端安全动态传输数据资料的方法 |
CN111988264A (zh) * | 2019-05-22 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 区块链与网络系统、数据接收与发送方法及设备 |
CN111339110A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 基于区块链的交易备份方法及系统 |
CN113810378A (zh) * | 2021-08-19 | 2021-12-17 | 广东中科智能区块链技术有限公司 | 一种基于共识排序的交易预处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114331732A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114331732B (zh) | 一种共识报文压缩方法 | |
CN110399104B (zh) | 数据存储方法、数据存储装置、电子设备、存储介质 | |
CN111563820B (zh) | 智能合约并行执行方法及装置 | |
CN112612686A (zh) | 性能测试方法、装置、电子设备及存储介质 | |
CN109725995B (zh) | 数据抽取任务执行方法、装置、设备及可读存储介质 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN110008192A (zh) | 一种数据文件压缩方法、装置、设备及可读存储介质 | |
CN102364457A (zh) | 一种文档转换方法及系统 | |
CN112559513A (zh) | 链路数据存取方法、装置、存储介质、处理器及电子装置 | |
CN112784112A (zh) | 报文校验方法及装置 | |
CN110191156B (zh) | 一种基于区块链的数据处理方法及装置 | |
CN110851675A (zh) | 一种数据提取方法、装置及介质 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
CN107506476A (zh) | 用户行为数据收集分析系统及分析方法 | |
CN116680270A (zh) | 数据表转换方法、装置和存储介质 | |
CN115879889A (zh) | 基于区块链的业务处理方法、装置和计算机设备 | |
CN110460987A (zh) | 一种写卡方法、装置、服务器和存储介质 | |
CN114422151B (zh) | 一种区块块内交易数扩展方法及系统 | |
CN110266814B (zh) | 传输方法及传输装置 | |
CN112788768A (zh) | 一种通信资源分配方法及装置 | |
CN105721933A (zh) | 广告视频信息库的创建方法、广告视频识别方法及装置 | |
CN112506919A (zh) | 一种结构化的icd生成方法 | |
CN111400598A (zh) | 信息推送方法、服务器、多端口转发器和存储介质 | |
CN111477218A (zh) | 多语音识别方法、装置、终端和非临时性计算机可读存储介质 | |
CN111767451A (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 |