交易信息的加签方法、装置、计算机设备和存储介质与流程

文档序号:21000431发布日期:2020-06-05 22:37阅读:224来源:国知局
交易信息的加签方法、装置、计算机设备和存储介质与流程

本申请涉及区块链技术领域,尤其涉及一种基于区块链的高并发交易信息的加签方法、基于区块链的高并发交易信息的加签装置、计算机设备和存储有计算机可读指令的存储介质。



背景技术:

区块链一般被理解为一个分布式账本,它的本质也是一个分布式的数据库。在现有的产品中,由于golang语言具有开发效率高和使用简单等特点,很多的区块链系统中便将golang语言作为开发语言。

在区块链系统中,通常存在高并发的任务或者进程需要运行,比如对交易结果信息进行加签处理,在出现需要进行高并发的加签验签时,由于golang语言的轻量级线程以及垃圾回收管理机制的特点,使得系统的cpu使用率一直处于以及较低的状态。同时在进行加签处理时,因为内存垃圾需要进行回收,使得可能需要将当前执行加签处理的线程进行暂停,影响整体的加签验签效率。



技术实现要素:

本申请提供一种基于区块链的高并发交易信息的加签方法、装置、计算机设备和存储介质,用于提高进行高并发加签处理操作的稳定性以及系统cpu的使用率。

第一方面,本申请提供的一种基于区块链的高并发交易信息的加签方法,所述基于区块链的高并发交易信息的加签方法包括:

当检测到加签功能启动时,获取系统的cpu使用情况;

根据所述cpu使用情况得到对应的目标加签方式;

获取目标交易对应的交易结果信息,并基于所述交易结果信息得到对应的加签信息;

根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理。

第二方面,本申请还提供一种基于区块链的高并发交易信息的加签装置,所述基于区块链的高并发交易信息的加签装置包括:

状态获取模块,用于当检测到加签功能启动时,获取系统的cpu使用情况;

方式确定模块,用于根据所述cpu使用情况得到对应的目标加签方式;

信息生成模块,用于获取目标交易对应的交易结果信息,并基于所述交易结果信息得到对应的加签信息;

加签处理模块,用于根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理。

第三方面,本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于区块链的高并发交易信息的加签方法的步骤。

第四方面,本申请还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于区块链的高并发交易信息的加签方法的步骤。

本申请公开的一种区块链的高并发交易信息的加签方法、装置、计算机设备和存储介质,在检测到加签功能启动时,获取系统的cpu使用情况,进而根据系统的cpu系统使用情况确定进行加签处理的目标加签方式,然后在确定了进行加签处理的目标加签方式之后,获取目标交易对应的交易结果信息,最后利用目标加签方式以及根据交易结果信息所得到的进行加签处理的加签信息对交易信息进行相应的加签处理。实现在对高并发交易信息进行加签处理时,通过对系统的cpu使用情况进行监控,并根据系统的cpu使用情况确定当前进行加签处理的加签方式,保证加签过程不受其他的影响,可以正常完成加签操作,提了高并发加签处理的稳定性以及系统cpu的使用率。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一个实施例中基于区块链的高并发交易信息的加签方法的流程示意图;

图2为本申请一个实施例中确定是否变更默认加签方式的步骤的流程示意图;

图3为本申请另一个实施例中基于区块链的高并发交易信息的加签方法的流程示意图;

图4为本申请一个实施例中基于区块链的高并发交易信息的加签装置的结构框图;

图5为本申请一个实施例中方式确定模块的结构框图;

图6为本申请另一个实施例中基于区块链的高并发交易信息的加签装置的结构框图;

图7为本申请又一个实施例中基于区块链的高并发交易信息的加签装置的结构框图;

图8为本申请一个实施例中计算机设备的结构示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

参照图1,图1为本申请一个实施例中基于区块链的高并发交易信息的加签方法的流程示意图。

具体地,该基于区块链的高并发交易信息的加签方法包括:

步骤s10、当检测到加签功能启动时,获取系统的cpu使用情况。

