CN112804351A - 区块链系统的流量控制方法、装置、节点、介质及产品 - Google Patents
区块链系统的流量控制方法、装置、节点、介质及产品 Download PDFInfo
- Publication number
- CN112804351A CN112804351A CN202110248948.9A CN202110248948A CN112804351A CN 112804351 A CN112804351 A CN 112804351A CN 202110248948 A CN202110248948 A CN 202110248948A CN 112804351 A CN112804351 A CN 112804351A
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction information
- time period
- batch
- current
- 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.)
- Granted
Links
Images
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
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开实施例提供了区块链系统的流量控制方法、装置、节点、介质及产品,应用于区块链技术领域。该方法应用于区块链系统中的领导节点,其中,区块链系统中包括多个共识节点,领导节点为多个共识节点中的一个,包括:接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,共识交易请求包括待共识交易信息;在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对应的第一限流数;以及,根据第一限流数,对第一批量待共识交易信息进行共识处理。
Description
技术领域
本公开实施例涉及区块链技术领域,更具体地,涉及一种用于区块链系统的流量控制方法、装置、领导节点、存储介质及程序产品。
背景技术
区块链是一种利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全和利用由自动化脚本代码组成的智能合约集体维护可靠数据库的解决方案。
在相关技术中,区块链系统中每个共识节点均可以接收客户端发送的共识交易请求,其中,共识交易请求包括待共识交易信息,每个待共识交易信息都需要经过区块链系统中的全部共识节点的共识。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题,在系统出现资源瓶颈的情况下,采用相关技术难以保证系统的稳定运行。
发明内容
有鉴于此,本公开实施例提供了一种用于区块链系统的流量控制方法、装置、领导节点、存储介质及程序产品。
本公开实施例的一个方面提供了一种用于区块链的流量控制方法,应用于上述区块链系统中的领导节点,其中,上述区块链系统中包括多个共识节点,上述领导节点为上述多个共识节点中的一个,上述方法包括:接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,上述共识交易请求包括待共识交易信息;在确定上述共识交易请求满足预设条件的情况下,根据当前接收到的上述待共识交易信息生成第一批量待共识交易信息,并确定与上述第一批量待共识交易信息对应的第一限流数;以及,根据上述第一限流数,对上述第一批量待共识交易信息进行共识处理。
根据本公开的实施例,还包括:在生成上述第一批量待共识交易信息之后,根据后续接收到的上述待共识交易信息生成第二批量待共识交易信息,并确定与上述第二批量待共识交易信息对应的第二限流数,其中,上述后续接收到的上述待共识交易信息为在上述第一限流时间段内接收到的;以及,根据上述第二限流数,对上述第二批量待共识交易信息进行共识处理。
根据本公开的实施例,还包括:确定目标批量待共识交易信息共识结束所消耗的共识响应时间,其中,上述目标批量待共识交易信息包括在上述第一限流时间段内的一个或多个批量待共识交易信息;以及,根据上述目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,其中,上述第二限流时间段是上述第一限流时间段的后续限流时间段。
根据本公开的实施例,上述目标批量待共识交易信息包括多个;上述根据上述目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,包括:计算上述多个目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值;以及,根据上述平均值调整与第二限流时间段对应的限流数。
根据本公开的实施例,上述第二限流时间段具有预设限流数;上述根据上述平均值调整与第二限流时间段对应的限流数,包括:在确定上述平均值大于与上述第二限流时间段对应的预设响应时间的情况下,减少上述第二限流时间段的预设限流数,得到与上述第二限流时间段对应的限流数;在确定上述平均值小于与上述第二限流时间段对应的预设响应时间的情况下,增加上述第二限流时间段的预设限流数,得到与上述第二限流时间段对应的限流数;在确定上述平均值等于与上述第二限流时间段对应的预设响应时间的情况下,维持与上述第二限流时间段对应的预设限流数。
根据本公开的实施例,还包括:在上述领导节点满足重新选举条件的情况下,执行重新选举操作。
根据本公开的实施例,上述根据上述第一限流数,对上述第一批量待共识交易信息进行共识处理,包括:在确定上述第一限流数大于或等于限流阈值的情况下,对上述第一批量待共识交易信息进行共识处理;以及,在确定上述第一限流数小于上述限流阈值的情况下,向上述客户端和上述其他共识节点发送提示信息,以提示上述第一批量待共识交易信息不能进行共识处理。
根据本公开的实施例,上述根据当前接收到的上述待共识交易信息生成第一批量待共识交易信息,包括:对当前接收到的上述待共识交易信息进行预处理,得到处理后的待共识交易信息,其中,上述预处理包括去重处理和/或排序处理;以及,根据上述处理后的待共识交易信息,生成上述第一批量待共识交易信息。
根据本公开的实施例,与上述第一限流时间段对应的限流数是在确定上述第一限流时间段为初始限流时间段的情况下,根据预设参数确定的。
本公开的另一个方面提供了一种用于区块链系统的流量控制装置,设置于上述区块链系统中的领导节点,其中,上述区块链系统中包括多个共识节点,上述领导节点为上述多个共识节点中的一个,上述装置包括:接收模块,用于接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,上述共识交易请求包括待共识交易信息;第一确定模块,用于在确定上述共识交易请求满足预设条件的情况下,根据当前接收到的上述待共识交易信息生成第一批量待共识交易信息,并确定与上述第一批量待共识交易信息对应的第一限流数;以及,第一处理模块,用于根据上述第一限流数,对上述第一批量待共识交易信息进行共识处理。
本公开实施例的另一个方面提供了一种领导节点,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
本公开实施例的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被共识时用于实现如上所述的方法。
本公开实施例的另一个方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被共识时用于实现如上所述的方法。
根据本公开的实施例,通过领导节点接收来自客户端和其他共识节点发送的在第一限流时间段内的包括待共识交易信息的共识交易请求,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,确定与第一批量待共识交易信息对应的第一限流数,并根据第一限流数,对第一批量待共识交易信息进行共识处理。由于采用领导节点根据与第一批量待共识交易信息对应的第一限流数,对共识交易请求进行共识处理,第一限流数可以表征在第一限流时间段内第一批量待共识交易信息被限流的可能性,因此,实现了对整链级别的共识交易流量进行有效统一的控制,进而减少了在系统出现资源瓶颈的情况下共识交易的排队时长和系统出现崩溃的情况,从而有效保证了系统的稳定运行。此外,也提升了客户端的使用体验,因而,至少部分地克服了在系统出现资源瓶颈的情况下,采用相关技术难以保证系统的稳定运行的技术问题。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用用于区块链系统的流量控制方法的示例性系统架构;
图2示意性示出了根据本公开实施例的一种用于区块链系统的流量控制装置方法的流程图;
图3示意性示出了根据本公开实施例的一种确定与第二限流时间段对应的限流数的方法的示意图;
图4示意性示出了根据本公开的实施例的一种用于区块链系统的流量控制装置的框图;以及
图5示意性示出了根据本公开实施例的适于实现用于区块链系统的流量控制方法的领导节点的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在实际业务场景中,区块链系统包括多个机构方的成员节点,根据成员节点所实现的功能,可以将成员节点划分为共识节点或客户端,即区块链系统包括多个共识节点和一个或多个客户端。在实现共识过程中,客户端向与该客户端通信连接的一个或多个共识节点发送共识交易请求,接收到该共识交易请求的共识节点向其他共识节点发送该共识交易请求。其中,共识交易请求包括待共识交易信息。由于每个待共识交易信息都需要经过区块链系统中的全部共识节点的共识,因此,每个共识节点要处理的共识交易请求的数量是全部共识节点接收到的共识交易请求的数量的总和。
在实现本公开构思的过程中,发明人发现由于每个共识节点要处理的共识交易请求的数量是全部共识节点接收到的共识交易请求的数量的总和,因此,共识节点的资源内耗较大。在此条件下,如果出现共识交易请求的数量较多,即系统出现资源瓶颈,则容易导致共识交易排队时间较长,甚至可能导致系统出现崩溃而无法处理共识交易请求,由此,难以保证系统的稳定运行。此外,也将降低客户端的使用体验。
发明人发现在系统出现资源瓶颈的情况下,导致采用相关技术难以保证系统的稳定运行的主要原因在于,缺乏有效的限流机制,即缺乏有效地根据系统的实际流量情况进行统一控制的机制。为了解决相关技术中存在的问题,发明人提出一种用于区块链系统的流量控制方案,即采用领导节点根据与限流时间段对应的限流数,对共识交易请求进行流量控制的方案,其中,领导节点为多个共识节点中的一个,限流数可以表征在限流时间段内的共识交易请求被限流的可能性。
具体地,本公开的实施例提供了一种用于区块链系统的流量控制方法、装置以及能够应用该方法的领导节点,本公开实施例的用于区块链系统的流量控制方法、装置、领导节点、存储介质及程序产品可以应用于区块链领域,也可以用于除区块链领域之外的任意领域,本公开实施例的用于区块链系统的流量控制方法、装置、领导节点、存储介质及程序产品的应用领域不作限定。该方法应用于区块链系统中的领导节点,区块链系统中包括多个共识节点,领导节点为多个共识节点中的一个,该方法包括:接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,共识交易请求包括待共识交易信息,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对应的第一限流数,并根据第一限流数,对第一批量待共识交易信息进行共识处理。
图1示意性示出了根据本公开实施例的可以应用用于区块链系统的流量控制方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括客户端101、102、103,网络104和共识节点105。网络104用以在客户端101、102、103和共识节点105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等。
用户可以使用客户端101、102、103通过网络104与共识节点105交互,以接收或发送消息等。客户端101、102、103上可以安装有各种通讯客户端应用,例如银行类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
客户端101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
共识节点105可以是提供各种服务的服务器,例如对用户利用客户端101、102、103所发出的共识交易请求提供支持的后台管理服务器(仅为示例)。其中,共识节点105可以作为领导节点使用。例如,后台管理服务器可以接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,共识交易请求包括待共识交易信息,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对应的第一限流数,根据第一限流数,对第一批量待共识交易信息进行共识处理。
需要说明的是,本公开实施例所提供的用于区块链系统的流量控制方法一般可以由共识节点105中的领导节点执行。相应地,本公开实施例所提供的用于区块链系统的流量控制装置一般可以设置于领导节点中。本公开实施例所提供的用于区块链系统的流量控制方法也可以由不同于领导节点且能够与客户端101、102、103和/或领导节点通信的共识节点或共识节点集群执行。相应地,本公开实施例所提供的用于区块链系统的流量控制装置也可以设置于不同于领导节点且能够与客户端101、102、103和/或领导节点通信的共识节点或共识节点集群中。
应该理解,图1中的客户端、网络和共识节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端、网络和共识节点。
图2示意性示出了根据本公开实施例的一种用于区块链系统的流量控制装置方法的流程图。该方法应用于区块链系统中的领导节点,其中,区块链系统中包括多个共识节点,领导节点为多个共识节点中的一个。
如图2所示,该方法包括操作S210~S230。
在操作S210,接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,共识交易请求包括待共识交易信息。
根据本公开的实施例,本公开实施例中的区块链系统(业务链系统)可以是根据链下业务系统的上链业务需求构建而成的。业务系统包括一个或多个客户端。领导节点是多个共识节点中的一个,全部共识节点的结构可以相同,共识节点用于对交易进行合法性验证,合法性验证可以包括权限验证和参数验证等。每个共识节点可以接收来自客户端的共识交易请求。领导节点除了可以接收来自客户端发送的共识交易请求外,还可以接收来自其他共识节点发送的共识交易请求,即其他共识节点接收到来自客户端的共识交易请求后将共识交易请求发送给领导节点。待共识交易信息的数量包括一个或多个。
领导节点可以采用如下方式确定,即确定区块链的已出块数量,确定区块链系统包括的共识节点的数量,确定已出块数量除以共识节点的数量得到的取余结果,确定目标共识节点编号,其中,目标共识节点编号是与取余结果相等的共识节点编号,将与目标共识节点编号对应的共识节点确定为领导节点。
根据本公开的实施例,领导节点并不是固定不变的,是可以根据实际情况重新选举的。即如果领导节点满足重新选举条件,则可以执行重新选举操作。其中,重新选举条件可以包括在预设时间段内阻塞请求是否被终止。如果在预设时间段内阻塞请求被终止,则可以说明满足重新选举条件,如果在预设时间段内阻塞请求未被终止,则可以说明不满足重新选举条件。其中,导致阻塞请求被终止的原因可能在于,领导节点自身出现故障和/或领导节点与其他共识节点之间的通信连接中断。
根据本公开的实施例,领导节点接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,可以包括接收客户端发送的业务交易请求,其中,业务交易请求包括业务信息,确定业务信息所对应的业务类型,其中,业务类型包括查询类和更新类。在确定业务信息所对应的业务类型为更新类的情况下,确定业务交易请求为共识交易请求,业务信息为待共识交易信息。领导节点接收来自其他共识节点发送的共识交易请求,其中,来自其他共识节点发送的共识交易请求是其他共识节点在接收到客户端发送的业务交易请求的情况下,如果确定业务信息所对应的业务类型为更新类,则确定业务交易请求为共识交易请求,业务信息为待共识交易信息,并向领导节点发送得到的。
在操作S220,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对应的第一限流数。
根据本公开的实施例,领导节点在获取到共识交易请求后,可以确定共识交易请求是否满足预设条件,如果共识交易请求满足预设条件,则可以根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对的第一限流数。如果共识交易请求不满足预设条件,则可以向客户端和其他共识节点发送提示信息,以提示第一批量待共识交易信息不能进行共识处理。其中,预设条件可以包括待共识交易信息的数量大于或等于数量阈值和/或距处理第三批量待共识交易信息的时间间隔大于或等于间隔阈值。数量阈值和间隔阈值可以根据实际情况设定,例如,数据阈值为5,间隔阈值为1秒。第一批量待共识交易信息包括一个或多个待共识交易信息,第三批量待共识交易信息包括一个或多个待共识交易信息。第三批量待共识交易信息是第一批量待共识交易信息的上个批次的批量待共识交易信息。
根据本公开的实施例,每个批量待共识交易信息具有对应的限流数,与下个批次的批量待共识交易信息对应的限流数是在与上个批次的批量待共识交易信息对应的限流数的基础上执行减一操作得到的。
需要说明的是,本公开实施例中的第一批量待共识交易信息是第一限流时间段内的多个批量待共识交易信息中的一个批量待共识交易信息,其并不一定是第一限流时间段内的第一个批量待共识交易信息。
在操作S230,根据第一限流数,对第一批量待共识交易信息进行共识处理。
根据本公开的实施例,领导节点在获得第一限流数后,可以将第一限流数与限流阈值进行比较,得到第一比较结果,根据第一比较结果,对第一批量待共识交易信息进行共识处理。即根据第一限流数对共识交易流量进行控制。
根据本公开实施例的技术方案,通过领导节点接收来自客户端和其他共识节点发送的在第一限流时间段内的包括待共识交易信息的共识交易请求,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,确定与第一批量待共识交易信息对应的第一限流数,并根据第一限流数,对第一批量待共识交易信息进行共识处理。由于采用领导节点根据与第一批量待共识交易信息对应的第一限流数,对共识交易请求进行共识处理,第一限流数可以表征在第一限流时间段内第一批量待共识交易信息被限流的可能性,因此,实现了对整链级别的共识交易流量进行有效统一的控制,进而减少了在系统出现资源瓶颈的情况下共识交易的排队时长和系统出现崩溃的情况,从而有效保证了系统的稳定运行。此外,也提升了客户端的使用体验,因而,至少部分地克服了在系统出现资源瓶颈的情况下,采用相关技术难以保证系统的稳定运行的技术问题。
根据本公开的实施例,在生成第一批量待共识交易信息之后,根据后续接收到的待共识交易信息生成第二批量待共识交易信息,并确定与第二批量待共识交易信息对应的第二限流数,其中,后续接收到的待共识交易信息为在第一限流时间段内接收到的。根据第二限流数,对第二批量待共识交易信息进行共识处理。
根据本公开的实施例,在第一限流时间段内可能存在多个批次的批量待共识交易信息,每个批次的批量待共识交易信息可以采用相同方式进行处理。
根据本公开的实施例,领导节点在生成第一批量待共识交易信息之后,领导节点后续还可能继续接收到来自客户端和其他共识节点的共识交易请求,后续接收到的共识交易请求包括待共识交易信息,在确定后续接收到的共识交易请求满足预设条件的情况下,根据后续接收到的待共识交易信息生成第二批量待共识交易信息,并确定与第二批量待共识交易信息对应的第二限流数。其中,后续接收到的待共识交易信息是在第一限流时间段内接收到的任意一个批次的批量待共识交易信息。
根据本公开的实施例,领导节点可以将第二限流数与限流阈值进行比较,得到第二比较结果,根据第二比较结果,对第二批量待共识交易信息进行共识处理。
根据本公开的实施例,该方法还可以包括如下操作。
确定目标批量待共识交易信息共识结束所消耗的共识响应时间,其中,目标批量待共识交易信息包括在第一限流时间段内的一个或多个批量待共识交易信息。根据目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,其中,第二限流时间段是第一限流时间段的后续限流时间段。
根据本公开的实施例,不同限流时间段内的限流数可能相同也可能不同,可以根据系统的性能容量情况,调整限流数。其中,系统的性能容量情况可以用与限流时间段对应的共识响应时间表征。即可以根据系统处理当前限流时间段内的共识交易请求所消耗的共识响应时间,调整与后续限流时间段对应的限流数。其中,当前限流时间段可以用第一限流时间段表征,后续限流时间段可以用第二限流时间段表征。
为了提高调整的准确性,第二限流时间段可以是第一限流时间段的下个限流时间段。即根据系统处理第一限流时间段内的共识交易请求所消耗的共识响应时间,调整与作为下个时间段的第二限流时间段对应的限流数。
根据本公开的实施例,确定目标批量待共识交易信息共识结束所消耗的共识响应时间,可以包括确定第一时刻和第二时刻,其中,第一时刻用于表征批量待共识交易信息共识起始的时刻,第二时刻用于表征批量待共识交易信息共识结束的时刻,根据第一时刻和第二时刻,确定针对批量待共识交易信息共识结束所消耗的共识响应时间,根据各个批量待共识交易信息共识结束所消耗的共识响应时间,确定目标批量待共识交易信息共识结束所消耗的共识响应时间。
根据本公开的实施例,目标批量待共识交易信息包括多个。
根据目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,可以包括如下操作。计算多个目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值。根据平均值调整与第二限流时间段对应的限流数。
根据本公开的实施例,计算多个目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值,可以包括确定目标批量待共识交易信息的数量。根据目标批量待共识交易信息共识结束所消耗的共识响应时间和目标批量待共识交易信息包括的批量待共识交易信息的数量,确定目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值。
根据本公开的实施例,可以预先设定与第二限流时间段对应的预设响应时间,比较平均值和与第二限流时间段对应的预设响应时间,根据比较结果,调整与第二限流时间段对应的限流数。
根据本公开的实施例,第二限流时间段具有预设限流数。
根据平均值调整与第二限流时间段对应的限流数,可以包括如下操作。
在确定平均值大于与第二限流时间段对应的预设响应时间的情况下,减少第二限流时间段的预设限流数,得到与第二限流时间段对应的限流数。在确定平均值小于与第二限流时间段对应的预设响应时间的情况下,增加第二限流时间段的预设限流数,得到与第二限流时间段对应的限流数。在确定平均值等于与第二限流时间段对应的预设响应时间的情况下,维持与第二限流时间段对应的预设限流数。
根据本公开的实施例,如果根据在第一限流时间段内的目标批量待共识交易信息共识结束所消耗的共识响应时间确定的平均值大于与第二限流时间段对应的预设响应时间,则可以减小第二限流时间段内的预设限流数,得到与第二限流时间段对应的限流数。如果平均值小于与第二限流时间段对应的预设响应时间,则可以增加第二限流时间段内的预设限流数,得到与第二限流时间段对应的限流数。其中,与第二限流时间段对应的第二限流数是根据第二限流时间段和平均值确定的。根据第二限流时间段和平均值确定第二限流数,可以包括确定第二限流时间段与平均值的比值,将比值确定为与第二限流时间段对应的限流数。
根据本公开的实施例,如果平均值等于与第二限流时间段对应的预设响应时间,则可以维持与第二限流时间段对应的预设限流数不变,即与第二限流时间段对应的预设限流数即是与第二限流时间段对应的限流数。
根据本公开的实施例,该方法还可以包括如下操作。
在领导节点满足重新选举条件的情况下,执行重新选举操作。
根据本公开的实施例,重新选举条件可以包括在预设时间段内阻塞请求是否被终止。如果在预设时间段内阻塞请求被终止,则可以说明满足重新选举条件,如果在预设时间段内阻塞请求未被终止,则可以说明不满足重新选举条件。预设时间段可以根据实际情况确定,例如,预设时间段为2秒。其中,导致阻塞请求被终止的原因可能在于,领导节点自身出现故障和/或领导节点与其他共识节点之间的通信连接中断。
根据本公开的实施例,根据第一限流数,对第一批量待共识交易信息进行共识处理,可以包括如下操作。
在确定第一限流数大于或等于限流阈值的情况下,对第一批量待共识交易信息进行共识处理。在确定第一限流数小于限流阈值的情况下,向客户端和其他共识节点发送提示信息,以提示第一批量待共识交易信息不能进行共识处理。
根据本公开的实施例,限流阈值可以作为确定待共识交易信息是否能被共识处理的依据。限流阈值可以根据实际情况设定,例如,限流阈值为零。
根据本公开的实施例,如果第一限流数大于或等于限流阈值,则可以说明待共识交易信息能被共识处理。对第一批量待共识交易信息进行共识处理,可以包括利用共识算法对第一批量待共识交易信息进行共识处理。向其他共识节点发送第一批量待共识交易信息,以使其他共识节点利用该共识算法对第一批量待共识交易信息进行共识处理。共识算法可以包括PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)算法、PoW(Proof of Work,工作量证明)算法、PoS(Proof of Stack,股权权益证明)算法、DPoS(Delegated Proof of Stake,委托权益人证明机制)算法、Raft算法或Paxos算法。可选地,共识算法为PBFT算法。PBFT算法包括预准备(pre-prepare)、准备(prepare)和确认(commit)三个阶段。三个阶段是顺序执行的关系,在每个阶段,每个共识节点在接收到2f+1个共识节点发送的确认消息后,才能进行下一个阶段。全部共识节点中的每个共识节点利用PBFT算法对第一批量待共识交易信息进行共识处理。
根据本公开的实施例,在完成对第一批量待共识交易信息进行共识处理之后,对待共识交易信息执行智能合约。
根据本公开的实施例,如果第一限流数小于限流阈值,则可以说明待共识交易信息不能被共识处理,可以生成针对第一批量待共识交易信息被限流的提示信息,并向其他共识节点发送第一批量待共识交易信息被限流的第一提示信息,以使其他共识节点根据第一提示信息生成待共识交易信息被限流的第二提示信息,并向通信连接的客户端发送待共识交易信息被限流的第二提示信息。例如,第一提示信息可以为“当前系统流量控制,请稍后再试”。第二提示信息可以为“该笔交易被限流,请稍后再试”。
根据本公开的实施例,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,可以包括如下操作。
对当前接收到的待共识交易信息进行预处理,得到处理后的待共识交易信息,其中,预处理包括去重处理和/或排序处理。根据处理后的待共识交易信息,生成第一批量待共识交易信息。
根据本公开的实施例,由于领导节点接收来自客户端和其他共识节点发送的包括待共识交易信息的共识交易请求,因此,领导节点将接收到多个待共识交易信息。由于客户端可以将共识交易请求发送给多个共识节点,因此,领导节点接收到的多个待共识交易信息可能存在重复的情况。
为了提高共识交易处理效率,领导节点可以对当前接收到的待共识交易信息执行预处理,得到处理后的待共识交易信息,其中,预处理可以包括去重处理和/或排序处理。
根据本公开的实施例,其他共识节点中的每个共识节点在接收到客户端发送的共识交易请求的情况下,也可以对当前接收到的待共识交易信息执行去重处理和/或排序处理。
根据本公开的实施例,与第一限流时间段对应的限流数是在确定第一限流时间段为初始限流时间段的情况下,根据预设参数确定的。
根据本公开的实施例,初始限流时间段用于表征系统初始化时对应的限流时间段。预设参数用于表征在系统初始化状态的情况下,与系统的交易处理性能对应的参数。与系统的交易处理性能对应的参数可以包括用于处理待共识交易信息的智能合约的性能评估参数和/或服务器资源参数。第一限流时间段具有限流数。
在系统初始化化时,可以根据预设参数设置限流数,实现根据在系统启动时,根据系统的交易性能设置合适的限流数。如果第一限流数据段为初始限流时间段,则与第一限流时间段对应的限流数可以是根据预设参数确定的。
此外,各个限流时间段和与每个限流时间段对应的预设响应时间也可以根据预设参数确定。
根据本公开实施例的另一种用于区块链系统的流量控制方法。
该方法包括如下操作。
接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,共识交易请求包括待共识交易信息。
确定共识交易请求是否满足预设条件;若是,则对当前接收到的待共识交易信息进行预处理,得到处理后的待共识交易信息,其中,预处理包括去重处理和/或排序处理;若否,则向客户端和其他共识节点发送提示信息,以提示第一批量待共识交易信息不能进行共识处理。
根据处理后的待共识交易信息,生成第一批量待共识交易信息。
确定与第一批量待共识交易信息对应的第一限流数。
在生成第一批量待共识交易信息之后,根据后续接收到的待共识交易信息生成第二批量待共识交易信息,并确定与第二批量待共识交易信息对应的第二限流数,其中,后续接收到的待共识交易信息为在第一限流时间段内接收到的。
根据第二限流数,对第二批量待共识交易信息进行共识处理。
确定目标批量待共识交易信息共识结束所消耗的共识响应时间,其中,目标批量待共识交易信息包括在第一限流时间段内的多个批量待共识交易信息。
计算多个目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值。
在确定平均值大于与第二限流时间段对应的预设响应时间的情况下,减少第二限流时间段的预设限流数,得到与第二限流时间段对应的限流数。
在确定平均值小于与第二限流时间段对应的预设响应时间的情况下,增加第二限流时间段的预设限流数,得到与第二限流时间段对应的限流数。
在确定平均值等于与第二限流时间段对应的预设响应时间的情况下,维持与第二限流时间段对应的预设限流数。
确定第一限流数是否大于或等于限流阈值;若是,则对第一批量待共识交易信息进行共识处理;若否,则向客户端和其他共识节点发送提示信息,以提示第一批量待共识交易信息不能进行共识处理。
根据本公开的实施例,通过具体示例说明处理第一批量待共识交易信息的处理过程。预先创建用reqStore表征的本地内存数组,用reqStore表征的待共识交易信息数组,用transArags[]表征的交易监控数组。其中,transArags[]用于记录限流时间段内的全部批量待共识交易信息共识结束所消耗的共识响应时间。
领导节点每接收到一个共识交易请求,可以将共识交易请求存储至reqStore中,并缓存至reqStore中。同时,将用于表征待共识交易信息数量的consNum的数量增加一。如果consNum大于数量阈值和/或距处理上一个批次的批量待共识交易信息的共识处理的时间间隔大于或等于间隔阈值,则可以将待共识交易信息封装为用consMessage表征的第一批量待共识交易信息,并生成获取第一限流数的限流数申请请求,响应于限流数申请请求,确定与第一批量待共识交易信息对应的第一限流数。其中,consMessage存储于conStore中。
如果第一限流数等于零,则生成针对第一批量待共识交易信息被限流的提示信息,并向其他共识节点发送第一批量待共识交易信息被限流的第一提示信息,以使其他共识节点根据第一提示信息生成待共识交易信息被限流的第二提示信息,并向通信连接的客户端发送待共识交易信息被限流的第二提示信息。
如果第一限流数大于零,则确定与第一批量待共识交易信息对应的第一时刻,并生成针对第一批量待共识交易信息能被共识处理的提示信息,以实现将第一限流数的数量减一。将conStore存储至本地磁盘,并向其他共识节点发送第一批量待共识交易信息,以使其他共识节点对第一批量待共识交易信息进行共识处理。
获取到完成对第一批量待共识交易信息共识处理的提示信息后,确定与第一批量待共识交易信息对应的第二时刻。根据与第一批待共识交易信息对应的第一时刻和第二时刻,确定第一批量待共识交易信息共识结束所消耗的共识响应时间,并与第一批量待共识交易信息对应的共识响应时间存储至transArgs[]中,transArgs[]数组的数量增加一。
第一限流时间段内的其他批次的批量待共识交易信息的处理过程与第一限流时间段内的第一批量待共识交易信息的处理过程相同。
根据本公开实施例的技术方案,根据区块链系统的性能容量情况调整限流数,并根据限流数对共识交易进行流量控制,对无法申请限流数的批量待共识交易信息反馈被限流的提示信息,有效保证了区块链系统安全、高效和稳定运行,同时,也提升了客户端的使用体验。
图3示意性示出了根据本公开实施例的一种确定与第二限流时间段对应的限流数的方法的示意图。
如图3所示,该方法包括如下操作S301~312。
在操作S301,接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,共识交易请求包括待共识交易信息。
在操作S302,确定共识交易请求是否满足预设条件;若是,则执行操作S303;若否,则执行操作S304。
在操作S303,根据当前接收到的所述待共识交易信息生成批量待共识交易信息,并生成获取与批量待共识交易信息对应的限流数的限流数申请请求,并执行操作S305。
在操作S304,向客户端和其他共识节点发送提示信息,以提示批量待共识交易信息不能进行共识处理。
在操作S305,响应于限流数申请请求,确定与批量待共识交易信息对应的限流数。
在操作S306,确定与批量待共识交易信息对应的限流数是否大于或等于限流阈值;若是,则执行操作S307;若否,则执行操作S304。
在操作S307,确定与批量待共识交易信息对应的第一时刻,并对批量待共识交易信息进行共识处理。
在操作S308,在完成对批量待共识交易信息共识处理的情况下,确定与批量待共识交易信息对应的第二时刻。
在操作S309,根据与批量待共识交易信息对应的第一时刻和第二时刻,确定批量待共识交易信息共识结束所消耗的共识响应时间。
在操作S310,确定与第一限流时间段对应的循环周期是否结束;若是,则执行操作S311;若否,则执行操作S301。
在操作S311,计算在第一限流时间段内的多个批量待共识交易信息共识结束所消耗的共识响应时间的平均值。
在操作S312,根据在第一限流时间段内的多个批量待共识交易信息共识结束所消耗的共识响应时间的平均值和第一限流时间内所包括的批量待共识交易信息的数量,确定与第二限流时间段对应的限流数。
根据本公开实施例的技术方案,实现了在系统运行过程中根据区块链系统的性能容量情况调整限流数,并根据限流数对共识交易进行流量控制。
图4示意性示出了根据本公开的实施例的一种用于区块链系统的流量控制装置的框图。用于区块链系统的流量控制装置400设置于区块链系统中的领导节点,其中,区块链系统中包括多个共识节点,领导节点为多个共识节点中的一个。
如图4所示,用于区块链系统的流量控制装置400包括接收模块410、第一确定模块420和第一处理模块430。
接收模块410、第一确定模块420和第一处理模块430通信连接。
接收模块410,用于接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,共识交易请求包括待共识交易信息。
第一确定模块420,用于在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,并确定与第一批量待共识交易信息对应的第一限流数。
第一处理模块430,用于根据第一限流数,对第一批量待共识交易信息进行共识处理。
根据本公开实施例的技术方案,通过领导节点接收来自客户端和其他共识节点发送的在第一限流时间段内的包括待共识交易信息的共识交易请求,在确定共识交易请求满足预设条件的情况下,根据当前接收到的待共识交易信息生成第一批量待共识交易信息,确定与第一批量待共识交易信息对应的第一限流数,并根据第一限流数,对第一批量待共识交易信息进行共识处理。由于采用领导节点根据与第一批量待共识交易信息对应的第一限流数,对共识交易请求进行共识处理,第一限流数可以表征在第一限流时间段内第一批量待共识交易信息被限流的可能性,因此,实现了对整链级别的共识交易流量进行有效统一的控制,进而减少了在系统出现资源瓶颈的情况下共识交易的排队时长和系统出现崩溃的情况,从而有效保证了系统的稳定运行。此外,也提升了客户端的使用体验,因而,至少部分地克服了在系统出现资源瓶颈的情况下,采用相关技术难以保证系统的稳定运行的技术问题。
根据本公开的实施例,该用于区块链系统的流量控制装置400还包括第二确定模块和第二处理模块。
第二确定模块,用于在生成第一批量待共识交易信息之后,根据后续接收到的待共识交易信息生成第二批量待共识交易信息,并确定与第二批量待共识交易信息对应的第二限流数,其中,后续接收到的待共识交易信息为在第一限流时间段内接收到的。
第二处理模块,用于根据第二限流数,对第二批量待共识交易信息进行共识处理。
根据本公开的实施例,该用于区块链系统的流量控制装置400还包括第三确定模块和调整模块。
第三确定模块,用于确定目标批量待共识交易信息共识结束所消耗的共识响应时间,其中,目标批量待共识交易信息包括在第一限流时间段内的一个或多个批量待共识交易信息。
调整模块,用于根据目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,其中,第二限流时间段是第一限流时间段的后续限流时间段。
根据本公开的实施例,目标批量待共识交易信息包括多个。
调整模块包括计算子模块和调整子模块。
计算子模块,用于计算多个目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值。
调整子模块,用于根据平均值调整与第二限流时间段对应的限流数。
根据本公开的实施例,第二限流时间段具有预设限流数。
调整子模块包括第一调整单元、第二调整单元和维持单元。
第一调整单元,用于在确定平均值大于与第二限流时间段对应的预设响应时间的情况下,减少第二限流时间段的预设限流数,得到与第二限流时间段对应的限流数。
第二调整单元,用于在确定平均值小于与第二限流时间段对应的预设响应时间的情况下,增加第二限流时间段的预设限流数,得到调与第二限流时间段对应的限流数。
维持单元,用于在确定平均值等于与第二限流时间段对应的预设响应时间的情况下,维持与第二限流时间段对应的预设限流数。
根据本公开的实施例,该用于区块链系统的流量控制装置400还包括重新选举模块。
重新选举模块,用于在领导节点满足重新选举条件的情况下,执行重新选举操作。
根据本公开的实施例,第一处理模块430包括第一处理子模块和第二处理子模块。
第一处理子模块,用于在确定第一限流数大于或等于限流阈值的情况下,对第一批量待共识交易信息进行共识处理。
第二处理子模块,用于在确定第一限流数小于限流阈值的情况下,向客户端和其他共识节点发送提示信息,以提示第一批量待共识交易信息不能进行共识处理。
根据本公开的实施例,第一确定模块420用于:对当前接收到的待共识交易信息进行预处理,得到处理后的待共识交易信息,其中,预处理包括去重处理和/或排序处理。根据处理后的待共识交易信息,生成第一批量待共识交易信息。
根据本公开的实施例,与第一限流时间段对应的限流数是在确定第一限流时间段为初始限流时间段的情况下,根据预设参数确定的。
根据本公开的实施例,与第一限流时间段的预设限流数是在确定第一限流时间段为初始限流时间段的情况下,根据预设参数确定的。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(Field ProgrammableGate Array,FPGA)、可编程逻辑阵列(Programmable Logic Arrays,PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(Application Specific Integrated Circuit,ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,接收模块410、第一确定模块420和第一处理模块430中的任意多个可以合并在一个模块/子模块/单元中实现,或者其中的任意一个模块/子模块/单元可以被拆分成多个模块/子模块/单元。或者,这些模块/子模块/单元中的一个或多个模块/子模块/单元的至少部分功能可以与其他模块/子模块/单元的至少部分功能相结合,并在一个模块/子模块/单元中实现。根据本公开的实施例,接收模块410、第一确定模块420和第一处理模块430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块410、第一确定模块420和第一处理模块430中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中用于区块链系统的流量控制装置部分与本公开的实施例中用于区块链系统的流量控制方法部分是相对应的,用于区块链系统的流量控制装置部分的描述具体参考用于区块链系统的流量控制方法部分,在此不再赘述。
图5示意性示出了根据本公开实施例的适于实现上文描述的方法的领导节点的框图。图5示出的领导节点仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,根据本公开实施例的领导节点500包括处理器501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从存储部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 503中,存储有领导节点500操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,领导节点500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。系统500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、子模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被共识时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM(Erasable Programmable Read Only Memory,EPROM)或闪存)、便携式紧凑磁盘只读存储器(Computer Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的用于区块链系统的流量控制方法。
在该计算机程序被处理器501执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、子模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(Local Area Network,LAN)或广域网(Wide Area Networks,WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (13)
1.一种用于区块链系统的流量控制方法,应用于所述区块链系统中的领导节点,其中,所述区块链系统中包括多个共识节点,所述领导节点为所述多个共识节点中的一个,所述方法包括:
接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,所述共识交易请求包括待共识交易信息;
在确定所述共识交易请求满足预设条件的情况下,根据当前接收到的所述待共识交易信息生成第一批量待共识交易信息,并确定与所述第一批量待共识交易信息对应的第一限流数;以及
根据所述第一限流数,对所述第一批量待共识交易信息进行共识处理。
2.根据权利要求1所述的方法,还包括:
在生成所述第一批量待共识交易信息之后,根据后续接收到的所述待共识交易信息生成第二批量待共识交易信息,并确定与所述第二批量待共识交易信息对应的第二限流数,其中,所述后续接收到的所述待共识交易信息为在所述第一限流时间段内接收到的;以及
根据所述第二限流数,对所述第二批量待共识交易信息进行共识处理。
3.根据权利要求2所述的方法,还包括:
确定目标批量待共识交易信息共识结束所消耗的共识响应时间,其中,所述目标批量待共识交易信息包括在所述第一限流时间段内的一个或多个批量待共识交易信息;以及
根据所述目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,其中,所述第二限流时间段是所述第一限流时间段的后续限流时间段。
4.根据权利要求3所述的方法,其中,所述目标批量待共识交易信息包括多个;
所述根据所述目标批量待共识交易信息共识结束所消耗的共识响应时间调整与第二限流时间段对应的限流数,包括:
计算多个所述目标批量待共识交易信息共识结束所消耗的共识响应时间的平均值;以及
根据所述平均值调整与第二限流时间段对应的限流数。
5.根据权利要求4所述的方法,其中,所述第二限流时间段具有预设限流数;
所述根据所述平均值调整与第二限流时间段对应的限流数,包括:
在确定所述平均值大于与所述第二限流时间段对应的预设响应时间的情况下,减少所述第二限流时间段的预设限流数,得到与所述第二限流时间段对应的限流数;
在确定所述平均值小于与所述第二限流时间段对应的预设响应时间的情况下,增加所述第二限流时间段的预设限流数,得到与所述第二限流时间段对应的限流数;
在确定所述平均值等于与所述第二限流时间段对应的预设响应时间的情况下,维持与所述第二限流时间段对应的预设限流数。
6.根据权利要求1所述的方法,还包括:
在所述领导节点满足重新选举条件的情况下,执行重新选举操作。
7.根据权利要求1所述的方法,其中,所述根据所述第一限流数,对所述第一批量待共识交易信息进行共识处理,包括:
在确定所述第一限流数大于或等于限流阈值的情况下,对所述第一批量待共识交易信息进行共识处理;以及
在确定所述第一限流数小于所述限流阈值的情况下,向所述客户端和所述其他共识节点发送提示信息,以提示所述第一批量待共识交易信息不能进行共识处理。
8.根据权利要求1~7中任一项所述的方法,其中,所述根据当前接收到的所述待共识交易信息生成第一批量待共识交易信息,包括:
对当前接收到的所述待共识交易信息进行预处理,得到处理后的待共识交易信息,其中,所述预处理包括去重处理和/或排序处理;以及
根据所述处理后的待共识交易信息,生成所述第一批量待共识交易信息。
9.根据权利要求1~7中任一项所述的方法,其中,与所述第一限流时间段对应的限流数是在确定所述第一限流时间段为初始限流时间段的情况下,根据预设参数确定的。
10.一种用于区块链系统的流量控制装置,设置于所述区块链系统中的领导节点,其中,所述区块链系统中包括多个共识节点,所述领导节点为所述多个共识节点中的一个,所述装置包括:
接收模块,用于接收来自客户端和其他共识节点发送的在第一限流时间段内的共识交易请求,其中,所述共识交易请求包括待共识交易信息;
第一确定模块,用于在确定所述共识交易请求满足预设条件的情况下,根据当前接收到的所述待共识交易信息生成第一批量待共识交易信息,并确定与所述第一批量待共识交易信息对应的第一限流数;以及
第一处理模块,用于根据所述第一限流数,对所述第一批量待共识交易信息进行共识处理。
11.一种领导节点,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1~9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1~9中任一项所述的方法。
13.一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时用于实现权利要求1~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248948.9A CN112804351B (zh) | 2021-03-05 | 2021-03-05 | 区块链系统的流量控制方法、装置、节点、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248948.9A CN112804351B (zh) | 2021-03-05 | 2021-03-05 | 区块链系统的流量控制方法、装置、节点、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112804351A true CN112804351A (zh) | 2021-05-14 |
CN112804351B CN112804351B (zh) | 2022-12-23 |
Family
ID=75816636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110248948.9A Active CN112804351B (zh) | 2021-03-05 | 2021-03-05 | 区块链系统的流量控制方法、装置、节点、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804351B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873023A (zh) * | 2021-09-23 | 2021-12-31 | 北京新华夏信息技术有限公司 | 领导节点选举方法、装置、设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577694A (zh) * | 2017-07-14 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
WO2018232490A1 (en) * | 2017-06-22 | 2018-12-27 | Zeu Crypto Networks Inc. | TRANSACTION TRAFFIC FORMAT BASED ON A MULTINIVE QUEUE FOR BLOCK CHAINS |
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
CN110601995A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在区块链网络中控制流量的方法、装置、存储介质和设备 |
CN110619582A (zh) * | 2019-09-18 | 2019-12-27 | 深圳前海微众银行股份有限公司 | 区块链交易方法、装置、设备及计算机存储介质 |
CN110956542A (zh) * | 2019-11-07 | 2020-04-03 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
CN111199485A (zh) * | 2020-01-02 | 2020-05-26 | 支付宝(杭州)信息技术有限公司 | 用于在区块链节点处进行交易数据处理的方法及装置 |
CN111275555A (zh) * | 2020-02-24 | 2020-06-12 | 中国工商银行股份有限公司 | 区块链交易处理方法、交易节点以及区块链系统 |
US20200403776A1 (en) * | 2019-06-18 | 2020-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance |
-
2021
- 2021-03-05 CN CN202110248948.9A patent/CN112804351B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018232490A1 (en) * | 2017-06-22 | 2018-12-27 | Zeu Crypto Networks Inc. | TRANSACTION TRAFFIC FORMAT BASED ON A MULTINIVE QUEUE FOR BLOCK CHAINS |
CN107577694A (zh) * | 2017-07-14 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
US20200403776A1 (en) * | 2019-06-18 | 2020-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance |
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
CN110601995A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在区块链网络中控制流量的方法、装置、存储介质和设备 |
CN110619582A (zh) * | 2019-09-18 | 2019-12-27 | 深圳前海微众银行股份有限公司 | 区块链交易方法、装置、设备及计算机存储介质 |
CN110956542A (zh) * | 2019-11-07 | 2020-04-03 | 支付宝(杭州)信息技术有限公司 | 区块链系统及其运行方法、装置及设备 |
CN111199485A (zh) * | 2020-01-02 | 2020-05-26 | 支付宝(杭州)信息技术有限公司 | 用于在区块链节点处进行交易数据处理的方法及装置 |
CN111275555A (zh) * | 2020-02-24 | 2020-06-12 | 中国工商银行股份有限公司 | 区块链交易处理方法、交易节点以及区块链系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873023A (zh) * | 2021-09-23 | 2021-12-31 | 北京新华夏信息技术有限公司 | 领导节点选举方法、装置、设备和存储介质 |
CN113873023B (zh) * | 2021-09-23 | 2024-04-02 | 北京新华夏信息技术有限公司 | 领导节点选举方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112804351B (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606738B2 (en) | Application testing on a blockchain | |
CN108596623B (zh) | 一种区块链共识达成方法 | |
US10853418B1 (en) | Computer-based systems and methods configured to utilize automating deployment of predictive models for machine learning tasks | |
CN108665363B (zh) | 一种区块链共识达成装置 | |
CN108629588B (zh) | 一种用于区块链共识达成的计算机可读介质 | |
CN108648082B (zh) | 一种用于区块链共识达成的计算机系统 | |
CN110868276A (zh) | 用于物联网设备间的数据传输方法、系统和电子设备 | |
CN110324185B (zh) | 超参数调优方法、装置、服务器、客户端及介质 | |
CA3059719C (en) | Payment processing method, device, medium and electronic device | |
CN112767151A (zh) | 应用于区块链中验证节点的交易处理方法和装置 | |
CN112804351B (zh) | 区块链系统的流量控制方法、装置、节点、介质及产品 | |
CN115170321A (zh) | 批量交易数据的处理方法和装置 | |
CN110223179B (zh) | 资金的数据处理方法、装置、系统、介质 | |
CN113132400B (zh) | 业务处理方法、装置、计算机系统及存储介质 | |
CN113297163B (zh) | 基于区块链的询证函中转系统、方法、装置、设备和介质 | |
CN113096295B (zh) | 排号方法、排号装置、电子设备及计算机可读存储介质 | |
CN110968497A (zh) | 基于树形拦截器的请求校验方法、装置、介质及电子设备 | |
KR20230101442A (ko) | 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법 | |
CN114331446A (zh) | 区块链的链外服务实现方法、装置、设备和介质 | |
CN114328731A (zh) | 信息处理方法、装置、电子设备和存储介质 | |
CN116775231A (zh) | 业务处理方法、业务处理装置、电子设备和存储介质 | |
CN113656313A (zh) | 自动化测试处理方法及装置 | |
CN112953769A (zh) | 数据传输方法、装置、计算机系统及可读存储介质 | |
CN112910643A (zh) | 一种区块链中随机数的生成方法及装置 | |
CN112182400A (zh) | 消息处理方法、消息处理装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |