CN111400317A - 全函数动态调用链路确定方法、装置及存储介质 - Google Patents
全函数动态调用链路确定方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111400317A CN111400317A CN202010156770.0A CN202010156770A CN111400317A CN 111400317 A CN111400317 A CN 111400317A CN 202010156770 A CN202010156770 A CN 202010156770A CN 111400317 A CN111400317 A CN 111400317A
- Authority
- CN
- China
- Prior art keywords
- function
- key point
- identifier
- determining
- target
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种全函数动态调用链路确定方法、装置及存储介质,所述方法包括:接收终端发送的交易请求,所述交易请求携带至少两个交易信息;确定所述至少两个交易信息对应的目标区块链;确定所述目标区块链中的至少两个关键点函数;通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;根据每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符,确定目标标识符集;根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。本申请通过动态调用链路对不同函数进行整合,获取到数据处理的全流程。
Description
技术领域
本申请涉及数据收集技术领域,尤其涉及一种全函数动态调用链路确定方法、装置及存储介质。
背景技术
随着业务高速发展,要满足业务高性能高可用的要求,业务程序会引入各种并发处理或异步处理方式来解决问题。但是这些高性能处理方式,导致了区块链的区块或交易处理全流程被分割成不同部分,难以快速地获取其数据处理的全流程,以便分析出数据处理过程可能存在的问题。
因此,有必要提供一种全函数动态调用链路确定方法、装置及存储介质,从而通过每个关键点函数及其子调用对应的唯一标识符实现不同函数的关联,并通过动态调用链路对不同函数进行整合,获取到数据处理的全流程。
发明内容
本申请提供了一种全函数动态调用链路确定方法、装置及存储介质,可以通过每个关键点函数及其子调用对应的唯一标识符实现不同函数的关联,并通过动态调用链路对不同函数进行整合,获取到数据处理的全流程。
一方面,本申请提供了一种全函数动态调用链路确定方法,所述方法包括:
接收终端发送的交易请求,所述交易请求携带至少两个交易信息;
确定所述至少两个交易信息对应的目标区块链;
确定所述目标区块链中的至少两个关键点函数;
通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;
确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;
根据所述每个关键点函数的标识符以及所述每个关键点函数的子调用对应的标识符,确定目标标识符集;
根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
另一方面提供了一种全函数动态调用链路确定装置,所述装置包括:
交易请求接收模块,用于接收终端发送的交易请求,所述交易请求携带至少两个交易信息;
目标区块链确定模块,用于确定所述至少两个交易信息对应的目标区块链;
关键点函数确定模块,用于确定所述目标区块链中的至少两个关键点函数;
代码注入模块,用于通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;
标识符确定模块,用于确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;
目标标识符集确定模块,用于根据每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符,确定目标标识符集;
调用链路确定模块,用于根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
另一方面提供了一种计算机存储介质,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上所述的全函数动态调用链路确定方法。
本申请提供的全函数动态调用链路确定方法、装置及存储介质,具有如下技术效果:
(1)本申请通过AOP注入,在无需改动源代码下确保业务不被影响,也保证所影响的性能在一个可接受的范围内。
(2)本申请通过AOP实现关键点函数的唯一标识符获取与输出,从而可形成全函数动态调用链路。
(3)对于不同部分进行独立的函数动态调用链路的记录与跟踪,并用数据标识符把不同部分但相关联的函数动态调用链路串联起来,形成以数据处理为维度的全函数动态调用链路,从而便于对数据处理流程进行分析。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种全函数动态调用链路确定系统的示意图;
图2是本申请实施例提供的一种全函数动态调用链路确定方法的流程示意图;
图3是本申请实施例提供的一种区块链系统的结构示意图;;
图4是本申请实施例提供的区块结构示意图;
图5是本申请实施例提供的确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符的方法的流程示意图;
图6是本申请实施例提供的通过AOP进行代码注入的流程图;
图7是本申请实施例提供的函数动态调用链路示意图;
图8是本申请实施例提供的实时动态调用链路;
图9是本申请实施例提供的一种全函数动态调用链路确定装置的结构示意图;
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种全函数动态调用链路确定系统的示意图,如图1所示,该全函数动态调用链路确定系统可以至少包括服务器01和客户端02。
具体的,本说明书实施例中,所述服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器01可以包括有网络通信单元、处理器和存储器等等。具体的,所述服务器01可以用于确定全函数动态调用链路。
具体的,本说明书实施例中,所述客户端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端02可以用于向所述服务器01发送交易请求,并展示全函数动态调用链路。
以下介绍本申请的一种全函数动态调用链路确定方法,图2是本申请实施例提供的一种全函数动态调用链路确定方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:接收终端发送的交易请求,所述交易请求携带至少两个交易信息。
具体的,在本说明书实施例中,服务器可以接收终端发送的交易请求,所述交易请求可以为交易上链请求。
在本说明书实施例中,所述终端可以基于用户的触发操作,向服务器发送交易请求。
S203:确定所述至少两个交易信息对应的目标区块链。
在本说明书实施例中,在区块链业务中,可以为交易信息分配目标区块链,所述目标区块链可以包括多个区块,其中每个区块可以对应零个、一个或多个交易,每个区块是对交易列表进行打包处理的集合体。
在本说明书实施例中,所述目标区块链存在于一个区块链系统中,,所述区块链系统包括多个节点,所述多个节点之间形成点对点网络。
在一些实施例中,所述区块链系统可以为图3所示的结构,多个节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在区块链系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
图3示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
在一些实施例中,区块结构(Block Structure)可以为图4所示的结构,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
S205:确定所述目标区块链中的至少两个关键点函数。
在本说明书实施例中,所述关键点函数可以包括请求函数,打包函数,验证函数,提交函数和存储函数。
S207:通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪。
具体的,在本说明书实施例中,所述通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪的步骤之前,所述方法还包括:
确定每个关键点函数的状态信息;
在本说明书实施例中,通过代码增强技术不仅仅是编译期中的代码注入(如AspectJ),也可以是运行时的代码注入(如Instrumentation+ASM方案)。
相应的,所述通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪包括:
当每个关键点函数的状态为编译期或运行期时,通过面向切面编程方式(Aspect-Oriented Programming,AOP),在每个关键点函数注入代码进行函数动态链路跟踪。
其中,面向切面编程是指对业务处理过程中的切面进行提取,动态地将代码切入到指定的方法、位置上。
S209:确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符。
具体的,在本说明书实施例中,如图5所示,所述确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符包括:
S2091:通过反射机制获取每个关键点函数的标识符;
在本说明书实施例中,在编写注入处理函数时,无法对关键点的参数进行类型化,需要利用反射机制获得类型的方法,查询到数据的特征值。
S2093:根据所述每个关键点函数的标识符,确定所述关键点函数的子调用对应的标识符。
具体的,在本说明书实施例中,所述根据所述每个关键点函数的标识符,确定所述关键点函数的子调用对应的标识符包括:
根据所述每个关键点函数的标识符,确定所述关键点函数的一次子调用对应的标识符;
根据所述关键点函数的N次子调用对应的标识符,确定所述关键点函数的N+1次子调用对应的标识符,N=1,2,……,M,M≥3且M为正整数。
在本说明书实施例中,根据关键点函数的标识符,确定其对应子函数的标识符,例如,在关键点函数的标识符基础上增加层级内的序号。
在本说明书实施例中,所述标识符可以为每一次函数调用链路的根标识符,标记着这一部分的标识符根部分,后续子调用就会以此为基础增加层级内的序号。
具体的,在本说明书实施例中,所述方法还包括:
确定每个关键点函数的特征值;
基于所述每个关键点函数的特征值,确定存在关联关系的目标关键点函数;
在本说明书实施例中,关键点函数的特征值用于关联不同部分的函数调用链路;存在关联关系的目标关键点函数包括相同的字符串标识。
S2011:根据所述每个关键点函数的标识符以及所述每个关键点函数的子调用对应的标识符,确定目标标识符集。
在本说明书实施例中,在确定存在关联关系的目标关键点函数之后,所述根据所述每个关键点函数的标识符以及所述每个关键点函数的子调用对应的标识符,确定目标标识符集包括:
S20101:根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定目标标识符集。
具体的,在本说明书实施例中,所述根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定目标标识符集包括:
S201011:根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定每个目标关键点函数对应的标识符集;
具体的,在本说明书实施例中,所述根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定每个目标关键点函数对应的标识符集包括:
将所述每个目标关键点函数的标识符作为特征标识;
将包含每个特征标识的标识符对应的函数,确定为所述每个目标关键点函数的子调用;
将每个特征标识以及所述每个目标关键点函数的子调用对应的标识符组成的集合确定为每个目标关键点函数对应的标识符集。
具体的,在本说明书实施例中,所述根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定每个目标关键点函数对应的标识符集包括:
将所述每个目标关键点函数的标识符作为特征标识;
确定包含每个特征标识的标识符;
将每个特征标识以及所述包含每个特征标识的标识符组成的集合确定为每个目标关键点函数对应的标识符集。
S201013:基于所述每个目标关键点函数对应的标识符集,确定目标标识符集。
具体的,在本说明书实施例中,所述基于所述每个目标关键点函数对应的标识符集,确定目标标识符集包括:
将所述每个目标关键点函数对应的标识符集中的标识符组成的集合确定为目标标识符集。
所述目标标识符集包括所有目标关键点函数对应的标识符集中的标识符。
具体的,在本说明书实施例中,所述关键点函数包括打包函数和验证函数,所述方法还包括:
通过打包函数对所述至少两个交易信息进行打包处理;
将所述至少两个交易信息分配至所述目标区块链的至少两个区块中;
通过验证函数对每个区块以及所述每个区块中的交易进行信息验证。
具体的,在本说明书实施例中,所述关键点函数还包括请求函数,提交函数和存储函数,所述通过验证函数对每个区块以及所述每个区块中的交易进行信息验证包括:
通过提交函数,采用异步通信和投票等待方式对每个区块以及所述每个区块中的交易进行提交共识处理;
通过存储函数,采用异步并发处理方式对提交共识成功后的区块、交易进行存储。
在本说明书实施例中,引入异步通信和投票等待方式,可以提高集群内的共识效率和海量数据的存储性能。
相应的,所述接收终端发送的交易请求包括:
通过请求函数接收终端发送的交易请求。
S2013:根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
在本说明书实施例中,可以根据目标标识符集中每个目标标识符,确定每个目标标识符对应的函数,从而确定全函数动态调用链路。
在本说明书实施例中,所述方法还可以包括:
向所述终端发送所述目标区块链中的全函数动态调用链路,从而便于用户对数据处理过程进行分析。
在本说明书实施例中,所述方法还可以包括:
基于每个目标关键点函数的标识符,确定关联关键点函数集;
根据每个关联关键点函数及所述关联关键点函数对应子函数的标识符,确定每个关联关键点函数对应的动态调用链路;
基于每个关联关键点函数对应的动态调用链路,确定全函数动态调用链路。
具体的,在本说明书实施例中,区块链服务器接收到交易请求后,会创建任务来处理校验请求;但由于提升上链效率,区块链对多个交易进行打包处理,这部分使得多个交易数据就会汇合一起处理;在共识验证过程,为了提升性能,也会通过多线程的并发方式分别对不同区块以及区块中的交易进行信息验证,这部分会先进行集中处理,然后再分开处理;为了提高区块的提交共识效率,会通过异步通信和投票等待方式,这部分就是集中处理;提交共识成功后,就需要利用异步并发处理的方式,分别对区块、交易或未花费的交易输出(Unspent Transaction Outputs,utxo)进行存储,这部分就是分开处理。如图6所示,由于数据处理经过一系列的分合处理,为此,对于服务器的特点关键点进行代码增强注入,开启函数动态链路跟踪及输出数据唯一标识符,并对不同部分代码也进行代码增强注入开启函数动态链路跟踪。增强注入可在编译期或运行期进行状态切换注入(可以给增强注入方法设置开启开关,默认关闭,保证源代码正常秩序),实现与程序代码隔离,不污染程序源代码。
具体的,在本说明书实施例中,提交共识是指对所生成的区块及其包含的交易进行分别验证,同步验证结果,但达到一定数量验证结果后,集群认同所提交的区块,就算是提交共识成功。每个交易都有唯一哈希(hash)值,这就是交易的关键点标识符。
在一个具体的实施例中,如图7所示,对不同处理部分的入口函数进行关键点注入通过反射机制获取到数据的关键特征,即唯一标识符,如交易的hash,区块的hash等,并记录到日志中。而通过调用链路注入实现不同部分的实时调用链路跟踪与记录,并以层级关系记录下来。图7中的入口函数有两个字段,分别是LeveLNo和DataKey。LevelNo是每一次函数调用链路的根标识符,标记着这一部分的标识符根部分,后续子调用就会以此为基础增加层级内的序号,如LevelNo为10340,那第一个子调用的LevelNo为10340.1,第二个子调用为10340.2,第一个子调用的下一个子调用为10340.1.1,以此记录整个动态调用链路情况。例如,函数A里面包括了一系列的子调用,如
其中,函数B和D就是A的子调用。
DataKey是入口函数的数据关键特征值,作为数据处理的唯一标识符,用于关联不同部分的函数调用链路。
所述入口函数包括请求入口函数、打包入口函数、验证入口函数、提交入口函数和存储入口函数。例如,请求入口函数A包括两条调用链路,一条链路调用函数B、F,函数B、F的标识都是在函数A的标识基础上增加层级,再通过函数B调用函数C、D,函数C、D的标识都是在函数B的标识基础上增加层级;另外一条链路的函数A采用不同的标识和特征值;此外,打包入口函数、验证入口函数、提交入口函数和存储入口函数均采用类似的规则进行命名,从而形成函数调用链路。
图7的实线链接是部分内的调用关系,虚线链接是不同部分的调用关系。
以特定数据处理为维度分析,将图7的函数调用链路提炼成为图8的实时动态调用链路,以此作为这次请求场景的全函数实时调用链路,即为数据处理的全过程。图8中,请求入口函数A的子调用函数B、C、D是同步操作过程,函数F过程中开启了一个异步操作,而异步操作是从打包入口函数H开始的,打包入口函数中的一个DataKey与请求入口函数A的DataKey相同;同理,函数L开启了异步操作,异步操作从验证入口函数K开始;函数T开启了异步操作,异步操作从提交入口函数Q开始;函数Z开启了异步操作,异步操作从存储入口函数M开始。通过不同数据处理部分的函数动态调用链路的关联辅助分析数据处理的全过程。
由以上本说明书实施例提供的技术方案可见,本说明书实施例通过面向切面编程方式(AOP)在不同关键点函数进行代码注入,并通过每个关键点函数及其子调用对应的唯一标识符实现不同函数的关联,并通过动态调用链路对不同函数进行整合,获取到数据处理的全流程。
本申请实施例还提供了一种全函数动态调用链路确定装置,如图9所示,所述装置包括:
交易请求接收模块910,用于接收终端发送的交易请求,所述交易请求携带至少两个交易信息;
目标区块链确定模块920,用于确定所述至少两个交易信息对应的目标区块链;
关键点函数确定模块930,用于确定所述目标区块链中的至少两个关键点函数;
代码注入模块940,用于通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;
标识符确定模块950,用于确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;
目标标识符集确定模块960,用于根据每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符,确定目标标识符集;
调用链路确定模块970,用于根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
在一些实施例中,所述装置还可以包括:
特征值确定模块,用于确定每个关键点函数的特征值;
目标关键点函数确定模块,用于基于所述每个关键点函数的特征值,确定存在关联关系的目标关键点函数。
在一些实施例中,所述目标标识符集确定模块可以包括:
目标标识符集确定单元,用于根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定目标标识符集。
在一些实施例中,所述目标标识符集确定单元可以包括:
标识符集确定子单元,用于根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定每个目标关键点函数对应的标识符集;
目标标识符集确定子单元,用于基于所述每个目标关键点函数对应的标识符集,确定目标标识符集。
在一些实施例中,所述标识符确定模块可以包括:
第一标识符确定单元,用于通过反射机制获取每个关键点函数的标识符;
第二标识符确定单元,用于根据所述每个关键点函数的标识符,确定所述关键点函数的子调用对应的标识符。
在一些实施例中,所述第二标识符确定单元可以包括:
一次标识符确定子单元,用于根据所述每个关键点函数的标识符,确定所述关键点函数的一次子调用对应的标识符;
N+1次标识符确定子单元,用于根据所述关键点函数的N次子调用对应的标识符,确定所述关键点函数的N+1次子调用对应的标识符,N=1,2,……,M,M≥3且M为正整数。
在一些实施例中,所述关键点函数包括打包函数和验证函数,所述装置还可以包括:
打包处理模块,用于通过打包函数对所述至少两个交易信息进行打包处理;
分配模块,用于将所述至少两个交易信息分配至所述目标区块链的至少两个区块中;
信息验证模块,用于通过验证函数对每个区块以及所述每个区块中的交易进行信息验证。
在一些实施例中,所述关键点函数还包括请求函数,提交函数和存储函数,所述信息验证模块还可以包括:
提交共识处理单元,用于通过提交函数,采用异步通信和投票等待方式对每个区块以及所述每个区块中的交易进行提交共识处理;
存储单元,用于通过存储函数,采用异步并发处理方式对提交共识成功后的区块、交易进行存储。
在一些实施例中,所述交易请求接收模块可以包括:
交易请求接收单元,用于通过请求函数接收终端发送的交易请求。
在一些实施例中,所述装置还可以包括:
状态信息确定模块,用于确定每个关键点函数的状态信息;
在一些实施例中,所述代码注入模块可以包括:
代码注入单元,用于当每个关键点函数的状态为编译期或运行期时,通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪。
所述的装置实施例中的装置与方法实施例基于同样地发明构思。
本申请实施例提供了一种全函数动态调用链路确定设备,该设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的全函数动态调用链路确定方法。
本申请的实施例还提供了一种计算机存储介质,所述计算机存储介质可设置于终端之中以保存用于实现方法实施例中一种全函数动态调用链路确定方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的全函数动态调用链路确定方法。
可选地,在本说明书实施例中,计算机存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书实施例所述存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的全函数动态调用链路确定方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图10是本申请实施例提供的一种全函数动态调用链路确定方法的服务器的硬件结构框图。如图10所示,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1010(处理器1010可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1030,一个或一个以上存储应用程序1023或数据1022的存储介质1020(例如一个或一个以上海量存储设备)。其中,存储器1030和存储介质1020可以是短暂存储或持久存储。存储在存储介质1020的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1010可以设置为与存储介质1020通信,在服务器1000上执行存储介质1020中的一系列指令操作。服务器1000还可以包括一个或一个以上电源1060,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1040,和/或,一个或一个以上操作系统1021,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口1040可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1000的通信供应商提供的无线网络。在一个实例中,输入输出接口1040包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1040可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
由上述本申请提供的全函数动态调用链路确定方法、装置、服务器或存储介质的实施例可见,本申请通过面向切面编程方式(AOP)在不同关键点函数进行进行代码注入,并通过每个关键点函数及其子调用对应的唯一标识符实现不同函数的关联,并通过动态调用链路对不同函数进行整合,获取到数据处理的全流程。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种全函数动态调用链路确定方法,其特征在于,所述方法包括:
接收终端发送的交易请求,所述交易请求携带至少两个交易信息;
确定所述至少两个交易信息对应的目标区块链;
确定所述目标区块链中的至少两个关键点函数;
通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;
确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;
根据所述每个关键点函数的标识符以及所述每个关键点函数的子调用对应的标识符,确定目标标识符集;
根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定每个关键点函数的特征值;
基于所述每个关键点函数的特征值,确定存在关联关系的目标关键点函数;
相应的,所述根据所述每个关键点函数的标识符以及所述每个关键点函数的子调用对应的标识符,确定目标标识符集包括:
根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定目标标识符集。
3.根据权利要求2所述的方法,其特征在于,所述根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定目标标识符集包括:
根据每个目标关键点函数的标识符以及每个目标关键点函数的子调用对应的标识符,确定每个目标关键点函数对应的标识符集;
基于所述每个目标关键点函数对应的标识符集,确定目标标识符集。
4.根据权利要求1所述的方法,其特征在于,所述确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符包括:
通过反射机制获取每个关键点函数的标识符;
根据所述每个关键点函数的标识符,确定所述每个关键点函数的子调用对应的标识符。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个关键点函数的标识符,确定所述每个关键点函数的子调用对应的标识符包括:
根据所述每个关键点函数的标识符,确定所述每个关键点函数的一次子调用对应的标识符;
根据所述每个关键点函数的N次子调用对应的标识符,确定所述每个关键点函数的N+1次子调用对应的标识符,N=1,2,……,M,M≥3且M为正整数。
6.根据权利要求1所述的方法,其特征在于,所述关键点函数包括打包函数和验证函数,所述方法还包括:
通过打包函数对所述至少两个交易信息进行打包处理;
将所述至少两个交易信息分配至所述目标区块链的至少两个区块中;
通过验证函数对每个区块以及所述每个区块中的交易进行信息验证。
7.根据权利要求6所述的方法,其特征在于,所述关键点函数还包括请求函数,提交函数和存储函数,所述通过验证函数对每个区块以及所述每个区块中的交易进行信息验证包括:
通过提交函数,采用异步通信和投票等待方式对每个区块以及所述每个区块中的交易进行提交共识处理;
通过存储函数,采用异步并发处理方式对提交共识成功后的区块、交易进行存储;
相应的,所述接收终端发送的交易请求包括:
通过请求函数接收终端发送的交易请求。
8.根据权利要求1所述的方法,其特征在于,所述通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪的步骤之前,所述方法还包括:
确定每个关键点函数的状态信息;
相应的,所述通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪包括:
当每个关键点函数的状态为编译期或运行期时,通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪。
9.一种全函数动态调用链路确定装置,其特征在于,所述装置包括:
交易请求接收模块,用于接收终端发送的交易请求,所述交易请求携带至少两个交易信息;
目标区块链确定模块,用于确定所述至少两个交易信息对应的目标区块链;
关键点函数确定模块,用于确定所述目标区块链中的至少两个关键点函数;
代码注入模块,用于通过面向切面编程方式,在每个关键点函数注入代码进行函数动态链路跟踪;
标识符确定模块,用于确定每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符;
目标标识符集确定模块,用于根据每个关键点函数的标识符以及每个关键点函数的子调用对应的标识符,确定目标标识符集;
调用链路确定模块,用于根据所述目标标识符集,确定所述目标区块链中的全函数动态调用链路。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8任一所述的全函数动态调用链路确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010156770.0A CN111400317A (zh) | 2020-03-09 | 2020-03-09 | 全函数动态调用链路确定方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010156770.0A CN111400317A (zh) | 2020-03-09 | 2020-03-09 | 全函数动态调用链路确定方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400317A true CN111400317A (zh) | 2020-07-10 |
Family
ID=71434098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010156770.0A Pending CN111400317A (zh) | 2020-03-09 | 2020-03-09 | 全函数动态调用链路确定方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400317A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394939A (zh) * | 2020-10-30 | 2021-02-23 | 迅鳐成都科技有限公司 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
-
2020
- 2020-03-09 CN CN202010156770.0A patent/CN111400317A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394939A (zh) * | 2020-10-30 | 2021-02-23 | 迅鳐成都科技有限公司 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
CN112394939B (zh) * | 2020-10-30 | 2023-06-13 | 迅鳐成都科技有限公司 | 基于联盟链的用户合约自动部署方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zheng et al. | Ethereum smart contract development in solidity | |
CN111382073A (zh) | 自动化测试用例确定方法、装置、设备及存储介质 | |
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN108510082A (zh) | 对机器学习模型进行处理的方法及装置 | |
CN113168652B (zh) | 区块链交易处理系统和方法 | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
JP7157348B2 (ja) | ブロックチェーンシステム、承認端末、スマートコントラクト登録方法、および、スマートコントラクト登録プログラム | |
CN112508573B (zh) | 一种交易数据处理方法、装置以及计算机设备 | |
US11385917B2 (en) | Method for executing smart contract and blockchain node | |
CN112070608B (zh) | 信息处理方法、装置、介质及电子设备 | |
CN112632071A (zh) | 数据库主键id生成方法、装置、设备及存储介质 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
CN113454597A (zh) | 区块链交易处理系统和方法 | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
Tennakoon et al. | Collachain: A bft collaborative middleware for decentralized applications | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111400317A (zh) | 全函数动态调用链路确定方法、装置及存储介质 | |
CN116583833A (zh) | 自审计区块链 | |
WO2007000660A1 (en) | Imparting digital uniqueness to the types of a programming language using a unique digital sequence | |
Imran et al. | Research perspectives and challenges of blockchain for data-intensive and resource-constrained devices | |
CN114860204A (zh) | 程序处理、运行方法、装置、终端、智能卡及存储介质 | |
George et al. | Ethereum | |
Valvag et al. | Cogset: A unified engine for reliable storage and parallel processing | |
CN112003736A (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 |