在进行交易过程中,为了保证交易信息的安全可靠性,通常需要对交易信息进行相应的加密处理,以保证交易信息的安全。具体地,在检测到加签功能启动时,将会获取系统的cpu使用情况,进而根据系统的cpu的实际使用情况对当前进行交易的交易信息进行相应的加签处理。

在fimax区块链的开发中,所使用的基本的默认语言是golang语言,因此在对交易信息进行加签处理时,一般情况下也将是利用golang语言对交易信息进行加签处理。对于golang语言来说,其具有轻量级线程和垃圾回收管理机制两大特征机制,使得在利用默认的golang语言进行加签处理时,无论线程是否需要更多的cpu时间片,其都会进行切换,导致了每个线程并不能获取到更多的cpu时间片,不能更大效率的使用cpu,大部分cpu时间片浪费在切换线程机制中。

步骤s20、根据所述cpu使用情况得到对应的目标加签方式。

在得到系统的cpu使用情况之后,根据cpu使用情况得到对应的目标加签方式。由于不同的加签方式所适用的场景不同,或者说不同情况下使用不同的加签方式的效果有所不同,比如加签效率高、加签成功率高等,因此在选择对应的加签方式时,根据实际的cpu使用情况来确定当前进行加签处理的方式,进而更好的完成加签操作。

在fimax区块链的开发中,在进行加签处理时是基于golang语言对交易信息进行加签处理,但是在实际应用时,由于golang语言本身的特征,使得有一些情况不适合基于golang语言进行加签处理,比如在系统的cpu的使用率较高时,由于在fimax区块链的系统中,系统会进行线程的切换,使得当前所进行的加签过程会被中断,使得加签过程不能很好的完成。

另外,在实际进行加签处理时,存在进行加签方式切换的情况,对于fimax区块链系统而言,所使用的默认加签方式是利用golang语言进行加签处理,在系统不可以使用默认的语言完成加签处理时,需要进行加签方式的切换,以在切换加签方式之后进行加签处理。

进一步地,在根据cpu使用情况得到对应的目标加签方式,包括:

根据cpu使用情况确定是否变更默认加签方式,以得到对应的目标加签方式;若确定不变更默认加签方式,则目标加签方式为默认加签方式;若确定变更默认加签方式,则目标加签方式为变更后的加签方式。

在根据系统的cpu使用情况得到对应的目标加签方式时,主要根据系统cpu使用率的高低来确定当前进行加签处理的目标加签方式,在系统的cpu使用情况较低和cpu使用情况较高的时候对应的加签方式会有所不同。对于系统的cpu使用率而言,在系统cpu使用率较低时,可以使用系统默认的加签方式进行加签处理,在系统cpu使用率较高时,将需要进行进行加签方式的切换。

步骤s30、获取目标交易对应的交易结果信息,并基于所述交易结果信息得到对应的加签信息。

在得到进行加签处理的目标加签方式时,获取目标交易对应的交易结果信息,然后根据交易结果信息得到对应的加签信息,其中所得到的加签信息包括有加签公钥和加签私钥,进而根据所得到的加签信息完成对目标交易所对应的交易信息进行加签处理。

具体地,在进行加签处理时,需要有相应的加签信息,简单来说就是密码,为了更好的保证加签信息的安全性,通常采用非对称加签的方式对交易信息进行加签处理,对于进行加签处理的加签私钥和加密公钥,预先利用目标交易对应的交易结果信息所得到。

在根据交易结果信息生成用于对所述目标交易进行保密传输处理的加签私钥和加密公钥时,通过对交易结果信息进行解析以得到对应的加签私钥和加密公钥,比如进行解析获取目标交易中的交易发起方的第一特征信息以及交易接收方的第二特征信息,然后将第一特征信息作为用于对目标交易进行保密传输处理的加签私钥,以及将第二特征信息作为用于对目标交易进行保密传输处理的加密公钥。

目标交易对应的交易结果信息中会记录有交易的实际信息,包括交易时间、交易发起方信息、交易接收方信息以及交易类型信息等,在实际应用中,通常交易接收方是一个交易终端,所有人都可以与此交易终端进行交易,但是由于交易发起方的不一样,使得加签私钥和加密公钥有所不同,可以更好的保证加签的安全可靠。

