CN115829731A - 一种交易信息处理方法及装置 - Google Patents
一种交易信息处理方法及装置 Download PDFInfo
- Publication number
- CN115829731A CN115829731A CN202111080651.2A CN202111080651A CN115829731A CN 115829731 A CN115829731 A CN 115829731A CN 202111080651 A CN202111080651 A CN 202111080651A CN 115829731 A CN115829731 A CN 115829731A
- Authority
- CN
- China
- Prior art keywords
- transaction
- consensus node
- node
- consensus
- transaction information
- 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
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种交易信息处理方法,涉及通信技术领域,用于降低交易信息的处理时延。该方法应用于包括主共识节点、从共识节点和普通节点的区块链网络中,包括:该主共识节点接收多个交易信息;对于该多个交易信息中的每个交易信息,该主共识节点分别向该从共识节点和该普通节点发送交易指示信息,该交易指示信息包括该交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序;当该从共识节点接收到上述交易指示信息时,该从共识节点和该主共识节点根据该多个交易信息的该顺序索引,共识该多个交易信息以得到第一区块;并行地,当该普通节点接收上述交易指示信息时,该普通节点根据该顺序索引执行该多个交易信息。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种交易信息处理方法及装置。
背景技术
区块链(blockchain)是一种多节点共同维护的分布式账本,采用一种特殊的数据结构“区块”来记录交易。每个区块可以包括三个组成部分:前一个区块的哈希值、一定数量且有序排列的交易、共识协议附加的元数据。因为每个区块存储前一个区块的哈希值,形成一个链状结构,修改链中间的区块会导致后续区块的哈希值不一致,这种机制保证了区块链上区块很难被篡改,从而受到人们越来越多的重视和应用。
目前,为了保证区块链网络中的多个节点能够按照同样的顺序执行同样的交易,通常采用以下两种工作流来工作:第一种、执行-排序工作流;第二种、排序-执行工作流。在第一种工作流中,该多个节点包括背书节点、排序节点和普通节点三种,具体工作流过程如图1 中的(a)所示,包括:背书节点对客户端设备发送的交易信息进行背书(简称背书),即对该交易信息进行验证和执行,并将交易执行结果作为背书发送给客户端设备;排序节点接收客户端设备发送的背书成功的交易信息,并对接收到的多个交易信息进行共识打包得到区块 (简称排序);背书节点和普通节点对该区块中的每个交易信息进行验证(简称验证);背书节点和普通节点将验证成功的区块和背书进行相应的存储,以完成提交(简称提交)。在第二种工作流中,该多个节点包括排序节点和普通节点两种,具体工作流过程如图1中的(b) 所示,包括:排序节点对接收到的多个交易信息进行共识打包得到区块(简称排序),并将该区块发送给普通节点;排序节点和普通节点按照该多个交易信息在区块中的顺序执行该多个交易信息(简称执行);所有节点分别对该多个交易信息的交易执行结果和该区块进行相应的存储,以完成提交(简称提交)。
上述两种工作流中,排序阶段和执行阶段(第一种工作流中的执行阶段包括背书和验证) 是串行执行的,从而导致交易信息的处理时延较长。此外,在上述第一种工作流中,交易信息在背书阶段时还没有被排序,且不同的交易信息之间是独立执行的,这样存在依赖关系的多个交易信息在进入排序阶段后,可能会导致排在后面的交易信息被认为是无效交易,从而降低了交易信息的处理效率。
发明内容
本申请提供一种交易信息处理方法及装置,解决了现有技术中交易信息的处理时延长、处理效率低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种交易信息处理方法,应用于区块链网络中,该区块链网络包括主共识节点、从共识节点和普通节点,该方法包括:该主共识节点接收来自至少一个客户端设备的多个交易信息;对于该多个交易信息中的每个交易信息,该主共识节点分别向该从共识节点和该普通节点发送交易指示信息,该交易指示信息包括该交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,比如该顺序索引可以为序列号;该主共识节点根据该多个交易信息的该顺序索引,共识该多个交易信息以得到第一区块。
上述技术方案中,当该主共识节点在接收到多个交易信息时,可以分别向从共识节点和普通节点发送多个交易指示信息,每个交易指示信息包括一个交易信息和一个顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,从而当从共识节点和普通节点接收到该多个交易指示信息时,主共识节点和从共识节点可以根据该多个交易信息的顺序索引共识该多个交易信息,同时该普通节点可以根据该多个交易信息的顺序索引执行该多个交易信息,从而使得该多个交易信息的共识和执行能够并行执行,从而降低交易信息的处理时延,提高交易信息的执行效率。
在第一方面的一种可能的实现方式中,该交易指示信息中的顺序索引未签名。上述可能的实现方式中,该主共识节点不对顺序索引进行签名,这样其他节点在接收到交易指示信息时无需对该顺序索引进行签名验证,从而降低了其他节点的性能开销;此外不对顺序索引进行签名还可以避免恶意节点通过广播大量携带有不合法的签名的交易指示信息的方式耗尽其他节点的计算资源。
在第一方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该方法还包括:该主共识节点向该从共识节点发送该多个交易哈希值,该多个交易哈希值中的每个交易哈希值用于该从共识节点确定是否获取到该交易哈希值对应的交易信息。上述可能的实现方式中,能够使得该从共识节点确定是否获取到该交易哈希值对应的交易信息。
在第一方面的一种可能的实现方式中,该方法还包括:该主共识节点接收来自该从共识节点的获取请求,该获取请求用于请求获取该多个交易信息中的至少一个交易信息,该获取请求是该从共识节点根据该多个交易哈希值确定未获取到该至少一个交易信息时发送的;该主共识节点向该从共识节点发送至少一个交易指示信息,该至少一个交易指示信息包括该至少一个交易信息、以及该至少一个交易信息中的每个交易信息对应的顺序索引。上述可能的实现方式中,确保了该从共识节点能够获取到上述多个交易信息。
在第一方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该方法还包括:该主共识节点向该普通节点发送第一区块,以使该普通节点验证第一区块中的该多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。上述可能的实现方式中,能够使得普通节点验证第一区块中的多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。
在第一方面的一种可能的实现方式中,该方法还包括:该主共识节点获取交易信息处理过程中的性能参数,当该性能参数满足第一预设条件时,该主共识节点触发主共识节点的切换流程。可选的,该性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;该共识吞吐量满足第一预设条件包括该共识吞吐量小于预设吞吐量;该交易时延满足第一预设条件包括该交易时延大于预设时延;该交易冲突次数满足第一预设条件包括该交易冲突次数大于第一预设次数。上述可能的实现方式中,能够避免恶意节点对于区块链网络性能的影响。
在第一方面的一种可能的实现方式中,该方法还包括:当该主共识节点确定某一交易信息在预设时长内未被处理时,该主共识节点触发主共识节点的切换流程。上述可能的实现方式中,能够避免恶意节点对于区块链网络性能的影响。
在第一方面的一种可能的实现方式中,该方法还包括:当该主共识节点确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将该客户端设备设置为黑名单;其中,该至少一个切换周期中的每个切换周期对应不同的主共识节点。上述可能的实现方式中,能够避免客户端设备对于区块链网络性能的影响。
第二方面,提供一种交易信息处理方法,应用于区块链网络中,该区块链网络包括主共识节点、从共识节点和普通节点,该方法包括:该从共识节点接收来自该主共识节点的多个交易指示信息,该多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,比如该顺序索引可以为序列号;该从共识节点根据该多个交易信息的该顺序索引,共识该多个交易信息以得到第一区块。上述技术方案中,当该主共识节点在接收到多个交易信息时,可以分别向从共识节点和普通节点发送多个交易指示信息,每个交易指示信息包括一个交易信息和一个顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,从而当从共识节点和普通节点接收到该多个交易指示信息时,主共识节点和从共识节点可以根据该多个交易信息的顺序索引共识该多个交易信息,同时该普通节点可以根据该多个交易信息的顺序索引执行该多个交易信息,从而使得该多个交易信息的共识和执行能够并行执行,从而降低交易信息的处理时延,提高交易信息的执行效率。
在第二方面的一种可能的实现方式中,该交易指示信息中的该顺序索引未签名。上述可能的实现方式中,该主共识节点不对顺序索引进行签名,这样其他节点在接收到交易指示信息时无需对该顺序索引进行签名验证,从而降低了其他节点的性能开销;此外不对顺序索引进行签名还可以避免恶意节点通过广播大量携带有不合法的签名的交易指示信息的方式耗尽其他节点的计算资源。
在第二方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该方法还包括:该从共识节点接收来自该主共识节点的该多个交易哈希值,该多个交易哈希值中的每个交易哈希值用于该从共识节点确定是否获取到该交易哈希值对应的交易信息。上述可能的实现方式中,能够使得该从共识节点确定是否获取到该交易哈希值对应的交易信息。
在第二方面的一种可能的实现方式中,当该从共识节点根据该多个交易哈希值确定未获取到该多个交易信息中的至少一个交易信息时,该方法还包括:该从共识节点向该主共识节点发送获取请求,该获取请求用于请求获取该至少一个交易信息;该从共识节点接收来自该主共识节点的至少一个交易指示信息,该至少一个交易指示信息包括该至少一个交易信息、以及该至少一个交易信息中的每个交易信息对应的顺序索引。上述可能的实现方式中,确保了该从共识节点能够获取到上述多个交易信息。
在第二方面的一种可能的实现方式中,对于该多个交易信息中的每个交易信息,该方法还包括:该从共识节点接收来自该普通节点对于该交易信息的交易执行结果;该从共识节点向该普通节点发送应答信息,该应答信息用于确认该交易执行结果接收成功。上述可能的实现方式中,能够使得从共识节点成功接收到交易信息的交易执行结果。
在第二方面的一种可能的实现方式中,该方法还包括:该从共识节点获取交易信息处理过程中的性能参数,当该性能参数满足第一预设条件时,该从共识节点触发主共识节点的切换流程。可选的,该性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;该共识吞吐量满足第一预设条件包括该共识吞吐量小于预设吞吐量;该交易时延满足第一预设条件包括该交易时延大于预设时延;该交易冲突次数满足第一预设条件包括该交易冲突次数大于第一预设次数。上述可能的实现方式中,能够避免恶意节点对于区块链网络性能的影响。
在第二方面的一种可能的实现方式中,该方法还包括:当该从共识节点确定某一交易信息在预设时长内未被处理或者该主共识节点在下一次主共识节点切换之前弃权时,该从共识节点触发主共识节点的切换流程。上述可能的实现方式中,能够避免恶意节点对于区块链网络性能的影响。
在第二方面的一种可能的实现方式中,该方法还包括:当该从共识节点确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将该客户端设备设置为黑名单;其中,该至少一个切换周期中的每个切换周期对应不同的主共识节点。上述可能的实现方式中,能够避免客户端设备对于区块链网络性能的影响。
第三方面,提供一种交易信息处理方法,应用于区块链网络中,该区块链网络包括主共识节点、从共识节点和普通节点,该方法包括:普通节点接收来自主共识节点的多个交易指示信息,该多个交易指示信息是主共识节点在接收到多个交易信息时分别向从共识节点和普通节点发送的,该多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序;该普通节点根据该多个交易信息的顺序索引,执行该多个交易信息。
上述技术方案中,当该主共识节点在接收到多个交易信息时,可以分别向从共识节点和普通节点发送多个交易指示信息,每个交易指示信息包括一个交易信息和一个顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,从而当从共识节点和普通节点接收到该多个交易指示信息时,主共识节点和从共识节点可以根据该多个交易信息的顺序索引共识该多个交易信息,同时该普通节点可以根据该多个交易信息的顺序索引执行该多个交易信息,从而使得该多个交易信息的共识和执行能够并行执行,从而降低交易信息的处理时延,提高交易信息的执行效率。
在第三方面的一种可能的实现方式中,该交易指示信息中的顺序索引未签名。上述可能的实现方式中,该主共识节点不对顺序索引进行签名,这样其他节点在接收到交易指示信息时无需对该顺序索引进行签名验证,从而降低了其他节点的性能开销;此外不对顺序索引进行签名还可以避免恶意节点通过广播大量携带有不合法的签名的交易指示信息的方式耗尽其他节点的计算资源。
在第三方面的一种可能的实现方式中,该方法还包括:该普通节点接收主共识节点和/或从共识节点发送的第一区块,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应;该普通节点验证第一区块中的该多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。上述可能的实现方式中,能够使得普通节点验证第一区块中的多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。
在第三方面的一种可能的实现方式中,该方法还包括:该普通节点向从共识节点和/或主共识节点发送该多个交易信息的交易执行结果;该普通节点接收来自从共识节点和/或主共识节点的应答信息,该应答信息用于确认交易执行结果接收成功。
第四方面,提供一种交易信息处理装置,该装置作为主共识节点,应用于区块链网络中,该区块链网络还包括从共识节点和普通节点,该装置包括:接收单元,用于接收多个交易信息;发送单元,用于对于该多个交易信息中的每个交易信息,分别向该从共识节点和该普通节点发送交易指示信息,该交易指示信息包括该交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序;处理单元,用于根据该多个交易信息的该顺序索引,共识该多个交易信息以得到第一区块。
在第四方面的一种可能的实现方式中,该交易指示信息中的该顺序索引未签名。
在第四方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该发送单元还用于:向该从共识节点发送该多个交易哈希值,该多个交易哈希值中的每个交易哈希值用于该从共识节点确定是否获取到该交易哈希值对应的交易信息。
在第四方面的一种可能的实现方式中,该接收单元,还用于接收来自该从共识节点的获取请求,该获取请求用于请求获取该多个交易信息中的至少一个交易信息,该获取请求是该从共识节点根据该多个交易哈希值确定未获取到该至少一个交易信息时发送的;该发送单元,还用于向该从共识节点发送至少一个交易指示信息,该至少一个交易指示信息包括该至少一个交易信息、以及该至少一个交易信息中的每个交易信息对应的顺序索引。
在第四方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该发送单元还用于:向该普通节点发送第一区块,以使该普通节点验证第一区块中的该多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。
在第四方面的一种可能的实现方式中,该处理单元还用于:获取交易信息处理过程中的性能参数,当该性能参数满足第一预设条件时,触发主共识节点的切换流程。可选的,该性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;该共识吞吐量满足第一预设条件包括该共识吞吐量小于预设吞吐量;该交易时延满足第一预设条件包括该交易时延大于预设时延;该交易冲突次数满足第一预设条件包括该交易冲突次数大于第一预设次数。
在第四方面的一种可能的实现方式中,该处理单元还用于:当确定某一交易信息在预设时长内未被处理时,触发主共识节点的切换流程。
在第四方面的一种可能的实现方式中,该处理单元还用于:当确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将该客户端设备设置为黑名单;其中,该至少一个切换周期中的每个切换周期对应不同的主共识节点。
第五方面,提供一种交易信息处理装置,该装置作为从共识节点,应用于区块链网络中,该区块链网络还包括主共识节点和普通节点,该装置包括:接收单元,用于接收来自该主共识节点的多个交易指示信息,该多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序;处理单元,用于根据该多个交易信息的该顺序索引,共识该多个交易信息以得到第一区块。
在第五方面的一种可能的实现方式中,该交易指示信息中的该顺序索引未签名。
在第五方面的一种可能的实现方式中,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该接收单元还用于:接收来自该主共识节点的该多个交易哈希值,该多个交易哈希值中的每个交易哈希值用于该从共识节点确定是否获取到该交易哈希值对应的交易信息。
在第五方面的一种可能的实现方式中,当该从共识节点未获取到该多个交易信息中的至少一个交易信息时,该装置还包括发送单元;该发送单元,用于向该主共识节点发送获取请求,该获取请求用于请求获取该至少一个交易信息;该接收单元,还用于接收来自该主共识节点的至少一个交易指示信息,该至少一个交易指示信息包括该至少一个交易信息、以及该至少一个交易信息中的每个交易信息对应的顺序索引。
在第五方面的一种可能的实现方式中,对于该多个交易信息中的每个交易信息:该接收单元,还用于接收来自该普通节点对于该交易信息的交易执行结果;该发送单元,还用于向该普通节点发送应答信息,该应答信息用于确认该交易执行结果接收成功。
在第五方面的一种可能的实现方式中,该处理单元还用于:获取交易信息处理过程中的性能参数,当该性能参数满足第一预设条件时,该从共识节点触发主共识节点的切换流程。可选的,该性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;该共识吞吐量满足第一预设条件包括该共识吞吐量小于预设吞吐量;该交易时延满足第一预设条件包括该交易时延大于预设时延;该交易冲突次数满足第一预设条件包括该交易冲突次数大于第一预设次数。
在第五方面的一种可能的实现方式中,该处理单元还用于:当确定某一交易信息在预设时长内未被处理或者该主共识节点在下一次主共识节点切换之前弃权时,触发主共识节点的切换流程。
在第五方面的一种可能的实现方式中,该处理单元还用于:当确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将该客户端设备设置为黑名单;其中,该至少一个切换周期中的每个切换周期对应不同的主共识节点。
第六方面,提供一种交易信息处理装置,该装置作为普通共识节点,应用于区块链网络中,该区块链网络还包括主共识节点和普通节点,该装置包括:接收单元,用于接收来自主共识节点的多个交易指示信息,该多个交易指示信息是主共识节点在接收到多个交易信息时分别向从共识节点和普通节点发送的,该多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序;处理单元,用于根据该多个交易信息的顺序索引,执行该多个交易信息。
在第六方面的一种可能的实现方式中,该交易指示信息中的顺序索引未签名。
在第六方面的一种可能的实现方式中,接收单元还用于接收主共识节点和/或从共识节点发送的第一区块,第一区块包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应;处理单元,还用于验证第一区块中的该多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。上述可能的实现方式中,能够使得普通节点验证第一区块中的多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。
在第六方面的一种可能的实现方式中,该装置还包括发送单元;该发送单元,用于向从共识节点和/或主共识节点发送该多个交易信息的交易执行结果;该接收单元,还用于接收来自从共识节点和/或主共识节点的应答信息,该应答信息用于确认交易执行结果接收成功。
在本申请的另一方面,提供一种交易信息处理装置,该装置包括处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该装置执行第一方面或第一方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种交易信息处理装置,该装置包括处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该装置执行第二方面或第二方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种交易信息处理装置,该装置包括处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该装置执行第三方面或第三方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种区块链网络,该区块链网络包括主共识节点、从共识节点和普通节点;其中,该主共识节点用于执行第一方面或第一方面的任一种可能的实现方式所提供的交易信息处理方法;该从共识节点用于执行第二方面或第二方面的任一种可能的实现方式所提供的交易信息处理方法;该普通节点用于执行第三方面或第三方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现第一方面或第一方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现第二方面或第二方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现第三方面或第三方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第一方面或者第一方面的任一种可能的实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第二方面或者第二方面中任一种可能实现方式所提供的交易信息处理方法。
在本申请的另一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第三方面或者第三方面中任一种可能实现方式所提供的交易信息处理方法。
可以理解地,上述提供的任一种交易信息处理、区块链网络、计算机可读存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为一种交易信息处理的阶段示意图;
图2为本申请实施例提供的一种认证型区块链网络的结构示意图;
图3为本申请实施例提供的一种通过共识协议来确认一个请求的流程示意图;
图4为本申请实施例提供的一种交易信息处理方法的流程示意图;
图5为本申请实施例提供的一种区块链网络的结构示意图;
图6为本申请实施例提供的一种交易信息处理的示意图;
图7为本申请实施例提供的一种交易信息处理的阶段示意图;
图8为本申请实施例提供的一种区块链网络的性能参数的示意图;
图9为本申请实施例提供的一种主共识节点的结构示意图;
图10为本申请实施例提供的另一种主共识节点的结构示意图;
图11为本申请实施例提供的一种从共识节点的结构示意图;
图12为本申请实施例提供的另一种从共识节点的结构示意图;
图13为本申请实施例提供的一种普通节点的结构示意图;
图14为本申请实施例提供的另一种普通节点的结构示意图。
具体实施方式
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b、或c中的至少一项(个),可以表示:a、b、c、a和b、a和c、b和c、或a、b和c,其中a、b、c可以是单个,也可以是多个。另外,本申请实施例采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
下面在介绍本申请实施例之前,首先对本申请所涉及的相关技术背景进行介绍说明。
区块链(blockchain)是一种多节点共同维护的分布式账本,采用一种特殊的数据结构“区块”来记录交易。每个区块可以包括三个组成部分:前一个区块的哈希值、一定数量且有序排列的交易、共识协议附加的元数据。因为每个区块存储前一个区块的哈希值,形成一个链状结构,修改链中间的区块会导致后续区块的哈希值不一致,这种机制保证了区块链上区块很难被篡改。
区块链网络(也可以称为区块链系统)中的节点(也可以称为区块链节点)之间通过分布式共识协议就区块内容和顺序达成一致,确认(commit)唯一的一条区块链。按照节点加入机制,区块链可以分为无需认证型区块链和认证型区块链。下面分别对无需认证型区块链和认证型区块链进行简要说明。
无需认证型区块链,也可以称为“公有区块链”,主要用于加密货币。节点通常采取不记名机制:即节点无需身份认证,可以随时开启客户端加入区块链网络。然而,由于以下三个原因(1)-(3),无需认证型区块链不适合作为通用的信息分享平台。
(1)、无需认证型区块链必须依靠加密货币的实际市场价值来激励或者限制节点行为,从而保证安全性。一方面,加密货币面临严格的监管问题;另一方面,许多企业应用(比如,电子发票)本身并不具备货币金融属性。
(2)、无需认证型区块链通常能耗极高。
(3)、现有大部分无需认证型区块链的性能无法满足数据分享应用的需求。
无需认证型区块链主要可以分为两类,工作量证明(proof-of-work)和股权证明(proof-of-stake)。因为无需认证型区块链中任何节点可以随时随地且不记名的加入区块链网络,所以需要一种方法来让这些节点“自愿”地遵循协议。工作量证明和股权证明都是让一个节点首先进行前期投入,然后用这个投入的成本来激励该节点遵循协议获得回报。
认证型区块链,也可以称为“私有区块链”或者“联盟区块链”。认证型区块链需要节点通过一个身份认证服务加入区块链网络,并维护一个节点列表,即区块链网络中所有节点的身份已知,从而更适合作为数据分享平台。认证型区块链可以使用性能更高、能耗更小的分布式容错协议(distributed fault-tolerant protocol)来对区块内容达成一致。
示例性的,图2为一种认证型区块链的区块链网络的结构示意图,该区块链网络中包括多个共识节点和多个普通节点。其中,该多个共识节点可以运行分布式容错协议,负责就该认证型区块链中包括的区块的内容和顺序协商达成一致;该多个普通节点可以负责收集来自客户端设备的用户交易、存储确认区块、以及执行用户交易等。具体的,基于图2所示的区块链网络,一种可能的交易确认过程可以包括:S1.普通节点接收来自客户端设备的用户交易;S2.普通节点将接收到的用户交易发送给共识节点;S3.多个共识节点之间就接收到的用户交易进行共识得到区块;S4.共识节点将区块发送给普通节点,以使普通节点执行用户交易;S5.每个节点存储区块。
其中,上述分布式容错协议也可以称为分布式一致性协议(distributedconsensus protocol)。分布式一致性协议是指在分布式环境下,多个节点之间通过网络沟通,就一个值X达成一致 (也可以称为确认X的值)。在实际使用中,通常通过连续运行分布式容错算法个体,就一个序列的值(比如,X1、X2、…、Xn,n为正整数)达成一致。
分布式一致性协议能够保证,即使在少部分节点故障的情况下,不会有两个节点确认不同的值Xi(i的取值范围为1至n)。分布式一致性算法按照容纳的故障种类可以分为:一)、针对崩溃故障的容错协议;二)、拜占庭容错协议。区块链通常采用拜占庭容错(byzantine fault-tolerant,BFT)协议。
“拜占庭故障”指的是故障节点可以进行任意行为,而不必遵循协议。通常情况下,拜占庭故障节点可能是恶意或者不诚实节点,并尝试扰乱系统正常运行。BFT协议最多容纳约 33%的故障节点(也可以称为恶意节点)。示例性的,如果区块链网络中节点的总数是3f+1,则BFT协议最多可以容纳f个故障节点。实用拜占庭容错(practical byzantine faulttolerant, PBFT)协议是最经典的完整BFT协议,但是性能和对于及节点数的扩展性都不佳。
一个典型的BFT协议通常可以包含两个子协议:共识协议和主节点切换协议。图3为一种PBFT协议通过共识协议来确认一个请求的流程,该流程包括五个阶段:请求(request)、预准备(pre-prepare)、准备(prepare)、确认(commit)和回复(reply)。由图3可知,客户端设备C向一个共识节点N0(也可以称为主共识节点)发送交易请求,共识节点N0在预准备阶段将需要达成共识的交易发送给所有共识节点,比如,发送给共识节点N1、N2和N3;共识节点N0至N3通过准备和确认两个阶段的信息交换(比如,交易的哈希值)对交易的内容和顺序达成一致;共识节点N0至N3向客户端设备C发送回复消息。图3以共识节点N3为故障节点为例进行说明。
在区块链网络中,如果主共识节点是恶意节点,该恶意节点可以向不同的共识节点发送不同的交易,或者不向共识节点发送任何交易,从而区块链网络中的节点无法对任何交易达成共识。为解决这一问题,拜占庭容错协议通过运行主节点切换协议来替换掉恶意的主共识节点。某一个共识节点担任主共识节点的这段时间称为一个视图。主共识节点切换又可以被称作视图切换。
在典型的认证型区块链中,每一笔交易会调用智能合约,并将交易的内容作为智能合约的输入。智能合约是保存在区块链上的一段可执行代码。智能合约分为确定型智能合约和非确定型智能合约。确定型智能合约是指:给定同一输入,在同一初始状态下,所有节点执行该智能合约都会得到相同的结果。调用确定型智能合约的交易是确定型交易。非确定型智能合约是指:给定同一输入,在同一初始状态下,不同节点执行该智能合约可能会得到不同的结果。调用非确定型智能合约的交易是非确定型交易。
大部分区块链网络都仅支持确定型交易,超级账本系统(hyperledger fabric,HLF)和其衍生的区块链网络可以支持非确定型交易(即非确定型交易不会导致节点间的状态不一致)。如果节点执行非确定型交易的过程中得到了不同的执行结果,则节点认为该交易无效,并不将其执行结果写入本地状态数据库。概括来说,HLF将非确定型交易认定为智能合约中的漏洞(bug),并可以有效防止这些漏洞带来的状态不一致问题。
区块链网络中的节点除了在本地保存一份区块链的副本,还会维护一个状态数据库,用于存储区块链中每一笔交易。智能合约执行后,节点会修改状态数据库中某些变量的值。如果两笔交易调用的智能合约读写了同一个变量的值,则认为这两笔交易互相依赖。
目前,为了保证区块链网络中的多个节点能够按照同样的顺序执行同样的交易,通常采用以下两种工作流来工作:第一种、执行-排序工作流;第二种、排序-执行工作流。在第一种工作流中,该多个节点包括背书节点、排序节点和普通节点三种,具体工作流过程包括:1) 背书:a.客户端设备向N个背书节点发送交易信息;b.每个背书节点接收到该交易信息后,首先验证该交易信息的客户端签名,之后执行该交易信息对应的智能合约,并将执行结果签名后作为背书回复给客户端设备;c.客户端设备接收到N个背书,如果这N个背书完全一致,则认为该交易背书成功;2)排序:排序节点接收客户端设备发送的背书成功的交易信息,并对接收到的多个交易信息进行共识打包得到区块;3)验证:背书节点和普通节点对该区块中的每个交易信息进行验证;4)提交:背书节点和普通节点将验证成功的区块和背书进行相应的存储,以完成提交。在第二种工作流中,该多个节点包括排序节点和普通节点两种,具体工作流过程包括:1)排序:排序节点对接收到的多个交易信息进行共识打包得到区块,并将该区块发送给普通节点;2)执行:排序节点和普通节点按照该多个交易信息在区块中的顺序执行该多个交易信息;3)提交:所有节点分别对该多个交易信息的交易执行结果和该区块进行相应的存储,以完成提交。
上述两种工作流中,排序阶段和执行阶段是串行执行的,从而导致交易信息的处理时延较长。此外,在上述第一种工作流中,交易信息在背书阶段时还没有被排序,且不同的交易信息之间是独立执行的,这样存在依赖关系的多个交易信息在进入排序阶段后,可能会导致排在后面的交易信息被认为是无效交易,从而降低了交易信息的处理效率。
基于此,本申请实施例提供一种交易信息处理方法,能够将交易信息在处理过程中的排序和执行两个阶段并行化,从而大大降低交易信息的确认延迟,同时也提高交易信息的处理效率。该方法可以应用于数据中心网络中,该数据中心网络可以包括单个数据中心,也可以包括多个数据中心,该多个数据中心由专线连接。在本申请实施例中,该数据中心网络也可以称为区块链网络或者区块链系统。该数据中心网络可以包括多个节点,该多个节点可以包括主共识节点、从共识节点和普通节点三种,该从共识节点和该普通节点的数量可以为多个。该数据中心网络具有组播功能,且该数据中心网络中任意两个节点之间的网络延迟满足三角不等式特性。三角不等式特性可以是指:节点i与节点j之间的通信延迟Lij与节点j与节点k 之间的通信延迟Ljk之和大于节点i与节点k之间的通信延迟Lik(即Lij+Ljk>Lik),节点i、节点j和节点k为数据中心网络中的任意三个节点。
图4为本申请实施例提供的一种交易信息处理方法的流程示意图,该方法应用于区块链网络中,该区块链网络包括主共识节点、从共识节点和多个普通节点,该方法包括以下几个步骤。
S201:主共识节点接收多个交易信息。
其中,该区块链网络中可以包括多个共识节点,该多个共识节点可以包括一个主共识节点和多个从共识节点,该主共识节点可以是该多个共识节点根据一定规律或原则从该多个共识节点中选择的一个共识节点,该多个从共识节点可以是该多个共识节点中除该主共识节点之外的其他共识节点。可选的,该主共识节点可以是该多个共识节点根据主节点切换协议选择的一个共识节点,且该多个共识节点可以每隔一段时间根据主节点切换协议选择的一个共识节点。比如,该主共识节点可以在不同的时间段中由不同的共识节点来担当。
另外,每个交易信息可以表示一次交易(或者称为交易事务或交易事件),每个交易信息中可以包括该交易相关的一个或者多个信息。在一种实施例中,该交易信息可以为标头(header)形式,比如,该交易信息可以表示为(from,to,value)形式,该from可以表示发起该交易的源客户端信息,该to可以表示接收该交易的目的客户端信息,该value可以表示该交易对应的交易金额。
具体的,该主共识节点可以接收到来自至少一个客户端设备的多个交易信息,该至少一个客户端设备可以直接或间接地向该主共识节点发送该多个交易信息,该多个交易信息可以是该主共识节点在一段时间内接收到的连续的多个交易信息。该至少一个客户端设备可以包括能够通过该区块链网络实现交易的一个或者多个客户端设备。当该至少一个客户端设备包括多个客户端设备时,该多个客户端设备可以是同一客户端(也可以称为同一组织)对应的多个客户端设备,也可以是不同客户端(也可以称为不同组织)对应的多个设备。上述客户端设备可以是指安装有客户端的电子设备,用户能够登录该客户端并通过该客户端进行交易。
S202:对于该多个交易信息中的每个交易信息,该主共识节点分别向从共识节点和普通节点发送交易指示信息,该交易指示信息包括该交易信息和顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序。
其中,该主共识节点可以按照该多个交易信息的接收顺序对该多个交易信息进行排序,一个交易信息在该多个交易信息中的排列顺序可以通过顺序索引来表示。该多个交易信息在后续共识过程中的顺序可以与该多个交易信息对应的接收顺序一致。
具体的,当该主共识节点接收到该多个交易信息中的任意一个交易信息时,该主共识节点可以为该交易信息添加顺序索引以得到一个交易指示信息,该顺序索引可以为序列号,该序列号可以用于指示该交易信息在该多个交易信息中的接收顺序。之后,该主共识节点可以将该交易指示信息分别发送给该区块链网络中的多个从共识节点和多个普通节点,比如,该主共识节点可以通过广播向该多个从共识节点和该多个普通节点发送该交易指示信息。对于该多个交易信息,该主共识节点分别向该多个从共识节点和该多个普通节点发送多个交易指示信息。
示例性的,如图5所示,该至少一个客户端设备可以包括第一客户端设备(比如,安装淘宝、京东和天猫等购物类app的设备)、第二客户端设备(比如,安装支付宝和微信等支付类app的设备)和第三客户端设备(比如,按照各种银行类app)的设备,该多个交易信息可以包括第一客户端设备发起的交易信息A(V.Tom B.Ray$400)、第二客户端设备发起的交易信息B(表示为P.Max B.Amy$1M)、以及第三客户端设备发起的交易信息C(B.Bob P.Sam $100),且该共识节点接收到该多个交易信息的顺序依次为:交易信息C、交易信息A、交易信息B。当该主共识节点接收到交易信息C时,该主共识节点可以为交易信息C添加序列号1以得到交易指示信息C’(1B.Bob P.Sam$100),并广播交易指示信息C’;当该主共识节点接收到交易信息A时,该主共识节点可以为交易信息A添加序列号2以得到交易指示信息A’(2V.Tom B.Ray$400),并广播交易指示信息A’;当该主共识节点接收到交易信息B 时,该主共识节点可以为交易信息B添加序列号3以得到交易指示信息B’(3P.Max B.AMY $1M),并广播交易指示信息B’。也即是,该主共识节点分别向该多个从共识节点和该多个普通节点发送的多个交易指示信息的顺序依次为:交易指示信息C’、交易指示信息A’、交易指示信息B’。之后,当该多个从共识节点和该多个普通节点接收到上述多个交易指示信息时,可以根据下文所描述的过程并行执行共识阶段和执行阶段。
可选的,每个交易指示信息中的顺序索引未签名,即该主共识节点不对该顺序索引进行签名。比如,当该顺序索引是序列号时,该主共识节点不对该序列号进行签名。这样其他节点在接收到该交易指示信息时无需对该顺序索引进行签名验证,从而降低了其他节点的性能开销。此外,不对该顺序索引进行签名还可以避免恶意节点耗尽其他节点的计算资源。比如,恶意节点可以通过广播大量的不合法的交易指示信息,每个交易指示信息中携带不合法的签名,这样其他节点只有对这些交易指示信息中的签名进行验证后,才能确定相应的签名不合法,从而会耗尽该其他节点的计算资源。
S203a:当从共识节点接收到该多个交易信息对应的交易指示信息时,主共识节点和从共识节点根据该多个交易信息的顺序索引,共识该多个交易信息以得到第一区块,并向普通节点发送第一区块。
对于该多个从共识节点中的任意一个从共识节点,该从共识节点可以接收到多个交易指示信息,即该从共识节点可以接收到该多个交易信息对应的交易指示信息,并根据该多个交易指示信息能够获取到该多个交易信息、以及该多个交易信息中每个交易信息对应的顺序索引。之后,该主共识节点和该多个从共识节点可以根据该多个交易信息的顺序索引,共识并打包该多个交易信息以得到第一区块。比如,该主共识节点和该多个从共识节点可以分别调用BFT协议对该多个交易信息的内容和顺序达成共识,并将该多个交易信息和共识过程中产生的交易哈希值等信息对应打包在一起得到第一区块。当该从共识节点得到第一区块后,该从共识节点可以将第一区块加入区块链,还可以将第一区块发送给该多个普通节点中的每个普通节点。示例性的,如图5所示,该从共识节点可以包括共识模块,通过该共识模块对该多个交易信息进行共识得到一区块,将第一区块加入区块链,并将第一区块发送给普通节点。
进一步的,第一区块中包括多个交易哈希值,该多个交易哈希值与该多个交易信息一一对应,该多个交易哈希值可以是该主共识节点在该多个交易信息的共识过程中的产生的。该主共识节点可以向该多个从共识节点中的每个从共识节点发送该多个交易哈希值,该多个交易哈希值可以通过哈希值列表的形式发送给每个从共识节点。相应的,每个从共识节点在接收到该多个交易哈希值时,可以根据该多个交易哈希值确定是否获取到该多个交易哈希值中每个交易哈希值对应的交易信息。比如,每个从共识节点在对多个交易信息进行共识的过程中,会在本地产生该多个交易信息中每个交易信息对应的交易哈希值(下文中称为本地交易哈希值);若该定哈希值列表中的每个交易哈希值都存在一个相同的本地交易哈希值,则该从共识节点确可以确定已获取到该主共识节点发送的多个交易信息;若该定哈希值列表中的至少一个交易哈希值不存在相同的本地交易哈希值,则该从共识节点确可以确定未获取到该至少一个交易哈希值对应的交易信息,即该从共识节点未获取到至少一个交易信息。
可选的,对于任意一个从共识节点,当该从共识节点根据该多个交易哈希值确定未获取到该多个交易信息中的至少一个交易信息时,该从共识节点可以向该主共识节点发送获取请求,该获取请求用于请求获取该至少一个交易信息。当该主共识节点接收到该获取请求时,该主共识节点向该从共识节点发送至少一个交易指示信息,该至少一个交易指示信息包括该至少一个交易信息、以及该至少一个交易信息中的每个交易信息的顺序索引。这样能够确保该从共识节点能够获取到上述多个交易信息。
S203b:当普通节点接收到该多个交易信息对应的交易指示信息时,普通节点根据该多个交易信息的顺序索引执行该多个交易信息。S203a与S203b可以并行执行(或称为同时执行),图4中以S203b位于从共识节点发送第一区块之前为例进行说明。
对于该多个普通节点中的任意一个普通节点,该普通节点可以接收到多个交易指示信息,即该普通节点可以接收到该多个交易信息对应的交易指示信息,并根据该多个交易指示信息能够获取到该多个交易信息、以及该多个交易信息中每个交易信息对应的顺序索引。之后,该普通节点可以根据该多个交易信息的顺序索引执行该多个交易信息。比如,该普通节点可以执行该多个交易信息中与自身相关的交易信息对应的智能合约,以得到对应的交易执行结果,从而执行多个交易信息对应得到多个交易执行结果。每个普通节点相关的交易信息可以是指该普通节点所属或所对应的组织(或客户端)的客户端设备对应的交易信息。例如,对于交易信息T(A向B转账10元),该交易信息需要由A和B所属的组织对应的普通节点来执行。此外,同一个组织内的多个节点互相信任,从而每个组织可以指定一个普通节点来执行该组织对应的交易信息,并对交易执行结果进行签名。
可选的,当该普通节点根据该多个交易信息的顺序索引执行该多个交易信息时,该普通节点可以并行执行不存在依赖关系的交易信息,串行执行存在依赖关系的交易信息。其中,该普通节点可以根据先验知识推断交易信息之间的依赖关系。示例性的,每一个交易信息对应的智能合约中可以标注出该智能合约在运行过程中可能需要读写的变量列表,这样该普通节点可以根据交易信息的输入和调用的智能合约来推断交易信息之间的依赖关系。如果两个交易信息需要修改同一个变量,则可以认为这两个交易信息之间相互依赖,从而需要根据对应的顺序索引串行执行。例如,存在两个交易信息T1(A向B转账10元)和T2(B向C转账5元),T1和T2均调用了转账智能合约,该转账智能合约定义为transfer(from,to,money),并标注了其需要读写的变量列表为[from,to],即from和to这两个变量(保存了账户余额) 会在运行过程中被修改。普通节点在收到这两个交易信息后,可以根据T1和T2的输入与智能合约定义的读写列表,判断T1和T2相互依赖,并串行执行这两笔交易。该智能合约可以是一段完成特定功能逻辑的代码,仅仅定义了控制流,其运行过程中需要读写的全部变量,均可以在交易信息中进行标注或指定。
S204:普通节点接收第一区块,并验证第一区块中的多个交易哈希值与本地执行该多个交易信息得到的多个交易哈希值的一致性。
其中,以该普通节点执行该多个交易信息为例,该普通节点在执行该多个交易信息的过程中会在本地产生该多个交易信息中每个交易信息对应的交易哈希值(下文中称为本地交易哈希值),即该普通节点可以得到多个本地交易哈希值。若第一区块中的多个交易哈希值中的每个交易哈希值都存在一个相同的本地交易哈希值,则该普通节点可以确定第一区块中的多个交易哈希值与多个本地交易哈希值一致。若第一区块中的多个交易哈希值与多个本地交易哈希值不一致,则该普通节点可以重新执行第一区块中的多个交易信息。
进一步的,当该普通节点执行相应的交易信息得到交易执行结果时,该普通节点可以将该交易执行结果发送给多个共识节点(仅包括从共识节点,或者同时包括主共识节点和从共识节点),该多个共识节点可以向该普通节点发送应答信息ACK,该应答信息ACK用于确认该交易执行结果接收成功。示例性的,该区块链网络中包括3f+1个共识节点,该普通节点可以将该交易执行结果发送给2f+1个共识节点,该2f+1个共识节点可以向该普通节点发送应答信息ACK,这样该普通节点可以接收到2f+1个应答信息ACK。
可选地,该普通节点和该多个共识节点可以在本地存储该多个交易信息以及对应的交易执行结果,该普通节点还可以将该多个交易执行结果存储在状态数据库中。示例性的,如图 5所示,该普通节点可以包括执行模块和确认模块,通过该执行模块执行该多个交易信息,并在确认模块接收到2f+1个应答信息ACK后,将第一区块加入区块链,并将该多个交易信息的交易执行结果存储在状态数据库中。
为便于理解,下面以图6为例,对本申请实施例提供的交易信息处理方法进行举例说明。如图6所示,该区块链网络可以包括主共识节点C0、从共识节点C1至C4、以及普通节点N1至N4。该方法包括具体包括以下几个步骤:S11.多个客户端设备UE0至UEN分别向该主共识节点C0发送交易信息,比如,发送的交易信息包括Ti、Tj和Tk;S12.该主共识节点 C0为每个交易信息添加序列号并分别发送给从共识节点C1至C4以及普通节点N1至N4,上述多个交易信息根据序列号确定的顺序为3Tk、2Ti、1Tj;S13a.从共识节点C1至C4对接收到的交易信息进行共识(比如,验证和共识交易信息的交易哈希值)和打包得到第一区块,并将第一区块发送给普通节点N1至N4;S3b.普通节点N1至N4验证每个交易信息的签名并执行交易信息;S14.普通节点N1至N4接收第一区块,并基于每个交易信息的交易哈希值验证该交易信息,并在验证通过后将对应的交易执行结果存储在本地数据库中。图6 中交易信息Ti相关的节点包括N1和N2,交易信息Tj相关的节点包括N1和N3,交易信息 Tk相关的节点包括N2和N3为。上述步骤中的S3a和S3b是并行执行的,且S13a可以称为排序阶段,S13b可以称为执行阶段,S14可以称为提交(commit)(或确认)阶段。示例性的,图7中示出了上述多个阶段之间的关系,即排序阶段和执行阶段并行执行,提交阶段在排序阶段和执行阶段完成后执行。
在本申请实施例中,该主共识节点在接收到多个交易信息时,可以分别向从共识节点和普通节点发送多个交易指示信息,每个交易指示信息包括一个交易信息和一个顺序索引,该顺序索引用于指示该交易信息在共识过程中的排列顺序,从而当从共识节点和普通节点接收到该多个交易指示信息时,主共识节点和从共识节点可以根据该多个交易信息的顺序索引共识该多个交易信息,同时该普通节点可以根据该多个交易信息的顺序索引执行该多个交易信息,从而使得该多个交易信息的共识和执行能够并行执行,从而降低交易信息的处理时延,提高交易信息的执行效率。
进一步的,本申请实施例还能够实现恶意节点(比如,主共识节点为恶意节点)的监控,以避免因为恶意节点的恶意行为而导致区块链网络的整体性能的下降。其中,当主共识节点为恶意节点时,主共识节点的大量恶意行为会导致区块链网络的整体性能严重下降。比如,主共识节点可以向不同从共识节点发给不同的交易信息从而导致共识无法达成,或者主共识节点推迟一段时间后再向一个或者多个节点发送交易信息,或者主共识节点向一个或者多个节点发送错误的交易信息等。本申请实施例中通过从共识节点监控主共识节点的行为,并在检测到主共识节点的恶意行为时切换主共识节点,从而避免恶意节点对于区块链网络性能的影响。下面分别对本申请实施例提供的几种不同的监控方法进行介绍说明。
第一种、对于该多个从共识节点中的任意一个从共识节点,该从共识节点可以获取交易信息处理过程中的性能参数,当该性能参数满足第一预设条件时,该从共识节点触发该主共识节点的切换流程,也可以称为该从共识节点发起主共识节点的切换流程。类似的,主共识节点也可以按照上述类似的方式执行,本申请实施例中以从共识节点为例进行说明。
其中,该性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数。相应的,该共识吞吐量满足第一预设条件包括该共识吞吐量小于预设吞吐量;该交易时延满足第一预设条件包括该交易时延大于预设时延;该交易冲突次数满足第一预设条件包括该交易冲突次数大于第一预设次数。需要说明的是,该预设吞吐量、预设时延和第一预设次数可以是事先设置的,具体可以由本领域技术人员根据实际情况和经验等进行设置,本申请实施例对此不作具体限制。
另外,一个从共识节点发起主共识节点的切换流程可以包括:该从共识节点广播一条主共识节点切换(view change)消息给其它共识节点。如果任意一个从共识节点收到了2f+1条主共识节点切换消息,则意味着有2f+1个从共识节点发起了主共识节点切换,从而该从共识节点可以调用BFT协议的主节点切换协议来更换当前的主共识节点。
在一种实施例中,当从共识节点检测到共识吞吐量小于预设吞吐量时,可以认为共识排序或者交易执行的性能下降了,从而从共识节点可以触发主共识节点的切换流程,以切换该主共识节点。共识排序或者交易执行的性能下降,意味着当前的主共识节点可能向不同的节点发送不同的交易信息,或者推迟了发送给某些节点的交易信息。比如,为了检测共识排序阶段中的性能下降,每个从共识节点可以监控自身的共识吞吐量,如果当前的共识吞吐量低于之前观测到的最高共识吞吐量的90%,则从共识节点可以发起主共识节点的切换流程。
在另一种实施例中,为了检测交易执行中的性能下降,每个从共识节点可以检测普通节点发送的交易执行结果中的交易哈希值与正在进行共识的交易信息的交易哈希值是否相同,如果两个交易哈希值不同,则表示主共识节点可能向该普通节点发送了错误的交易信息。同时,每个从共识节点还可以检测普通节点发送的交易执行结果的延迟,如果一个从共识节点在完成交易信息的共识后的一段时间内仍没有收到交易执行结果,则表示主共识节点可能推迟了发送给普通节点的交易信息,则从共识节点可以发起主共识节点的切换流程。
第二种、当从共识节点确定某一交易信息在预设时长内未被处理或者该主共识节点在下一次主共识节点切换之前弃权时,该从共识节点触发主共识节点的切换流程。其中,当发起某一交易信息的客户端设备在预设时长内没有接收到回复信息时,该客户端设备可以向多个共识节点发送该交易信息,以使该从共识节点确定该交易信息在未被处理。
在一种实施例中,当从共识节点检测到主共识节点未将某个客户端设备发起的交易信息加入区块链时,该从共识节点可以发起主共识节点的切换流程。一个恶意的主共识节点可能故意不将来自某个客户端的交易信息加入区块(也可以称为加入区块链)。这样,如果该客户端设备确定自己的交易信息无法被加入区块链,则该客户端设备可以将该交易信息发送给多个从共识节点。该多个共识节点再将该交易信息转发给当前的主共识节点。如果该主共识节点依然不将该交易信息加入区块链,则表示该主共识节点为恶意节点,从而从共识节点可以发起主共识节点的切换流程。
在另一种实施例中,若从共识节点检测到当前的主共识节点在下一次主共识节点切换之前主动弃权,比如该主共识节点随机的将主权移交给另一个共识节点,则从共识节点可以发起主共识节点的切换流程。比如,在主共识节点切换过程中,每个主共识节点的切换周期为 T,若当前的主共识节点在T/2时放弃主权,则从共识节点可以发起主共识节点的切换流程。
第三种、当从共识节点或者普通节点确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将该客户端设备设置为黑名单。其中,该切换周期可以是指主共识节点的切换周期,该至少一个切换周期中的每个切换周期对应不同的主共识节点。第二预设次数可以是事先设置的。
其中,以交易信息的顺序索引为序列号为例,本申请实施例中的主共识节点不对交易信息的序列号签名,这样恶意节点可以随意伪造主共识节点发送的交易信息。比如,恶意节点可以生成一个或者多个交易信息,并为这些交易信息分配伪造的序列号,之后将伪造的交易信息发送给其他节点。这些伪造的交易信息会在其他节点上造成交易冲突(比如,两个不同的交易信息有着相同的序列号),从而导致该其他节点无法根据序列号进行推断执行(比如,不知道应该以哪个交易信息为准)。上述交易冲突可以理解为:对于某一个序列号,如果一个从共识节点在本地共识该序列号对应的交易信息得到的交易哈希值与主共识节点在共识过程中产生该序列号对应的交易信息的交易哈希值不一致,则认为这两个交易信息冲突。
经过实际观察可知,恶意节点有以下几个特点:恶意节点只能恶意广播自己的交易信息;恶意的主共识节点可能造成无法检测的冲突。具体分析如下所述。
对于恶意节点只能恶意广播自己的交易信息的具体分析如下:一个恶意节点可能通过两种方式造成交易冲突。第1种:恶意节点通过恶意广播其他节点的交易信息的方式进行恶意攻击,这种方式不可行。在这种攻击中,恶意节点将主共识节点发来的交易信息T修改序列号后生成一个伪造的交易信息T’,并转发给其他节点。由于数据中心网络满足三角不等式特性,其它节点会先接收到交易信息T,后接收到交易信息T’(因为T’是恶意节点在接收到交易信息T之后再转发的),从而其它节点会直接丢弃伪造的交易信息T’(因为这两个交易信息的哈希值相同)。因此,恶意节点只能恶意广播自己的交易信息。第2种:恶意节点通过恶意广播自己的交易信息,这种方式能够被检测。在这种攻击中,由于恶意节点生成的交易信息中带有自己的有效签名,从而其他节点可以根据接收到交易信息的客户端签名来判断恶意节点。
对于恶意的主共识节点可能造成无法检测的冲突的具体分析如下:如果主共识节点是恶意节点,则主共识节点可以造成任意的交易冲突,并且不存在任何可观测的规律。此时,如果区块链网络中共识节点的总数量为3f+1,则可以在f+1个不同的视图(对应不同的主共识节点)中检测交易冲突。
具体的,在同一个视图中,如果主共识节点接收到的来自某一客户端的交易信息和多个共识节点在共识过程的区块内的交易信息发生多次冲突(比如,冲突次数大于第二预设次数),则可以怀疑从共识节点本地接收到的交易信息是恶意的。具体原因如下:1.对于每一个序列号,从共识节点保留接收到的第一个交易信息;2.主共识节点先广播每一个交易信息,后对交易信息的哈希列表达成共识;3.如果有恶意节点也在恶意广播交易信息,就会占据从共识节点的某个序列号,导致从共识节点上该序列号和主共识节点对应序列号的交易信息不一致 (比如,交易哈希值不一致)。此时,该冲突可能是恶意的主共识节点造成的,也可能是恶意节点乱发伪造的交易信息造成的。因此,多个共识节点可以先将该客户端设备(比如,客户端账户)加入怀疑列表,并持续监测该客户端设备在多个视图下的恶意行为。如果来自某个客户端设备的交易信息在f+1个视图(其中至少有一个视图的主共识节点是非恶意的)中都和其他客户端设备的交易信息发生了冲突,则可以确定该客户端设备是恶意的。在这种情况下,该多个共识节点可以将恶意的客户端设备加入黑名单,该恶意的客户端设备发起的交易信息也会被所有节点直接忽略。
在上述过程中,由于主共识节点会随机地发起主共识节点切换,并随机选择下一个主共识节点,从而恶意的客户端设备发出的交易信息可能会被随机划分到不同的视图中,即恶意节点无法精确控制自己在哪一个视图(对应不同的主共识节点)中造成冲突。因此上述的恶意节点的检测方法最终总能将恶意的客户端设备加入到黑名单。
本申请实施例将采用上文所提供的方法的区块链网络(下文中称为BIDL),与现有技术中的区块链系统FastFabric(下文中称为FF)和StreamChain(下文中称为SC)进行了比较,具体相关性能参数的变化如图8所示,作为本申请的一个实施例,其不限定于以下具体参数值。图8中的(a)示出了BIDL、FF和SC对应的吞吐量和确认延迟的关系,其中BIDL的吞吐量最高、FF的吞吐量次之、SC的吞吐量最低,SC的确认延迟最低、BIDL的确认延迟次之、FF的确认延迟最大,从而BIDL相比而言同时兼顾了吞吐量和确认延迟,从而性能最优。图8中的(b)示出了BIDL和FF分别在非确定型交易下的非确定型交易比例与有效吞吐量之间的关系、以及在冲突交易下的冲突交易比例与有效吞吐量之间的关系。其中,随着非确定型交易比例的增加,BIDL的有效吞吐量(即曲线S1)和FF的有效吞吐量(即曲线 S2)均会下降,且BIDL的有效吞吐量始终高于FF的有效吞吐量。FF的有效吞吐量下降缓慢,这是因为FF中非确定型交易会被更早发现,并且被提前认定为不合法,客户端设备可以很快提交下一个交易信息。而BIDL在最后一个阶段才能发现非确定型交易,并认定其不合法,客户端设备必须等待交易信息走完整个工作流才能提交下一个交易信息。此时随着交易冲突比例的增加,BIDL的有效吞吐量(即曲线S3)几乎不受影响,而FF的有效吞吐量明显下降(即曲线S4)。这是因为FF中,交易信息在执行阶段还没有顺序,每个节点只能独立执行所有交易信息,这导致了大量交易信息的执行结果最终被认为是无效的。BIDL在推断执行阶段中会根据交易信息的序列号来顺序执行存在冲突的交易信息,因此所有的交易执行结果均有效。
本申请实施例还对BIDL、超级账本架构(hyperledger fabric,HLF)、FF和SC分别在无恶意节点、存在恶意的主共识节点和存在恶意的非主共识节点的三种场景下的有效吞吐量进行了检测,具体结果如下表1所示。根据表1可知,本申请实施例提供的BIDL可以在恶意的主共识节点、以及恶意的非主共识节点存在时,由于能够维持共识阶段和执行阶段的并行,从而有效吞吐量较高,即本申请实施例提供的方法具有高性能的优点。kTxns/s表示每秒执行的以千为计数单位的交易信息的数量。
表1
在本申请实施例中,通过检测恶意的主共识节点、恶意的非主共识节点,并在检测到恶意的主共识节点时切换主共识节点,在检测到恶意的客户端设备时将该客户端设备添加在黑名单中以忽略该客户端设备的交易信息,可以使得在该区块链网络中存在恶意节点的情况下,仍能够保证共识阶段和执行阶段的并行,从而进一步提高该区块链网络的性能。
上述主要从主共识节点、从共识节点和普通节点交互的角度对本申请实施例提供的方案进行了介绍,可以理解的是,主共识节点、从共识节点和普通节点,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对主共识节点、从共识节点和普通节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述功能模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的交易信息处理装置的一种可能的结构示意图,该装置可以作为主共识节点。该装置包括:接收单元301、发送单元302和处理单元303。其中,接收单元301用于支持该装置执行上述方法实施例中的S201;发送单元302用于支持该装置执行上述方法实施例中的S202、向从共识节点发送多个交易哈希值、或者向普通节点发送第一区块中的一个或者多个步骤;处理单元303 用于支持该装置执行上述方法实施例中的S203a。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请实施例中的处理单元303可以为该装置的处理器,发送单元301可以为该装置的发送器,接收单元302可以为该装置的接收器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
如图10所示,为本申请实施例提供的上述实施例所涉及的交易信息处理装置的另一种可能的结构示意图,该装置可以作为主共识节点。该装置包括:处理器311,还可以包括存储器312、通信接口313和总线314,处理器311、存储器312和通信接口313通过总线314连接。
其中,处理器311用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器 311可用于支持该装置执行上述方法实施例中的S203a,以及通过通信接口313发送或接收不同信息的步骤。通信接口313用于支持该装置进行通信,比如支持该装置与从共识节点和普通节点进行通信。
在本申请实施例中,处理器311可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图10中的总线314可以是外设部件互连标准 (peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的交易信息处理装置的一种可能的结构示意图,该装置可以作为从共识节点。该装置包括:接收单元401、处理单元402和发送单元403。其中,接收单元401用于支持该装置执行上述方法实施例中接收交易指示信息、接收多个交易哈希值、接收交易执行结果等步骤;处理单元402 用于支持该装置执行上述方法实施例中的S203a,和/或本文所描述的其他技术过程;发送单元403用于支持该装置执行上述方法实施例中发送第一区块或者发送应答信息等步骤。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请实施例中的处理单元402可以为该装置的处理器,接收单元401可以为该装置的接收器,发送单元403可以为该装置的发送器,发送器和接收器通常可以集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
如图12所示,为本申请实施例提供的上述实施例所涉及的交易信息处理装置的另一种可能的结构示意图,该装置可以作为从共识节点。该装置包括:处理器411,还可以包括存储器412、通信接口413和总线414,处理器411、存储器412和通信接口413通过总线414连接。
其中,处理器411用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器 411可用于支持该装置执行上述方法实施例中的S203a,以及通过通信接口413发送或接收不同信息的步骤。通信接口413用于支持该装置进行通信,比如支持该装置与主共识节点和普通节点进行通信。
在本申请实施例中,处理器411可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图12中的总线414可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用对应各个功能划分各个功能模块的情况下,图13示出了上述实施例中所涉及的交易信息处理装置的一种可能的结构示意图,该装置可以作为普通节点。该装置包括:接收单元501、处理单元502和发送单元503。其中,接收单元501用于支持该装置执行上述方法实施例中接收交易指示信息、接收第一区块、接收应答信息等步骤;处理单元502用于支持该装置执行上述方法实施例中的S203b,和/或本文所描述的其他技术过程;发送单元503用于支持该装置执行上述方法实施例中发送交易执行结果等步骤。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请实施例中的处理单元502可以为该装置的处理器,接收单元501可以为该装置的接收器,发送单元503可以为该装置的发送器,发送器和接收器通常可以集成在一起用作收发器,具体的收发器还可以称为通信接口或接口电路。
如图14所示,为本申请实施例提供的上述实施例所涉及的交易信息处理装置的另一种可能的结构示意图,该装置可以作为普通节点。该装置包括:处理器511,还可以包括存储器 512、通信接口513和总线414,处理器511、存储器512和通信接口513通过总线514连接。
其中,处理器511用于对该装置的动作进行控制管理。在一种可能的实施例中,处理器 511可用于支持该装置执行上述方法实施例中的S203b,以及通过通信接口513发送或接收不同信息的步骤。通信接口513用于支持该装置进行通信,比如支持该装置与主共识节点和普通节点进行通信。
在本申请实施例中,处理器511可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。上述图14中的总线514可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,上述图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种区块链网络,该区块链网络包括主共识节点、从共识节点和普通节点。该主共识节点、从共识节点和普通节点可以用于实现上述实施例中提供的任意一种交易信息处理方法。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本申请实施例提供的各个设备(如终端和/或网络设备),用于执行上述实施例中对应设备的功能,因此可以达到与上述通信方法相同的效果。
应理解,在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid statedisk,SSD)) 等。
基于此,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行方法实施例中的主共识节点的步骤。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行上述方法实施例中的从共识节点的步骤。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行上述方法实施例中的普通节点的步骤。
在本申请的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述方法实施例中的主共识节点的步骤。
在本申请的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述方法实施例中的从共识节点的步骤。
在本申请的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述方法实施例中的普通节点的步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (29)
1.一种交易信息处理方法,其特征在于,应用于区块链网络中,所述区块链网络包括主共识节点、从共识节点和普通节点,所述方法包括:
所述主共识节点接收多个交易信息;
对于所述多个交易信息中的每个交易信息,所述主共识节点分别向所述从共识节点和所述普通节点发送交易指示信息,所述交易指示信息包括所述交易信息和顺序索引,所述顺序索引用于指示所述交易信息在共识过程中的排列顺序;
所述主共识节点根据所述多个交易信息的所述顺序索引,共识所述多个交易信息以得到第一区块。
2.根据权利要求1所述的方法,其特征在于,所述交易指示信息中的所述顺序索引未签名。
3.根据权利要求1或2所述的方法,其特征在于,所述第一区块包括多个交易哈希值,所述多个交易哈希值与所述多个交易信息一一对应,所述方法还包括:
所述主共识节点向所述从共识节点发送所述多个交易哈希值,所述多个交易哈希值中的每个交易哈希值用于所述从共识节点确定是否获取到所述交易哈希值对应的交易信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述主共识节点接收来自所述从共识节点的获取请求,所述获取请求用于请求获取所述多个交易信息中的至少一个交易信息,所述获取请求是所述从共识节点根据所述多个交易哈希值确定未获取到所述至少一个交易信息时发送的;
所述主共识节点向所述从共识节点发送至少一个交易指示信息,所述至少一个交易指示信息包括所述至少一个交易信息、以及所述至少一个交易信息中的每个交易信息对应的顺序索引。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一区块包括多个交易哈希值,所述多个交易哈希值与所述多个交易信息一一对应,所述方法还包括:
所述主共识节点向所述普通节点发送所述第一区块,以使所述普通节点验证所述第一区块中的所述多个交易哈希值与本地执行所述多个交易信息得到的多个交易哈希值的一致性。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
所述主共识节点获取交易信息处理过程中的性能参数,当所述性能参数满足第一预设条件时,所述主共识节点触发主共识节点的切换流程。
7.根据权利要求6所述的方法,其特征在于,所述性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;
所述共识吞吐量满足第一预设条件包括所述共识吞吐量小于预设吞吐量;
所述交易时延满足第一预设条件包括所述交易时延大于预设时延;
所述交易冲突次数满足第一预设条件包括所述交易冲突次数大于第一预设次数。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
当所述主共识节点确定某一交易信息在预设时长内未被处理时,所述主共识节点触发主共识节点的切换流程。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
当所述主共识节点确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将所述客户端设备设置为黑名单;
其中,所述至少一个切换周期中的每个切换周期对应不同的主共识节点。
10.一种交易信息处理方法,其特征在于,应用于区块链网络中,所述区块链网络包括主共识节点、从共识节点和普通节点,所述方法包括:
所述从共识节点接收来自所述主共识节点的多个交易指示信息,所述多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,所述顺序索引用于指示所述交易信息在共识过程中的排列顺序;
所述从共识节点根据所述多个交易信息的所述顺序索引,共识所述多个交易信息以得到第一区块。
11.根据权利要求10所述的方法,其特征在于,所述交易指示信息中的所述顺序索引未签名。
12.根据权利要求10或11所述的方法,其特征在于,所述第一区块包括多个交易哈希值,所述多个交易哈希值与所述多个交易信息一一对应,所述方法还包括:
所述从共识节点接收来自所述主共识节点的所述多个交易哈希值,所述多个交易哈希值中的每个交易哈希值用于所述从共识节点确定是否获取到所述交易哈希值对应的交易信息。
13.根据权利要求12所述的方法,其特征在于,当所述从共识节点根据所述多个交易哈希值确定未获取到所述多个交易信息中的至少一个交易信息时,所述方法还包括:
所述从共识节点向所述主共识节点发送获取请求,所述获取请求用于请求获取所述至少一个交易信息;
所述从共识节点接收来自所述主共识节点的至少一个交易指示信息,所述至少一个交易指示信息包括所述至少一个交易信息、以及所述至少一个交易信息中的每个交易信息对应的顺序索引。
14.根据权利要求10-13任一项所述的方法,其特征在于,对于所述多个交易信息中的每个交易信息,所述方法还包括:
所述从共识节点接收来自所述普通节点对于所述交易信息的交易执行结果;
所述从共识节点向所述普通节点发送应答信息,所述应答信息用于确认所述交易执行结果接收成功。
15.根据权利要求10-14任一项所述的方法,其特征在于,所述方法还包括:
所述从共识节点获取交易信息处理过程中的性能参数,当所述性能参数满足第一预设条件时,所述从共识节点触发主共识节点的切换流程。
16.根据权利要求15所述的方法,其特征在于,所述性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;
所述共识吞吐量满足第一预设条件包括所述共识吞吐量小于预设吞吐量;
所述交易时延满足第一预设条件包括所述交易时延大于预设时延;
所述交易冲突次数满足第一预设条件包括所述交易冲突次数大于第一预设次数。
17.根据权利要求10-16任一项所述的方法,其特征在于,所述方法还包括:
当所述从共识节点确定某一交易信息在预设时长内未被处理或者所述主共识节点在下一次主共识节点切换之前弃权时,所述从共识节点触发主共识节点的切换流程。
18.根据权利要求10-17任一项所述的方法,其特征在于,所述方法还包括:
当所述从共识节点确定某一客户端设备在连续的至少一个切换周期内的交易信息的交易冲突次数大于第二预设次数时,将所述客户端设备设置为黑名单;
其中,所述至少一个切换周期中的每个切换周期对应不同的主共识节点。
19.一种交易信息处理装置,其特征在于,所述装置作为主共识节点,应用于区块链网络中,所述区块链网络还包括从共识节点和普通节点,所述装置包括:
接收单元,用于接收多个交易信息;
发送单元,用于对于所述多个交易信息中的每个交易信息,分别向所述从共识节点和所述普通节点发送交易指示信息,所述交易指示信息包括所述交易信息和顺序索引,所述顺序索引用于指示所述交易信息在共识过程中的排列顺序;
处理单元,用于根据所述多个交易信息的所述顺序索引,共识所述多个交易信息以得到第一区块。
20.根据权利要求19所述的装置,其特征在于,所述交易指示信息中的所述顺序索引未签名。
21.根据权利要求19或20所述的装置,其特征在于,所述第一区块包括多个交易哈希值,所述多个交易哈希值与所述多个交易信息一一对应,所述发送单元还用于:
向所述从共识节点发送所述多个交易哈希值,所述多个交易哈希值中的每个交易哈希值用于所述从共识节点确定是否获取到所述交易哈希值对应的交易信息。
22.一种交易信息处理装置,其特征在于,所述装置作为从共识节点,应用于区块链网络中,所述区块链网络还包括主共识节点和普通节点,所述装置包括:
接收单元,用于接收来自所述主共识节点的多个交易指示信息,所述多个交易指示信息中的每个交易指示信息包括交易信息和顺序索引,所述顺序索引用于指示所述交易信息在共识过程中的排列顺序;
处理单元,用于根据所述多个交易信息的所述顺序索引,共识所述多个交易信息以得到第一区块。
23.根据权利要求22所述的装置,其特征在于,所述交易指示信息中的所述顺序索引未签名。
24.根据权利要求22或23所述的装置,其特征在于,所述第一区块包括多个交易哈希值,所述多个交易哈希值与所述多个交易信息一一对应,所述接收单元还用于:
接收来自所述主共识节点的所述多个交易哈希值,所述多个交易哈希值中的每个交易哈希值用于所述从共识节点确定是否获取到所述交易哈希值对应的交易信息。
25.根据权利要求24所述的装置,其特征在于,当所述从共识节点未获取到所述多个交易信息中的至少一个交易信息时,所述装置还包括发送单元;
所述发送单元,用于向所述主共识节点发送获取请求,所述获取请求用于请求获取所述至少一个交易信息;
所述接收单元,还用于接收来自所述主共识节点的至少一个交易指示信息,所述至少一个交易指示信息包括所述至少一个交易信息、以及所述至少一个交易信息中的每个交易信息对应的顺序索引。
26.根据权利要求22-25任一项所述的装置,其特征在于,所述处理单元还用于:
获取交易信息处理过程中的性能参数,当所述性能参数满足第一预设条件时,所述从共识节点触发主共识节点的切换流程。
27.根据权利要求26所述的装置,其特征在于,所述性能参数包括以下至少一种:共识吞吐量、交易时延、交易冲突次数;
所述共识吞吐量满足第一预设条件包括所述共识吞吐量小于预设吞吐量;
所述交易时延满足第一预设条件包括所述交易时延大于预设时延;
所述交易冲突次数满足第一预设条件包括所述交易冲突次数大于第一预设次数。
28.一种交易信息处理装置,其特征在于,所述装置包括处理器、存储器、通信接口和总线,所述处理器、所述存储器和所述通信接口通过总线连接;所述存储器用于存储程序代码,当所述程序代码被所述处理器执行时,使得所述装置执行权利要求1-9任一项所述的交易信息处理方法,或者执行权利要求10-18任一项所述的交易信息处理方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现1-9任一项所述的交易信息处理方法,或者实现权利要求10-18任一项所述的交易信息处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080651.2A CN115829731A (zh) | 2021-09-15 | 2021-09-15 | 一种交易信息处理方法及装置 |
PCT/CN2022/106699 WO2023040453A1 (zh) | 2021-09-15 | 2022-07-20 | 一种交易信息处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080651.2A CN115829731A (zh) | 2021-09-15 | 2021-09-15 | 一种交易信息处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115829731A true CN115829731A (zh) | 2023-03-21 |
Family
ID=85514927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111080651.2A Pending CN115829731A (zh) | 2021-09-15 | 2021-09-15 | 一种交易信息处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115829731A (zh) |
WO (1) | WO2023040453A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527832A (zh) * | 2024-01-03 | 2024-02-06 | 杭州趣链科技有限公司 | 一种区块链的交易排序方法、装置、电子设备和存储介质 |
CN117808466A (zh) * | 2024-02-28 | 2024-04-02 | 中国信息通信研究院 | 基于区块链的交易预执行方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825755B (zh) * | 2019-10-30 | 2021-05-04 | 北京海益同展信息科技有限公司 | 区块链的共识方法、共识节点、电子设备、存储介质 |
CN111611321B (zh) * | 2020-06-29 | 2023-07-25 | 度小满科技(北京)有限公司 | 一种数据存储方法、装置及区块链系统 |
CN112507019A (zh) * | 2020-11-20 | 2021-03-16 | 南京航空航天大学 | 一种基于智能合约的pbft共识系统及方法 |
CN112887437B (zh) * | 2021-04-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理方法、区块链节点和区块链系统 |
CN113342838B (zh) * | 2021-08-06 | 2021-11-09 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
-
2021
- 2021-09-15 CN CN202111080651.2A patent/CN115829731A/zh active Pending
-
2022
- 2022-07-20 WO PCT/CN2022/106699 patent/WO2023040453A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023040453A1 (zh) | 2023-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911240B2 (en) | Off-chain blockchain storage with validation | |
CN109815373B (zh) | 数据存储的控制方法、装置、服务器及可读存储介质 | |
KR102566892B1 (ko) | 블록체인 합의 방법, 디바이스 및 시스템 | |
CN110784346A (zh) | 一种基于信誉值的pbft共识系统及方法 | |
CN110915166A (zh) | 区块链 | |
CN110730225A (zh) | 基于区块链的物联网的数据处理方法、物联网及存储介质 | |
CN111741114A (zh) | 基于区块链的可监管跨链交互系统、方法及设备 | |
WO2023040453A1 (zh) | 一种交易信息处理方法及装置 | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与系统 | |
CN110505228B (zh) | 基于边缘云架构的大数据处理方法、系统、介质及装置 | |
Qi et al. | Bidl: A high-throughput, low-latency permissioned blockchain framework for datacenter networks | |
US20230052935A1 (en) | Asynchronous accounting method and apparatus for blockchain, medium and electronic device | |
CN111538757B (zh) | 数据存储方法、查询方法、装置、服务器及介质 | |
CN111967061B (zh) | 基于区块链的可信账户转账交易方法及装置 | |
JP5007239B2 (ja) | 分散取引照合サービス | |
CN104618304A (zh) | 数据处理方法及数据处理系统 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN112184436B (zh) | 数据同步方法、电子设备及可读存储介质 | |
KR20210087552A (ko) | 분산 리소스 할당을 위한 시스템 및 방법 | |
US20200394162A1 (en) | Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system | |
Vizier et al. | ComChain: A blockchain with Byzantine fault‐tolerant reconfiguration | |
CN112202564A (zh) | 交易传递方法、装置、电子设备及可读存储介质 | |
CN112037055B (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
CN112766560B (zh) | 联盟区块链网络优化方法、装置、系统和电子设备 | |
US20230409450A1 (en) | Consensus processing method and apparatus for blockchain network |
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 |