区块链网络中区块打包方法及系统、电子设备、存储介质
技术领域
[0001] 本
发明涉及区块链领域,尤其涉及一种区块链网络中区块打包方法及系统、电子设备、存储介质。
背景技术
[0002] 传统的区块链网络上,每个区块的大小都有严格的限制,如
比特币的区块大小为1M。而随着区块链的交易数量的快速增加,以及出块速度的严格限制,传统区块的大小已经不能直接满足交易的需要。采用扩容的方式可以解决交易数量增加的问题,即在其它条件基本不变的前提下,增加每个区块的大小,以容纳更多的信息。如比特币网络已经将区块的大小提升到2M。
[0003] 对区块扩容在一定程度上解决了交易量增加的问题,但同时也带来了一系列的问题。如使得
挖矿难度增加;大量的数字签名需要校验,区块校验难度增加。因此,仅将区块扩容,不能完全解决交易量增加所带来的问题,还需要一种区块链网络中区块打包的方法,以降低挖矿难度、区块校验难度等,同时满足增长的
区块链交易需求。
发明内容
[0004] 本发明的发明目的是针对
现有技术的
缺陷,提供了一种区块链网络中区块打包方法及系统、电子设备、存储介质,用于解决现有技术中区块链交易数量的快速增加、挖矿难度增加、区块校验难度增加等问题。
[0005] 根据本发明的一个方面,提供了一种区块链网络中区块打包方法,区块链网络的1个矿池中包括1个矿工头
节点和多个子矿工节点,其包括:
[0006] 矿工头节点将待打包的多个交易列表分发给多个子矿工节点;
[0007] 多个子矿工节点分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块;
[0008] 多个子矿工节点将多个第一区块广播至全网,对多个第一区块的签名进行校验,得到多个第一区块的校验结果;
[0009] 根据多个第一区块的校验结果,矿工头节点构建包含
工作量证明的第二区块;
[0010] 矿工头节点将第二区块广播至全网,对第二区块进行校验;
[0011] 若第二区块校验成功,矿工头节点和多个子矿工节点根据第二区块包含的工作量证明得到对应的挖矿收益。
[0012] 根据本发明的另一个方面,还提供了一种区块链网络中区块打包系统,包括:位于区块链网络中的矿工头节点、子矿工节点和全网常规节点;其中,区块链网络的1个矿池中包括1个矿工头节点和多个子矿工节点;
[0013] 矿工头节点用于将待打包的多个交易列表分发给多个子矿工节点;
[0014] 多个子矿工节点用于分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块;将多个第一区块广播至全网;
[0015] 全网常规节点用于对多个第一区块的签名进行校验,得到多个第一区块的校验结果;
[0016] 矿工头节点还用于根据多个第一区块的校验结果,构建包含工作量证明的第二区块;将第二区块广播至全网;
[0017] 全网常规节点还用于对第二区块进行校验;
[0018] 若第二区块校验成功,矿工头节点和多个子矿工节点根据第二区块包含的工作量证明得到对应的挖矿收益。
[0019] 根据本发明的又一方面,提供了一种电子设备,包括:处理器、
存储器、通信
接口和通信总线,处理器、存储器和
通信接口通过通信总线完成相互间的通信;
[0020] 存储器用于存放至少一可执行指令,可执行指令使处理器执行上述区块链网络中区块打包方法对应的操作。
[0021] 根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述区块链网络中区块打包方法对应的操作。
[0022] 根据本发明提供的区块链网络中区块打包方法及系统、电子设备、存储介质,通过矿池联合挖矿,降低单个节点挖矿的难度;利用第一区块和第二区块相结合的方法可以有效解决区块链扩容所引起的挖矿难度增加的问题。同时,矿池中的矿工头节点和多个子矿工节点采用可信任节点,这样,各子矿工节点打包得到的第一区块都是可信任的,全网在对第一区块验证时,可以仅验证签名即可,不需要对第一区块中的每笔交易都进行校验,降低了校验的难度。
附图说明
[0023] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0024] 图1示出了根据本发明一个
实施例的区块链网络中区块打包方法的流程示意图;
[0025] 图2示出了根据本发明另一个实施例的区块链网络中区块打包方法的流程示意图;
[0026] 图3示出了根据本发明一个实施例的区块链网络中区块打包系统的功能结构示意图;
[0027] 图4示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
[0028] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0029] 图1示出了根据本发明一个实施例的区块链网络中区块打包方法的流程示意图,如图1所示,该方法具体包括如下步骤:
[0030] 步骤S101,矿工头节点将待打包的多个交易列表分发给多个子矿工节点。
[0031] 在区块链网络中构建多个矿池,其中,1个矿池中包括1个矿工头节点和多个子矿工节点。由矿工头节点和多个子矿工节点先建立挖矿协议,从而形成1个矿池,矿工头节点和多个子矿工节点协作完成挖矿。其中,矿工头节点和子矿工节点均选取可信性节点,这样方便后续得到可信任的第一区块和/或第二区块,也降低对第一区块和/或第二区块校验的难度。
[0032] 矿工头节点先统计待打包的交易信息,并根据统计的待打包交易信息生成多个交易信息列表。其中,每个交易列表中包含多条的交易信息,每个交易列表中包含的交易信息的条数可以相同,也可以不相同,根据实施情况设置,此处不做限定。
[0033] 矿工头节点将待打包的多个交易列表分发给多个子矿工节点。其中,每个子矿工节点得到一个交易列表,由子矿工节点根据得到的交易列表进行挖矿处理。
[0034] 步骤S102,多个子矿工节点分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块。
[0035] 每个子矿工节点在对矿工头分发给自己的交易列表中包含的交易信息先进行合法校验,若子矿工节点校验交易信息为合法交易信息,则对交易信息生成用于身份验证的签名,并打包构建得到第一区块。若子矿工节点校验交易信息为不合法交易信息,在子矿工节点将不合法交易信息的哈希值发送给矿工头节点。矿工头节点重新分发新的交易信息给子矿工节点,以替换不合法交易信息。
[0036] 其中,第一区块包括该第一区块的高度值、矿池签名(该矿池提供给每个子矿工节点专属的签名,可以表明该第一区块由该矿池挖矿产生)、交易树
根哈希值(该第一区块中交易信息的merkle树根的哈希值)、多条合法的交易信息等。
[0037] 每个子矿工节点均对各自交易列表中包含的交易信息进行合法校验,从而构建各自的第一区块。多个子矿工节点分别构建多个第一区块。
[0038] 步骤S103,多个子矿工节点将多个第一区块广播至全网,对多个第一区块的签名进行校验,得到多个第一区块的校验结果。
[0039] 每个子矿工节点在构建第一区块后,将构建的第一区块广播至全网。即多个子矿工节点将各自构建的第一区块广播至全网。全网常规节点在接收到第一区块后,可以按照现有技术对第一区块中包含的多条交易信息逐一验证,但优选地,由于子矿工节点为可信性节点,全网常规节点可以仅对多个第一区块的用于身份验证的签名进行校验,而不需要在对交易信息逐一验证,从而降低验证难度。全网常规节点对多个第一区块的签名进行校验,若校验失败,说明构建该第一区块的子矿工节点存在作弊行为,丢弃校验失败的第一区块,并将构建该第一区块的子矿工节点加入黑名单,该子矿工节点不允许再参与挖矿。
[0040] 全网常规节点对多个第一区块的签名进行校验后,丢弃校验失败的第一区块,得到多个第一区块的校验结果,该校验结果中包含的第一区块均为校验成功的第一区块。
[0041] 步骤S104,根据多个第一区块的校验结果,矿工头节点构建包含工作量证明的第二区块。
[0042] 根据多个第一区块的校验结果,矿工头节点收集到校验成功的第一区块。矿工头节点根据收集的校验成功的第一区块构建第二区块。其中,第二区块包括第二区块大小、第二
区块头信息、第一区块哈希值列表。第二区块头信息具体包括版本号、父区块哈希值、Merkle树根哈希值、时间戳、难度目标、工作量证明等。矿工头节点将第二区块头信息分发给多个子矿工节点,由多个子矿工节点同时开始计算工作量证明。计算工作量证明可以采用现有技术中计算工作量证明的方式,在此不再赘述。当子矿工节点计算得到工作量证明后,将工作量证明反馈给矿工头节点。由矿工头节点确认工作量证明,将工作量证明赋值给第二区块头信息中的工作量证明。
[0043] 步骤S105,矿工头节点将第二区块广播至全网,对第二区块进行校验。
[0044] 矿工头节点将第二区块广播至全网,由全网常规节点对第二区块进行校验。具体的,全网常规节点对第二区块中第二区块头信息的工作量证明进行校验。具体校验方式可采用现有技术中对区块的校验方式,如第二区块的数据结构语法上是否有效、第二区块头信息的哈希值是否小于目标难度(确认包含足够的工作量证明)、第二区块头信息的时间戳是否早于验证时刻未来两个小时(允许时间错误)等。
[0045] 步骤S106,在第二区块校验成功后,矿工头节点和多个子矿工节点根据第二区块包含的工作量证明得到对应的挖矿收益。
[0046] 在全网常规节点接收到第二区块后,本次的挖矿结束。在全网常规节点对第二区块校验成功后,矿工头节点和多个子矿工节点可以根据第二区块包含的工作量证明得到对应的挖矿收益。
[0047] 根据本发明提供的区块链网络中区块打包方法,通过矿池联合挖矿,降低单个节点挖矿的难度;利用第一区块和第二区块相结合的方法可以有效解决区块链扩容所引起的挖矿难度增加的问题。同时,矿池中的矿工头节点和多个子矿工节点采用可信任节点,这样,各子矿工节点打包得到的第一区块都是可信任的,全网在对第一区块验证时,可以仅验证签名即可,不需要对第一区块中的每笔交易都进行校验,降低了校验的难度。
[0048] 图2示出了根据本发明另一个实施例的区块链网络中区块打包方法的流程示意图,如图2所示,该方法具体包括如下步骤:
[0049] 步骤S201,矿工头节点将待打包的多个交易列表分发给多个子矿工节点。
[0050] 步骤S202,多个子矿工节点分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包,构建多个第一区块。
[0051] 以上步骤参考图1实施例中的步骤S101-S102,在此不再赘述。
[0052] 步骤S203,多个子矿工节点将其构建的多个第一区块发送给矿工头节点。
[0053] 步骤S204,矿工头节点将多个第一区块分配给创建该第一区块的子矿工节点之外的其他子矿工节点,由其他子矿工节点对所分配的第一区块进行校验后广播至全网。
[0054] 为避免子矿工节点在打包以及构建第一区块过程中出现作弊行为而对其所属矿池中的矿工头节点和其他子矿工节点造成不必要的损失,因此,在多个子矿工节点构建各自的第一区块后,先不将第一区块广播至全网,而是将构建的多个第一区块发送给矿工头节点。矿工头节点将多个第一区块分配给创建该第一区块的子矿工节点之外的其他子矿工节点,由其他子矿工节点对所分配第一区块进行校验后,实现子矿工节点间的交叉校验。其他子矿工节点对所分配的第一区块进行校验,若校验成功,则其他子矿工节点对所分配的第一区块生成用于身份校验的签名,并将所分配的第一区块广播至全网。若校验失败,则丢弃所分配的第一区块,并将构建所分配的第一区块的子矿工节点加入黑名单,不允许该子矿工节点再参与挖矿。这样可以快速的校验出作弊的子矿工节点,保障了交易打包的安全性。
[0055] 进一步,矿工头节点还可以判断子矿工节点是否在预设时间内广播或发送其所构建的第一区块;若子矿工节点一直不予反馈,即一直没有广播其所构建的第一区块或一直没有发送其所构建的第一区块,子矿工节点可能存在网络问题、宕机等情况,考虑到子矿工节点可能无法及时完成本次挖矿,矿工头节点将子矿工节点从矿池中剔除。需要注意的是,矿工头节点仅将子矿工节点从矿池中剔除,而没有将其加入黑名单。该子矿工节点仅是不参加本次挖矿,其没有作弊行为,还可以再参加之后的挖矿。
[0056] 步骤S205,对多个第一区块的签名进行校验,得到多个第一区块的校验结果。
[0057] 全网常规节点在接收到多个第一区块后,对多个第一区块的签名进行校验。若第一区块有多个签名时,依次对多个签名均进行校验,避免出现矿池中多个子矿工节点联合作弊的情况,从而得到多个第一区块的校验结果。
[0058] 步骤S206,根据多个第一区块的校验结果,矿工头节点构建包含工作量证明的第二区块。
[0059] 步骤S207,矿工头节点将第二区块广播至全网,对第二区块进行校验。
[0060] 步骤S208,在第二区块校验成功后,矿工头节点和多个子矿工节点根据第二区块包含的工作量证明得到对应的挖矿收益。
[0061] 以上步骤参考图1实施例中的步骤S104-S106,在此不再赘述。
[0062] 根据本发明提供的区块链网络中区块打包方法,通过矿池联合挖矿,降低单个节点挖矿的难度;利用第一区块和第二区块相结合的方法可以有效解决区块链扩容所引起的挖矿难度增加的问题。同时,矿池中的矿工头节点和多个子矿工节点采用可信任节点,这样,各子矿工节点打包得到的第一区块都是可信任的,全网在对第一区块验证时,可以仅验证签名即可,不需要对第一区块中的每笔交易都进行校验,降低了校验的难度。进一步,还可以在子矿工节点构建得到第一区块后,在矿池内部由各子矿工节点间进行交叉验证,保障了交易打包的安全性,也避免出现子矿工节点作弊而对整个矿池中矿工头节点和其他子矿工节点造成不良影响和不必要的损失。
[0063] 图3示出了根据本发明一个实施例的区块链网络中区块打包系统的功能
框图,如图3所示,本系统中包含以下节点:矿工头节点310、多个子矿工节点320和全网常规节点330。区块链网络包括多个矿池,1个矿池中包括1个矿工头节点310和多个子矿工节点320。
矿工头节点310和多个子矿工节点320建立挖矿协议,形成1个矿池,以协作完成挖矿。
[0064] 矿工头节点310用于将待打包的多个交易列表分发给多个子矿工节点。
[0065] 矿工头节点310进一步用于统计待打包的交易信息,并生成多个交易信息列表;将待打包的多个交易列表分发给多个子矿工节点320;其中,每个子矿工节点320得到一个交易列表。
[0066] 多个子矿工节点320用于分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块;将多个第一区块广播至全网。
[0067] 子矿工节点320进一步用于对交易列表中包含的交易信息进行合法校验。若校验交易信息为合法交易信息,则对交易信息生成用于身份验证的签名,并构建第一区块;其中,第一区块包括以下至少之一:区块高度值、矿池签名、交易树根哈希值和/或交易信息。若校验交易信息为不合法交易信息,则将交易信息的哈希值发送给矿工头节点310。矿工头节点310进一步用于重新分发新的交易信息给子矿工节点320,以替换不合法交易信息。
[0068] 多个子矿工节点320进一步用于将多个第一区块广播至全网。
[0069] 可选地,多个子矿工节点320进一步用于将其构建的多个第一区块发送给矿工头节点310。矿工头节点310进一步用于将多个第一区块分配给创建该第一区块的子矿工节点之外的其他子矿工节点320。其他子矿工节点320用于对所分配的第一区块进行校验;若校验成功,则对所分配的第一区块生成用于身份校验的签名,并将所分配的第一区块广播至全网;若校验失败,则丢弃所分配的第一区块,并将构建所分配的第一区块的子矿工节点320加入黑名单。
[0070] 进一步,矿工头节点310进一步用于判断子矿工节点320是否在预设时间内广播或发送其所构建的第一区块;若否,矿工头节点310将子矿工节点320从矿池中剔除。
[0071] 全网常规节点330用于对多个第一区块的签名进行校验,得到多个第一区块的校验结果。
[0072] 全网常规节点330进一步用于对多个第一区块的用于身份验证的签名进行校验;若校验失败,则丢弃校验失败的第一区块,并将构建该第一区块的子矿工节点320加入黑名单。
[0073] 矿工头节点310还用于根据多个第一区块的校验结果,构建包含工作量证明的第二区块;将第二区块广播至全网。
[0074] 矿工头节点310进一步用于根据多个第一区块的校验结果,收集校验成功的第一区块;根据收集的校验成功的第一区块构建第二区块;其中,第二区块包括第二区块大小、第二区块头信息、第一区块哈希值列表;将第二区块头信息分发给多个子矿工节点320。多个子矿工节点320进一步用于计算得到工作量证明并反馈给矿工头节点310。矿工头节点310进一步用于确认工作量证明,将工作量证明赋值给第二区块头信息。
[0075] 全网常规节点330还用于对第二区块进行校验。若第二区块校验成功,矿工头节点310和多个子矿工节点320根据第二区块包含的工作量证明得到对应的挖矿收益。
[0076] 根据本发明提供的区块链网络中区块打包系统,通过矿池联合挖矿,降低单个节点挖矿的难度;利用第一区块和第二区块相结合的方法可以有效解决区块链扩容所引起的挖矿难度增加的问题。同时,矿池中的矿工头节点和多个子矿工节点采用可信任节点,这样,各子矿工节点打包得到的第一区块都是可信任的,全网在对第一区块验证时,可以仅验证签名即可,不需要对第一区块中的每笔交易都进行校验,降低了校验的难度。进一步,还可以在子矿工节点构建得到第一区块后,在矿池内部由各子矿工节点间进行交叉验证,保障了交易打包的安全性,也避免出现子矿工节点作弊而对整个矿池中矿工头节点和其他子矿工节点造成不良影响和不必要的损失。
[0077] 本
申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的区块链网络中区块打包方法。
[0078] 图4示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
[0079] 如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
[0080] 其中:
[0081] 处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
[0082] 通信接口404,用于与其它设备比如客户端或其它
服务器等的网元通信。
[0083] 处理器402,用于执行程序410,具体可以执行上述区块链网络中区块打包方法实施例中的相关步骤。
[0084] 具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
[0085] 处理器402可能是
中央处理器CPU,或者是特定集成
电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0086] 存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括
非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0087] 程序410具体可以用于使得处理器402执行上述任意方法实施例中的区块链网络中区块打包方法。程序410中各步骤的具体实现可以参见上述区块链网络中区块打包实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0088] 在此提供的
算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0089] 在此处所提供的
说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0090] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个
权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0091] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、
摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0092] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0093] 本发明的各个部件实施例可以以
硬件实现,或者以在一个或者多个处理器上运行的
软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用
微处理器或者数字
信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,
计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网
网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0094] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0095] 本发明公开了:A1.一种区块链网络中区块打包方法,其特征在于,所述区块链网络的1个矿池中包括1个矿工头节点和多个子矿工节点,包括:
[0096] 所述矿工头节点将待打包的多个交易列表分发给多个子矿工节点;
[0097] 所述多个子矿工节点分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块;
[0098] 所述多个子矿工节点将所述多个第一区块广播至全网,对所述多个第一区块的签名进行校验,得到所述多个第一区块的校验结果;
[0099] 根据所述多个第一区块的校验结果,所述矿工头节点构建包含工作量证明的第二区块;
[0100] 所述矿工头节点将所述第二区块广播至全网,对所述第二区块进行校验;
[0101] 若所述第二区块校验成功,所述矿工头节点和所述多个子矿工节点根据所述第二区块包含的工作量证明得到对应的挖矿收益。
[0102] A2.根据A1所述的方法,其特征在于,所述矿工头节点将待打包的多个交易列表分发给多个子矿工节点进一步包括:
[0103] 所述矿工头节点统计待打包的交易信息,并生成多个交易信息列表;
[0104] 所述矿工头节点将待打包的多个交易列表分发给多个子矿工节点;其中,每个子矿工节点得到一个交易列表。
[0105] A3.根据A1所述的方法,其特征在于,所述多个子矿工节点分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包,构建多个第一区块进一步包括:
[0106] 所述子矿工节点对所述交易列表中包含的交易信息进行合法校验;
[0107] 若校验所述交易信息为合法交易信息,则对所述交易信息生成用于身份验证的签名,并构建第一区块;其中,所述第一区块包括以下至少之一:区块高度值、矿池签名、交易树根哈希值和/或所述交易信息;
[0108] 若校验所述交易信息为不合法交易信息,则将所述交易信息的哈希值发送给所述矿工头节点;所述矿工头节点重新分发新的交易信息给所述子矿工节点,以替换所述不合法交易信息。
[0109] A4.根据A1所述的方法,其特征在于,所述多个子矿工节点将所述多个第一区块广播至全网,对所述多个第一区块的签名进行校验,得到所述多个第一区块的校验结果进一步包括:
[0110] 所述多个子矿工节点将所述多个第一区块广播至全网;
[0111] 全网常规节点对所述多个第一区块的用于身份验证的签名进行校验;
[0112] 若校验失败,则丢弃校验失败的第一区块,并将构建所述第一区块的子矿工节点加入黑名单。
[0113] A5.根据A1或A4所述的方法,其特征在于,所述多个子矿工节点将所述多个第一区块广播至全网进一步包括:
[0114] 所述多个子矿工节点将其构建的多个第一区块发送给所述矿工头节点;
[0115] 所述矿工头节点将所述多个第一区块分配给创建该第一区块的子矿工节点之外的其他子矿工节点,由其他子矿工节点对所分配的第一区块进行校验;
[0116] 若校验成功,则其他子矿工节点对所分配的第一区块生成用于身份校验的签名,并将所分配的第一区块广播至全网;
[0117] 若校验失败,则丢弃所分配的第一区块,并将构建所分配的第一区块的子矿工节点加入黑名单。
[0118] A6.根据A1所述的方法,其特征在于,所述根据所述多个第一区块的校验结果,所述矿工头节点构建包含工作量证明的第二区块进一步包括:
[0119] 根据所述多个第一区块的校验结果,所述矿工头节点收集校验成功的第一区块;
[0120] 所述矿工头节点根据收集的校验成功的第一区块构建第二区块;其中,所述第二区块包括第二区块大小、第二区块头信息、第一区块哈希值列表;
[0121] 所述矿工头节点将所述第二区块头信息分发给所述多个子矿工节点,由所述多个子矿工节点计算得到工作量证明并反馈给所述矿工头节点;
[0122] 所述矿工头节点确认所述工作量证明,将所述工作量证明赋值给所述第二区块头信息。
[0123] A7.根据A1所述的方法,其特征在于,所述方法还包括:
[0124] 所述矿工头节点和所述多个子矿工节点建立挖矿协议,形成1个矿池,以协作完成挖矿。
[0125] A8.根据A1所述的方法,其特征在于,所述方法还包括:
[0126] 所述矿工头节点判断所述子矿工节点是否在预设时间内广播或发送其所构建的第一区块;
[0127] 若否,所述矿工头节点将所述子矿工节点从矿池中剔除。
[0128] 本发明还公开了:B9.一种区块链网络中区块打包系统,其特征在于,包括:位于区块链网络中的矿工头节点、子矿工节点和全网常规节点;其中,所述区块链网络的1个矿池中包括1个矿工头节点和多个子矿工节点;
[0129] 所述矿工头节点用于将待打包的多个交易列表分发给多个子矿工节点;
[0130] 所述多个子矿工节点用于分别对各自交易列表中包含的交易信息进行合法校验,对合法的交易信息生成用于身份验证的签名,并进行打包构建得到多个第一区块;将所述多个第一区块广播至全网;
[0131] 所述全网常规节点用于对所述多个第一区块的签名进行校验,得到所述多个第一区块的校验结果;
[0132] 所述矿工头节点还用于根据多个第一区块的校验结果,构建包含工作量证明的第二区块;将所述第二区块广播至全网;
[0133] 所述全网常规节点还用于对所述第二区块进行校验;
[0134] 若所述第二区块校验成功,所述矿工头节点和所述多个子矿工节点根据所述第二区块包含的工作量证明得到对应的挖矿收益。
[0135] B10.根据B9所述的系统,其特征在于,所述矿工头节点进一步用于:
[0136] 统计待打包的交易信息,并生成多个交易信息列表;
[0137] 将待打包的多个交易列表分发给多个子矿工节点;其中,每个子矿工节点得到一个交易列表。
[0138] B11.根据B9所述的系统,其特征在于,所述子矿工节点进一步用于:
[0139] 对所述交易列表中包含的交易信息进行合法校验;
[0140] 若校验所述交易信息为合法交易信息,则对所述交易信息生成用于身份验证的签名,并构建第一区块;其中,所述第一区块包括以下至少之一:区块高度值、矿池签名、交易树根哈希值和/或所述交易信息;
[0141] 若校验所述交易信息为不合法交易信息,则将所述交易信息的哈希值发送给所述矿工头节点;
[0142] 所述矿工头节点进一步用于:重新分发新的交易信息给所述子矿工节点,以替换所述不合法交易信息。
[0143] B12.根据B9所述的系统,其特征在于,所述多个子矿工节点进一步用于:
[0144] 将所述多个第一区块广播至全网;
[0145] 所述全网常规节点进一步用于:对所述多个第一区块的用于身份验证的签名进行校验;若校验失败,则丢弃校验失败的第一区块,并将构建所述第一区块的子矿工节点加入黑名单。
[0146] B13.根据B9或B12所述的系统,其特征在于,所述多个子矿工节点进一步用于:
[0147] 将其构建的多个第一区块发送给所述矿工头节点;
[0148] 所述矿工头节点进一步用于:将所述多个第一区块分配给创建该第一区块的子矿工节点之外的其他子矿工节点;
[0149] 所述其他子矿工节点用于:对所分配的第一区块进行校验;若校验成功,则对所分配的第一区块生成用于身份校验的签名,并将所分配的第一区块广播至全网;若校验失败,则丢弃所分配的第一区块,并将构建所分配的第一区块的子矿工节点加入黑名单。
[0150] B14.根据B9所述的系统,其特征在于,所述矿工头节点进一步用于:
[0151] 根据所述多个第一区块的校验结果,收集校验成功的第一区块;
[0152] 根据收集的校验成功的第一区块构建第二区块;其中,所述第二区块包括第二区块大小、第二区块头信息、第一区块哈希值列表;
[0153] 将所述第二区块头信息分发给所述多个子矿工节点,
[0154] 所述多个子矿工节点进一步用于:计算得到工作量证明并反馈给所述矿工头节点;
[0155] 所述矿工头节点进一步用于:确认所述工作量证明,将所述工作量证明赋值给所述第二区块头信息。
[0156] B15.根据B9所述的系统,其特征在于,所述矿工头节点和所述多个子矿工节点建立挖矿协议,形成1个矿池,以协作完成挖矿。
[0157] B16.根据B9所述的系统,其特征在于,所述矿工头节点进一步用于:
[0158] 判断所述子矿工节点是否在预设时间内广播或发送其所构建的第一区块;若否,所述矿工头节点将所述子矿工节点从矿池中剔除。
[0159] 本发明还公开了:C17.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0160] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A8中任一项所述的区块链网络中区块打包方法对应的操作。
[0161] 本发明还公开了:D18.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A8中任一项所述的区块链网络中区块打包方法对应的操作。