步骤s40、基于所述加签私钥和加密公钥,利用所述目标加签方式对交易信息进行加签处理。

在根据目标交易对应的交易结果得到进行加签处理的加签公钥和加签私钥之后,将会利用加签公钥和加签私钥利用预先所得到的目标加签方式对交易信息进行加签处理。具体地,在得到目标加签方式之后,将会根据所得到的加签私钥和加密公钥利用目标加签方式对交易信息进行非对称加签处理。在进行加签处理时,主要体现在不同的加签方式所适用的系统的cpu使用率的高低不一样,进而可以更加快速准确的完成加签处理。

在上述基于区块链的高并发交易信息的加签方法中,在检测到加签功能启动时,获取系统的cpu使用情况,进而根据系统的cpu系统使用情况确定进行加签处理的目标加签方式,然后在确定了进行加签处理的目标加签方式之后,获取目标交易对应的交易结果信息,最后利用目标加签方式以及根据交易结果信息所得到的进行加签处理的加签信息对交易信息进行相应的加签处理。实现在对高并发交易信息进行加签处理时,通过对系统的cpu使用情况进行监控,并根据系统的cpu使用情况确定当前进行加签处理的加签方式,保证加签过程不受其他的影响,可以正常完成加签操作,提高了高并发加签处理的稳定性以及系统cpu的使用率。

进一步地,参照图2,图2为本申请一个实施例中确定是否变更默认加签方式的步骤的流程示意图。

具体地,在确定是否变更默认加签方式时包括:

步骤s21、读取所述系统的cpu总核数,并根据所述cpu使用情况以及所述cpu总核数得到所述系统的cpu使用率。

步骤s22、将所述cpu使用率与cpu使用率阈值进行比较。

步骤s23、若所述cpu使用率小于所述cpu使用率阈值,则确定不变更默认加签方式。

步骤s24、若所述cpu使用率大于或者等于所述cpu使用率阈值,则确定变更默认加签方式。

其中,系统的cpu总核数系统中所有cpu的核数之和。cpu的核数是一块cpu上面能处理数据的芯片组的数量。

在得到系统的cpu的使用情况时,获取系统的cpu总核数,然后将cpu使用情况与cpu总核数进行对比,得到对应的对应的cpu使用率,进而将cpu使用率与对应的cpu使用率阈值进行比较,以根据比较结果确定是否需要进行加签方式的变更。

比较结果用来确定系统的cpu使用率的高低,对应不同的系统的cpu使用率会对应着不同的加签方式,用以提高系统cpu的使用率,保证在cpu使用率达到一定的程度,但是并未饱和的情况下不进行线程的释放,同时保证可以执行相应的操作指令。

在系统的cpu使用率较低时,即cpu使用率小于cpu使用率阈值时,那么不需要进行加签方式的变更和切换,可以直接使用系统默认的加签方式对交易结果信息进行加签处理,反之,则需要变更默认的加签方式,使用更加合适的加签方式进行加签处理。

在得到cpu使用率时,将所得到的cpu使用率与对应的预设阈值进行比较,以得到对应的目标加签方式,其中,cpu使用率阈值是cpu使用率的一个临界值,且这个临界值的确定可以根据系统的实际运行来确定。在实际的系统使用过程中,cpu使用率过高会影响系统的实际运行,在进行加签操作时,由于受到golang语言的本身限制,且加签过程大部分由线程在运行,因此存在加签过程并未完成便会对进行加签的线程进行释放,进而导致加签没有完成需要使用另一线程接着进行加签处理,故而需要选择更加合适的加签方式。

在实际的加签过程中,不同的cpu使用率所对应的较为合适的加签方式也是有所不同的,为了使得加签过程能够顺利准确的完成,需要有着更加合适的加签方式。具体地,在cpu使用率较低时,采用任何一种加签方式都可以,也就是并不会因为系统的实际运行而对加签过程或者系统的其他运行产生影响,由于系统的默认使用语言为golang语言,且golang语言本身具有一定的优点,那么此时可以直接使用golang语言进行加签处理,也就是不需要进行语言切换即可顺利完成加签处理,但是在cpu使用率较高时,由于golang语言的本身限制,则需要选择更为合理的加签方式进行加签处理。

