CN113505343A - 用于确定区块链的出块时间的方法、装置及可读存储介质 - Google Patents
用于确定区块链的出块时间的方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN113505343A CN113505343A CN202110795719.9A CN202110795719A CN113505343A CN 113505343 A CN113505343 A CN 113505343A CN 202110795719 A CN202110795719 A CN 202110795719A CN 113505343 A CN113505343 A CN 113505343A
- Authority
- CN
- China
- Prior art keywords
- time
- transaction
- node
- block
- transactions
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Accounting & Taxation (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Security & Cryptography (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开内容提供了一种用于确定区块链中的出块时间的方法,所述方法包括:由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;由区块链中的共识节点接收区块链系统的内部信息;基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及基于所述交易数量和所述预测时间确定实际出块时间。由于所述方法考虑了区块链的内部信息,从而使得依据本公开内容所提出的技术方案能够基于不同的交易数量以及交易密集程度满足不同业务场景的需求,提高区块链相应速度,提升用户体验满意度。
Description
技术领域
本公开内容涉及区块链技术,更为具体地涉及一种用于确定区块链中的出块时间的方法、用于确定区块链中的出块时间的装置及可读存储介质。
背景技术
在一个联盟链网络中,区块链出块算法通常不考虑恶意节点,所有节点共同参与出块算法的共识过程。共识算法的出块过程就是将交易打包到区块中,并计算区块的哈希,形成一个不可篡改的区块链账本。目前常见的区块打包算法有两个约束变量,一个是区块中的最大交易数量,一个是区块打包最长等待时间,那个条件先达到,则会出一个区块。比如,区块中的最大交易数量是10,区块打包最长等待时间是2秒,如果共识节点收到的交易数量超过10时,或者等待时间超过2秒,则共识节点会打包一个区块。交易打包到区块后,并得到交易节点的验证确认,才能认为交易最终成功。所以向交易节点提交交易提案,然后发送交易给共识节点出块,到交易节点收到区块并验证成功,整个过程是一个交易完整的执行过程。业务系统一般通过区块链应用网关调用区块链交易节点和共识节点,或者业务系统也可以直接调用区块链交易节点和共识节点。
在现实世界中,有些区块链交易通常拥有较高的优先级,需要在其写入区块链的过程中,需要最大程度降低其延迟时间。比如区块链网络在对外提供服务时,根据用户的服务水平或优先级,针对高服务水平和高优先级的用户,其交易在出块时提供更高的响应水平,但是在区块链网络中,由于共识算法出块策略的实现机制,所有交易都会公平对待,根据最大交易数量和最长等待时间的出块策略,会导致高优先级的交易不能及时打包进区块,从而影响其响应水平。此外,区块链交易的频率和业务的频率强相关。区块中的最大交易数量和最长等待时间的出块策略,在交易频率比较低的情况下,无法达到最大交易数量的条件时,会导致交易执行的最终时间达到2秒,在交易频率比较高的情况下,很快到达最大交易数量的条件时,会导致系统大量的出块压力。甚至如果交易频率动态变化时,始终无法达到最佳的出块策略。
发明内容
为了解决不同用户或者业务对于区块链响应时间的要求,本发明的实施例提供了一种用于确定区块链中的出块时间的方法,其特征在于,所述方法包括:
由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
由区块链中的共识节点接收区块链系统的内部信息;
基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
基于所述交易数量和所述预测时间确定实际出块时间。
在依据本公开内容的一个实施例之中,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
在依据本公开内容的一个实施例之中,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
在依据本公开内容的一个实施例之中,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
在依据本公开内容的一个实施例之中,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
在依据本公开内容的一个实施例之中,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
在依据本公开内容的一个实施例之中,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
此外,本公开内容的第二方面还提出了一种用于确定区块链中的出块时间的装置,其特征在于,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
由区块链中的共识节点接收区块链系统的内部信息;
基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
基于所述交易数量和所述预测时间确定实际出块时间。
在依据本公开内容的一个实施例之中,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
在依据本公开内容的一个实施例之中,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
在依据本公开内容的一个实施例之中,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
在依据本公开内容的一个实施例之中,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
在依据本公开内容的一个实施例之中,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
在依据本公开内容的一个实施例之中,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
再者,本公开内容的第三方面还提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本公开内容的第一方面提出的用于确定区块链中的出块时间的方法。
综上所述,由于所述方法考虑了区块链的内部信息,从而使得依据本公开内容所提出的技术方案能够基于不同的交易数量以及交易密集程度满足不同业务场景的需求,提高区块链相应速度,提升用户体验满意度。本发明的其他优势将在下文中进一步说明。
附图说明
结合附图并参考以下详细说明,本发明的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施例,在附图中:
图1示出了依据本公开内容所提出的用于确定区块链中的出块时间的方法100的流程图;
图2示出了在其中能够实施依据图1所示的用于确定区块链中的出块时间的方法100的网络架构的一个实施例200的示意图;
图3示出了依据本发明的一个实施例的用于确定区块链中的出块时间的装置300的示意图;以及
图4示出了依据本发明的另一个实施例的用于确定区块链中的出块时间的装置400的示意图。
具体实施方式
以下参考附图详细描述本发明的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本发明的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
为了解决不同用户或者业务对于区块链响应时间的要求,本发明的实施例提供了一种用于确定区块链中的出块时间的方法,图1示出了依据本公开内容所提出的用于确定区块链中的出块时间的方法100的流程图,从图1之中可以看出,所述方法100至少包括以下四个步骤:
首先,在方法步骤110之中,由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
接着,在方法步骤120之中,由区块链中的共识节点接收区块链系统的内部信息;
然后,在方法步骤130之中,基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
最后,在方法步骤140之中,基于所述交易数量和所述预测时间确定实际出块时间。
由于所述方法考虑了区块链的内部信息,从而使得依据本公开内容所提出的技术方案能够基于不同的交易数量以及交易密集程度满足不同业务场景的需求,提高区块链相应速度,提升用户体验满意度。
在依据本公开内容的一个实施例之中,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
在依据本公开内容的一个实施例之中,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
在依据本公开内容的一个实施例之中,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
在依据本公开内容的一个实施例之中,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
在依据本公开内容的一个实施例之中,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
在依据本公开内容的一个实施例之中,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
举例来说,业务系统或者区块链应用网关在提交交易到共识节点时,可以将系统中的内部信息告知共识节点,为共识节点准确预测接下来的交易数量提供预测数据。提交交易给共识节点的区块链交易提交方在每次提交交易给共识节点时,可附带上以下信息(部分或全部):
N1:待提交给共识节点的交易数量(提交交易)
T1:提交给共识节点的平均时间(提交交易)
N2:正在交易节点上执行的交易数量(执行交易)
T2:在交易节点上执行交易的平均时间(执行交易)
N3:已收到等待在交易节点上执行的交易数量(等待执行交易)
T3:已收到并等待在交易节点上执行的平均等待时间(等待执行交易)
共识节点在收到交易和以上信息时,决定出块策略。共识节点在一个出块时间周期内的出块策略如下:
只要满足最大交易数量和最长出块等待时间,则共识节点立刻打包已有的交易并出块。
未满足最大交易数量和最长出块等待时间时,共识节点根据上述交易中携带的信息计算等待其他交易的时间,并在收到新的交易时自动计算新的等待时间,计算方法如下:
如果N1>0,则计算等待时间为:W1=T1+r1,其中r1为根据历史平均时间计算的随机扰动(可设置为0),否则W1=0。
如果N2>0,则计算等待时间为:W2=T2+W1+r2,其中r2为根据历史平均时间计算的随机扰动(可设置为0),否则W2=0。
如果N3>0,则计算等待时间为:W3=T3+W2+r3,其中r3为根据历史平均时间计算的随机扰动(可设置为0),否则W3=0。
最终等待时间为:T=(a*W1)+(b*W2)+(c*W3),其中a,b,c为内置的权重因子。
图2示出了在其中能够实施依据图1所示的用于确定区块链中的出块时间的方法100的网络架构的一个实施例200的示意图,从图2之中可以看出,共识节点会打包一个区块。交易打包到区块后,并得到交易节点的验证确认,才能认为交易最终成功。所以向交易节点提交交易提案,然后发送交易给共识节点出块,到交易节点收到区块并验证成功,整个过程是一个交易完整的执行过程。业务系统一般通过区块链应用网关调用区块链交易节点和共识节点,或者业务系统也可以直接调用区块链交易节点和共识节点。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
图3示出了依据本发明的一个实施例的用于确定区块链中的出块时间的装置300的示意图。从图3中可以看出,基于区块链的安全多方计算装置300包括处理器310和与处理器310耦接的存储器320。
存储器320存储有指令。指令在由处理器310执行时使得处理器310执行以下动作:
由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
由区块链中的共识节点接收区块链系统的内部信息;
基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
基于所述交易数量和所述预测时间确定实际出块时间。
在依据本公开内容的一个实施例之中,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
在依据本公开内容的一个实施例之中,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
在依据本公开内容的一个实施例之中,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
在依据本公开内容的一个实施例之中,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
在依据本公开内容的一个实施例之中,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
在依据本公开内容的一个实施例之中,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
图4示出了依据本发明的另一个实施例的用于确定区块链中的出块时间的装置400的示意图。应当理解,装置400可以实现为实现图1中的于确定区块链中的出块时间的方法100的功能。从图4中可以看出基于区块链的安全多方计算装置400包括中央处理单元(CPU)401(例如处理器),其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可存储该装置400操作所需的各种程序和数据。CPU 401、ROM402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
装置400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许该装置400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如基于区块链的安全多方计算方法能够由处理单元401执行。例如,在一些实施例中,于确定区块链中的出块时间的方法100可以实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到该装置400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的于确定区块链中的出块时间的方法100中的一个或多个动作或步骤。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
虽然上面描述了本发明的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以被视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本公开内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本公开内容的一方面的计算机可读程序指令,从而实施依据本公开内容的各个方面所公开的技术方案。
此外,本公开内容的第三方面还提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本公开内容的第一方面提出的用于确定区块链中的出块时间的方法。
综上所述,由于所述方法考虑了区块链的内部信息,从而使得依据本公开内容所提出的技术方案能够基于不同的交易数量以及交易密集程度满足不同业务场景的需求,提高区块链相应速度,提升用户体验满意度。
以上所述仅为本公开内容的实施例可选实施例,并不用于限制本发明的实施例,对于本领域的技术人员来说,本发明的实施例可以有各种更改和变化。凡在本发明的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本发明的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本发明的实施例,但是应当理解,本发明的实施例并不限于所公开的具体实施例。本发明的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (15)
1.一种用于确定区块链中的出块时间的方法,其特征在于,所述方法包括:
由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
由区块链中的共识节点接收区块链系统的内部信息;
基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
基于所述交易数量和所述预测时间确定实际出块时间。
2.根据权利要求1所述的方法,其特征在于,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
3.根据权利要求2所述的方法,其特征在于,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
4.根据权利要求3所述的方法,其特征在于,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
5.根据权利要求4所述的方法,其特征在于,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
6.根据权利要求4所述的方法,其特征在于,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
7.根据权利要求4所述的方法,其特征在于,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
8.一种用于确定区块链中的出块时间的装置,其特征在于,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
由区块链中的共识节点接收交易请求,其中,所述交易请求为需要所述共识节点进行共识的交易;
由区块链中的共识节点接收区块链系统的内部信息;
基于所述内部信息预测接下来预定时间段内的交易数量和下一个交易的预测时间;以及
基于所述交易数量和所述预测时间确定实际出块时间。
9.根据权利要求8所述的装置,其特征在于,所述区块链系统的内部信息包括以下信息中的至少一种:
待提交给所述共识节点的交易数量;
提交给所述共识节点的平均时间;
正在交易节点上执行的交易数量;
在所述交易节点上执行交易的平均时间;
已收到等待在交易节点上执行的交易数量;和/或
已收到并等待在交易节点上执行的平均等待时间。
10.根据权利要求8所述的装置,其特征在于,所述交易请求中包括最大交易数量和最长出块时间,基于所述交易数量和所述预测时间确定实际出块时间进一步包括:
基于最大交易数量和最长出块时间预测第一出块时间;
基于所述交易数量和所述预测时间预测第二出块时间;以及
基于所述第一出块时间和所述第二出块时间的比较结果确定实际出块时间。
11.根据权利要求10所述的装置,其特征在于,基于所述交易数量和所述预测时间预测第二出块时间进一步包括:
在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间计算第一等待时间;
在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间和所述第一等待时间计算第二等待时间;
在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间和所述第二等待时间计算第三等待时间;以及
基于所述第三等待时间计算所述第二出块时间。
12.根据权利要求11所述的方法,其特征在于,在待提交给所述共识节点的交易数量大于零的情况下,基于提交给所述共识节点的平均时间和与历史平均时间相关联的第一随机扰动计算第一等待时间。
13.根据权利要求11所述的方法,其特征在于,在正在交易节点上执行的交易数量大于零的情况下,基于在所述交易节点上执行交易的平均时间、所述第一等待时间以及与历史平均时间相关联的第二随机扰动计算第二等待时间。
14.根据权利要求11所述的方法,其特征在于,在已收到等待在交易节点上执行的交易数量大于零的情况下,基于已收到并等待在交易节点上执行的平均等待时间、所述第二等待时间以及与历史平均时间相关联的第三随机扰动计算第三等待时间。
15.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1至7中任一项所述的用于确定区块链中的出块时间的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110795719.9A CN113505343A (zh) | 2021-07-14 | 2021-07-14 | 用于确定区块链的出块时间的方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110795719.9A CN113505343A (zh) | 2021-07-14 | 2021-07-14 | 用于确定区块链的出块时间的方法、装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113505343A true CN113505343A (zh) | 2021-10-15 |
Family
ID=78012579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110795719.9A Pending CN113505343A (zh) | 2021-07-14 | 2021-07-14 | 用于确定区块链的出块时间的方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505343A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083221A (zh) * | 2019-12-13 | 2020-04-28 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN112491983A (zh) * | 2020-11-13 | 2021-03-12 | 南方科技大学 | 基于区块链的智能合约调度方法、装置、设备及存储介质 |
CN112767151A (zh) * | 2021-01-15 | 2021-05-07 | 中国工商银行股份有限公司 | 应用于区块链中验证节点的交易处理方法和装置 |
-
2021
- 2021-07-14 CN CN202110795719.9A patent/CN113505343A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083221A (zh) * | 2019-12-13 | 2020-04-28 | 北京菲林方德科技有限公司 | 一种交易验证方法及装置 |
CN112491983A (zh) * | 2020-11-13 | 2021-03-12 | 南方科技大学 | 基于区块链的智能合约调度方法、装置、设备及存储介质 |
CN112767151A (zh) * | 2021-01-15 | 2021-05-07 | 中国工商银行股份有限公司 | 应用于区块链中验证节点的交易处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
胡文博: "软件定义网络在多租户数据中心中的关键问题研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789544B2 (en) | Batching inputs to a machine learning model | |
CN106899666B (zh) | 一种针对业务标识的数据处理方法及装置 | |
CN108566420A (zh) | 用于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN110930157B (zh) | 延时交易处理方法、设备和存储介质 | |
CN110099012B (zh) | 一种流量控制方法、系统及电子设备和存储介质 | |
US20200387382A1 (en) | Mechanism for instruction fusion using tags | |
CN107196772A (zh) | 一种广播消息的方法及装置 | |
CN108920183B (zh) | 一种业务决策方法、装置及设备 | |
CN112735407A (zh) | 一种对话处理方法及装置 | |
CN111061485A (zh) | 任务处理方法、编译器、调度服务器和介质 | |
US9542523B2 (en) | Method and apparatus for selecting data path elements for cloning | |
CN113505343A (zh) | 用于确定区块链的出块时间的方法、装置及可读存储介质 | |
CN112202596A (zh) | 基于时间敏感网络系统的抽象模型构建装置 | |
CN113254191A (zh) | 用于运行应用的方法、电子设备和计算机程序产品 | |
CN110381150A (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 | |
CN112817701B (zh) | 定时器处理方法、装置、电子设备和计算机可读介质 | |
CN115470901A (zh) | 支持移动端异构处理器分载的混合精度训练方法及设备 | |
KR101674324B1 (ko) | 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 | |
CN113504978A (zh) | 用于确定区块链的出块时间的方法、装置及可读存储介质 | |
KR20230101442A (ko) | 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법 | |
CN109598511B (zh) | 一种账户风险识别方法、装置及设备 | |
JP4271072B2 (ja) | ソフトウェア検証モデル生成方法 | |
CN112799858A (zh) | 异构联合仿真环境下的异构仿真模型数据处理方法及系统 | |
CN112214287A (zh) | 应用软件的业务控制方法及装置、电子设备 | |
Drosos et al. | Real-time communication protocol development using SDL for an embedded system on chip based on ARM microcontroller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211015 |
|
WD01 | Invention patent application deemed withdrawn after publication |