CN113393061A - 一种基于区块链的交易打包方法和相关装置 - Google Patents
一种基于区块链的交易打包方法和相关装置 Download PDFInfo
- Publication number
- CN113393061A CN113393061A CN202110940031.5A CN202110940031A CN113393061A CN 113393061 A CN113393061 A CN 113393061A CN 202110940031 A CN202110940031 A CN 202110940031A CN 113393061 A CN113393061 A CN 113393061A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- ith
- transaction number
- ith block
- 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
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
本申请实施例公开了一种基于区块链的交易打包方法和相关装置,在生成第i个区块之前,获取区块链上已经生成的、第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,并结合第i个区块对应的预设生成时长,确定出第i个区块对应的预测交易笔数。将预测交易笔数作为第i个区块对交易即将进行打包的依据,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块。由此,即使区块链系统的交易笔数变动较大,通过将第i个区块的预测交易笔数作为对交易进行打包的依据,从而动态调整交易笔数阈值,避免一直基于数值较大的交易笔数阈值进行打包,或一直基于数值较小的交易笔数阈值进行打包,提高系统每秒钟处理的交易数量。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的交易打包方法和相关装置。
背景技术
区块链包括一系列按照产生的先后时间顺序相互接续的区块 (Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
在共识阶段,领导(leader)节点根据交易的时间戳将待共识的交易进行定序,根据预先设置的交易笔数阈值,当收集的交易笔数达到交易笔数阈值,将收集的交易进行打包,然后执行合约,再将打包的交易连同对应的合约执行结果生成新的区块,实现区块链的不断增长。
相关技术中,一般是根据区块链系统运行的经验值人为设置交易笔数阈值,交易笔数阈值的设置会影响每个区块中的交易笔数、出块频率等,从而影响区块链系统每秒钟处理的交易或事务的数量(Transaction Per Second,TPS)。但是该种方式仅适用于交易笔数较为平稳的系统,若系统的交易笔数变动较大,导致人为设置的交易笔数阈值与系统的实际交易笔数差值较大,会降低区块链系统的TPS。
发明内容
为了解决上述技术问题,本申请提供了一种基于区块链的交易打包方法和相关装置,用于提高区块链系统的TPS。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种基于区块链的交易打包方法,所述方法包括:
在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
另一方面,本申请实施例提供一种基于区块链的交易打包装置,所述装置包括:获取单元、确定单元和打包单元;
所述获取单元,用于在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
所述确定单元,用于根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
所述打包单元,用于基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
另一方面,本申请实施例提供一种计算机设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的方法。
由上述技术方案可以看出,区块链中的区块,如第k个区块是将收集到的交易进行打包后生成的,在生成第k个区块后能够确定其对应的实际交易笔数和实际生成时长。若想生成第i个区块,获取区块链上已经生成的、第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,根据前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长,确定出第i个区块对应的预测交易笔数。故,即使区块链系统的交易笔数变动较大,也可以根据已经生成的区块的实际交易笔数和实际生成时长预测出第i个区块的预测交易笔数,将预测交易笔数作为第i个区块对交易即将进行打包的依据,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块。由此,即使区块链系统的交易笔数变动较大,通过预测第i个区块的预测交易笔数,可以不断获得区块链中想要生成的区块对交易进行打包的依据,从而动态调整交易笔数阈值,避免一直基于数值较大的交易笔数阈值进行打包,或一直基于数值较小的交易笔数阈值进行打包,从而提高区块链系统的TPS。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种数据共享系统的示意图;
图1B为本申请实施例提供的一种区块链的示意图;
图1C为本申请实施例提供的一种产生新区块的示意图;
图2为本申请实施例提供的一种基于区块链的交易打包方法的应用场景示意图;
图3为本申请实施例提供的一种基于区块链的交易打包方法的流程图;
图4为本申请实施例提供的一种基于区块链的交易打包装置的示意图;
图5为本申请实施例提供的一种基于区块链的交易打包装置的示意图;
图6为本申请实施例提供的服务器的结构示意图;
图7为本申请实施例提供的终端设备的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
本申请实施例涉及区块链技术。区块链是指一套去中心化、具备分布式存储特点的基础架构,具体是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,能够安全存储有先后关系的、能在系统内进行验证的数据,并以密码学方式保证数据不可篡改和不可伪造。
参见图1A所示的数据共享系统,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1B,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图1C,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足公式(1):
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
如果忽略区块从打包交易到达成共识的耗时,仅从交易处理的时长来看,在交易笔数阈值一定的情况下,对于交易笔数变动较大的区块链系统,若收集的交易笔数越大,则生成新的区块的速度越快,用户也会更快从区块链上获取到交易结果。但随着交易笔数减少,收集的交易达到交易笔数阈值的时长也会增大,从而生成新的区块的速度越慢,也就意味着单笔交易处理时长变长,导致区块链系统TPS降低。
由此,若将交易笔数阈值设置成为较大的数值,当收集的交易笔数远小于交易笔数阈值时,会导致单笔交易处理时长变长,区块链系统TPS降低;若将交易笔数阈值设置成较为小的数值,当收集的交易笔数远高于交易笔数阈值时,收集的交易笔数会被分到更多的区块中,增加了区块达成共识的耗时,降低了系统TPS。也就是说,若区块链系统的交易笔数变动较大,导致人为设置的交易笔数阈值与系统的实际交易笔数差值较大,会降低区块链系统的TPS。
基于此,本申请实施例提供一种基于区块链的交易打包方法和相关装置,通过预测交易笔数的变化,动态调整用于打包的交易笔数阈值,避免出现交易笔数阈值与系统的实际交易笔数差值较大,从而提高区块链系统的TPS。
本申请提供的基于区块链的交易打包方法可以应用于具有数据处理能力的基于区块链的交易打包设备,如终端设备、服务器。其中,终端设备具体可以为智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为了便于理解本申请的技术方案,下面结合实际应用场景,以服务器作为基于区块链的交易打包设备对本申请实施例提供的基于区块链的交易打包方法进行介绍。
参见图2,该图为本申请实施例提供的一种基于区块链的交易打包方法的应用场景示意图。在图2所示的区块链中,包括三个已经生成的区块,分别为区块K0、区块K1和区块K2,准备生成区块K3,此时i=4。
其中,区块K0的实际交易笔数为Y0,实际生成时长为X0;区块K1的实际交易笔数为Y1,实际生成时长为X1;区块K2的实际交易笔数为Y2,实际生成时长为X2,区块的实际交易笔数标识出为了打包该区块,实际需要收集并打包的交易数量,区块的实际生成时长为从开始收集交易到打包区块且出块所耗费的时长。下面以区块K0为例进行说明,其他区块同理,在此不再赘述。
区块K0的区块头中输入信息特征值中包括交易列表,交易列表中记载着已经打包的实际交易,由此可以获得区块K0是基于实际交易笔数为Y1的交易生成的。通过区块头中存储的时间戳可以获取到生成区块K0所需的实际生成时长为X1。
下面以n=3为例说明生成第4个区块K3的过程。
虽然区块链系统中的交易笔数不会基本保持不变,但是其近期变化会存在一定规律,故可以基于区块链中近期已经生成的区块的实际交易笔数和实际生成时长预测下一个区块可能发生的预测交易笔数。具体地,根据区块链上已经生成的、第4个区块K3的前3个区块,即区块K0、区块K1和区块K2分别对应的实际交易笔数和实际生成时长、以及区块K3对应的预设生成时x3,预测区块K3对应的预测交易笔数y3。
即使区块链系统的交易笔数变动较大,由于预测交易笔数y3较为符合区块链近期生成区块的规律,也可以将预测交易笔数y3作为区块K3对交易即将进行打包的依据,根据在区块K3对应的预设生成时长x3内获取的交易进行打包得到区块K3。
由此,即使区块链系统的交易笔数变动较大,通过预测第i个区块的预测交易笔数,可以不断获得区块链中想要生成的区块对交易进行打包的依据,从而动态调整交易笔数阈值,避免一直基于数值较大的交易笔数阈值进行打包,或一直基于数值较小的交易笔数阈值进行打包,从而保证系统TPS一直处于较高的数值。
下面结合附图,以包括区块链系统的服务器作为基于区块链的交易打包设备,对本申请实施例提供的一种基于区块链的交易打包方法进行介绍。
参见图3,该图为本申请实施例提供的一种基于区块链的交易打包方法的流程图。如图3所示,该数据处理方法包括以下步骤:
S301:在生成第i个区块之前,获取区块链上第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长。
在共识阶段,leader节点将待共识的交易进行定序,当收集的交易笔数达到预先设置的交易笔数阈值时,将收集的、数量等于交易笔数阈值的交易进行打包,以便生成新的区块,从而实现区块链的不断增长。
其中,区块链系统接收的交易笔数,又或者区块链系统的交易并发量不会基本保持不变,会出现增加或减少的情况,甚至是突然增加或突然减少的情况。其中,交易并发数是指在某一时刻收集到的交易的数量。
例如,若使用数值较大的交易笔数阈值,当收集的交易笔数远小于交易笔数阈值时,会导致单笔交易处理时长变长,区块链系统TPS降低;若使用数值较小的交易笔数阈值,当收集的交易笔数远高于交易笔数阈值时,收集的交易会被分到更多的区块中,增加了区块达成共识的耗时,降低了系统TPS。
故此,为了提高系统TPS,本申请基于区块链系统接收交易笔数的变化规律,预测出下一个将要被打包的区块的预测交易笔数,该预测交易笔数能够基本匹配该区块链系统的即将要生成的区块的实际情况,从而以此为交易打包依据,动态调整用于打包的交易笔数阈值,提高区块链系统的TPS。
下面以生成第i个区块为例对区块链生成新的区块进行说明。
若以时间作为平面直角坐标系的x轴,实际交易笔数作为平面直角坐标系的y轴,则区块链系统的实际交易笔数与时间变化的曲线是不规则变化的曲线,即区块链系统的下一个区块对应的曲线与前几个区块对应的曲线相关性更高。为了保证预测的准确性,无需获取区块链上所有的区块分别对应的实际交易笔数和实际生成时长,而是仅获取区块链上第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长。
其中,前n个区块是指,当区块链系统启动后,获取区块链上最后n个出块的区块,即与第n+1个即将生成的区块在出块时间上相邻最近的n个区块。前n个区块中的第k个区块是基于第k个区块对应的实际交易笔数的交易,通过第k个区块的实际生成时长生成的。本申请实施例不具体限定n的具体数值,本领域技术人员可以根据实际需要进行设置。
作为一种可能的实现方式,n可以根据实际需要进行设置,后续所用的一元多项式可以根据n的数值进行设置,如将一元多项式设置为一元n-1次多项式,使得一元多项式的不同次项对应的系数值可以被求解。例如,当n设置为3的时候,可以将一元多项式设置为一元二次多项式,一元二次多项式中包括三个系数值,通过“降次”的方式将其化为三个一元一次方程式,使得可以被求解,具体求解过程可以参见后续公式(2)-公式(8),在此不再赘述。
S302:根据前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长,确定第i个区块对应的预测交易笔数。
通过前n个区块分别对应的实际交易笔数和实际生成时长,可以确定出区块链系统在近一段时间内生成的区块,其实际交易笔数和实际生成时长的变化关系。该变化关系具有一定的连续性,即下一个即将生成的区块的实际交易笔数和实际生成时长间理论上也符合该变化关系。故基于该变化关系,通过第i个区块对应的预设生成时长,可以确定出第i个区块对应的预测交易笔数。
本申请实施例不具体限定该变化关系的表示形式,下面以该变化关系为一元多项式为例进行说明。该一元多项式能够表征第i个区块的前n个区块分别对应的交易笔数和实际生成时长的拟合关系,该拟合关系可以表征区块链系统近一段时间内生成的区块,其实际交易笔数和实际生成时长的变化关系。在获取该一元多项式之后,可以将前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长代入一元多项式,确定第i个区块对应的预测交易笔数。
本申请实施例不具体限定一元多项式的具体形式,下面以一元多项式为一元n-1次多项式为例进行说明。
一元n-1次多项式中包括n-1个j次项,每个j次项对应一个系数值,。可以理解的是,有的系数值可以为0,在形式上该j次项不显示在一元n-1次多项式中。根据前n个区块分别对应的实际交易笔数和实际生成时长,确定一元n-1次多项式中j次项分别对应的系数值,基于n-1个j次项分别对应的系数值得到一元n-1次多项式。
下面以n=3,即一元二次多项式为例说明一元多项式的建立过程。
首先,建立一个用于得到适用于第i个区块的一元二次多项式的中间一元二次多项式,该中间一元二次多项式可以表示为公式(2):
当区块链系统启动后,可以获取区块链上最后三个区块,即第i个区块的前3个区块,分别为区块、区块和区块。为了方便说明,下面以i=3为例进行说明,通过区块、区块以及区块的实际交易笔数和实际生成时长确定区块的预测交易笔数。
将公式(9)进行形式上的转换,可以得到适用于第i个区块的预测交易笔数的一元二次多项式,可以表示为公式(10):
其中,不同次项对应的系数可以通过公式(6)-(8)获得,即可以通过第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长获得,通过第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块的预设生成时长可以获得第i个区块的预测交易笔数。
综上所述,在获得区块、区块和区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长后,代入公式(10),其中,公式(10)中不同次项对应的系数的数值可以通过区块、区块和区块分别对应的实际交易笔数和实际生成时长确定。由此,再依据第i个区块的预设生成时长,可以确定第i个区块对应的预测交易笔数。
其中,预设生成时长是第i个区块可能对应的生成区块所需的时长,本申请实施例不具体限定预设生成时长的设置方式,后续会以两种方式为例进行说明,在此不再赘述。
S303:基于第i个区块对应的预测交易笔数,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块。
第i个区块的预测交易笔数是根据区块链上近期已经生成的区块的实际交易笔数和实际生成时长预测出的,第i个区块的预测交易笔数与第i个区块的实际交易笔数较为接近,将第i个区块的预测交易笔数作为第i个区块对交易即将进行打包的依据,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块,以保证系统TPS不被降低。
由上述技术方案可以看出,区块链中的区块,如第k个区块是将收集到的交易进行打包后生成的,在生成第k个区块后能够确定其对应的实际交易笔数和实际生成时长。若想生成第i个区块,获取区块链上已经生成的、第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,根据前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长,确定出第i个区块对应的预测交易笔数。故,即使区块链系统的交易笔数变动较大,也可以根据已经生成的区块的实际交易笔数和实际生成时长预测出第i个区块的预测交易笔数,将预测交易笔数作为第i个区块对交易即将进行打包的依据,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块。由此,即使区块链系统的交易笔数变动较大,通过预测第i个区块的预测交易笔数,可以不断获得区块链中想要生成的区块对交易进行打包的依据,从而动态调整交易笔数阈值,避免一直基于数值较大的交易笔数阈值进行打包,或一直基于数值较小的交易笔数阈值进行打包,从而提高区块链系统的TPS。
如果在预设生成时长内,获取的交易笔数等于第i个区块对应的预测交易笔数,此时可以执行后续共识打包等操作。但是在实际应用中,第i个区块在预设生成时长内收集的交易笔数可能与第i个区块对应的预测交易笔数存在差距。例如,第i个区块在预设生成时长内收集的交易笔数可能大于第i个区块对应的预测交易笔数,还可能小于第i个区块对应的预测交易笔数,针对不同的情况,本申请实施例提供了两种交易打包方式,下面分别进行说明。
情况一:第i个区块在预设生成时长内收集的交易笔数大于或等于第i个区块对应的预测交易笔数。
在第i个区块对应的预设生成时长内,若获取的交易笔数大于或等于第i个区块对应的预测交易笔数,说明区块链系统接收的交易数量相比于第i-1个区块的实际交易笔数增多或持平。此时,可以根据等于第i个区块对应的预测交易笔数的交易得到第i个区块。相比于相关技术中设置较小的交易笔数阈值,根据与区块链实际接收的交易笔数相近的预测交易笔数进行打包,避免了交易被分配至更多的区块中,提高了系统TPS。
此时,将当前收集到的交易对应的数量,即预测交易笔数作为第i个区块对应的实际交易笔数,将生成第i个区块所用的时间作为第i个区块对应的实际生成时长,结合第i个区块的前n-1个区块分别对应的实际交易笔数和实际生成时长,可以更新前述所述一元n-1次多项式中n-1个j次项分别对应的系数值,从而得到更新后的一元n-1次多项式。
基于更新后的一元n-1次多项式可以确定第i+1个区块的预测交易笔数,具体地,通过将第i+1个区块的前n个区块(第i个区块及其前n-1个区块)分别对应的实际交易笔数和实际生成时长、以及第i+1个区块对应的预设生成时长代入更新后的一元n-1次多项式,可以确定出第i+1个区块对应的预测交易笔数。
情况二:第i个区块在预设生成时长内收集的交易笔数小于第i个区块对应的预测交易笔数。
在第i个区块对应的预设生成时长时,若获取的交易笔数小于第i个区块对应的预测交易笔数,说明区块链系统接收的交易数量相比于第i-1个区块的实际交易笔数减少,可能会出现收集到的交易迟迟无法达到预测交易笔数,导致单笔交易处理时长变长,导致系统TPS降低。
为了提高系统TPS,当区块链系统收集交易的时间达到预设生成时长时,且收集到的交易数量没有达到预测交易笔数时,此时可以将当前收集到的交易进行打包,即根据在收集交易的时长达到预设生成时长时、收集到的小于第i个区块对应的预测交易笔数的交易进行打包,得到第i个区块,以保证单笔交易上链的实时性。
此时,将当前收集到的交易笔数作为第i个区块对应的实际交易笔数,将生成第i个区块所用的时长,即预设生成时长作为第i个区块对应的实际生成时长,结合第i个区块的前n-1个区块分别对应的实际交易笔数和实际生成时长,可以更新前述所述一元n-1次多项式中n-1个j次项分别对应的系数值,从而得到更新后的一元n-1次多项式。
基于更新后的一元n-1次多项式可以确定第i+1个区块的预测交易笔数,具体地,通过将第i+1个区块的前n个区块(第i个区块及其前n-1个区块)分别对应的实际交易笔数和实际生成时长、以及第i+1个区块对应的预设生成时长代入更新后的一元n-1次多项式,可以确定出第i+1个区块对应的预测交易笔数。
由此,若在预设生成时长内,收集到的第i个区块的实际交易笔数达到预测交易笔数,则说明当前区块链系统的交易量比预测交易笔数要多,按照预测交易笔数对第i个区块收集到的交易进行打包,以避免由于相关技术中交易笔数阈值较小导致产生不必要的区块的问题,提高了系统TPS。若在预设生成时长时,收集到的第i个区块的实际交易笔数没有达到预测交易笔数,则说明当前区块链系统的交易笔数比预测交易笔数要少,按照预设生成时长收集的交易数量对第i个区块当前收集到的交易进行打包,从而避免由于交易量下降导致的生成区块速度变慢,交易处理时长变长的问题,以便满足响应的实时性。
需要说明的是,在生成第i+1个区块前,由于第i+1个区块的前n个区块发生变化,故可以及时更新适用于第i+1个区块的一元多项式,以便根据一元多项式确定出的第i+1个区块对应的预测交易笔数更符合第i+1个区块的实际情况。
但是,若预设生成时长的数值设置不合理,例如为了保证单笔交易上链的实时性,设置数值较小的预设生成时长,当区块链系统收集的交易数量较大,且未达到预测交易笔数时,交易会被分到更多的区块中,降低了系统TPS。基于此,本申请实施例提供了两种设置预设生成时长的方式,下面具体进行说明。
方式一:根据区块链中区块的实际生成时长的最大时长,确定第i个区块对应的预设生成时长。
其中,区块链中区块的实际生成时长的最大时长,即区块链系统允许的、最大的、两个区块的生成完成时间的时间间隔中的最大值,该最大值符合当前区块链系统的实际情况,不会特别大导致单笔交易上链的实时性无法保证,也不会特别小导致区块的生成速度较快,降低系统TPS,将其确定为预设生成时长,可以在一定程度上保证单笔交易上链的实时性与系统TPS不被降低。
方式二:根据第i-1个区块的实际生成时长和生成时长阈值间的关系,基于第i-1个区块的实际生成时长,调整得到第i个区块对应的预设生成时长。
虽然区块链系统接收的交易笔数存在波动,但是相邻的区块间具有一定相似性,故可以将第i个区块对应的预设生成时长设置为与第i-1个区块的实际生成时长相等的数值。在区块链系统收集的交易笔数持续减小的情况下,通过设置与前一个区块实际生成时长相等的预设生成时长,可以基本保证区块的实际生成时长基本保持不变,即保证了单笔交易上链的实时性,保证了区块链系统的实时性。
但是,当随着区块链系统收集的交易笔数在不断增大时,对应的该区块的实际生成时长变少,但如果该区块对应的实际生成时长较小,会造成区块的生成速度较快、频率过高,从而影响系统TPS。故可以在此基础上,对预设生成时长进行调整,下面具体进行说明。
作为一种可能的实现方式,生成时长阈值的大小可以依据系统TPS进行设置,如在不影响系统TPS的前提下,将区块的生成速度最大值对应的生成时长作为生成时长阈值。
第i-1个区块的实际生成时长和生成时长阈值间的关系可以分为两种情况,依据不同的情况,对应不同的调整方式,下面分别进行说明。
情况一:第i-1个区块的实际生成时长大于或等于生成时长阈值。
此时,若将第i个区块的预设生成时长设置为与第i-1个区块的实际生成时长相等,不会导致区块的生成速度较快、频率过高,影响系统TPS,故可以将第i-1个区块的实际生成时长调整为第i个区块的预设生成时长。
情况二:第i-1个区块的实际生成时长小于生成时长阈值。
此时,若将第i个区块的预设生成时长设置为与第i-1个区块的实际生成时长相等,会导致区块的生成速度较快、频率过高,影响系统TPS,故可以将第i-1个区块的实际生成时长适当扩大,作为第i个区块的预设生成时长。
本申请不具体限定将第i-1个区块的实际生成时长扩大的方式,可以根据区块链系统的实际运行需要进行设置。例如,可以设置一个大于1的系数,将该系数与第i-1个区块的实际生成时长相乘,得到第i个区块的预设生成时长。该系数可以为固定值,如1.2等,也可以为一种函数关系,如等。
需要说明的是,在将第i-1个区块的实际生成时长适当扩大调整得到第i个区块的预设生成时长的过程中,第i个区块的预设生成时长不应超过区块链中区块的实际生成时长的最大时长,以保证第i个区块的预设生成时长不会较大,导致区块的生成速度较慢,影响单笔交易上链的实时性。
作为一种可能的实现方式,确定的第i个区块对应的预测交易笔数可能会比第i-1个区块的实际交易笔数多,由此可能导致第i个区块对应的预测交易笔数可能超出区块链系统的处理能力,导致系统TPS被降低。故此,可以通过系统TPS确定出第i个区块可以处理的交易笔数的上限值,即第i个区块的上限交易笔数。若第i个区块对应的预测交易笔数小于或等于第i个区块的上限交易笔数,执行前述S303。若第i个区块对应的预测交易笔数大于第i个区块的上限交易笔数,将第i个区块的上限交易笔数作为第i个区块对应的预测交易笔数,再执行前述S303。
为了方便说明,下面以第i个区块为例,对第i个区块的上限交易笔数的确定过程进行说明。
区块的实际生成时长包括第一时长和第二时长,其中,第一时长为从收集该区块对应的第一笔交易到最后一笔交易所耗费的时间,第二时长为将获取的交易从进行打包至在区块链中达成共识并记录到区块链上所耗费的时间。将第i个区块的预设生成时长表示为x3,将第i个区块的第一时长表示为,将第i个区块的第二时长表示为。
其中,第i个区块的第二时长可以通过区块链系统获取,例如,在区块链系统中,将leader节点记录发起共识的开始时间直到达成共识,并将该段时长记录在区块链中所耗费的时间,作为第二时长。第i个区块的第二时长与收集到的交易笔数成正比,即随着该区块链收集的交易笔数增加,对应的第i个区块的第二时长也随之增加。
假定不同类型(例如场内交易、场外交易等类型)合约交易在不同时间段分布是均匀的,即,任意两个等长时间段,统计其交易笔数中,指定合约交易的占比基本相同,例如,在8点-9点时间段内收集到100笔交易,其中A类型交易与B类型交易各占比50%,在9点-10点时间段内收集到1000笔交易,其中A类型交易与B类型交易各占比50%。以信用卡支付为例,合约交易类型可以为刷卡支付操作对应的合约交易类型、转账支付操作对应的合约交易类型等。由此,可以得到公式(11):
同理,假定该区块收集的交易笔数在不同时间段分布是均匀的,即,任意两个等长时间段,统计其交易笔数的占比基本相同,则可以得到公式(12):
由此,根据第i-1个区块的第一时长、第i-1个区块的第二时长、第i-1个区块的实际交易笔数和区块链中区块的实际生成时长的最大时长,确定第i个区块在第i个区块的预设生成时长内的上限交易笔数。
通过将区块的实际生成时长拆分为第一时长和第二时长,确定第i个区块的上限交易笔数,可以保证系统TPS不被降低。与此同时,假定在预设生成时间内,第i个区块收集的交易笔数持续增加,当第i个区块收集的交易笔数超过区块链系统的处理能力,表现为系统TPS出现峰值后又呈下降趋势,即单笔交易在区块链中达成共识对应的第二时长逐渐变长。通过引入第二时长,可以间接达到了限流的效果,因为第二时长会反馈到生成第i个区块的实际生成时长中,第二时长变长,从而为了满足系统实时性的预期配置,收集的交易笔数预期会减少,从而达到限流的效果。但是该限流效果较为平缓,不适用于区块链系统的过载能力较差的系统。
作为一种可能的实现方式,在同一区块的交易执行不同复杂度的合约,且合约耗时差异较大的场景中,若该区块收集了200笔、后续合约耗时较低的交易,可以很快生成该区块,但是若该区块收集了200笔、后续合约耗时较高的交易,生成该区块的速度会大大增加,从而影响单笔交易上链的实时性。故可以通过识别交易类型,控制收集的交易中合约耗时较久的交易笔数,从而敏感地控制打包,保证单笔交易上链的实时性。
下面以获取的交易从进行打包至在区块链中达成共识对应的第二时长包括第一子时长和第二子时长,第一子时长和第二子时长是执行不同类型合约对应的时长,且第一子时长大于第二子时长为例进行说明。
若第一子时长和第二子时长的差值超过合约时长阈值,说明二者执行的合约耗时差异较大,识别第一子时长对应的目标交易类型,即二者中时长较长的时长对应类型的合约,其对应的交易类型,目标交易类型在后续达成共识的耗时会较长,则可以在第i个区块对应的预设生成时长内,降低获取的目标交易类型对应的交易后再执行S303,以保证第i个区块的生成速度。
为了更好的理解本申请实施例提供的基于区块链的交易打包方法,下面以一个实施例为例进行说明。
在该实施例中,区块链系统已经生成了三个区块,分别为区块K0、区块K1和区块K2,准备生成区块K3,此时i=4。
服务器获取区块K0的实际交易笔数为100笔,实际生成时长为3秒;区块K1的实际交易笔数为100笔,实际生成时长为2秒;区块K2的实际交易笔数为100笔,实际生成时长为1秒。 服务器根据区块K0、区块K1和区块K2分别对应的实际交易笔数和实际生成时长,以及区块K3的预设生成时长1秒,代入公式(6)、(7)和(10)得到区块K3的预测交易笔数y3约为533笔。
由于服务器确定出的区块K3在预设生成时长1秒内的上限交易笔数为200笔,故将200笔作为区块K3的预测交易笔数。在区块K3对应的预设生成时长1秒内,若获取的交易笔数为200笔,则将当前收集到的200笔交易进行打包得到区块K3;若获取的交易笔数为100笔,则将当前收集到的100笔交易进行打包得到区块K3。
针对上述实施例提供的基于区块链的交易打包方法,本申请实施例还提供了基于区块链的交易打包装置。
参见图4,该图为本申请实施例提供的一种基于区块链的交易打包装置的示意图。如图4所示,该基于区块链的交易打包装置400包括获取单元401、确定单元402和打包单元403;
所述获取单元401,用于在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
所述确定单元402,用于根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
所述打包单元403,用于基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
作为一种可能的实现方式,请参考图5,区块的实际生成时长包括区块获取交易对应的第一时长和获取的交易从进行打包至在所述区块链中达成共识对应的第二时长,所述装置400还包括判断单元404,用于:
根据第i-1个区块的第一时长、所述第i-1个区块的第二时长、所述第i-1个区块的实际交易笔数和区块链中区块的实际生成时长的最大时长,确定所述第i个区块在所述第i个区块的预设生成时长内的上限交易笔数;
若所述第i个区块对应的预测交易笔数小于或等于所述第i个区块的上限交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤;
若所述第i个区块对应的预测交易笔数大于所述第i个区块的上限交易笔数,将所述第i个区块的上限交易笔数作为所述第i个区块对应的预测交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤。
作为一种可能的实现方式,所述确定单元402,用于:
获取一元多项式,所述一元多项式表征所述前n个区块分别对应的实际交易笔数和实际生成时长的拟合关系;
通过将所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长代入所述一元多项式,确定所述第i个区块对应的预测交易笔数。
作为一种可能的实现方式,请参考图5,所述一元多项式为一元n-1次多项式,所述装置400还包括多项式确定单元405,用于:
基于所述n-1个j次项分别对应的系数值得到所述一元n-1次多项式。
作为一种可能的实现方式,请参考图5,所述打包单元403,用于:
在所述第i个区块对应的预设生成时长内,若获取的交易笔数等于所述第i个区块对应的预测交易笔数,根据所述等于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块;
在所述第i个区块对应的预设生成时长时,若获取的交易笔数小于所述第i个区块对应的预测交易笔数,根据所述小于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块。
作为一种可能的实现方式,请参考图5,所述装置400还包括预设生成时长确定单元406,用于:
根据所述区块链中区块的实际生成时长的最大时长确定所述第i个区块对应的预设生成时长。
作为一种可能的实现方式,请参考图5,所述装置400还包括预设生成时长确定单元406,用于:
根据所述第i-1个区块的实际生成时长和生成时长阈值间的关系,基于所述第i-1个区块的实际生成时长,调整得到所述第i个区块对应的预设生成时长。
作为一种可能的实现方式,请参考图5,所述第二时长包括第一子时长和第二子时长,所述第一子时长和所述第二子时长是执行不同类型合约对应的时长,所述第一子时长大于所述第二子时长,所述装置400还包括调整单元407,用于:
若所述第一子时长和所述第二子时长的差值超过合约时长阈值,识别所述第一子时长对应的目标交易类型;
降低在所述第i个区块对应的预设生成时长内获取的所述目标交易类型对应的交易,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤。
本申请实施例提供的基于区块链的交易打包装置,区块链中的区块,如第k个区块是将收集到的交易进行打包后生成的,在生成第k个区块后能够确定其对应的实际交易笔数和实际生成时长。若想生成第i个区块,获取区块链上已经生成的、第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,根据前n个区块分别对应的实际交易笔数和实际生成时长、以及第i个区块对应的预设生成时长,确定出第i个区块对应的预测交易笔数。故,即使区块链系统的交易笔数变动较大,也可以根据已经生成的区块的实际交易笔数和实际生成时长预测出第i个区块的预测交易笔数,将预测交易笔数作为第i个区块对交易即将进行打包的依据,根据在第i个区块对应的预设生成时长内获取的交易进行打包得到第i个区块。由此,即使区块链系统的交易笔数变动较大,通过预测第i个区块的预测交易笔数,可以不断获得区块链中想要生成的区块对交易进行打包的依据,从而动态调整交易笔数阈值,避免一直基于数值较大的交易笔数阈值进行打包,或一直基于数值较小的交易笔数阈值进行打包,从而提高区块链系统的TPS。
前述所述的基于区块链的交易打包设备可以为一种计算机设备,该计算机设备可以为服务器,还可以为终端设备,下面将从硬件实体化的角度对本申请实施例提供的计算机设备进行介绍。其中,图6所示为服务器的结构示意图,图7所示为终端设备的结构示意图。
参见图6,图6是本申请实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(CentralProcessing Units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,CPU 1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图6所示的服务器结构。
其中,CPU 1422用于执行如下步骤:
在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
可选的,CPU 1422还可以执行本申请实施例中基于区块链的交易打包方法任一具体实现方式的方法步骤。
参见图7,图7为本申请实施例提供的一种终端设备的结构示意图。图7示出的是与本申请实施例提供的终端设备相关的智能手机的部分结构的框图,该智能手机包括:射频(Radio Frequency,简称RF)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(Wireless Fidelity,简称WiFi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图7中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对智能手机的各个构成部件进行具体的介绍:
RF电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。通常,RF电路1510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称LNA)、双工器等。此外,RF电路1510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(GeneralPacket Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而实现智能手机的各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1530可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1531上或在触控面板1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1531。除了触控面板1531,输入单元1530还可以包括其他输入设备1532。具体地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(LiquidCrystal Display,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板1541。进一步的,触控面板1531可覆盖显示面板1541,当触控面板1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图7中,触控面板1531与显示面板1541是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板1531与显示面板1541集成而实现智能手机的输入和输出功能。
智能手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1560、扬声器1561,传声器1562可提供用户与智能手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出;另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经RF电路1510以发送给比如另一智能手机,或者将音频数据输出至存储器1520以便进一步处理。
WiFi属于短距离无线传输技术,智能手机通过WiFi模块1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块1570,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。
智能手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该智能手机所包括的存储器1520可以存储程序代码,并将所述程序代码传输给所述处理器。
该智能手机所包括的处理器1580可以根据所述程序代码中的指令执行上述实施例提供的基于区块链的交易打包方法。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的基于区块链的交易打包方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的基于区块链的交易打包方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-Only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (15)
1.一种基于区块链的交易打包方法,其特征在于,所述方法包括:
在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
2.根据权利要求1所述的方法,其特征在于,区块的实际生成时长包括区块获取交易对应的第一时长和获取的交易从进行打包至在所述区块链中达成共识对应的第二时长,所述方法还包括:
根据第i-1个区块的第一时长、所述第i-1个区块的第二时长、所述第i-1个区块的实际交易笔数和区块链中区块的实际生成时长的最大时长,确定所述第i个区块在所述第i个区块的预设生成时长内的上限交易笔数;
若所述第i个区块对应的预测交易笔数小于或等于所述第i个区块的上限交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤;
若所述第i个区块对应的预测交易笔数大于所述第i个区块的上限交易笔数,将所述第i个区块的上限交易笔数作为所述第i个区块对应的预测交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤。
3.根据权利要求1所述的方法,其特征在于,所述根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数,包括:
获取一元多项式,所述一元多项式表征所述前n个区块分别对应的实际交易笔数和实际生成时长的拟合关系;
通过将所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长代入所述一元多项式,确定所述第i个区块对应的预测交易笔数。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块,包括:
在所述第i个区块对应的预设生成时长内,若获取的交易笔数等于所述第i个区块对应的预测交易笔数,根据所述等于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块;
在所述第i个区块对应的预设生成时长时,若获取的交易笔数小于所述第i个区块对应的预测交易笔数,根据所述小于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述区块链中区块的实际生成时长的最大时长确定所述第i个区块对应的预设生成时长。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第i-1个区块的实际生成时长和生成时长阈值间的关系,基于所述第i-1个区块的实际生成时长,调整得到所述第i个区块对应的预设生成时长。
8.根据权利要求2所述的方法,其特征在于,所述第二时长包括第一子时长和第二子时长,所述第一子时长和所述第二子时长是执行不同类型合约对应的时长,所述第一子时长大于所述第二子时长,所述方法还包括:
若所述第一子时长和所述第二子时长的差值超过合约时长阈值,识别所述第一子时长对应的目标交易类型;
降低在所述第i个区块对应的预设生成时长内获取的所述目标交易类型对应的交易,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤。
9.一种基于区块链的交易打包装置,其特征在于,所述装置包括:获取单元、确定单元和打包单元;
所述获取单元,用于在生成第i个区块之前,获取区块链上所述第i个区块的前n个区块分别对应的实际交易笔数和实际生成时长,所述前n个区块中的第k个区块是基于所述第k个区块对应的实际交易笔数的交易,通过所述第k个区块的实际生成时长生成的;
所述确定单元,用于根据所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长,确定所述第i个区块对应的预测交易笔数;
所述打包单元,用于基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块。
10.根据权利要求9所述的装置,其特征在于,区块的实际生成时长包括区块获取交易对应的第一时长和获取的交易从进行打包至在所述区块链中达成共识对应的第二时长,所述装置还包括判断单元,用于:
根据第i-1个区块的第一时长、所述第i-1个区块的第二时长、所述第i-1个区块的实际交易笔数和区块链中区块的实际生成时长的最大时长,确定所述第i个区块在所述第i个区块的预设生成时长内的上限交易笔数;
若所述第i个区块对应的预测交易笔数小于或等于所述第i个区块的上限交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤;
若所述第i个区块对应的预测交易笔数大于所述第i个区块的上限交易笔数,将所述第i个区块的上限交易笔数作为所述第i个区块对应的预测交易笔数,执行所述基于所述第i个区块对应的预测交易笔数,根据在所述第i个区块对应的预设生成时长内获取的交易进行打包得到所述第i个区块的步骤。
11.根据权利要求9所述的装置,其特征在于,所述确定单元,用于:
获取一元多项式,所述一元多项式表征所述前n个区块分别对应的实际交易笔数和实际生成时长的拟合关系;
通过将所述前n个区块分别对应的实际交易笔数和实际生成时长、以及所述第i个区块对应的预设生成时长代入所述一元多项式,确定所述第i个区块对应的预测交易笔数。
13.根据权利要求9所述的装置,其特征在于,所述打包单元,用于:
在所述第i个区块对应的预设生成时长内,若获取的交易笔数等于所述第i个区块对应的预测交易笔数,根据所述等于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块;
在所述第i个区块对应的预设生成时长时,若获取的交易笔数小于所述第i个区块对应的预测交易笔数,根据所述小于所述第i个区块对应的预测交易笔数的交易进行打包得到所述第i个区块。
14.一种计算机设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-8任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940031.5A CN113393061B (zh) | 2021-08-17 | 2021-08-17 | 一种基于区块链的交易打包方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940031.5A CN113393061B (zh) | 2021-08-17 | 2021-08-17 | 一种基于区块链的交易打包方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113393061A true CN113393061A (zh) | 2021-09-14 |
CN113393061B CN113393061B (zh) | 2021-11-09 |
Family
ID=77622724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110940031.5A Active CN113393061B (zh) | 2021-08-17 | 2021-08-17 | 一种基于区块链的交易打包方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113393061B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553887A (zh) * | 2022-01-24 | 2022-05-27 | 浙江数秦科技有限公司 | 一种区块链网络点对点数据传输方法 |
CN115617806A (zh) * | 2022-10-31 | 2023-01-17 | 哈尔滨工业大学(深圳) | 一种区块打包方法、装置、电子设备及存储介质 |
CN117692463A (zh) * | 2024-02-01 | 2024-03-12 | 中国信息通信研究院 | 基于区块链网络的区块生成方法和装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778622A (zh) * | 2015-04-29 | 2015-07-15 | 清华大学 | Tps交易事件阈值的预测方法及预测系统 |
CN110619582A (zh) * | 2019-09-18 | 2019-12-27 | 深圳前海微众银行股份有限公司 | 区块链交易方法、装置、设备及计算机存储介质 |
CN111507717A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、区块节点及计算机可读存储介质 |
US10884810B1 (en) * | 2017-11-16 | 2021-01-05 | Amazon Technologies, Inc. | Workload management using blockchain-based transaction deferrals |
CN112348681A (zh) * | 2021-01-11 | 2021-02-09 | 北京知帆科技有限公司 | 一种区块链交易手续费确定方法、装置及电子设备 |
CN112488831A (zh) * | 2020-11-20 | 2021-03-12 | 东软集团股份有限公司 | 区块链网络交易方法、装置、存储介质及电子设备 |
-
2021
- 2021-08-17 CN CN202110940031.5A patent/CN113393061B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778622A (zh) * | 2015-04-29 | 2015-07-15 | 清华大学 | Tps交易事件阈值的预测方法及预测系统 |
US10884810B1 (en) * | 2017-11-16 | 2021-01-05 | Amazon Technologies, Inc. | Workload management using blockchain-based transaction deferrals |
CN110619582A (zh) * | 2019-09-18 | 2019-12-27 | 深圳前海微众银行股份有限公司 | 区块链交易方法、装置、设备及计算机存储介质 |
CN111507717A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、区块节点及计算机可读存储介质 |
CN112488831A (zh) * | 2020-11-20 | 2021-03-12 | 东软集团股份有限公司 | 区块链网络交易方法、装置、存储介质及电子设备 |
CN112348681A (zh) * | 2021-01-11 | 2021-02-09 | 北京知帆科技有限公司 | 一种区块链交易手续费确定方法、装置及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553887A (zh) * | 2022-01-24 | 2022-05-27 | 浙江数秦科技有限公司 | 一种区块链网络点对点数据传输方法 |
CN114553887B (zh) * | 2022-01-24 | 2024-04-05 | 浙江数秦科技有限公司 | 一种区块链网络点对点数据传输方法 |
CN115617806A (zh) * | 2022-10-31 | 2023-01-17 | 哈尔滨工业大学(深圳) | 一种区块打包方法、装置、电子设备及存储介质 |
CN117692463A (zh) * | 2024-02-01 | 2024-03-12 | 中国信息通信研究院 | 基于区块链网络的区块生成方法和装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113393061B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113393061B (zh) | 一种基于区块链的交易打包方法和相关装置 | |
CN110198275B (zh) | 一种流量控制方法、系统、服务器及存储介质 | |
EP3748961B1 (en) | Frame rate adjustment method and terminal | |
US10956280B2 (en) | Data backup method, electronic device, and storage medium | |
EP3525417A1 (en) | Data processing method, device, storage medium, electronic device and server | |
US20180137565A1 (en) | Method, device, and storage medium for determining credit score | |
EP3499786B1 (en) | Data synchronization method, apparatus, storage medium and electronic device | |
US20170078913A1 (en) | Electronic device and method for controlling transmission control protocol thereof | |
US20220353932A1 (en) | Data transmission method, data transmission apparatus, and electronic device | |
CN109995862B (zh) | 一种资源调度方法及终端 | |
CN108846051B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
WO2017206901A1 (zh) | 进程控制方法及相关设备 | |
CN111651339B (zh) | 一种请求数量的控制方法和相关装置 | |
US11088954B2 (en) | Link detection method and related apparatus | |
CN112118188A (zh) | 一种流量限速方法、装置、电子设备及存储介质 | |
CN116610372B (zh) | 一种中央处理器配置方法、装置及相关产品 | |
CN108270839B (zh) | 访问频率控制系统及方法 | |
CN107193551B (zh) | 一种生成图像帧的方法和装置 | |
WO2023246757A1 (zh) | 算力服务方法、装置及终端 | |
CN109889568B (zh) | 一种数据导出方法、服务器及系统 | |
CN115509770B (zh) | 微服务调用方法、装置、电子设备及可读存储介质 | |
WO2019128553A1 (zh) | 应用程序处理方法、电子设备、计算机可读存储介质 | |
CN110045811B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN114785766B (zh) | 智能设备的控制方法、终端及服务器 | |
CN110767950B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40052353 Country of ref document: HK |