在fimax区块链系统中,使用golang语言是看中了golang语言具有开发效率高以及使用简单等特点。但是对于系统的使用而言,提高一定的工作效率必定要做的,但是并不能忽略在提高工作效率的同时所带来的问题,比如系统内存使用率不高,或者系统资源浪费等。在上述描述的实施例中,利用系统cpu作为加签方式切换的判断依据,在保证系统运行正常以及不影响实际操作的同时,选择更加合适的方式完成相应的加签处理,在一定程度上提高了系统cpu的使用率。

进一步地,在一个实施例中,在确定需要变更默认加签方式时,需要进行加签方式的切换和变更,此时将会在动态链接库中进行接口的调用,通过调用目标加签方式所对应的接口,来实现对默认加签方式的切换变更。

具体地,预先可以设定相应的加签方式以适用于不同的场景需求,进而在需要进行加签处理时,根据系统的实际运行场景和状态选择合适的加签方式执行相应的加签操作。

在实际应用中,fimax区块链系统中所使用的默认加签方式是利用golang语言对交易信息进行加签处理,为了实现加签方式的切换,在系统中设置相应的接口地址,通过接口地址的获取实现加签方式的切换。根据golang语言在系统运行中的不足,在进行加签方式的切换时,将加签方式切换为基于cgo技术进行加签处理的加签方式。

在目标加签方式是使用cgo技术进行加签处理时,由于系统默认使用的是golang语言进行系统运行,此时将会启动相应的调用程序进行语言调用,通过调用c语言函数进行加签处理,也就是在需要使用cgo技术实现加签处理时,需要进行接口的调用,在接口调用之后便可以使用cgo技术完成加签操作;在目标加签方式是使用默认的golang语言进行加签处理时,利用语言内部自带的线程调度机制使用相应的线程完成加签操作。

对于预先所设定的接口地址的数量可以是多个,也就是说,除了根据上述描述设置一个接口地址之外,还可以根据实际的技术支持和场景或者运行需求设定若干接口地址,同时对于不同的接口地址设定不同的调用条件,以实现根据不同的需求选择不同的加签方式。

另外,在根据所得到的加签信息以及目标加签方式对目标交易对应的交易信息进行加签处理之前,还包括:

在关联的动态链接库中获取相应的目标运行内存,并将与目标交易相关联的数据导入至目标运行内存中,以在目标运行内存中对交易信息进行加签处理,其中,与目标交易相关联的数据包括加签信息以及交易结果信息。以及,获取进行加签处理的目标线程,并将所得到的目标线程标记为不可释放状态,以基于目标线程对交易信息进行加签处理。

在进行接口调用之前,也就是进行系统构建或者管理时,预先使用c语言实现一套内存池和c语言版本的加签验签算法,同时提供一个满足调用需求的接口以供进行接口调用,然后进行包装形成动态链接库,在动态链接库中存储有进行语言切换时的接口地址,通过获取接口地址实现语言的切换。在需要进行接口调用时,使用cgo技术加载动态链接库,进而获取相应的接口地址,以通过接口地址的切换实现语言切换。在需要高并发的加签操作时,即在短时间内需要进行多次加签操作,首先在动态链接库中申请得到一块内存,也就是目标运行内存,然后将进行加签操作的参数拷贝进该内存中,最后再调用加签或者验签接口实现高并发。

在实际运行过程中,系统运行通常是处于高并发状态,即加签操作的触发是短时间内多次且循环发生的,只是交易发起者不一样,在交易处于高并发状态时,系统cpu使用率在一定程度上会处于一个比较高的状态,也就是在进行加签处理时可能需要频繁的进行接口的调用,进而使用cgo技术实现加签处理,对于系统而言,也会存在cpu使用率较低的时候,在使用率较低时,将会使用默认的golang语言实现加签处理,由于存在加签方式的变化,因此还可以根据cpu使用率对接口状态进行设定,避免频繁进行接口调用带来的运行负担。

