CN109034807B - 一种区块链数据同步方法 - Google Patents
一种区块链数据同步方法 Download PDFInfo
- Publication number
- CN109034807B CN109034807B CN201810925401.6A CN201810925401A CN109034807B CN 109034807 B CN109034807 B CN 109034807B CN 201810925401 A CN201810925401 A CN 201810925401A CN 109034807 B CN109034807 B CN 109034807B
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- bitmap
- hash value
- consensus
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种区块链数据同步方法,通过本节点先生成位图,再将位图进行全节点广播的方式,让节点与节点之间比对位图的状态,获取本节点缺少的交易,修正本节点的位图状态,有效减少了节点之间广播的次数和广播数据的大小,降低带宽占用。
Description
技术领域
本发明涉及区块链技术领域,涉及一种区块链数据同步方法。
背景技术
现有的区块链系统中,共识节点收到用户发来的交易后,为使交易不在本地长时间缓存,共识节点会立即将收到的交易向区块链系统的全节点进行广播;若同一时间,有较多的共识节点将收到的交易向区块链系统的全节点进行广播,且交易信息较大,则会造成带宽占用大、网络拥堵等问题。
综上所述,当前需要提供一种技术方案,能够有效减少节点之间的广播次数,且能够减小广播的文件的大小,使得区块链系统稳定工作。
发明内容
有鉴于此,本发明提供一种解决或部分解决上述问题的一种区块链数据同步方法。
为达到上述技术方案的效果,本发明的技术方案为:一种区块链数据同步方法,包含以下内容:
数据同步方法的角色包括:用户、交易、记账节点、共识节点、普通节点、位图;
用户将交易发送到区块链系统;用户、交易都至少有一个;
每个共识节点都有一个对应的位图;共识节点对收到的交易做哈希运算,并将得到的交易哈希值保存到对应的位图中;共识节点用于打包交易生成区块,在每轮共识过程中,最快打包交易生成区块的共识节点为记账节点,除去记账节点外的其他共识节点为普通节点;每轮共识只有一个记账节点,普通节点至少有三个;
位图是由N个存储位构成的列表,N为存储位的个数;每一个存储位包括状态码、存储空间和位编号;位编号是[0,N]范围内的连续整数,位编号为十进制数;存储空间用于存放哈希值;状态码包括0和1,已经存放哈希值的存储位的状态码为1,没有存放哈希值的存储位的状态码为0;
数据同步方法,包括以下处理步骤:
步骤1:用户将交易经私钥签名发送到区块链系统;
步骤2:共识节点将由交易经哈希运算得到的交易哈希值保存到对应的位图中,保存的过程为:首先将交易哈希值的前M个字节与N取模得到序号,在对应的位图中和序号相同的位编号对应的存储空间中写入交易哈希值;再更新状态码,将已经存放有哈希值的存储位的状态码设置为1,没有存放哈希值的存储位的状态码保持为0;M、N均为正整数,取值由工作人员确定;
步骤3:共识节点将所有交易哈希值生成梅克尔树,得到梅克尔根;
步骤4:最快得到梅克尔根的共识节点为记账节点,记账节点向区块链系统中的普通节点广播自己的位图和梅克尔根;
步骤5:普通节点收到记账节点广播的位图和梅克尔根,并对比收到的梅克尔根和自己的梅克尔根,如果两者一致,则执行步骤9,如果两者不一致,则执行步骤6;
步骤6:共识节点将收到的位图和自己的位图中位编号相同的存储位按照位编号由小到大的顺序逐个对比的得到异常的存储位:首先对比状态码,如果状态码不一致,则存储位异常;如果状态码均为1,则将两个存储位中的交易哈希值取出部分进行对比,如果交易哈希值的取出部分不一致,则存储位异常;交易哈希值的取出部分的长度及位数由工作人员根据需要调整;
步骤7:共识节点将步骤6中所有异常的存储位对应的交易广播给区块链系统中的其他共识节点,并向区块链系统中的其他共识节点获取异常的存储位对应的交易的原始数据;
步骤8:共识节点将获取到的异常的存储位对应的交易的原始数据做哈希运算,并将得到的交易哈希值保存到对应的异常的存储位中,得到最终的位图;
步骤9:记账节点将本节点的所有交易进行打包生成区块,并将区块头及最终的位图广播给普通节点;区块头包含梅克尔根;
步骤10:共识节点验证记账节点广播的梅克尔根、交易哈希值、最终的位图,并进行投票。
区块链系统中单个区块平均打包交易的数量与存储位的个数的比值小于1/10。
本发明的有益成果为:本发明提供了一种区块链数据同步方法,通过本节点先生成位图,再将位图进行全节点广播的方式,让节点与节点之间比对位图的状态,获取本节点缺少的交易,修正本节点的位图状态,有效减少了节点之间广播的次数和广播数据的大小,降低带宽占用。
具体实施方法
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:
实施例1:本实施例具体说明了一种区块链数据同步方法的步骤:
本实施例中N和M的取值分别为16和1;
本实施例中的一种区块链数据同步方法主要包括以下步骤:
步骤1:用户将交易发送到区块链系统;
步骤2.1:共识节点对本节点收到的所述交易做哈希运算,得到Hash(Tx),Hash(Tx)是一组32个字节的16进制字符串;
步骤2.2:交易哈希值的第1个字节转换为十进制数,再与16取模得到序号;例如交易哈希值Hash(Tx)的前8位是00000001,转化为十进制数为1,1与16取模得到序号为1;
步骤2.3:将交易哈希值Hash(Tx)写入位图中的对应存储空间中;例如步骤2.2中Hash(Tx)得到的序号为1,则将Hash(Tx)写入位编号为1的存储空间中;
步骤2.3:更新状态码;例如将Hash(Tx)写入位编号为1的存储空间后,则位编号为1的存储位的状态码设置为1,没有存放哈希值的存储位的状态码保持为0;
步骤3:共识节点将所有交易哈希值生成梅克尔树,得到梅克尔根;最快得到梅克尔根的共识节点为记账节点;
步骤4:共识节点向区块链系统中的普通节点广播自己的位图和梅克尔根;
步骤5:共识节点收到其他共识节点广播的位图和梅克尔根,并对比收到的梅克尔根和自己的梅克尔根,如果两者一致,则执行步骤9,如果两者不一致,则执行步骤6;
步骤6:共识节点对比收到的位图和自己的位图的状态码,如果同一位编号的两个状态码不一致,则对应的存储位异常,如果同一位编号的两个状态码都是1,则从Hash(Tx)中随机取出部分进行对比,如果取出部分不一致,则对应的存储位异常;
步骤7:共识节点将步骤6中所有异常的存储位对应的交易广播给区块链系统中的其他共识节点,并向区块链系统中的其他共识节点获取异常的存储位对应的交易的原始数据;
步骤8:共识节点将获取到的异常的存储位对应的交易的原始数据做哈希运算,并将得到的交易哈希值保存到对应的异常的存储位中,得到最终的位图;
步骤9:记账节点将本节点的所有交易进行打包生成区块,并将区块头及最终的位图广播给普通节点;区块头包含梅克尔根;
步骤10:共识节点验证记账节点广播的梅克尔根、交易哈希值、最终的位图,并进行投票。
区块链系统中单个区块平均打包交易的数量与所述位图的位的数量的比值小于1/10。假设单个区块平均打包交易的数量为10000个交易,那么位图的位的数量要大于100000,这样,可以使得每笔交易都可以进入位图的不同位中,减少不同交易进入同一个位的概率。
本发明的有益成果为:本发明提供了一种区块链数据同步方法,通过本节点先生成位图,再将位图进行全节点广播的方式,让节点与节点之间比对位图的状态,获取本节点缺少的交易,修正本节点的位图状态,有效减少了节点之间广播的次数和广播数据的大小,降低带宽占用。
以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。
Claims (2)
1.一种区块链数据同步方法,其特征在于,包含以下内容:
数据同步方法的角色包括:用户、交易、记账节点、共识节点、普通节点、位图;
所述用户将所述交易发送到区块链系统;所述用户、所述交易都至少有一个;
每个所述共识节点都有一个对应的位图;所述共识节点对收到的所述交易做哈希运算,并将得到的交易哈希值保存到所述对应的位图中;所述共识节点用于打包交易生成区块,在每轮共识过程中,最快打包交易生成区块的共识节点为所述记账节点,除去所述记账节点外的其他所述共识节点为所述普通节点;每轮共识只有一个所述记账节点,所述普通节点至少有三个;
所述位图是由N个存储位构成的列表,所述N为存储位的个数;每一个所述存储位包括状态码、存储空间和位编号;所述位编号是[0,N-1]范围内的连续整数,所述位编号为十进制数;所述存储空间用于存放哈希值;所述状态码包括0和1,已经存放哈希值的存储位的状态码为1,没有存放哈希值的存储位的状态码为0;
所述数据同步方法,包括以下处理步骤:
步骤1:所述用户将所述交易经私钥签名发送到所述区块链系统;
步骤2:所述共识节点将由所述交易经哈希运算得到的交易哈希值保存到所述对应的位图中,保存的过程为:首先将所述交易哈希值的前M个字节与所述N取模得到序号,在所述对应的位图中和所述序号相同的所述位编号对应的所述存储空间中写入所述交易哈希值;再更新所述状态码,将已经存放有哈希值的存储位的状态码设置为1,没有存放哈希值的存储位的状态码保持为0;所述M、所述N均为正整数,取值由工作人员确定;
步骤3:所述共识节点将所有所述交易哈希值生成梅克尔树,得到梅克尔根;最快得到所述梅克尔根的共识节点为所述记账节点即最快打包交易生成区块的共识节点;
步骤4:所述共识节点向所述区块链系统中的其他共识节点广播自己的位图和梅克尔根;
步骤5:所述共识节点收到所述其他共识节点广播的位图和梅克尔根,并对比收到的梅克尔根和自己的梅克尔根,如果两者一致,则执行步骤9,如果两者不一致,则执行步骤6;
步骤6:所述共识节点将收到的位图和自己的位图中位编号相同的存储位按照所述位编号由小到大的顺序逐个对比的得到异常的存储位:首先对比状态码,如果所述状态码不一致,则所述存储位异常;如果所述状态码均为1,则将两个存储位中的交易哈希值取出部分进行对比,如果交易哈希值的取出部分不一致,则所述存储位异常;所述交易哈希值的取出部分的长度及位数由工作人员根据需要调整;
步骤7:所述共识节点将步骤6中所有所述异常的存储位对应的交易广播给所述区块链系统中的其他共识节点,并向所述区块链系统中的其他共识节点获取所述异常的存储位对应的交易的原始数据;
步骤8:所述共识节点将获取到的所述异常的存储位对应的交易的原始数据做哈希运算,并将得到的所述交易哈希值保存到对应的异常的存储位中,得到最终的位图;
步骤9:所述记账节点将本节点的所有交易进行打包生成区块,并将区块头及所述最终的位图广播给所述普通节点;所述区块头包含所述梅克尔根;
步骤10:所述普通节点验证所述记账节点广播的所述梅克尔根、所述交易哈希值、所述最终的位图,并进行投票。
2.根据权利要求1所述的一种区块链数据同步方法,其特征在于,包括:所述区块链系统中单个区块平均打包交易的数量与所述存储位的个数的比值小于1/10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810925401.6A CN109034807B (zh) | 2018-08-15 | 2018-08-15 | 一种区块链数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810925401.6A CN109034807B (zh) | 2018-08-15 | 2018-08-15 | 一种区块链数据同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109034807A CN109034807A (zh) | 2018-12-18 |
CN109034807B true CN109034807B (zh) | 2021-07-06 |
Family
ID=64631127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810925401.6A Active CN109034807B (zh) | 2018-08-15 | 2018-08-15 | 一种区块链数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109034807B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984662B (zh) * | 2018-06-28 | 2021-02-09 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
CN109978528B (zh) * | 2019-03-15 | 2020-05-12 | 北京世纪诚链科技有限公司 | 一种可插拔共识协议框架模型、共识协议及其实现方法 |
CN110059089B (zh) * | 2019-03-27 | 2021-01-22 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110336676A (zh) * | 2019-07-15 | 2019-10-15 | 杭州复杂美科技有限公司 | 一种区块链交易广播方法和系统、设备及存储介质 |
CN110445843B (zh) * | 2019-07-15 | 2021-11-02 | 杭州复杂美科技有限公司 | 平行链区块推送方法、设备和存储介质 |
CN110659988B (zh) * | 2019-09-10 | 2022-11-18 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
CN111432027B (zh) * | 2020-04-14 | 2023-04-14 | 杭州复杂美科技有限公司 | 平行链区块同步方法、设备和存储介质 |
CN111523897B (zh) * | 2020-05-06 | 2023-04-07 | 杭州复杂美科技有限公司 | 防攻击方法、设备和存储介质 |
CN111401904B (zh) * | 2020-06-05 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
CN111756639B (zh) * | 2020-06-19 | 2022-05-10 | 杭州芯讯科技有限公司 | 一种基于默克尔树和广播自请求的镜像数据传输方法 |
CN113269645B (zh) * | 2021-05-28 | 2024-05-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
KR20180042145A (ko) * | 2017-12-28 | 2018-04-25 | 주식회사 차칵 | 미디어 파일 위변조 검증 방법 |
CN108243241A (zh) * | 2017-11-10 | 2018-07-03 | 杭州复杂美科技有限公司 | 一种区块链交易的存储方式及排队方式 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241968B (zh) * | 2017-03-26 | 2020-08-14 | 杭州复杂美科技有限公司 | 前置机参与区块链共识的方法 |
CN108288156B (zh) * | 2018-01-04 | 2020-08-14 | 杭州复杂美科技有限公司 | 一种区块链交易的存储及排队方法 |
CN108984662B (zh) * | 2018-06-28 | 2021-02-09 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
-
2018
- 2018-08-15 CN CN201810925401.6A patent/CN109034807B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
CN108243241A (zh) * | 2017-11-10 | 2018-07-03 | 杭州复杂美科技有限公司 | 一种区块链交易的存储方式及排队方式 |
KR20180042145A (ko) * | 2017-12-28 | 2018-04-25 | 주식회사 차칵 | 미디어 파일 위변조 검증 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN109034807A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034807B (zh) | 一种区块链数据同步方法 | |
CN106991607B (zh) | 一种基于区块链账户模型的无序交易控制方法 | |
CN108984662B (zh) | 一种区块链数据同步方法 | |
CN109542979B (zh) | 一种区块链系统快速同步及简精数据存储的方式 | |
JP3306210B2 (ja) | Crcコードの確認方法及び装置 | |
US12073391B2 (en) | Short transaction identifier collision detection and reconciliation | |
US8671332B2 (en) | Systems and methods for a rateless round robin protocol for adaptive error control | |
CN108512785B (zh) | 一种数据传输协议方法 | |
RU2011135548A (ru) | Ускорение хэширования растрового представления rdp с использованием инструкций simd | |
CN104917591B (zh) | 一种适用于单向有损链路的卫星网络数据包压缩方法 | |
CA2518696A1 (en) | Wireless packet communication method | |
CN114205133B (zh) | 一种用于车载can网络的信息安全增强方法及电子设备 | |
US11308030B2 (en) | Log-structured merge-tree with blockchain properties | |
US20200401377A1 (en) | Decentralized Random Number Generator | |
CN113114472A (zh) | 一种基于报文哈希链的认证方法及系统 | |
US20120011566A1 (en) | System and method for sensor network authentication based on xor chain | |
US8655932B2 (en) | Data converting method and a device therefor | |
CN112883398B (zh) | 基于同态加密的数据完整性验证方法 | |
JP5528257B2 (ja) | ネットワークにおいて複数のタイミングマスターを検出するためのシステム及び方法 | |
CN114025024B (zh) | 一种数据传输方法及装置 | |
CN114567673B (zh) | 一种区块链节点快速广播区块的方法 | |
CN116305303A (zh) | 默克尔树的构建方法、装置、计算机设备及介质 | |
CN112866276B (zh) | 一种基于拟态服务功能构架的主次重置判决系统 | |
EP4256750A1 (en) | Methods and systems for streaming block templates with cross-references | |
CN113468574A (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 |