CN109510876A - 一种基于pbft的联盟链分片方法及相应的联盟链 - Google Patents
一种基于pbft的联盟链分片方法及相应的联盟链 Download PDFInfo
- Publication number
- CN109510876A CN109510876A CN201811561856.0A CN201811561856A CN109510876A CN 109510876 A CN109510876 A CN 109510876A CN 201811561856 A CN201811561856 A CN 201811561856A CN 109510876 A CN109510876 A CN 109510876A
- Authority
- CN
- China
- Prior art keywords
- chain
- alliance
- section
- node
- nodes
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种基于PBFT的联盟链分片方法及相应的联盟链,所述方法包括:根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链被划分的片区数;根据片区数,将联盟链中的所有节点进行片区的划分;当节点接收到上链信息请求时,按照预设算法确定存储上链信息的片区;按照PBFT算法将上链信息存储到确定的片区的区块中,并将产生的新区块广播到所有节点中;对新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。通过本发明,基于PBFT算法对联盟链进行分片,提高了联盟链系统的并发量。
Description
技术领域
本发明涉及区块链的分片技术,更具体地,涉及一种基于PBFT的联盟链分片方法及相应的联盟链。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中介化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,区块链具有去中心化、安全性高等特点,因此,在很多应用场合都使用区块链。
传统的区块链中只存在一条主链,当交易并发量较高时,传统的区块链会出现压力瓶颈,导致并发量低的问题。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的基于PBFT的联盟链分片方法及相应的联盟链,解决了联盟链并发量低的问题。
根据本发明的一个方面,提供了一种基于PBFT的联盟链分片方法,包括:
S1,根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;
S2,根据所述片区数,按照预设规则将联盟链中的所有节点进行片区的划分;
S3,当联盟链中的节点接收到上链信息请求时,按照预设算法确定存储上链信息的片区;
S4,按照PBFT算法将所述上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;
S5,对所述新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
本发明的有益效果为:基于PBFT算法对联盟链进行分片,将联盟链划分为主链和多个片区链,当联盟链的交易量较高时,提高了联盟链系统的并发量。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步的,所述步骤S1之前还包括:
当有新节点申请接入联盟链时,联盟链管理节点对申请加入的该新节点进行审核,待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
进一步的,所述步骤S1具体包括:
当联盟链中的节点接收到联盟链管理节点广播的所有节点名单后,根据所述所有节点名单中的节点总数m和预设的最小节点共识数量n,计算联盟链中所有节点被划分的片区数x=[m/n],其中,m,n均为正整数;
相应的,所述步骤S2具体包括:
根据计算的片区数,将联盟链中所有节点等分为x个片区,每一个片区包括n个节点。
进一步的,所述根据计算的片区数,将联盟链中所有节点等分为x个片区具体包括:
划分后的第一片区包括编号为1~n的节点,第二片区包括编号为(n+1)~2n的节点,依次类推,第x个片区包括编号为(x-1)n+1~m的节点。
进一步的,所述步骤S3具体包括:
当联盟链中的节点接收到上链信息请求时,该节点计算出H=(上链信息+当前时间戳的哈希值),并计算y=(H的二进制后12位)mod x+1,得到小于等于x的片区序号y,其中,y为确定存储上链信息的片区。
进一步的,所述步骤S4具体包括:
S41,接收到上链信息请求的节点与第y片区中的所有节点组成第y共识小组,其中,所述接收到上链信息请求的节点为第y共识小组的主节点,第y片区中的所有节点为第y共识小组的从节点;
S42,按照PBFT算法进行出块,并将产生的新区块在第y共识小组的所有节点中进行更新;
S43,当第y共识小组的主节点接收到该共识小组中超过2/3个从节点的新区块更新成功的反馈时,该主节点将产生的新区块广播至联盟链的所有节点。
进一步的,所述步骤S5具体包括:
S51,当在第y共识小组中产生的新区块的数量为预设数量时,第y共识小组中的主节点对产生的预设数量的新区块进行哈希运算,得到对应的哈希值;
S52,第y共识小组中的所述主节点将所述哈希值发送给第一片区的所有节点,并按照PBFT算法将所述哈希值存储到第一片区的主链上;
S53,第一片区的主链将所述哈希值广播至每一个片区的主链上,以使所述哈希值存储到联盟链的每一个片区的主链上。
进一步的,所述步骤S5之后还包括:
S6,根据需要验证的指定片区的指定区块,对所述指定区块进行哈希运算,得到运算后的哈希值,将该哈希值与存储于主链中的所述指定片区的所述指定区块的哈希值进行对比,若对比结果为一致,则表明指定片区的指定区块为正确,若不一致,则指定片区的指定区块为错误。
根据本发明的另一个方面,提供了一种基于PBFT分片的联盟链,所述联盟链包括多个节点;
任一所述节点,用于根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;还用于根据所述片区数,按照预设规则将联盟链中的所有节点进行片区的划分;
接收到上链信息请求的节点,用于按照预设算法确定存储上链信息的片区;还用于按照PBFT算法将所述上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;以及还用于对所述新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
进一步的,所述联盟链包括一个联盟链管理节点;
所述联盟链管理节点,用于当有新节点申请接入联盟链时,对申请加入的该新节点进行审核;还用于待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
附图说明
图1为本发明一个实施例的基于PBFT的联盟链分片方法流程图;
图2为本发明一个实施例的联盟链片区划分流程图;
图3为本发明一个实施例的将上链信息进行存储的流程图;
图4为本发明一个实施例的将区块的哈希值存储于主链中的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的基于PBFT的联盟链分片方法,该方法对整个联盟链进行分片,能够提高整个联盟链的并发量。该分片方法包括:S1,根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;S2,根据片区数,按照预设规则将联盟链中的所有节点进行片区的划分;S3,当联盟链中的节点接收到上链信息请求时,按照预设算法确定存储上链信息的片区;S4,按照PBFT算法将所述上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;S5,对新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
在本实施例中,对整个联盟链的所有节点进行片区的划分,具体为联盟链中的节点根据加入联盟链的节点总数和预先配置的该联盟链的最小节点共识数量。其中,最小节点共识数量可以理解为划分后的每一个片区中包含的节点数量。节点根据联盟链中的节点总数和最小节点共识数量,计算将联盟链划分后的片区数,并根据片区数将联盟链中的所有节点进行片区的划分。
对联盟链中的所有节点进行片区的划分后,当节点接收到上链信息请求后,接收到上链信息请求的节点通过一定的规则选择一个片区,并通过PBFT(Practical ByzantineFault Tolerance,实用拜占庭容错算法)将上链信息存储于选择的片区的区块中,并将产生的新区块在联盟链全网进行广播。
最后,还将产生的新区块进行哈希运算,将运算后的哈希值更新存储到联盟链主链的区块中,至此,完成上链信息在联盟链中的存储。对联盟链中的节点进行片区的划分,能够提高整个联盟链系统的并发量。
在本发明的一个实施例中,所述步骤S1之前还包括:当有新节点申请接入联盟链时,联盟链管理节点对申请加入的该新节点进行审核,待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
在本实施例中,接入联盟链是需要审核的,具体为,每当有新节点申请加入联盟链时,联盟链管理节点会对申请加入的节点进行审核,只有审核通过才允许该节点加入联盟链。当该节点加入联盟链后。联盟链管理节点对该节点进行编号。其中,联盟链管理节点为联盟链中所有节点公选出来的,联盟链管理节点会对联盟链中所有节点包括自身进行编号,并形成所有节点名单,该所有节点名单也可称为该联盟链的白名单。联盟链管理节点形成了联盟链的所有节点名单后,将该所有节点名单广播至联盟链的所有节点。
在本发明的另一个实施例中,参见图2,所述步骤S1具体包括:当联盟链中的节点接收到联盟链管理节点广播的所有节点名单后,根据所有节点名单中的节点总数m和预设的最小节点共识数量n,计算联盟链中所有节点被划分的片区数x=[m/n],其中,m,n均为正整数。相应的,步骤S2具体包括:根据计算的片区数,将联盟链中所有节点等分为x个片区,每一个片区包括n个节点。
具体的,当联盟链中的节点接收到联盟链管理节点广播的所有节点名单,根据所有节点名单中的节点总数m和预先配置的最小节点共识数量n,计算联盟链中所有节点被划分的片区数x=m/n取整,其中,m,n均为正整数,即将联盟链中的所有节点等分为x个片区,每一个片区中包含n个节点。
在本发明的一个实施例中,将联盟链中的所有节点等分为x个片区,每一个片区中包括的节点数并不一定是严格相等的,其中,上述实施例中根据计算的片区数,将联盟链中所有节点等分为x个片区可以具体包括:划分后的第一片区包括编号为1~n的节点,第二片区包括编号为(n+1)~2n的节点,依次类推,第x个片区包括编号为(x-1)n+1~m的节点。
在本实施例中,将联盟链中的所有节点划分为x个片区时,每一个片区中的节点数量并不一定是完全相等的,由于当m为n的整数倍时,每一个片区中的节点数量确实是完全相等的,即每一个片区中包含n个节点;但是当m不为n的整数倍时,那么前面的(x-1)个片区中均包含n个节点,最后一个片区中包括(m-(x-1)n)个节点。这种对联盟链中所有节点进行划分的规则基本上可以理解为等分划分。
比如,联盟链中的节点总数为10个,最小节点共识数量为3,则将联盟链中的所有节点划分为3个片区,第一片区包括编号为1、2和3的3个节点,第二片区包括编号为4、5和6的3个节点,第三片区包括编号为7、8、9和10的4个节点。
在本发明的另一个实施例中,所述步骤S3具体包括:当联盟链中的节点接收到上链信息请求时,该节点计算出H=(上链信息+当前时间戳的哈希值),并计算y=(H的二进制后12位)mod x+1,得到小于等于x的片区序号y,其中,y为确定存储上链信息的片区。
当联盟链中的节点接收到上链信息请求时,接收到该上链信息请求的节点会选择将上链信息存储于哪一个片区的区块中。其中,根据业务类型,上链信息可以为交易信息,也可以为学习数据信息。本实施例中采用一定的规则算法从联盟链的所有片区中随机选择一个片区,用来存储该上链信息。其中,本实施例提供了一种算法,即计算出H=(上链信息+当前时间戳的哈希值),并计算y=(H的二进制后12位)mod x+1,计算出来的y为选择的片区序号,即将上链信息存储于第y片区,该序号y小于等于x。
本实施例通过上述的算法从联盟链的所有片区中随机选择一个片区,而不是固定片区,这样保证了整个联盟链系统中存储数据的安全性。
在本发明的一个实施例中,参见图3,步骤S4具体包括:S41,接收到上链信息请求的节点与第y片区中的所有节点组成第y共识小组,其中,所述接收到上链信息请求的节点为第y共识小组的主节点,第y片区中的所有节点为第y共识小组的从节点;S42,按照PBFT算法进行出块,并将产生的新区块在第y共识小组的所有节点中进行更新;S43,当第y共识小组的主节点接收到该共识小组中超过2/3个从节点的新区块更新成功的反馈时,该主节点将产生的新区块广播至联盟链的所有节点。
将上链信息存储到选择的第y片区的区块中的具体过程为,当接收到上链信息请求时,接收到上链信息请求的节点与选择的第y片区的所有节点组成第y共识小组。其中,接收到上链信息请求的节点作为第y共识小组的主节点,第y片区中的所有节点作为第y共识小组的从节点。
依然以联盟链中节点总数为10为例,当联盟链中编号为1的节点接收到上链信息请求时,编号为1的节点采用前述实施例的算法选择的片区为第1片区,该第1片区的节点为编号为1、2和3的3个节点。那么编号为1、2和3的3个节点组成第1共识小组,其中,编号为1的节点为主节点,编号为2和3的节点为从节点。
在第1共识小组中,按照PBFT算法进行出块,产生新区块,并将产生的新区块在第1共识小组的所有节点中进行更新,即将产生的新区块存储于第1共识小组的每一个节点中。
最后,第1共识小组中的从节点将新区块存储成功后,将存储成功后的反馈信息发送给主节点,当第1片区中超过2/3的从节点向主节点发送了存储成功的反馈信息后,主节点将新区块广播至联盟链全网的所有节点中,至此,在联盟链中的所有节点中均更新了新区块。
本实施例将产生的新区块在第y片区中进行存储成功的信息验证,保证了产生的新区块的有效性和安全性。
在本发明的一个实施例中,参见图4,步骤S5具体包括:S51,当在第y共识小组中产生的新区块的数量为预设数量时,第y共识小组中的主节点对产生的预设数量的新区块进行哈希运算,得到对应的哈希值;S52,第y共识小组中的所述主节点将所述哈希值发送给第一片区的所有节点,并按照PBFT算法将所述哈希值存储到第一片区的主链上;S53,第一片区的主链将所述哈希值广播至每一个片区的主链上,以使所述哈希值存储到联盟链的每一个片区的主链上。
将产生的新区块在联盟链全网中进行存储后,本实施例将新区块的哈希值存储于联盟链的主链中。以一个具体的例子来说明,当第1片区中产生的新区块数量为10个时,也就是产生的新区块在第1片区中的编号为10的整数倍时,比如,当前产生的新区块在第1片区中的编号为20时,当前接收上链信息请求的节点,比如编号为5的节点在将第1片区中编号为11-20的这10个新区块广播至联盟链全网中时,对编号为11-20的这10个新区块进行哈希运算,得到对应的哈希值,并将哈希值发送给第1片区的所有节点,即编号为1、2和3的节点。此时,对于接收到上链信息请求的节点,即编号为5的节点和第1片区中的所有节点,即编号为1、2和3的节点组成一个共识小组,使用PBFT算法将哈希值存储于第1片区的主链上。当产生的10个新区块对应的哈希值上链到第1片区的主链后,将该哈希值在其它的每一个片区的主链进行广播,至此,将产生的10个新区块的哈希值上链存储到联盟链的每一个片区的主链上。在本实施例的该例子中,当在某一个片区中每产生10个新区块时,将这10个新区块的哈希值存储于联盟链的主链区块中,最终联盟链的主链中存储有每一个区块的哈希值,其中,联盟链主链的区块对应保存有区块所在的片区以及该区块在该片区中的编号,以以便后续查询之用。
在本发明的一个实施例中,当需要对某一个片区的某些区块进行验证时,所述步骤S5之后还包括:S6,根据需要验证的指定片区的指定区块,对指定区块进行哈希运算,得到运算后的哈希值,将该哈希值与存储于主链中的所述指定片区的所述指定区块的哈希值进行对比,若对比结果为一致,则表明指定片区的指定区块为正确,若不一致,则指定片区的指定区块为错误。
上述实施例将每一个区块对应的哈希值存储于联盟链的主链中,当需要对某一个片区中的某些区块的数据信息进行验证是否正确时,根据需要验证的指定片区的指定区块,先对这些指定区块进行哈希运算,得到对应的哈希值。然后根据指定片区的编号以及指定区块在指定片区中的编号,在联盟链主链中查询这些区块对应的哈希值。将运算得到的哈希值与在联盟链主链中查找到的指定区块的哈希值进行对比。当对比结果为一致时,表明需要验证的指定片区的指定区块为正确有效的区块;若不一致,则指定片区的指定区块为正确有效的区块为错误无效的区块,实现了对区块的有效性的验证。
与本发明提供的基于PBFT的联盟链分片方法相对应,本发明还提供了一种基于PBFT分片的联盟链,联盟链中包括多个节点,这多个节点中包括有一个联盟链管理节点。
在本发明的一个实施例中,联盟链的任一节点,用于根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;还用于根据片区数,按照预设规则将联盟链中的所有节点进行片区的划分。
接收到上链信息请求的节点,用于当接收到上链信息请求时,按照预设算法确定存储上链信息的片区;还用于按照PBFT算法将上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;以及还用于对新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
联盟链管理节点,用于当有新节点申请接入联盟链时,对申请加入的该新节点进行审核;还用于待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
在本发明的另一个实施例中,联盟链的任一节点,用于根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数具体包括:当联盟链中的节点接收到联盟链管理节点广播的所有节点名单后,根据所有节点名单中的节点总数m和预设的最小节点共识数量n,计算联盟链中所有节点被划分的片区数x=[m/n],其中,m,n均为正整数;相应的,联盟链的任一节点,还用于根据片区数,按照预设规则将联盟链中的所有节点进行片区的划分具体包括:根据计算的片区数,将联盟链中所有节点等分为x个片区,每一个片区包括n个节点。
在本发明的一个实施例中,联盟链的任一节点,用于根据计算的片区数,将联盟链中所有节点等分为x个片区,每一个片区包括n个节点具体包括:划分后的第一片区包括编号为1~n的节点,第二片区包括编号为(n+1)~2n的节点,依次类推,第x个片区包括编号为(x-1)n+1~m的节点。
在本发明的另一个实施例中,接收到上链信息请求的节点,用于当接收到上链信息请求时,按照预设算法确定存储上链信息的片区具体包括:当接收到上链信息请求时,计算出H=(上链信息+当前时间戳的哈希值),并计算y=(H的二进制后12位)mod x+1,得到小于等于x的片区序号y,其中,y为确定存储上链信息的片区。
在本发明的一个实施例中,接收到上链信息请求的节点,还用于按照PBFT算法将上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中具体包括:接收到上链信息请求的节点与第y片区中的所有节点组成第y共识小组,其中,接收到上链信息请求的节点为第y共识小组的主节点,第y片区中的所有节点为第y共识小组的从节点;按照PBFT算法进行出块,并将产生的新区块在第y共识小组的所有节点中进行更新;当第y共识小组的主节点接收到该共识小组中超过2/3个从节点的新区块更新成功的反馈时,该主节点将产生的新区块广播至联盟链的所有节点。
在本发明的另一个实施例中,接收到上链信息请求的节点,还用于对新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中具体包括:当在第y共识小组中产生的新区块的数量为预设数量时,第y共识小组中的主节点对产生的预设数量的新区块进行哈希运算,得到对应的哈希值;第y共识小组中的所述主节点将所述哈希值发送给第一片区的所有节点,并按照PBFT算法将所述哈希值存储到第一片区的主链上;第一片区的主链将所述哈希值广播至每一个片区的主链上,以使所述哈希值存储到联盟链的每一个片区的主链上。
上述各实施例提供的一种基于PBFT分片的联盟链的相关技术特征可以参考前述各实施例提供的一种基于PBFT联盟链的分片方法的相关技术特征,在此不再赘述。
本发明提供的一种基于PBFT的联盟片分片方法及相应的联盟链,基于PBFT算法对联盟链进行分片,将联盟链划分为主链和多个片区链,当联盟链的交易量较高时,提高了联盟链系统的并发量;另外,在对上链信息进行存储时,采用一定的算法随机从多个片区中选择一个片区用来存储上链信息,而不是固定的片区,这样保证了联盟链整个系统存储数据信息的安全性,不容易被发现和篡改。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于PBFT的联盟链分片方法,其特征在于,包括:
S1,根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;
S2,根据所述片区数,按照预设规则对联盟链中的所有节点进行片区的划分;
S3,当联盟链中的节点接收到上链信息请求时,按照预设算法确定存储上链信息的片区;
S4,按照PBFT算法将所述上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;
S5,对所述新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
2.根据权利要求1所述的联盟链分片方法,其特征在于,所述步骤S1之前还包括:
当有新节点申请接入联盟链时,联盟链管理节点对申请加入的该新节点进行审核,待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
3.根据权利要求2所述的联盟链分片方法,其特征在于,所述步骤S1具体包括:
当联盟链中的节点接收到联盟链管理节点广播的所有节点名单后,根据所述所有节点名单中的节点总数m和预设的最小节点共识数量n,计算联盟链中所有节点被划分的片区数x=[m/n],其中,m,n均为正整数;
相应的,所述步骤S2具体包括:
根据计算的片区数,将联盟链中所有节点等分为x个片区,每一个片区包括n个节点。
4.根据权利要求3所述的联盟链分片方法,其特征在于,所述根据计算的片区数,将联盟链中所有节点等分为x个片区具体包括:
划分后的第一片区包括编号为1~n的节点,第二片区包括编号为(n+1)~2n的节点,依次类推,第x个片区包括编号为(x-1)n+1~m的节点。
5.根据权利要求1所述的联盟链分片方法,其特征在于,所述步骤S3具体包括:
当联盟链中的节点接收到上链信息请求时,该节点计算出H=(上链信息+当前时间戳的哈希值),并计算y=(H的二进制后12位)mod x+1,得到小于等于x的片区序号y,其中,y为确定存储上链信息的片区。
6.根据权利5所述的联盟链分片方法,其特征在于,所述步骤S4具体包括:
S41,接收到上链信息请求的节点与第y片区中的所有节点组成第y共识小组,其中,所述接收到上链信息请求的节点为第y共识小组的主节点,第y片区中的所有节点为第y共识小组的从节点;
S42,按照PBFT算法进行出块,并将产生的新区块在第y共识小组的所有节点中进行更新;
S43,当第y共识小组的主节点接收到该共识小组中超过2/3个从节点的新区块更新成功的反馈时,该主节点将产生的新区块广播至联盟链的所有节点。
7.根据权利要求6所述的联盟链分片方法,其特征在于,所述步骤S5具体包括:
S51,当在第y共识小组中产生的新区块的数量为预设数量时,第y共识小组中的主节点对产生的预设数量的新区块进行哈希运算,得到对应的哈希值;
S52,第y共识小组中的所述主节点将所述哈希值发送给第一片区的所有节点,并按照PBFT算法将所述哈希值存储到第一片区的主链上;
S53,第一片区的主链将所述哈希值广播至每一个片区的主链上,以使所述哈希值存储到联盟链的每一个片区的主链上。
8.根据权利要求1所述的联盟链分片方法,其特征在于,所述步骤S5之后还包括:
S6,根据需要验证的指定片区的指定区块,对所述指定区块进行哈希运算,得到运算后的哈希值,将该哈希值与存储于主链中的所述指定片区的所述指定区块的哈希值进行对比,若对比结果为一致,则表明指定片区的指定区块为正确,若不一致,则指定片区的指定区块为错误。
9.一种基于PBFT分片的联盟链,所述联盟链包括多个节点,其特征在于,
任一所述节点,用于根据联盟链中节点总数以及预设的最小节点共识数量,计算联盟链中所有节点被划分的片区数;还用于根据所述片区数,按照预设规则将联盟链中的所有节点进行片区的划分;
接收到上链信息请求的节点,用于按照预设算法确定存储上链信息的片区;还用于按照PBFT算法将所述上链信息存储到确定的片区的区块中,并将产生的新区块广播到联盟链的所有节点中;以及还用于对所述新区块进行哈希运算,将运算后的哈希值存储到联盟链的主链中。
10.根据权利要求9所述的联盟链,其特征在于,所述联盟链包括一个联盟链管理节点;
所述联盟链管理节点,用于当有新节点申请接入联盟链时,对申请加入的该新节点进行审核;还用于待审核通过后,对该新节点进行编号,并将联盟链中更新后的所有节点名单广播至联盟链的所有节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811561856.0A CN109510876A (zh) | 2018-12-20 | 2018-12-20 | 一种基于pbft的联盟链分片方法及相应的联盟链 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811561856.0A CN109510876A (zh) | 2018-12-20 | 2018-12-20 | 一种基于pbft的联盟链分片方法及相应的联盟链 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109510876A true CN109510876A (zh) | 2019-03-22 |
Family
ID=65753885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811561856.0A Pending CN109510876A (zh) | 2018-12-20 | 2018-12-20 | 一种基于pbft的联盟链分片方法及相应的联盟链 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510876A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949160A (zh) * | 2019-03-27 | 2019-06-28 | 上海优扬新媒信息技术有限公司 | 一种区块链的分片方法及装置 |
CN110400140A (zh) * | 2019-06-04 | 2019-11-01 | 西安电子科技大学 | 基于Fabric的分层分片交易信息处理方法及应用 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
WO2020244295A1 (zh) * | 2019-06-06 | 2020-12-10 | 中国科学院上海微系统与信息技术研究所 | 基于分布式账本技术的传感网的安全管理方法及安全系统 |
CN112261161A (zh) * | 2020-12-21 | 2021-01-22 | 支付宝(杭州)信息技术有限公司 | 一种锁定区块链系统中分片区块的方法及区块链系统 |
CN112532438A (zh) * | 2020-11-24 | 2021-03-19 | 中信银行股份有限公司 | 联盟链的通讯网络结构的确定方法、装置及电子设备 |
CN112788139A (zh) * | 2021-01-12 | 2021-05-11 | 北京工业大学 | 一种区块链存储容量优化方法及系统 |
CN113364592A (zh) * | 2021-05-06 | 2021-09-07 | 陈冠华 | 一种基于信誉值联盟链的工程系统文件管理系统及方法 |
WO2022095428A1 (zh) * | 2020-11-03 | 2022-05-12 | 平安科技(深圳)有限公司 | 一种锚节点作假检测方法、装置、介质及设备 |
WO2022142514A1 (zh) * | 2020-12-31 | 2022-07-07 | 山西特信环宇信息技术有限公司 | 一种锥体区块链的主权联盟链 |
CN115118737A (zh) * | 2022-08-25 | 2022-09-27 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107146087A (zh) * | 2017-04-11 | 2017-09-08 | 广东网金控股股份有限公司 | 一种基于区块链联盟链的快速共识记账方法及系统 |
CN108134706A (zh) * | 2018-01-02 | 2018-06-08 | 中国工商银行股份有限公司 | 区块链多活高可用系统、计算机设备以及方法 |
CN108280646A (zh) * | 2018-01-19 | 2018-07-13 | 中国科学院软件研究所 | 基于联盟链的区块链组链方法及区块链系统 |
CN108768663A (zh) * | 2018-05-31 | 2018-11-06 | 中国地质大学(武汉) | 一种区块链访问控制方法及其处理系统 |
US20180337882A1 (en) * | 2017-05-16 | 2018-11-22 | Peking University Shenzhen Graduate School | Determining consensus in a decentralized domain name system |
-
2018
- 2018-12-20 CN CN201811561856.0A patent/CN109510876A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107146087A (zh) * | 2017-04-11 | 2017-09-08 | 广东网金控股股份有限公司 | 一种基于区块链联盟链的快速共识记账方法及系统 |
US20180337882A1 (en) * | 2017-05-16 | 2018-11-22 | Peking University Shenzhen Graduate School | Determining consensus in a decentralized domain name system |
CN108134706A (zh) * | 2018-01-02 | 2018-06-08 | 中国工商银行股份有限公司 | 区块链多活高可用系统、计算机设备以及方法 |
CN108280646A (zh) * | 2018-01-19 | 2018-07-13 | 中国科学院软件研究所 | 基于联盟链的区块链组链方法及区块链系统 |
CN108768663A (zh) * | 2018-05-31 | 2018-11-06 | 中国地质大学(武汉) | 一种区块链访问控制方法及其处理系统 |
Non-Patent Citations (1)
Title |
---|
陈佳华: "联盟区块链的容量优化模型研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949160A (zh) * | 2019-03-27 | 2019-06-28 | 上海优扬新媒信息技术有限公司 | 一种区块链的分片方法及装置 |
CN110400140A (zh) * | 2019-06-04 | 2019-11-01 | 西安电子科技大学 | 基于Fabric的分层分片交易信息处理方法及应用 |
WO2020244295A1 (zh) * | 2019-06-06 | 2020-12-10 | 中国科学院上海微系统与信息技术研究所 | 基于分布式账本技术的传感网的安全管理方法及安全系统 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
WO2022095428A1 (zh) * | 2020-11-03 | 2022-05-12 | 平安科技(深圳)有限公司 | 一种锚节点作假检测方法、装置、介质及设备 |
CN112532438A (zh) * | 2020-11-24 | 2021-03-19 | 中信银行股份有限公司 | 联盟链的通讯网络结构的确定方法、装置及电子设备 |
CN112532438B (zh) * | 2020-11-24 | 2022-10-25 | 中信银行股份有限公司 | 联盟链的通讯网络结构的确定方法、装置及电子设备 |
CN112261161B (zh) * | 2020-12-21 | 2021-03-19 | 支付宝(杭州)信息技术有限公司 | 一种锁定区块链系统中分片区块的方法及区块链系统 |
CN112261161A (zh) * | 2020-12-21 | 2021-01-22 | 支付宝(杭州)信息技术有限公司 | 一种锁定区块链系统中分片区块的方法及区块链系统 |
WO2022142514A1 (zh) * | 2020-12-31 | 2022-07-07 | 山西特信环宇信息技术有限公司 | 一种锥体区块链的主权联盟链 |
CN112788139A (zh) * | 2021-01-12 | 2021-05-11 | 北京工业大学 | 一种区块链存储容量优化方法及系统 |
CN113364592A (zh) * | 2021-05-06 | 2021-09-07 | 陈冠华 | 一种基于信誉值联盟链的工程系统文件管理系统及方法 |
CN113364592B (zh) * | 2021-05-06 | 2024-03-29 | 陈冠华 | 一种基于信誉值联盟链的工程系统文件管理系统及方法 |
CN115118737A (zh) * | 2022-08-25 | 2022-09-27 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510876A (zh) | 一种基于pbft的联盟链分片方法及相应的联盟链 | |
TWI749583B (zh) | 鏈式結構資料儲存、驗證、實現方法、系統、裝置及媒體 | |
EP4092956A1 (en) | Implementing logic gate functionality using a blockchain | |
CN109743173A (zh) | 区块链中出块节点确定方法、区块验证方法及区块链系统 | |
CN104901931B (zh) | 证书管理方法与装置 | |
CN106411511B (zh) | 一种多方量子密钥分发系统的纠错方法 | |
CN113329031A (zh) | 一种区块的状态树的生成方法及装置 | |
Khovratovich et al. | Sovrin: digital identities in the blockchain era | |
CN115913515A (zh) | 基于区块链的匿名密码表决方法和系统 | |
US20210049715A1 (en) | Blockchain-based data procesing method, apparatus, and electronic device | |
CN101004805A (zh) | 数字文档管理系统、数字文档管理方法和管理程序 | |
CN106886722A (zh) | 大数据信息处理方法及装置 | |
CN110235162A (zh) | 区块链系统数据处理方法和区块的生成方法 | |
CN112417517A (zh) | 一种基于区块链的数据标准管理方法 | |
CN115270145A (zh) | 一种基于联盟链和联邦学习的用户窃电行为检测方法及系统 | |
CN108494828A (zh) | 一种节点数据的更新方法、介质、装置和计算设备 | |
CN105187218A (zh) | 一种多核心基础设施的数字化记录签名、验证方法 | |
CN108337092A (zh) | 用于在通信网络中执行集体认证的方法和系统 | |
CN108243001A (zh) | 一种数据加密通信方法 | |
EP3920464A1 (en) | Method for storing transaction that represents asset transfer to distributed network and program for the same | |
CN114172659B (zh) | 区块链系统中的消息传输方法、装置、设备及存储介质 | |
CN111144133B (zh) | 基于区块链的翻译文稿关键词修改溯源系统与方法 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
US20230350742A1 (en) | Method of detecting faults in a fault tolerant distributed computing network system | |
CN116260572A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190322 |