另外在实际的加签处理过程中,当目标加签方式是使用cgo技术进行加签处理时,进行加签处理的线程处于不可释放状态,即在进行加签处理时该线程将会被锁定,只有在加签完成之后才可进行线程的释放,然后其他的进程可以使用此线程。而当目标加签方式是使用默认的golang语言进行加签处理时,进行加签处理的线程处于可释放状态。

进一步地,参照图3,图3为本申请另一个实施例中基于区块链的高并发交易信息的加签方法的流程示意图。

具体地,所述方法还包括:

步骤s50,当检测到线程释放指令时,获取待释放线程的状态信息。

步骤s60,根据所述状态信息确定是否对所述待释放线程进行释放。

步骤s70,若所述状态信息为可释放状态,则释放所述待释放线程。

步骤s80,若所述状态信息为不可释放状态,则将所述线程释放指令视为无效指令。

在系统运行过程中,不同的操作和进程可以在不同的线程上实现,也就是不同的线程执行着不同的进程。具体地,当检测到线程释放指令时,获取待释放线程的状态信息,进而根据所得到的待释放线程的状态信息确定是否可以对待释放线程进行释放。

在实际运行过程中,可能因为外界因素或者系统需求,需要对部分线程进行释放,以使得系统可以运行其他的进程或者程序。在需要进行线程释放时,除了系统运行负载较高需要进行释放之外,还可以能是golang语言自身的性能所致。线程释放指令的触发可以是用户通过相应的操作而发出的,还可以是系统根据系统自身的运行状态而发出的,具体不作限制。在检测到线程释放指令时,将会获取需要进行释放的待释放线程的状态信息,其中状态信息包括可释放状态以及不可释放状态,主要针对于不同的加签场景而得到的状态信息。

在fimax区块链系统中,在对交易结果信息进行加签处理时,由于存在不同的加签方式,并且不同的加签方式自身的限制,使得指令加签操作的线程的状态信息有所不同,具体地,若所使用的加签方式是使用golang语言所完成的方式,此时所使用的线程的状态信息为可释放状态,若所使用的加签方式是使用cgo技术实现加签处理的方式,此时所使用的线程的状态信息为不可释放状态。

在根据待释放线程的状态信息确定是否可以进行线程释放时,主要体现在当前进行加签处理的方式是哪一种。由于在基于cgo技术实现加签处理时,在进行加签处理时,会将当前所使用的线程进行锁定,也就是将当前所使用的线程的状态信息标记为不可释放状态,然后在加签完成之后可以自动进行线程释放。若当前所需要进行释放的线程正在执行基于cgo技术实现加签处理的进程时,由于此时线程不可以进行释放,因此此时将会将所检测到的线程释放指令视为无效指令,同时还可以发出相应的提示信息,比如当前线程不可释放。

请参阅图4,图4为本申请一个实施例中基于区块链的高并发交易信息的加签装置的结构框图,应用于执行前述的基于区块链的高并发交易信息的加签方法。其中该基于区块链的高并发交易信息的加签装置可以配置与服务器。

如图4所示,该基于区块链的高并发交易信息的加签装置40包括:状态获取模块41、方式确定模块42、信息生成模块43以及加签处理模块44。

状态获取模块41,用于当检测到加签功能启动时,获取系统的cpu使用情况;

方式确定模块42,用于根据所述cpu使用情况得到对应的目标加签方式;

信息生成模块43,用于获取目标交易对应的交易结果信息,并基于所述交易结果信息得到对应的加签信息;

加签处理模块44,用于根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理。

在一个实施例中,所述方式确定模块42具体还用于:

根据所述cpu使用情况确定是否变更默认加签方式,以得到对应的目标加签方式;

若确定不变更默认加签方式,则所述目标加签方式为所述默认加签方式;

若确定变更默认加签方式,则所述目标加签方式为变更后的加签方式。

在一个实施例中,参照图5,图5为本申请一个实施例中方式确定模块的结构框图。

具体地,所述方式确定模块42包括:信息读取单元421、比较判断单元422以及结果确定单元423。

信息读取单元421,用于读取所述系统的cpu总核数,并根据所述cpu使用情况以及所述cpu总核数得到所述系统的cpu使用率;

比较判断单元422,用于将所述cpu使用率与cpu使用率阈值进行比较;

