CN108717630B - 一种出块方法及其实现系统 - Google Patents
一种出块方法及其实现系统 Download PDFInfo
- Publication number
- CN108717630B CN108717630B CN201810484147.0A CN201810484147A CN108717630B CN 108717630 B CN108717630 B CN 108717630B CN 201810484147 A CN201810484147 A CN 201810484147A CN 108717630 B CN108717630 B CN 108717630B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- nodes
- node
- 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
Images
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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- 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/3247—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 involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种出块方法,包括如下步骤:节点选择步骤:从区块链网络的全部节点中选择至少两种节点,分别作为记账节点和共识节点;验证步骤:所述记账节点校验事务池中的事务是否合法,将合法的事务签名并广播;同步步骤:所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池;出块步骤:所述共识节点将事务池中记账节点签名过的事务进行打包成备选区块,并广播;区块保存步骤:所有共识节点对所述备选区块进行共识,共识成功后所有共识节点保存所述备选区块,所述记账节点执行所述备选区块中的事务。本发明还公开了所述出块方法的实现系统。本发明极大地降低了共识节点的重复工作,减少区块链网络中的算力消耗。
Description
技术领域
本发明涉及区块链数据处理技术领域,尤其涉及一种出块的方法及其实现系统。
背景技术
区块链是一个开放性的网络账本。它起源于比特币,是比特币的底层技术。在比特币的交易中,交易记录的全部信息会被打包到一个区块(Block)中进行储存。随着信息交流的扩大,一个个区块相互链接,就形成了区块链。
以比特币为代表的数字货币是一种点对点的电子现金系统。其中,每次交易都会对网络里所有的参与者进行广播,并且经过多次确认后才被记录到账本中,这种账本就是“区块链”。每一个参与者都会有自己的账本。这样,当虚假信息发生时,就可以通过相互对证来破除,从而保证网络安全。
在区块链中,每一个节点都是平等的,不存在中心化的管理机构,这种“去中心化”的特点使得区块链无需依赖第三方,其运作不需要人为干预,能够独立地进行自我验证。另外,区块链的网络向全世界开放,任何人都可以通过公开端口进行数据查询,因而整个系统高度透明。
共识节点是区块链网络中负责共识即达成记账一致的节点,在一些区块链网络中,所有的参与节点都可以作为共识节点,在一些网络中,可能共识节点是区块链网络所有节点中的一部分,还有不负责记账的轻节点等。当一笔区块链业务交易提交后,需要将交易广播至全网,共识节点接到这笔交易后,先将其放入本地交易池(Tx pool)一些合法性验证,比如该笔交易花费的通证(Token)是否是未被花费的交易,同一个数字资产或通证是否被卖给了不同的人。交易池存储着还没有被打包到区块里面的交易,即待确认交易(Unconfirm Transaction)。在有的区块链项目中,交易池还包括两部分,分别存储尚未合法性验证的待确认交易和经过合法性验证的待确认交易,其他节点只同步经过合法性验证的待确认交易。
如果验证成功,则等待被打包和出块;即将若干笔交易打包成一起,形成一个新的区块,广播到区块链网络中,经其他节点共识通过后保存到区块链上,区块链上新增了一个区块,即为出块。如果验证失败,则该交易会被标记为“无效交易”(Invalid Transaction),不会被打包到区块。也就是说,共识节点在选择交易进行出块的同时还需要及时验证每笔交易,更新自己的交易池。共识节点抢到记账权后,将从交易池中抽取若干笔交易进行打包并出块。
目前区块链交易出块的流程:
1.所有共识节点持续不断的在区块链网络接收交易广播,放入自身交易池;
2.共识节点对交易池中的交易进行简单校验;
3.共识节点从交易池中根据自身利益出发,选择能通过校验的、手续费最高的、付费方余额足够的交易,共识后打包出块,放到区块链上;
4.共识节点在交易池删除已经打包的交易;
5.其他共识节点根据打包的交易顺序执行,将执行的结果持久化保存。完成新的区块共识,完成账本落账,并同步交易池以保持一致;
6.重复以上步骤。
目前的出块步骤中,存在以下问题,共识节点的性能要求较高,需要对交易信息进行验证并及时出块,计算能力较低的节点往往还没有验证完成并出块,自己选择或验证过的的交易就被同步删除掉,反过来说,没有达到性能要求的节点无法加入共识。由于一般采用的模式为共识出块能获得收益,长期无法出块而获得收益的节点拥有人,可能会让节点退出网络,造成网络退化。
同时,由于共识网络中的每一个节点都需要对交易池中所有的交易进行合法性验证,总的出块计算时间较长,共识的过程需要等待验证结束。有时候交易不能被及时打包,是因为交易池中的交易笔数太多,而每个区块能记录的交易笔数有限,这时候就会造成区块拥堵。
此外,区块链技术的应用范围逐渐从代币的运营扩大到公证、票据、数据资产化等,处理的事务已经不再限于交易。
因此,有必要开发一种新型出块方法以解决上述技术问题。
发明内容
本发明所要解决的技术问题是:目前已有的出块方法,用作区块链网络的共识出块时,所需要的时间过长,造成交易不能被及时处理堆积因而容易堵塞网络,进而使共识节点由于长时间不能参加出块而退出网络,造成网络退化。
为解决上述技术问题,本发明提供了一种出块方法,包括如下步骤:
节点选择步骤:从区块链网络的全部节点中选择至少两种节点,分别作为记账节点和共识节点;
验证步骤:所述记账节点校验事务池中的事务是否合法,将合法的事务签名并广播;
同步步骤:所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池;
出块步骤:所述共识节点将事务池中记账节点签名过的事务进行打包成备选区块,并广播;
区块保存步骤:所有共识节点对所述备选区块进行共识,共识成功后所有共识节点保存所述备选区块,所述记账节点执行所述备选区块中的事务。
本发明的有益效果在于:通过共识网络中的节点功能重新设计,利用两种节点分别承担不同的功能,确保在节点性能参差不齐的情况下也能顺利出块。所述方法及其实现系统还极大地降低了共识节点的重复工作,减少区块链网络中的算力消耗。
优选的,所述验证步骤中的所述签名采用PKCS、DSA、x.509、PGP、Hash算法中的一种或多种。其有益效果:进行有效的签名方式。
优选的,所述节点选择步骤中,选择至少两个所述记账节点,所述记账节点同时也是共识节点;所述同步步骤中,所述记账节点接收除自身以外的记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池。其有益效果:区块链网络需要很多工作,设置多个记账节点。
优选的,所述验证步骤中,所述记账节点对除自身以外的记账节点签名过的事务不再签名。其有益效果:重复签名没有价值,减少无意义工作。
优选的,所述验证步骤中,所述记账节点对事务的签名包含当前的区块高度信息,成为签名中的高度信息,所述记账节点发现除自身以外的记账节点签名过的事务时验证所述高度信息,若当前高度等于签名中的高度,不再签名,若当前高度大于签名中的高度,则再次签名。其有益效果:在上一个区块高度合法的事务这个高度不一定合法,保证正确率。
优选的,所述节点选择步骤中,根据性能选择所述记账节点,所述记账节点的算力需达到性能标准。其有益效果:性能高的节点承担更多工作。
优选的,所述节点选择步骤中,将所有共识节点按照性能进行排序,所述记账节点从所述共识节点中按性能高低依次选出,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。其有益效果:性能高的节点承担更多工作。
优选的,所述记账节点同时为共识节点,所述记账节点签名后,参与所述出块步骤、所述同步步骤和所述区块保存步骤。其有益效果:节点自愿承担更多工作。
优选的,所述节点选择步骤中进一步包括如下步骤:
步骤S11:设定算力标准,在区块链网络中的节点上部署探针或进行工作量证明,检测节点的算力;
步骤S12:将算力达到所述算力标准的节点选为记账节点。其有益效果:性能高的节点承担更多工作。
优选的,所述节点选择步骤进一步包括如下步骤:
步骤S21:在共识网络中的共识节点上部署探针或进行工作量证明,检测节点的算力;
步骤S22:将共识节点排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。其有益效果:性能高的节点承担更多工作。
优选的,所述事务包括手续费信息。其有益效果:保证事务合法。
优选的,所述手续费信息包括网络租用费信息、记账服务费信息、账本储存费信息。其有益效果:保证事务合法。
优选的,所述区块保存步骤中,所述记账节点执行所述备选区块中的事务并根据所述手续费信息得到手续费,所述手续费用于分配给记账节点和共识节点。其有益效果:保证事务合法。
优选的,事务发出者的余额足够支付手续费是事务合法的必要条件。其有益效果:保证事务合法。
优选的,所述共识节点从事务池中,选择手续费最高的事务打包出块。其有益效果:调动节点积极性。
优选的,所述事务包括交易、记录、存储中的一种或多种。其有益效果:适用不同场景。
优选的,所述事务池包括缓存事务池和同步事务池,所述缓存事务池存储未签名的事务,所述记账节点校验缓存事务池中的事务是否合法,将合法的事务签名并放到同步事务池,并将所述同步事务池中的事务广播,所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新自身的同步事务池。其有益效果:减少广播的消息数量。
本发明还提供了一种所述出块方法的实现系统,包括节点选择模块、记账模块、共识模块、区块保存模块、事务池模块。
所述节点选择模块用于从区块链网络的全部节点中选择至少两种节点,所述两种节点分别是记账节点和共识节点;
所述记账模块用于校验事务池中的事务是否合法,将合法的事务签名并广播,在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务;
所述共识模块接收记账模块签名过的事务,验证所述签名,用验证通过的事务更新事务池,所述共识模块将事务池中记账模块签名过的事务进行打包成备选区块,并广播,所述共识模块对所述备选区块进行共识;
所述区块保存模块用于共识成功后保存所述备选区块;
所述事务池模块用于存储事务。
本发明的有益效果在于:通过共识网络中的节点功能重新设计,利用两种节点分别承担不同的功能,确保在节点性能参差不齐的情况下也能顺利出块。所述方法及其实现系统还极大地降低了共识节点的重复工作,减少区块链网络中的算力消耗。
优选的,所述节点选择模块进一步包括探针部署单元、选定单元;
所述探针部署单元用于在区块链网络中的节点部署探针,检测节点的算力;
所述选定单元用于设定算力标准,将算力达到所述算力标准的节点选为记账节点。其有益效果:性能高的节点承担更多工作。
优选的,所述节点选择模块进一步包括工作量证明单元、选定单元;
所述工作量证明单元用于在共识网络中的共识节点发送工作量测试题,接收所述共识节点反馈的工作量证明以确定节点的性能;
所述选定单元用于将确定性能的所述共识节点按性能排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。其有益效果:性能高的节点承担更多工作。
优选的,所述记账模块进一步包括签名单元、广播单元、监听单元、事务执行单元;
所述签名单元校验事务池中的事务是否合法,将合法的事务签名;
所述广播单元用于将事务池中签名好的事务向区块链网络中广播;
所述监听单元用来接收除自身以外的记账节点签名过的事务,验证所述签名和区块高度,用验证通过的事务更新事务池;
所述事务执行单元用于在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务。其有益效果:提高事务正确率,在共识网络中的同步性。
优选的,所述共识模块进一步包括监听单元、校验单元、出块单元、广播单元、验证单元;
所述监听单元接收记账节点签名过的事务;
所述校验单元验证所述签名,用验证通过的事务更新事务池;
所述出块单元用来将事务池中记账节点签名过的事务进行打包成备选区块;
所述广播单元用于将所述备选向区块链网络中广播;
所述验证单元用于接收除自身以外的共识单元广播的备选区块,验证后完成共识,并从事务池中删除已经保存的区块中的事务。其有益效果:提高事务正确率,在共识网络中的同步性。
优选的,所述区块保存模块进一步包括监听单元、保存单元、初始化单元;
所述监听单元用来监听共识好的所述备选区块并缓存;
所述保存单元保存完成本轮共识的区块;
所述初始化单元用来使区块链网络开始下一轮的共识过程。其有益效果:和共识过程良好衔接。
优选的,所述事务池模块进一步包括缓存单元、同步单元;
所述缓存单元存储未签名的事务;
所述同步单元存储签名过的事务。其有益效果:提高事务正确率,在共识网络中的同步性。其有益效果:减少网络消息开销。
本发明提供的出块方法及其实现系统在各步骤、各模块提供了有层次的解决方案,用以确保在节点性能参差不齐的情况下也能顺利出块。所述方法及其实现系统还极大地降低了共识节点的重复工作,减少区块链网络中的算力消耗。通过按照性能划分为记账节点和共识节点,使得低算力的节点不用负责繁重的合法性验证工作而顺利的出块,获得利益,因此有利于区块链网络持续发展。
附图说明
图1为本发明一个实施例的出块方法流程示意图。
图2为本发明的出块方法的节点选择实施例的流程示意图。
图3是本发明的另一种出块方法的节点选择实施例的流程示意图。
图4是本发明的一个实施例的出块方法实现系统框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,针对现有技术存在的问题,本发明提供了一种出块方法的一个实施例,其包括如下步骤。
节点选择步骤S1:从区块链网络的全部节点中选择至少两种节点,分别作为记账节点和共识节点;
验证步骤S2:所述记账节点校验事务池中的事务是否合法,将合法的事务签名并广播;
同步步骤S3:所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池;
出块步骤S4:所述共识节点将事务池中记账节点签名过的事务进行打包成备选区块,并广播;
区块保存步骤S5:所有共识节点对所述备选区块进行共识,共识成功后所有共识节点保存所述备选区块,所述记账节点执行所述备选区块中的事务。所述记账节点用于校验事务池中的事务是否合法,将合法的事务签名并广播,在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务。
所述共识节点接收记账模块签名过的事务,验证所述签名,用验证通过的事务更新事务池,并将事务池中记账模块签名过的事务进行打包成备选区块,并广播,所述共识模块对所述备选区块进行共识;
在节点选择步骤S1,一般选择记账节点的数量小于共识节点的数量。
优选的,记账节点与共识节点的数量比例为1:20~1:5。
在区块保存步骤S5,共识可采用公众已经使用的共识算法,如工作量证明(POW),权益证明(POS),委托权益证明(DPoS,Delegate ProofofStake)拜占庭容错(BFT)、实用拜占庭容错(PBFT)、拜占庭容错委托(dBFT)、PAXOS、RAFT、Pool验证池、Byzantine paxos、瑞波共识协议(Ripple Consensus Protocol,RCP),也可以采用新公开的VBFT算法。
VBFT是以BFT系列共识为基础改进为全新的共识算法,结合PoS、VRF(VerifiableRandom Function)和BFT的全新共识算法,利用节点权益委托构建权益表(POS表),不同节点在权益表中占据的长度和其委托的权益成正比,利用可验证随机函数(VRF)在权益表中随机选取三种节点,提案节点、背书节点、确认节点,提案节点将交易打包成备选区块,背书节点对打包的备选区块背书,确认节点对背书过的备选区块进行确认,所有共识节点对确认过的备选区块进行保存。
在一个具体实施例中,所述验证步骤中的所述签名采用PKCS、DSA、x.509、PGP、Hash算法中的一种或多种。
在一个具体实施例中,所述节点选择步骤中,所记账节点具有至少两个,所述记账节点拥有所述共识节点的全部功能。所述同步步骤中,所述记账节点接收除自身以外的记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池。
在一个具体实施例中,所述验证步骤中,所述记账节点对除自身以外的记账节点签名过的事务不再签名。
在一个具体实施例中,所述验证步骤中,所述记账节点对事务的签名包含当前的区块高度信息,成为签名中的高度信息,所述记账节点发现除自身以外的记账节点签名过的事务时验证所述高度信息,若当前高度等于签名中的高度,不再签名,若当前高度大于签名中的高度,则再次签名。
区块链网络中的区块高度是指某一个区块与区块链网络中的第一个区块之间所具有的区块数量。例如最新完成共识的区块的区块高度是r-1,那么本轮共识的区块的区块高度就是r。
在一个具体实施例中,当前区块高度为r-1,事务池中有6000件事务,记账节点1对事务1-事务3000总共3000件事务进行了签名,在签名中附加区块高度r-1,记账节点2对事务1-事务3000不再签名,共识节点将事务1-事务2000打包出块,完成共识,并从事务池中删除事务1-事务2000,计入下一轮共识,此时区块高度变为r,事务2001-事务3000仍在事务池中,记账节点2可以对事务2001-事务3000进行签名,并在签名中附加区块高度r。
在一个具体实施例中,所述节点选择步骤中,根据性能选择所述记账节点,所述记账节点的算力需达到性能标准。
在一个具体实施例中,节点的性能标准为:CPU主频3GHz,核数16核,内存16GB,SSD1TB,网络带宽100Mbps。
在一个具体实施例中,所述节点选择步骤中,将所有共识节点按照性能进行排序,所述记账节点从所述共识节点中按性能高低依次选出,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
在一个具体实施例中,共识网络共拥有110个节点,选择10个节点作为记账节点,选择100个节点作为共识节点,记账节点同时也是共识节点。
节点可以申请成为记账节点,区块链网络设定成为记账节点的算力要求即性能标准,在申请的节点中检测其性能,在性能达标的节点中选取一定数量的节点成为记账节点。也可默认设定所有的节点愿意成为记账节点,从区块链网络中的所有节点中,选择性能达标的一定数量的节点成为记账节点,若节点不愿意成为记账节点,则可以选择退出。因为记账节点拥有更多的收益,绝大多数节点愿意成为记账节点。
在一个具体实施例中,所述记账节点同时为共识节点,所述记账节点签名后,参与所述出块步骤、所述同步步骤和所述区块保存步骤。所述记账节点包含共识节点的全部功能。
优选的,所述节点选择步骤中进一步包括如下步骤,请参考图2:
步骤S11:设定算力标准,在区块链网络中的节点上部署探针或进行工作量证明,检测节点的算力;
步骤S12:将算力达到所述算力标准的节点选为记账节点。
优选的,所述节点选择步骤中进一步包括如下步骤,请参考图3:
步骤S21:在共识网络中的共识节点上部署探针或进行工作量证明,检测节点的算力;
步骤S22:将共识节点排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
探针是硬件检测程序或者插件,用来检测节点的算力即性能,性能包括运算能力,内存、硬盘、网速等。工作量证明是用数学难题验证节点的算力,数学难题需要经过大量的计算才能得到答案,而验证答案正确与否十分简单,通过节点计算数学难题反馈的时间能够得出节点的性能。
优选的,所述事务包括手续费信息。
优选的,所述手续费包括网络租用费信息、记账服务费信息、账本储存费信息。
优选的,所述区块保存步骤中,所述记账节点执行所述备选区块中的事务并根据所述手续费信息得到手续费,所述手续费用于分配给记账节点和共识节点。
在一个具体的实施例中,所述记账节点执行所述备选区块中的事务并根据所述手续费信息得到网络租用费、记账服务费、账本储存费,所述记账服务费分配给记账节点,所述网络租用费、账本储存费分配给共识网络中的所有节点。
优选的,事务发出者的余额足够支付手续费是事务合法的必要条件。
优选的,所述共识节点从事务池中,选择手续费最高的事务打包出块。
优选的,所述事务包括交易、记录、存储中的一种或多种。
优选的,所述事务池包括缓存事务池和同步事务池,所述缓存事务池存储未签名的事务,所述记账节点校验缓存事务池中的事务是否合法,将合法的事务签名并放到同步事务池,并将所述同步事务池中的事务广播,所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新自身的同步事务池。
本发明还提供了一种出块方法的实现系统,请参考图4,包括节点选择模块301、记账模块302、共识模块303、区块保存模块304、事务池模块305;
所述节点选择模块301用于从区块链网络的全部节点中选择至少两种节点,所述两种节点分别是记账节点31和共识节点32;
所述记账模块302用于校验事务池中的事务是否合法,将合法的事务签名并广播,在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务。
所述共识模块303接收记账模块签名过的事务,验证所述签名,用验证通过的事务更新事务池,所述共识模块303将事务池中记账模块签名过的事务进行打包成备选区块,并广播,所述共识模块对所述备选区块进行共识;
所述区块保存模块304用于共识成功后保存所述备选区块;
所述事务池模块305用于存储事务。
在记账节点上,所有的模块都处于启用状态,在共识节点上,记账模块处于未启用状态,如果共识节点在下一轮成为记账节点,则启用记账模块。
各记账节点和共识节点上的模块互相配合完成功能,形成集群效应,也可以看做整个区块链网络部署了一个实现系统,实现系统部署在所有记账节点和共识节点上,每个节点的同种功能模块组成了系统的功能模块。
优选的,所述节点选择模块进一步包括探针部署单元、选定单元;
所述探针部署单元用于在区块链网络中的节点部署探针,检测节点的算力;
所述选定单元用于设定算力标准,将算力达到所述算力标准的节点选为记账节点。
优选的,所述节点选择模块进一步包括工作量证明单元、选定单元;
所述工作量证明单元用于在共识网络中的共识节点发送工作量测试题,接收所述共识节点反馈的工作量证明以确定节点的性能;
所述选定单元用于将确定性能的所述共识节点按性能排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
优选的,所述记账模块进一步包括签名单元、广播单元、监听单元、事务执行单元;
所述签名单元校验事务池中的事务是否合法,将合法的事务签名;
所述广播单元用于将事务池中签名好的事务向区块链网络中广播;
所述监听单元用来接收除自身以外的记账节点签名过的事务,验证所述签名和区块高度,用验证通过的事务更新事务池;
所述事务执行单元用于在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务。
一般签名包括事务加密后的哈希值、时间戳、当前的区块高度、支付奖励的交易数据库、目标值或一个任意位的随机字段中的一种或多种。
优选的,所述共识模块进一步包括监听单元、校验单元、出块单元、广播单元、验证单元;
所述监听单元接收记账节点签名过的事务;
所述校验单元验证所述签名,用验证通过的事务更新事务池;
所述出块单元用来将事务池中记账节点签名过的事务进行打包成备选区块;
所述广播单元用于将所述备选向区块链网络中广播;
所述验证单元用于接收除自身以外的共识单元广播的备选区块,验证后完成共识,并从事务池中删除已经保存的区块中的事务。
优选的,所述区块保存模块进一步包括监听单元、保存单元、初始化单元;
所述监听单元用来监听共识好的所述备选区块并缓存;
所述保存单元保存完成本轮共识的区块;
所述初始化单元用来使区块链网络开始下一轮的共识过程。
优选的,所述事务池模块进一步包括缓存单元、同步单元;
所述缓存单元存储未签名的事务;
所述同步单元存储签名过的事务。
除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。
虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (23)
1.一种出块方法,其特征是,包括如下步骤:
节点选择步骤:从区块链网络的全部节点中选择至少两种节点,分别作为记账节点和共识节点;
验证步骤:所述记账节点校验事务池中的事务是否合法,将合法的事务签名并广播;
同步步骤:所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池;
出块步骤:所述共识节点将事务池中记账节点签名过的事务进行打包成备选区块,并广播;
区块保存步骤:所有共识节点对所述备选区块进行共识,共识成功后所有共识节点保存所述备选区块,所述记账节点执行所述备选区块中的事务;
所述节点选择步骤中,选择至少两个所述记账节点,所述记账节点同时也是共识节点;所述同步步骤中,所述记账节点接收除自身以外的记账节点签名过的事务,验证所述签名,用验证通过的事务更新事务池。
2.根据权利要求1所述的出块方法,其特征是,所述验证步骤中的所述签名采用PKCS、DSA、x.509、PGP、Hash算法中的一种或多种。
3.根据权利要求1所述的出块方法,其特征是,所述验证步骤中,所述记账节点对除自身以外的记账节点签名过的事务不再签名。
4.根据权利要求1所述的出块方法,其特征是,所述验证步骤中,所述记账节点对事务的签名包含当前的区块高度信息,成为签名中的高度信息,所述记账节点发现除自身以外的记账节点签名过的事务时验证所述高度信息,若当前高度等于签名中的高度,不再签名,若当前高度大于签名中的高度,则再次签名。
5.根据权利要求1所述的出块方法,其特征是,所述节点选择步骤中,根据算力选择所述记账节点,所述记账节点的算力需达到算力标准。
6.根据权利要求1所述的出块方法,其特征是,所述节点选择步骤中,将所有共识节点按照算力进行排序,所述记账节点从所述共识节点中按算力高低依次选出,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
7.根据权利要求1或6所述的出块方法,其特征是,所述记账节点同时为共识节点,所述记账节点签名后,参与所述同步步骤、所述出块步骤和所述区块保存步骤。
8.根据权利要求5所述的出块方法,其特征是,所述节点选择步骤中进一步包括如下步骤:
步骤S11:设定算力标准,在区块链网络中的节点上部署探针或进行工作量证明,检测节点的算力;
步骤S12:将算力达到所述算力标准的节点选为记账节点。
9.根据权利要求6所述的出块方法,其特征是,所述节点选择步骤进一步包括如下步骤:
步骤S21:在共识网络中的共识节点上部署探针或进行工作量证明,检测节点的算力;
步骤S22:将共识节点排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
10.根据权利要求1所述的出块方法,其特征是,所述事务包括手续费信息。
11.根据权利要求10所述的出块方法,其特征是,所述手续费信息包括网络租用费信息、记账服务费信息、账本储存费信息。
12.根据权利要求10所述的出块方法,其特征是,所述区块保存步骤中,所述记账节点执行所述备选区块中的事务并根据所述手续费信息得到手续费,所述手续费用于分配给记账节点和共识节点。
13.根据权利要求10所述的出块方法,其特征是,事务发出者的余额足够支付手续费是事务合法的必要条件。
14.根据权利要求11所述的出块方法,其特征是,所述共识节点从事务池中,选择手续费最高的事务打包出块。
15.根据权利要求1所述的出块方法,其特征是,所述事务包括交易、记录、存储中的一种或多种。
16.根据权利要求1所述的出块方法,其特征是,所述事务池包括缓存事务池和同步事务池,所述缓存事务池存储未签名的事务,所述记账节点校验缓存事务池中的事务是否合法,将合法的事务签名并放到同步事务池,并将所述同步事务池中的事务广播,所述共识节点接收记账节点签名过的事务,验证所述签名,用验证通过的事务更新自身的同步事务池。
17.一种出块方法的实现系统,其特征是,包括节点选择模块、记账模块、共识模块、区块保存模块、事务池模块;
所述节点选择模块用于从区块链网络的全部节点中选择至少两种节点,所述两种节点分别是记账节点和共识节点;
所述记账模块用于校验事务池中的事务是否合法,将合法的事务签名并广播,在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务;
所述共识模块接收记账模块签名过的事务,验证所述签名,用验证通过的事务更新事务池,所述共识模块将事务池中记账模块签名过的事务进行打包成备选区块,并广播,所述共识模块对所述备选区块进行共识;
所述区块保存模块用于共识成功后保存所述备选区块;
所述事务池模块用于存储事务。
18.根据权利要求17所述的出块方法的实现系统,其特征是,所述节点选择模块进一步包括探针部署单元、选定单元;
所述探针部署单元用于在区块链网络中的节点部署探针,检测节点的算力;
所述选定单元用于设定算力标准,将算力达到所述算力标准的节点选为记账节点。
19.根据权利要求17所述的出块方法的实现系统,其特征是,所述节点选择模块进一步包括工作量证明单元、选定单元;
所述工作量证明单元用于在共识网络中的共识节点发送工作量测试题,接收所述共识节点反馈的工作量证明以确定节点的性能;
所述选定单元用于将确定性能的所述共识节点按性能排序,由高到低选择共识节点成为记账节点,选出的记账节点数量大于或等于1,且小于所有共识节点数量的1/2。
20.根据权利要求17所述的出块方法的实现系统,其特征是,所述记账模块进一步包括签名单元、广播单元、监听单元、事务执行单元;
所述签名单元校验事务池中的事务是否合法,将合法的事务签名;
所述广播单元用于将事务池中签名好的事务向区块链网络中广播;
所述监听单元用来接收除自身以外的记账节点签名过的事务,验证所述签名和区块高度,用验证通过的事务更新事务池;
所述事务执行单元用于在所述区块保存模块保存共识好的备选区块后,执行所述备选区块中的事务。
21.根据权利要求17所述的出块方法的实现系统,其特征是,所述共识模块进一步包括监听单元、校验单元、出块单元、广播单元、验证单元;
所述监听单元接收记账节点签名过的事务;
所述校验单元验证所述签名,用校验通过的事务更新事务池;
所述出块单元用来将事务池中记账节点签名过的事务进行打包成备选区块;
所述广播单元用于将所述备选向区块链网络中广播;
所述验证单元用于接收除自身以外的共识单元广播的备选区块,验证后完成共识,并从事务池中删除已经保存的区块中的事务。
22.根据权利要求17所述的出块方法的实现系统,其特征是,所述区块保存模块进一步包括监听单元、保存单元、初始化单元;
所述监听单元用来监听共识好的所述备选区块并缓存;
所述保存单元保存完成本轮共识的区块;
所述初始化单元用来使区块链网络开始下一轮的共识过程。
23.根据权利要求17所述的出块方法的实现系统,其特征是,所述事务池模块进一步包括缓存单元、同步单元;
所述缓存单元存储未签名的事务;
所述同步单元存储签名过的事务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810484147.0A CN108717630B (zh) | 2018-05-19 | 2018-05-19 | 一种出块方法及其实现系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810484147.0A CN108717630B (zh) | 2018-05-19 | 2018-05-19 | 一种出块方法及其实现系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108717630A CN108717630A (zh) | 2018-10-30 |
CN108717630B true CN108717630B (zh) | 2020-12-22 |
Family
ID=63900003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810484147.0A Active CN108717630B (zh) | 2018-05-19 | 2018-05-19 | 一种出块方法及其实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108717630B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636599A (zh) * | 2018-11-07 | 2019-04-16 | 广西师范大学 | 基于群签名的许可区块链隐私保护和监管方法 |
GB2579635A (en) * | 2018-12-07 | 2020-07-01 | Dragon Infosec Ltd | A node testing method and apparatus for a blockchain system |
CN110930149B (zh) | 2018-12-07 | 2023-09-26 | 深圳市智税链科技有限公司 | 在区块链网络中确定记账节点的方法、代理节点和介质 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110471951B (zh) * | 2018-12-07 | 2023-05-23 | 深圳市智税链科技有限公司 | 确定数据区块中交易信息的顺序的方法、记账节点和介质 |
CN111327436B (zh) * | 2018-12-13 | 2023-04-07 | 北京果仁宝软件技术有限责任公司 | 预测区块链出块节点的方法、装置和系统 |
CN111327565B (zh) * | 2018-12-13 | 2022-09-06 | 北京果仁宝软件技术有限责任公司 | 区块链出块方法和系统 |
CN109711844A (zh) * | 2018-12-31 | 2019-05-03 | 莆田市烛火信息技术有限公司 | 一种区块链网络的平行链管理方法 |
CN110060050A (zh) * | 2018-12-31 | 2019-07-26 | 莆田市烛火信息技术有限公司 | 一种区块链网络的平行链管理系统 |
CN109829822B (zh) * | 2019-01-28 | 2020-10-23 | 杭州复杂美科技有限公司 | 交易替换方法、交易排队方法、设备和存储介质 |
CN111865595B (zh) * | 2019-04-29 | 2023-06-27 | 普天信息技术有限公司 | 一种区块链的共识方法及装置 |
CN110298757B (zh) * | 2019-07-05 | 2021-04-02 | 北京瑞策科技有限公司 | 涉及DPoS的共识方法及其装置 |
CN110298670B (zh) * | 2019-07-05 | 2021-01-15 | 北京瑞策科技有限公司 | 涉及pbft的共识方法及其装置 |
CN110348248B (zh) * | 2019-07-16 | 2023-07-21 | 山西智博睿星科技有限公司 | 一种区块链技术中分布式记账权生成方法 |
CN110610398A (zh) * | 2019-08-01 | 2019-12-24 | 广东工业大学 | 一种基于智能合约的共享图书方法 |
CN110853214B (zh) * | 2019-11-06 | 2021-05-11 | 杭州复杂美科技有限公司 | 区块生成方法、设备和存储介质 |
CN111224782B (zh) * | 2019-11-22 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 基于数字签名的数据校验方法、智能设备及存储介质 |
CN112860786A (zh) * | 2019-11-27 | 2021-05-28 | 阿里健康信息技术有限公司 | 一种数据处理方法、装置、计算节点和存储介质 |
CN111130801A (zh) * | 2019-12-26 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及计算机存储介质 |
CN111126978B (zh) * | 2019-12-28 | 2023-03-14 | 飞天诚信科技股份有限公司 | 一种区块链上快速处理事务的实现方法及装置 |
CN111126869B (zh) * | 2019-12-30 | 2024-03-15 | 航天信息股份有限公司 | 一种粮食流通过程的工作量核算方法和系统 |
CN111445241A (zh) * | 2020-02-28 | 2020-07-24 | 杭州泛链科技有限公司 | 一种结合pow和pos的混合共识方法及共识设备 |
CN113449029B (zh) * | 2020-03-10 | 2024-02-06 | 本无链科技(深圳)有限公司 | 一种去中心环境下的朋友圈同步方法及系统 |
CN111047330B (zh) * | 2020-03-18 | 2020-09-22 | 杭州智块网络科技有限公司 | 区块的验证分红奖励方法和装置 |
CN114065145A (zh) * | 2020-03-20 | 2022-02-18 | 支付宝(杭州)信息技术有限公司 | 基于区块链的作品原创审核方法、装置及设备 |
CN111539694B (zh) * | 2020-04-29 | 2023-10-20 | 重庆忽米网络科技有限公司 | 基于区块链记录贡献与身份标识的协同工作方法及系统 |
CN112118124B (zh) * | 2020-08-03 | 2022-05-03 | 西安电子科技大学 | 区块链构建方法、系统、存储介质、计算机设备及应用 |
CN111951110A (zh) * | 2020-08-10 | 2020-11-17 | 神话科技传媒(深圳)有限公司上海分公司 | 一种基于区块链的激励的经济模型 |
CN112819463B (zh) * | 2021-01-15 | 2022-08-02 | 山大地纬软件股份有限公司 | 基于可信秘钥体系的区块链高并发签名验签方法及系统 |
CN113157805B (zh) * | 2021-04-16 | 2024-05-03 | 西安瓜大网络科技有限公司 | 一种事务定序共识方法和系统 |
CN113177080B (zh) * | 2021-05-14 | 2022-12-02 | 北京邮电大学 | 区块链共识引擎系统和区块链共识处理流程方法 |
CN113965566B (zh) * | 2021-10-11 | 2024-05-14 | 浪潮云信息技术股份公司 | 一种基于Header-Sig流的BFT共识算法实现方法及系统 |
CN113868341B (zh) * | 2021-12-03 | 2022-03-18 | 深圳市名竹科技有限公司 | 联盟链的预期共识方法 |
CN114389815A (zh) * | 2021-12-06 | 2022-04-22 | 北京众享比特科技有限公司 | 用于选举区块链网络中节点的方法及其相关产品 |
CN117692128B (zh) * | 2024-02-02 | 2024-04-16 | 波维希数字科技有限公司 | 一种三级密链系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107124403A (zh) * | 2017-04-14 | 2017-09-01 | 朱清明 | 区块链中共识区块的生成方法与计算设备 |
CN107392767A (zh) * | 2017-07-28 | 2017-11-24 | 广州亦云信息技术股份有限公司 | 基于区块链的电力市场的交易方法、电子设备及存储介质 |
CN107424066A (zh) * | 2017-07-19 | 2017-12-01 | 武汉凤链科技有限公司 | 一种基于价值量建立共识机制的方法及其系统 |
CN108009918A (zh) * | 2017-11-23 | 2018-05-08 | 深圳捷汇科技有限公司 | 区块链共识算法交易系统的记账方法及电子设备 |
-
2018
- 2018-05-19 CN CN201810484147.0A patent/CN108717630B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107124403A (zh) * | 2017-04-14 | 2017-09-01 | 朱清明 | 区块链中共识区块的生成方法与计算设备 |
CN107424066A (zh) * | 2017-07-19 | 2017-12-01 | 武汉凤链科技有限公司 | 一种基于价值量建立共识机制的方法及其系统 |
CN107392767A (zh) * | 2017-07-28 | 2017-11-24 | 广州亦云信息技术股份有限公司 | 基于区块链的电力市场的交易方法、电子设备及存储介质 |
CN108009918A (zh) * | 2017-11-23 | 2018-05-08 | 深圳捷汇科技有限公司 | 区块链共识算法交易系统的记账方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
基于动态授权的拜占庭容错共识算法的区块链性能改进研究;刘肖飞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108717630A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108717630B (zh) | 一种出块方法及其实现系统 | |
Zhou et al. | Solutions to scalability of blockchain: A survey | |
JP7278453B2 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを管理するための方法、記憶媒体、電子デバイス、トランザクション検証ノード、スーパー・ノード及びブロックチェーン・ネットワーク | |
CN109150972B (zh) | 一种双层分片的高效区块链的共识机制的工作方法 | |
CN109360100B (zh) | 基于区块链技术的交易快速确认方法及装置 | |
US20220370108A1 (en) | Systems, methods, and program products for a distributed digital asset network with rapid transaction settlements | |
CN109951474B (zh) | 一种实现区块链共识出块的方法 | |
Kaur et al. | Scalability in blockchain: Challenges and solutions | |
KR101827373B1 (ko) | 채굴 제한을 위한 합의 알고리즘을 포함하는 블록윈도우 모듈 및 관리 서버 그리고 가상화폐 거래 시스템 및 방법 | |
CN106878000A (zh) | 一种联盟链共识方法及系统 | |
Ren et al. | A scale-out blockchain for value transfer with spontaneous sharding | |
CN108776929A (zh) | 基于区块链数据库的账单处理方法、系统和可读存储介质 | |
CN109522362A (zh) | 基于区块链数据的非完全数据同步方法、系统及设备 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
CN108805627B (zh) | 媒体资源分配方法、装置、系统、介质及设备 | |
CN110351133A (zh) | 用于区块链系统中的主节点切换处理的方法及装置 | |
CN109146484A (zh) | 基于区块链的共识验证方法、挖矿机及区块链系统 | |
CN110855432B (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
WO2020173497A1 (zh) | 一种部署有中心化系统的区块链网络 | |
CN109087111A (zh) | 基于区块链的共识验证方法、挖矿机及区块链系统 | |
CN112187866B (zh) | 一种基于共享存储的新型区块链共识方法 | |
CN112163950A (zh) | 一种方便扩展、节点资源复用的区块链链网构建方法、系统及终端设备 | |
CN109087105A (zh) | 用于挖矿的哈希搜索方法、挖矿机及区块链系统 | |
Li et al. | Gosig: Scalable byzantine consensus on adversarial wide area network for blockchains | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 |
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 |