结果确定单元423,用于若所述cpu使用率小于所述cpu使用率阈值,则确定不变更默认加签方式;若所述cpu使用率大于或者等于所述cpu使用率阈值,则确定变更默认加签方式。

在一个实施例中,参照图6,图6为本申请另一个实施例中基于区块链的高并发交易信息的加签装置的结构框图。

具体地,所述基于区块链的高并发交易信息的加签装置40还包括:

接口调用模块45,用于在动态链接库中调用目标加签方式对应的接口,以完成对默认加签方式的变更。

在一个实施例中,参照图7,图7为本申请又一个实施例中基于区块链的高并发交易信息的加签装置的结构框图。

具体地,所述基于区块链的高并发交易信息的加签装置40还包括:

内存调用模块46,用于在所述动态链接库中获取相应的目标运行内存,并将与所述目标交易相关联的数据导入至所述目标运行内存中,以在所述目标运行内存中对所述交易信息进行加签处理,其中,与所述目标交易相关联的数据包括所述交易结果信息以及所述加签信息。

在一个实施例中,所述基于区块链的高并发交易信息的加签装置40还包括:

线程获取模块47,用于获取进行加签处理的目标线程,并将所述目标线程标记为不可释放状态,以基于所述目标线程对所述交易信息进行加签处理。

需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。

请参阅图8,图8为本申请一个实施例中计算机设备的结构示意性框图。该计算机设备可以是服务器。

参阅图8,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。

非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种基于区块链的高并发交易信息的加签方法。

处理器用于提供计算和控制能力,支撑整个计算机设备的运行。

内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种基于区块链的高并发交易信息的加签方法。

该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

应当理解的是,处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:

当检测到加签功能启动时,获取系统的cpu使用情况;

根据所述cpu使用情况得到对应的目标加签方式;

获取目标交易对应的交易结果信息,并基于所述交易结果信息得到对应的加签信息;

根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理。

在一个实施例中,所述处理器在实现所述根据所述cpu使用情况得到对应的目标加签方式时,还用于实现:

根据所述cpu使用情况确定是否变更默认加签方式,以得到对应的目标加签方式;

若确定不变更默认加签方式,则所述目标加签方式为所述默认加签方式;

若确定变更默认加签方式,则所述目标加签方式为变更后的加签方式。

在一个实施例中,所述处理器执行所述根据所述cpu使用情况确定是否变更默认加签方式时,还用于实现:

读取所述系统的cpu总核数,并根据所述cpu使用情况以及所述cpu总核数得到所述系统的cpu使用率;

将所述cpu使用率与cpu使用率阈值进行比较;

若所述cpu使用率小于所述cpu使用率阈值,则确定不变更默认加签方式;

若所述cpu使用率大于或者等于所述cpu使用率阈值,则确定变更默认加签方式。

在一个实施例中,所述处理器执行所述若所述cpu使用率大于或者等于所述cpu使用率阈值,则确定变更默认加签方式之后,还用于实现:

在动态链接库中调用目标加签方式对应的接口,以完成对默认加签方式的变更。

在一个实施例中,所述处理器执行所述根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理之前,还用于实现:

在所述动态链接库中获取相应的目标运行内存,并将与所述目标交易相关联的数据导入至所述目标运行内存中,以在所述目标运行内存中对所述交易信息进行加签处理,其中,与所述目标交易相关联的数据包括所述交易结果信息以及所述加签信息。

在一个实施例中,所述处理器执行所述根据所述加签信息以及所述目标加签方式对所述目标交易对应的交易信息进行加签处理之前,还用于实现:

获取进行加签处理的目标线程,并将所述目标线程标记为不可释放状态,以基于所述目标线程对所述交易信息进行加签处理。

在一个实施例中,所述处理器执行所述计算机程序时还实现以下步骤:

当检测到线程释放指令时,获取待释放线程的状态信息;

根据所述状态信息确定是否对所述待释放线程进行释放;

若所述状态信息为可释放状态,则释放所述待释放线程;

若所述状态信息为不可释放状态,则将所述线程释放指令视为无效指令。

本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项基于区块链的高并发交易信息的加签方法。

其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1