CN112070608A - 信息处理方法、装置、介质及电子设备 - Google Patents
信息处理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN112070608A CN112070608A CN202010844189.8A CN202010844189A CN112070608A CN 112070608 A CN112070608 A CN 112070608A CN 202010844189 A CN202010844189 A CN 202010844189A CN 112070608 A CN112070608 A CN 112070608A
- Authority
- CN
- China
- Prior art keywords
- contract
- code
- tree
- optimization
- information
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 46
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000005457 optimization Methods 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 92
- 230000006870 function Effects 0.000 claims description 139
- 238000004458 analytical method Methods 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请属于区块链技术领域,具体涉及一种信息处理方法、信息处理装置、计算机可读介质以及电子设备。该信息处理方法包括:获取待部署至区块链网络的待优化智能合约的合约代码;对所述合约代码进行语法结构解析得到所述合约代码的语法结构树;对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,并获取与所述结构子树相对应的代码功能信息;根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,并根据所述合约优化代码确定所述待优化智能合约的合约优化信息。该方法可以降低区块链网络上运行智能合约的资源消耗和运行成本,提高区块链网络的运行可靠性。
Description
技术领域
本申请属于区块链技术领域,具体涉及一种信息处理方法、信息处理装置、计算机可读介质以及电子设备。
背景技术
随着区块链技术逐渐被人们所熟知与信任,各种业务应用也对区块链技术提出了更高的性能要求。
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,可以提供优于传统合约的安全方法,并减少与合约相关的交易成本。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
智能合约作为区块链技术的核心部分,要承托未来各方业务区块链化,将会有越来越多的去中心化的业务应用通过智能合约运行在区块链网络上。在区块链网络上实现的业务应用需要调用相应的智能合约,智能合约的运行性能也在一定程度上决定了区块链网络的整体性能。而且,智能合约的运行需要根据其运行情况消耗一定量的区块链网络的网络资源。因此,如何提高智能合约的运行性能,降低智能合约的运行成本成为目前亟待解决的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种信息处理方法、信息处理装置、计算机可读介质以及电子设备,至少在一定程度上克服相关技术中存在的智能合约运行资源消耗大、运行成本高等技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种信息处理方法,该方法包括:获取待部署至区块链网络的待优化智能合约的合约代码;对所述合约代码进行语法结构解析得到所述合约代码的语法结构树;对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,并获取与所述结构子树相对应的代码功能信息;根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,并根据所述合约优化代码确定所述待优化智能合约的合约优化信息。
根据本申请实施例的一个方面,提供一种信息处理装置,该装置包括:代码获取模块,被配置为获取待部署至区块链网络的待优化智能合约的合约代码;结构解析模块,被配置为对所述合约代码进行语法结构解析得到所述合约代码的语法结构树;结构拆分模块,被配置为对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,并获取与所述结构子树相对应的代码功能信息;合约优化模块,被配置为根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,并根据所述合约优化代码确定所述待优化智能合约的合约优化信息。
在本申请的一些实施例中,基于以上技术方案,所述结构解析模块包括:词法分析单元,被配置为对所述合约代码进行词法分析,得到与所述合约代码相对应的词法单元序列;语法分析单元,被配置为按照所述词法单元序列中的各个词法单元的语法结构关系,将所述词法单元序列由数组结构转换为树形结构,得到所述合约代码的语法结构树。
在本申请的一些实施例中,基于以上技术方案,所述词法分析单元包括:字符流分割子单元,被配置为依次读取所述合约代码中的代码字符流,并按照构词规则将所述代码字符流分割为字符串序列;词法单元识别子单元,被配置为识别所述字符串序列中的词法单元,得到与所述字符串序列相对应的词法单元序列。
在本申请的一些实施例中,基于以上技术方案,所述结构拆分模块包括:节点识别单元,被配置为识别所述语法结构树中的方法入口节点和方法截止节点;结构拆分单元,被配置为根据所述方法入口节点和所述方法截止节点对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树。
在本申请的一些实施例中,基于以上技术方案,所述结构拆分模块还包括:数据库获取单元,被配置为获取所述待优化智能合约的编程语言类型,并根据所述编程语言类型获取与所述待优化智能合约相对应的基础结构数据库;匹配检测单元,被配置为遍历所述语法结构树中的结构子树,并将所述结构子树与基础结构数据库进行匹配检测;功能获取单元,被配置为若在所述基础结构数据库中检测到与所述结构子树相匹配的基础结构树,则获取与所述基础结构树相关联的代码功能信息。
在本申请的一些实施例中,基于以上技术方案,所述数据库获取单元包括:代码采集子单元,被配置为采集与所述待优化智能合约具有相同编程语言类型的基础功能实现代码;代码分类子单元,被配置为按照代码功能对所述基础功能实现代码进行分类得到对应于不同代码功能的代码集合;代码组合子单元,被配置为将所述代码集合中的基础功能实现代码组合形成对应于不同代码功能的基础智能合约;代码解析子单元,被配置为对组成所述基础智能合约的基础功能实现代码进行语法结构解析得到所述基础功能实现代码的基础结构树;数据库建立子单元,被配置为建立所述基础结构树与所实现代码功能的关联关系,并将所述基础结构树组成基础结构数据库。
在本申请的一些实施例中,基于以上技术方案,所述数据库获取单元还包括:合约部署子单元,被配置为将所述基础智能合约部署至区块链网络上;合约调用子单元,被配置为分别调用所述基础智能合约中的各个基础功能实现代码,以获取所述基础功能实现代码对区块链网络资源的资源消耗信息;消耗关联子单元,被配置为建立所述基础功能实现代码的基础结构树与所述资源消耗信息的关联关系。
在本申请的一些实施例中,基于以上技术方案,所述合约优化模块包括:基础结构查询单元,被配置为根据所述代码功能信息确定与所述结构子树具有相同代码功能的一个或者多个基础结构树;资源消耗获取单元,被配置为获取与所述基础结构树相关联的区块链网络资源的资源消耗信息;优化结构选取单元,被配置为根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源优化结构树;优化代码获取单元,被配置为获取与所述资源优化结构树相对应的合约优化代码。
在本申请的一些实施例中,基于以上技术方案,所述优化结构选取单元包括:第一结构选取子单元,被配置为根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源消耗最低的基础结构树作为资源优化结构树。
在本申请的一些实施例中,基于以上技术方案,所述优化结构选取单元包括:第一结构选取子单元,被配置为根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源消耗低于消耗阈值的基础结构树作为资源优化结构树。
在本申请的一些实施例中,基于以上技术方案,所述代码获取模块包括:请求接收单元,被配置为通过区块链网络接收由合约部署节点发出的合约部署请求;签名校验单元,被配置为从所述合约部署请求中获取所述合约部署节点的数字签名,并对所述数字签名进行签名校验;代码获取单元,被配置为若校验通过,则根据所述合约部署请求获取待部署至区块链网络的待优化智能合约的合约代码。
在本申请的一些实施例中,基于以上技术方案,所述装置还包括:代码修改模块,被配置为根据所述合约优化信息对所述待优化智能合约进行代码修改后得到资源优化智能合约;代码摘要模块,被配置为对所述资源优化智能合约进行摘要处理,以得到作为合约地址信息的智能合约摘要;合约保存模块,被配置为建立所述资源优化智能合约与所述合约地址信息的关联关系,并将所述资源优化智能合约保存至区块链。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的信息处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的信息处理方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的信息处理方法。
在本申请实施例提供的技术方案中,通过对智能合约的合约代码进行语法结构解析可以按照代码功能的不同对合约代码进行拆分形成与结构子树相对应的代码片段,按照不同的代码功能可以进一步获取合约优化代码,从而根据合约优化代码确定合约优化信息,实现对智能合约的代码优化得到具有优化性能的智能合约,降低区块链网络上运行智能合约的资源消耗和运行成本,提高区块链网络的运行可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
图2示意性地示出了本申请实施例中的区块链的组成结构。
图3示意性地示出了本申请实施例中信息处理方法的步骤流程图。
图4示意性地示出了本申请实施例中合约代码的语法结构树示意图。
图5示意性地示出了本申请一些实施例中构建基础结构数据库的方法步骤流程图。
图6示意性地示出了本申请一些实施例中获取资源消耗信息的原理示意图。
图7示意性地示出了基础结构体与代码功能以及网络资源消耗之间的关联关系示意图。
图8示意性地示出了本申请技术方案在一应用场景中进行智能合约代码优化的原理示意图。
图9示意性地示出了本申请实施例提供的信息处理装置的结构框图。
图10示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性地示出了应用本申请技术方案的示例性系统架构框图。
如图1所示,系统架构100可以包括至少一个客户端110和区块链网络120,区块链网络120包括至少一个节点设备121。客户端110可以是智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。节点设备121可以是终端设备或者服务器等任意形式的电子设备,例如节点设备121可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,还可以是提供云计算服务的云服务器。
在区块链网络120中,每个节点设备121在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据。为了保证信息互通,各个节点设备121之间可以存在信息连接,各个节点设备121相互可以通过信息连接进行信息传输。例如,当区块链网络120中的任意节点设备121接收到输入信息,并将输入信息在区块链网络120中进行广播时,区块链网络120中的其他节点设备可以根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储。
区块链网络120中的各个节点设备121上可以存储一条相同的区块链(BlockChain)。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并以密码学方式保证数据不可篡改和不可伪造的分布式数据库。图2示意性地示出了本申请实施例中的区块链的组成结构。如图2所示,区块链由多个顺次连接的区块组成,每当有新的数据需要写入区块链时,这些数据会汇总到一个新生成的区块中,新生成的区块将被链接至区块链的末端,通过共识算法可以保证每个节点设备121上新增的区块是完全相同的。在每个区块的区块体中记录了当前区块的数据,同时在其区块头中保存与之相连的前一区块的哈希值(Hash),若前一区块中的交易数据发生变化,那么当前区块的哈希值也将随之改变。因此,上传至区块链网络中的数据难以被篡改,可以提高共享数据的可靠性。
当用户想要在区块链网络上部署智能合约时,可以通过客户端110将智能合约的合约代码发送至区块链网络120中的任意一个节点设备121,该节点设备121可以与区块链网络中的其他节点设备对待部署的智能合约进行共识验证,在共识验证通过后,可以生成包含该智能合约的合约代码的新区块,该新区块将被链接至区块链上以供节点设备进行调用和运行。
在智能合约中一般会包含实现不同业务应用的方法,例如注册用户名、转账等等。当用户想要调用智能合约中的目标方法时,可以通过客户端110向节点设备121发送针对智能合约中的目标方法的调用请求。当调用并运行智能合约中的方法时,用户需要向节点设备给予一定数量的区块链网络资源来作为执行手续费。例如在区块链网络中可以将Gas作为资源消耗的计量费用,区块链底层技术会根据不同代码执行情况来收取相应费用,因此为了节约运行成本并降低区块链网络的运行压力,在实现相同功能的情况下应当尽可能地选择Gas费用低的实现方法。有鉴于此,用户在开发智能合约时或者在向区块链网络上部署智能合约时,可以利用本申请实施例提供的信息处理方法对待部署的智能合约进行代码修改和优化,从而可以降低运行智能合约的资源消耗和成本,优化智能合约以及区块链网络整体的运行性能。
下面结合具体实施方式对本申请提供的信息处理方法做出详细说明。图3示意性地示出了本申请实施例中信息处理方法的步骤流程图,该信息处理方法可以应用于区块链网络中的节点设备,或者可以应用于能够与节点设备进行数据通信的客户端。如图3所示,该信息处理方法主要可以包括如下的步骤S310至步骤S340。
步骤S310:获取待部署至区块链网络的待优化智能合约的合约代码。
步骤S320:对合约代码进行语法结构解析得到合约代码的语法结构树。
步骤S330:对语法结构树进行结构拆分得到组成语法结构树的结构子树,并获取与结构子树相对应的代码功能信息。
步骤S340:根据代码功能信息确定与结构子树具有相同代码功能的合约优化代码,并根据合约优化代码确定待优化智能合约的合约优化信息。
在本申请实施例提供的信息处理方法中,通过对智能合约的合约代码进行语法结构解析可以按照代码功能的不同对合约代码进行拆分形成与结构子树相对应的代码片段,按照不同的代码功能可以进一步获取合约优化代码,从而根据合约优化代码确定合约优化信息,实现对智能合约的代码优化得到具有优化性能的智能合约,降低区块链网络上运行智能合约的资源消耗和运行成本,提高区块链网络的运行可靠性。
下面分别对以上实施例中的信息处理方法的各个方法步骤做出详细说明。
在步骤S310中,获取待部署至区块链网络的待优化智能合约的合约代码。
本申请实施例可以应用于智能合约的开发和测试过程中,用于向开发人员提供智能合约的代码优化建议。另外,本申请实施例也可以应用于智能合约的部署过程中,响应于智能合约的部署请求,对其进行优化。
在本申请的一些可选的实施方式中,获取合约代码的方法可以包括如下的步骤S311至步骤S313。
步骤S311:通过区块链网络接收由合约部署节点发出的合约部署请求。
步骤S312:从合约部署请求中获取合约部署节点的数字签名,并对数字签名进行签名校验。
步骤S313:若校验通过,则根据合约部署请求获取待部署至区块链网络的待优化智能合约的合约代码。
合约部署节点可以是区块链网络上请求进行智能合约部署的任意区块链节点,当合约部署节点在区块链网络中广播合约部署请求时,各个区块链节点可以通过区块链网络接收这一合约部署请求,并对其做出响应处理。
合约部署节点在请求进行合约部署时,会利用其自身的节点私钥进行电子签名处理得到携带智能合约的合约代码和数字签名的合约部署请求。其中,电子签名的方法是先对智能合约的合约代码进行摘要处理得到请求合约摘要,然后再利用节点私钥对请求合约摘要进行加密得到数字签名。在当前区块链节点接收到这一合约部署请求时,可以对其数字签名进行签名校验,以验证数据来源的可靠性。
在对合约部署请求进行签名校验时,可以首先获取区块链网络上公开的系统公钥,然后利用系统公钥对合约部署请求中携带的数字签名进行解密处理,以得到待校验合约摘要。对合约部署请求中携带的智能合约进行摘要处理可以得到请求合约摘要,最后再对待校验合约摘要和请求合约摘要进行一致性校验可以得到数字签名的签名校验结果。
合约部署节点在进行电子签名处理时使用的节点私钥与区块链网络上公开的系统公钥可以组成一对非对称秘钥对。当前区块链节点使用与合约部署节点相同的摘要算法对合约部署请求中携带的智能合约进行摘要处理,可以得到智能合约的请求合约摘要。如果数据来源无误,而且数据传输过程中没有经过篡改,那么通过系统公钥解密后得到的待校验合约摘要应当与加密前的请求合约摘要是一致的。因此,如果待校验合约摘要和请求合约摘要校验一致,便可以确定签名校验通过;如果待校验合约摘要和请求合约摘要校验不一致,则可以确定签名校验失败。
在校验通过的情况下,当前区块链节点可以从合约部署请求中获取待优化智能合约的合约代码,并在后续步骤中对其进行分析处理得到合约代码的优化建议。
步骤S320:对合约代码进行语法结构解析得到合约代码的语法结构树。
语法结构树以树状的形式表现合约代码的语法结构,语法结构树上的每一个节点都表示合约代码中的一个结构。本申请实施例中获得的语法结构树可以是抽象语法树(Abstract Syntax Tree,AST),在抽象语法树中不会表现出真实代码语法中的全部细节。
在构建语法结构树时,可以首先对合约代码进行词法分析(lexical analysis),得到与合约代码相对应的词法单元序列;然后按照词法单元序列中的各个词法单元的语法结构关系,将词法单元序列由数组结构转换为树形结构,得到合约代码的语法结构树。
其中,通过词法分析可以将合约代码中的字符序列转换为词法单元序列。具体可以依次读取合约代码中的代码字符流,并按照构词规则将代码字符流分割为字符串序列;然后识别字符串序列中的词法单元,得到与字符串序列相对应的词法单元序列。词法分析通过扫描代码字符流可以逐个读取其中的字符,基于构词规则可以在扫描过程中对读取到的字符进行适时分割形成字符串。例如,每当遇到空格、操作符或者其他特殊符号时,便可以进行一次分割形成字符串,不断进行扫描和分割即形成由字符串组成的字符串序列。
对字符串序列按照语言的词法规则进行识别可以得到各种类型的词法单元(Token),词法单元是构成源代码的最小语法单位。词法单元的类型例如可以包括标识符、操作符、操作数等等。
举例而言,一段合约代码表示为“slice[i]=i*(3+4)”,在对其进行语法结构解析后可以得到如图4所示的语法结构树,语法结构树中的每一个节点均对应于合约代码中的一个词法单元。其中,slice和i为两个标识符,=表示赋值操作符,[]表示取下标的操作符,*表示乘法操作符,+表示加法操作符,3和4为参与加法操作的操作数。
在步骤S330中,对语法结构树进行结构拆分得到组成语法结构树的结构子树,并获取与结构子树相对应的代码功能信息。
在智能合约的合约代码中包括有实现不同业务方法的代码片段,针对不同的方法,可以将语法结构树拆分成不同的结构子树。具体地,本申请实施例可以识别语法结构树中的方法入口节点和方法截止节点,然后根据方法入口节点和方法截止节点对语法结构树进行结构拆分得到组成语法结构树的结构子树。方法入口节点对应于开始方法的词法单元,如以上示例的合约代码中的标识符slice;方法截止节点对应于结束方法的词法单元,如以上示例的合约代码中的操作数4。
在本申请的一些实施例中,可以根据智能合约的编程语言预先构建基础结构数据库,在基础结构数据库中保存有各种代码方法的基础结构树以及与基础结构树具有关联关系的代码功能。智能合约可以采用各种不同类型的变成语言来编写合约代码,例如可以使用Solidity语言、Serpent语言、Mutan语言、LLL语言、GO语言等等。
在本申请实施例中,为了获取与结构子树相对应的代码功能信息,可以先获取待优化智能合约的编程语言类型,并根据编程语言类型获取与待优化智能合约相对应的基础结构数据库;遍历遍历语法结构树中的结构子树,并将结构子树与基础结构数据库进行匹配检测;若在基础结构数据库中检测到与结构子树相匹配的基础结构树,则获取与基础结构树相关联的代码功能信息。
图5示意性地示出了本申请一些实施例中构建基础结构数据库的方法步骤流程图。如图5所示,构建基础结构数据库的方法主要可以包括如下的步骤S510至步骤S550。
步骤S510:采集与待优化智能合约具有相同编程语言类型的基础功能实现代码。
步骤S520:按照代码功能对基础功能实现代码进行分类得到对应于不同代码功能的代码集合。
步骤S530:将代码集合中的基础功能实现代码组合形成对应于不同代码功能的基础智能合约。
步骤S540:对组成基础智能合约的基础功能实现代码进行语法结构解析得到基础功能实现代码的基础结构树。
步骤S550:建立基础结构树与所实现代码功能的关联关系,并将基础结构树组成基础结构数据库。
在本申请实施例中,根据智能合约所使用的编程语言类型,可以采集各种不同代码功能的实现方法,每种实现方法即对应一段基础功能实现代码。将基础功能实现代码以代码功能为维度可以组合形成对应于不同代码功能的基础智能合约。
举例而言,在一些智能合约中可以通过代码实现结构体初始化、字符串格式化、循环遍历等等多种不同的代码功能。
针对结构图体初始化功能,本申请实施例可以采集得到“声明对象时初始化”、“声明对象后逐个初始化”、“声明指针时初始化”、“声明指针后逐个初始化”、“对象复制后逐个初始化”等多种实现方法,每种实现方法各对应一段用于实现结构图体初始化的基础功能实现代码,将这些基础功能实现代码进行组合可以形成实现结构图体初始化的基础智能合约。
针对字符串格式化功能,本申请实施例可以采集得到“字符串加法”、“字符串标签格式化”、“字符串格式化库”、“字符串数组格式化库”等多种实现方法,每种实现方法各对应一段用于实现字符串格式化的基础功能实现代码,将这些基础功能实现代码进行组合可以形成实现字符串格式化的基础智能合约。
针对循环遍历功能,本申请实施例可以采集得到“数组遍历”、“生成器遍历”、“迭代器遍历”、“自增遍历”等多种实现方法,每种实现方法各对应一段用于实现循环遍历的基础功能实现代码,将这些基础功能实现代码进行组合可以形成实现循环遍历的基础智能合约。
分别得到不同代码功能对应的基础智能合约后,可以对其进行语法结构解析得到基础功能实现代码的基础结构树,每个基础结构树均与其对应实现的代码功能建立起关联关系,基于该关联关系,可以在基础结构数据库中通过代码功能查询得到基础结构树,同时也可以通过基础结构树查询得到对应的代码功能。对基础智能合约进行语法结构解析得到基础结构树的方法与以上实施例中针对待优化智能合约的合约代码的处理方式相同,故此处不再赘述。
在本申请的一些实施例中,为了获取不同基础功能实现代码的资源消耗情况,可以将基础智能合约部署至区块链网络上,通过在区块链网络上分别调用基础智能合约中的各个基础功能实现代码,获取基础功能实现代码对区块链网络资源的资源消耗信息,从而建立基础功能实现代码的基础结构树与资源消耗信息的关联关系。
图6示意性地示出了本申请一些实施例中获取资源消耗信息的原理示意图。如图6所示,结构体初始化的基础智能合约、字符串格式化的基础智能合约、循环遍历的基础智能合约以及其他代码功能对应的基础智能合约可以部署至区块链网络上,由区块链网络中的区块链节点可以调用每个基础智能合约中的方法,每个方法即对应一种基础功能实现代码。在运行代码以实现合约方法的过程中,可以监测每种基础功能实现代码(即合约方法)的网络资源消耗情况,例如可以监测执行每段基础功能实现代码的Gas消耗值。图7示意性地示出了基础结构体与代码功能以及网络资源消耗之间的关联关系示意图。如图7中所示,通过对基础智能合约进行语法结构解析,可以得到基础智能合约中如方法a、方法b、方法c、方法d等不同基础功能实现代码对应的基础结构体。另外,通过合约调用和监测,可以分别获取每个基础功能实现代码的网络资源消耗,如Gas-a、Gas-b、Gas-c、Gas-d等等。对应于同一代码功能的各个基础功能实现代码,可以按照网络资源消耗的大小进行排序,以便后续进行智能合约优化。
在步骤S340:根据代码功能信息确定与结构子树具有相同代码功能的合约优化代码,并根据合约优化代码确定待优化智能合约的合约优化信息。
在本申请的一些实施例中,确定合约优化代码的方法可以包括如下的步骤S341至步骤S344。
步骤S341:根据代码功能信息确定与结构子树具有相同代码功能的一个或者多个基础结构树。
步骤S342:获取与基础结构树相关联的区块链网络资源的资源消耗信息。
步骤S343:根据资源消耗信息从一个或者多个基础结构树中选取资源优化结构树。
步骤S344:获取与资源优化结构树相对应的合约优化代码。
在获取到代码功能信息后,可以在基础结构数据库中查询对应代码功能的基础结构树,同时可以获取到每个基础结构树相关联的资源消耗信息。其中一种可选的实施方式是根据资源消耗信息从一个或者多个基础结构树中选取资源消耗最低的基础结构树作为资源优化结构树,另一种可选的实施方式是根据资源消耗信息从一个或者多个基础结构树中选取资源消耗低于消耗阈值的基础结构树作为资源优化结构树。不同的选取方式可以获取到不同数量的资源优化结构树,从而适用不同的场景需求。
图8示意性地示出了本申请技术方案在一应用场景中进行智能合约代码优化的原理示意图。如图8所示,在该应用场景中,可以根据基础结构数据库配置Gas优化检测工具802,在将智能合约801的合约代码传入至Gas优化检测工具802后,该工具可以对合约代码进行代码扫描,生成智能合约的语法结构树803。在语法结构树803中包括有实现不同代码功能的智能合约方法,利用Gas优化检测工具802可以遍历语法结构树803中的各个子结构树804,并将子结构树804与基础结构数据库805进行匹配检测,找到方法对应所实现的功能,进而查找实现该功能的优化方法并输出Gas优化推荐建议806。如图8中所示例的,智能合约方法1使用了方法c来实现某一代码功能,而实际上使用方法b(如图7所示的排序结果)可以获得更少的网络资源消耗,因此可以将方法b对应的基础功能实现代码视作合约优化代码,给出推荐使用方法b的优化推荐建议。
在本申请的一些实施例中,在获取到合约优化信息后,可以根据合约优化信息对待优化智能合约进行代码修改,得到资源优化智能合约。然后可以对资源优化智能合约进行摘要处理,以得到作为合约地址信息的智能合约摘要。进而可以建立资源优化智能合约与合约地址信息的关联关系,并将资源优化智能合约保存至区块链。
将合约地址信息与智能合约以键值对的形式保存在区块链上,当区块链节点需要调用智能合约时,可以利用合约地址信息准确地获取并执行智能合约的合约代码。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的信息处理方法。图9示意性地示出了本申请实施例提供的信息处理装置的结构框图。如图9所示,信息处理装置900主要可以包括:代码获取模块910,被配置为获取待部署至区块链网络的待优化智能合约的合约代码;结构解析模块920,被配置为对合约代码进行语法结构解析得到合约代码的语法结构树;结构拆分模块930,被配置为对语法结构树进行结构拆分得到组成语法结构树的结构子树,并获取与结构子树相对应的代码功能信息;合约优化模块940,被配置为根据代码功能信息确定与结构子树具有相同代码功能的合约优化代码,并根据合约优化代码确定待优化智能合约的合约优化信息。
在本申请的一些实施例中,基于以上各实施例,结构解析模块包括:词法分析单元,被配置为对合约代码进行词法分析,得到与合约代码相对应的词法单元序列;语法分析单元,被配置为按照词法单元序列中的各个词法单元的语法结构关系,将词法单元序列由数组结构转换为树形结构,得到合约代码的语法结构树。
在本申请的一些实施例中,基于以上各实施例,词法分析单元包括:字符流分割子单元,被配置为依次读取合约代码中的代码字符流,并按照构词规则将代码字符流分割为字符串序列;词法单元识别子单元,被配置为识别字符串序列中的词法单元,得到与字符串序列相对应的词法单元序列。
在本申请的一些实施例中,基于以上各实施例,结构拆分模块包括:节点识别单元,被配置为识别语法结构树中的方法入口节点和方法截止节点;结构拆分单元,被配置为根据方法入口节点和方法截止节点对语法结构树进行结构拆分得到组成语法结构树的结构子树。
在本申请的一些实施例中,基于以上各实施例,结构拆分模块还包括:数据库获取单元,被配置为获取待优化智能合约的编程语言类型,并根据编程语言类型获取与待优化智能合约相对应的基础结构数据库;匹配检测单元,被配置为遍历语法结构树中的结构子树,并将结构子树与基础结构数据库进行匹配检测;功能获取单元,被配置为若在基础结构数据库中检测到与结构子树相匹配的基础结构树,则获取与基础结构树相关联的代码功能信息。
在本申请的一些实施例中,基于以上各实施例,数据库获取单元包括:代码采集子单元,被配置为采集与待优化智能合约具有相同编程语言类型的基础功能实现代码;代码分类子单元,被配置为按照代码功能对基础功能实现代码进行分类得到对应于不同代码功能的代码集合;代码组合子单元,被配置为将代码集合中的基础功能实现代码组合形成对应于不同代码功能的基础智能合约;代码解析子单元,被配置为对组成基础智能合约的基础功能实现代码进行语法结构解析得到基础功能实现代码的基础结构树;数据库建立子单元,被配置为建立基础结构树与所实现代码功能的关联关系,并将基础结构树组成基础结构数据库。
在本申请的一些实施例中,基于以上各实施例,数据库获取单元还包括:合约部署子单元,被配置为将基础智能合约部署至区块链网络上;合约调用子单元,被配置为分别调用基础智能合约中的各个基础功能实现代码,以获取基础功能实现代码对区块链网络资源的资源消耗信息;消耗关联子单元,被配置为建立基础功能实现代码的基础结构树与资源消耗信息的关联关系。
在本申请的一些实施例中,基于以上各实施例,合约优化模块包括:基础结构查询单元,被配置为根据代码功能信息确定与结构子树具有相同代码功能的一个或者多个基础结构树;资源消耗获取单元,被配置为获取与基础结构树相关联的区块链网络资源的资源消耗信息;优化结构选取单元,被配置为根据资源消耗信息从一个或者多个基础结构树中选取资源优化结构树;优化代码获取单元,被配置为获取与资源优化结构树相对应的合约优化代码。
在本申请的一些实施例中,基于以上各实施例,优化结构选取单元包括:第一结构选取子单元,被配置为根据资源消耗信息从一个或者多个基础结构树中选取资源消耗最低的基础结构树作为资源优化结构树。
在本申请的一些实施例中,基于以上各实施例,优化结构选取单元包括:第一结构选取子单元,被配置为根据资源消耗信息从一个或者多个基础结构树中选取资源消耗低于消耗阈值的基础结构树作为资源优化结构树。
在本申请的一些实施例中,基于以上各实施例,代码获取模块包括:请求接收单元,被配置为通过区块链网络接收由合约部署节点发出的合约部署请求;签名校验单元,被配置为从合约部署请求中获取合约部署节点的数字签名,并对数字签名进行签名校验;代码获取单元,被配置为若校验通过,则根据合约部署请求获取待部署至区块链网络的待优化智能合约的合约代码。
在本申请的一些实施例中,基于以上各实施例,装置还包括:代码修改模块,被配置为根据合约优化信息对待优化智能合约进行代码修改后得到资源优化智能合约;代码摘要模块,被配置为对资源优化智能合约进行摘要处理,以得到作为合约地址信息的智能合约摘要;合约保存模块,被配置为建立资源优化智能合约与合约地址信息的关联关系,并将资源优化智能合约保存至区块链。
本申请各实施例中提供的信息处理装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
图10示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理器1001(Central Processing Unit,CPU),其可以根据存储在只读存储器1002(Read-Only Memory,ROM)中的程序或者从存储部分1008加载到随机访问存储器1003(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1003中,还存储有系统操作所需的各种程序和数据。中央处理器1001、在只读存储器1002以及随机访问存储器1003通过总线1004彼此相连。输入/输出接口1005(Input/Output接口,即I/O接口)也连接至总线1004。
以下部件连接至输入/输出接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至输入/输出接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理器1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种信息处理方法,其特征在于,包括:
获取待部署至区块链网络的待优化智能合约的合约代码;
对所述合约代码进行语法结构解析得到所述合约代码的语法结构树;
对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,并获取与所述结构子树相对应的代码功能信息;
根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,并根据所述合约优化代码确定所述待优化智能合约的合约优化信息。
2.根据权利要求1所述的信息处理方法,其特征在于,所述对所述合约代码进行语法结构解析得到所述合约代码的语法结构树,包括:
对所述合约代码进行词法分析,得到与所述合约代码相对应的词法单元序列;
按照所述词法单元序列中的各个词法单元的语法结构关系,将所述词法单元序列由数组结构转换为树形结构,得到所述合约代码的语法结构树。
3.根据权利要求2所述的信息处理方法,其特征在于,所述对所述合约代码进行词法分析,得到与所述合约代码相对应的词法单元序列,包括:
依次读取所述合约代码中的代码字符流,并按照构词规则将所述代码字符流分割为字符串序列;
识别所述字符串序列中的词法单元,得到与所述字符串序列相对应的词法单元序列。
4.根据权利要求1所述的信息处理方法,其特征在于,所述对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,包括:
识别所述语法结构树中的方法入口节点和方法截止节点;
根据所述方法入口节点和所述方法截止节点对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树。
5.根据权利要求1所述的信息处理方法,其特征在于,所述获取与所述结构子树相对应的代码功能信息,包括:
获取所述待优化智能合约的编程语言类型,并根据所述编程语言类型获取与所述待优化智能合约相对应的基础结构数据库;
遍历所述语法结构树中的结构子树,并将所述结构子树与基础结构数据库进行匹配检测;
若在所述基础结构数据库中检测到与所述结构子树相匹配的基础结构树,则获取与所述基础结构树相关联的代码功能信息。
6.根据权利要求5所述的信息处理方法,其特征在于,所述根据所述编程语言类型获取与所述待优化智能合约相对应的基础结构数据库,包括:
采集与所述待优化智能合约具有相同编程语言类型的基础功能实现代码;
按照代码功能对所述基础功能实现代码进行分类得到对应于不同代码功能的代码集合;
将所述代码集合中的基础功能实现代码组合形成对应于不同代码功能的基础智能合约;
对组成所述基础智能合约的基础功能实现代码进行语法结构解析得到所述基础功能实现代码的基础结构树;
建立所述基础结构树与所实现代码功能的关联关系,并将所述基础结构树组成基础结构数据库。
7.根据权利要求6所述的信息处理方法,其特征在于,在将所述代码集合中的基础功能实现代码组合形成对应于不同代码功能的基础智能合约之后,所述方法还包括:
将所述基础智能合约部署至区块链网络上;
分别调用所述基础智能合约中的各个基础功能实现代码,以获取所述基础功能实现代码对区块链网络资源的资源消耗信息;
建立所述基础功能实现代码的基础结构树与所述资源消耗信息的关联关系。
8.根据权利要求1所述的信息处理方法,其特征在于,所述根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,包括:
根据所述代码功能信息确定与所述结构子树具有相同代码功能的一个或者多个基础结构树;
获取与所述基础结构树相关联的区块链网络资源的资源消耗信息;
根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源优化结构树;
获取与所述资源优化结构树相对应的合约优化代码。
9.根据权利要求8所述的信息处理方法,其特征在于,所述根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源优化结构树,包括:
根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源消耗最低的基础结构树作为资源优化结构树。
10.根据权利要求8所述的信息处理方法,其特征在于,所述根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源优化结构树,包括:
根据所述资源消耗信息从所述一个或者多个基础结构树中选取资源消耗低于消耗阈值的基础结构树作为资源优化结构树。
11.根据权利要求1所述的信息处理方法,其特征在于,所述获取待部署至区块链网络的待优化智能合约的合约代码,包括:
通过区块链网络接收由合约部署节点发出的合约部署请求;
从所述合约部署请求中获取所述合约部署节点的数字签名,并对所述数字签名进行签名校验;
若校验通过,则根据所述合约部署请求获取待部署至区块链网络的待优化智能合约的合约代码。
12.根据权利要求11所述的信息处理方法,其特征在于,在根据所述合约优化代码确定所述待优化智能合约的合约优化信息之后,所述方法还包括:
根据所述合约优化信息对所述待优化智能合约进行代码修改后得到资源优化智能合约;
对所述资源优化智能合约进行摘要处理,以得到作为合约地址信息的智能合约摘要;
建立所述资源优化智能合约与所述合约地址信息的关联关系,并将所述资源优化智能合约保存至区块链。
13.一种信息处理装置,其特征在于,包括:
代码获取模块,被配置为获取待部署至区块链网络的待优化智能合约的合约代码;
结构解析模块,被配置为对所述合约代码进行语法结构解析得到所述合约代码的语法结构树;
结构拆分模块,被配置为对所述语法结构树进行结构拆分得到组成所述语法结构树的结构子树,并获取与所述结构子树相对应的代码功能信息;
合约优化模块,被配置为根据所述代码功能信息确定与所述结构子树具有相同代码功能的合约优化代码,并根据所述合约优化代码确定所述待优化智能合约的合约优化信息。
14.一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至12中任意一项所述的信息处理方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任意一项所述的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010844189.8A CN112070608B (zh) | 2020-08-20 | 2020-08-20 | 信息处理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010844189.8A CN112070608B (zh) | 2020-08-20 | 2020-08-20 | 信息处理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112070608A true CN112070608A (zh) | 2020-12-11 |
CN112070608B CN112070608B (zh) | 2024-03-19 |
Family
ID=73662369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010844189.8A Active CN112070608B (zh) | 2020-08-20 | 2020-08-20 | 信息处理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112070608B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612482A (zh) * | 2020-12-28 | 2021-04-06 | 杭州趣链科技有限公司 | 执行智能合约的方法、装置、设备及存储介质 |
CN112631656A (zh) * | 2021-01-06 | 2021-04-09 | 中山大学 | 一种基于源代码的智能合约优化方法及装置 |
CN116805947A (zh) * | 2023-08-21 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
CN117574320A (zh) * | 2024-01-15 | 2024-02-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226552A (zh) * | 2008-02-01 | 2008-07-23 | 北京乾坤化物数字技术有限公司 | 一种利用多维结构树构成的目录管理海量信息的方法 |
US20120084028A1 (en) * | 2010-09-30 | 2012-04-05 | Ibm Corporation | Framework and Methodology for a Real-Time Fine-Grained Power Profiling with Integrated Modeling |
CN106502751A (zh) * | 2016-11-15 | 2017-03-15 | 努比亚技术有限公司 | 热部署装置和方法 |
CN106844061A (zh) * | 2015-12-03 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 共享资源处理方法和装置 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
WO2019127531A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
US20190347093A1 (en) * | 2018-05-08 | 2019-11-14 | The Travelers Indemnity Company | Code development management system |
CN110543783A (zh) * | 2019-08-19 | 2019-12-06 | 湖南正宇软件技术开发有限公司 | 一种投票系统及其实现方法、设备及存储介质 |
CN110599177A (zh) * | 2019-09-23 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种交易验证方法及相关设备 |
CN110659494A (zh) * | 2019-09-27 | 2020-01-07 | 重庆邮电大学 | 一种可扩展的智能合约漏洞检测方法 |
CN111309305A (zh) * | 2020-02-12 | 2020-06-19 | 扬州大学 | 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质 |
WO2020125219A1 (zh) * | 2018-12-20 | 2020-06-25 | 阿里巴巴集团控股有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
CN111447592A (zh) * | 2020-03-24 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 一种确定传输资源的方法、设备及存储介质 |
-
2020
- 2020-08-20 CN CN202010844189.8A patent/CN112070608B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226552A (zh) * | 2008-02-01 | 2008-07-23 | 北京乾坤化物数字技术有限公司 | 一种利用多维结构树构成的目录管理海量信息的方法 |
US20120084028A1 (en) * | 2010-09-30 | 2012-04-05 | Ibm Corporation | Framework and Methodology for a Real-Time Fine-Grained Power Profiling with Integrated Modeling |
CN106844061A (zh) * | 2015-12-03 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 共享资源处理方法和装置 |
CN106502751A (zh) * | 2016-11-15 | 2017-03-15 | 努比亚技术有限公司 | 热部署装置和方法 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
WO2019127531A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
US20190347093A1 (en) * | 2018-05-08 | 2019-11-14 | The Travelers Indemnity Company | Code development management system |
WO2020125219A1 (zh) * | 2018-12-20 | 2020-06-25 | 阿里巴巴集团控股有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
CN110543783A (zh) * | 2019-08-19 | 2019-12-06 | 湖南正宇软件技术开发有限公司 | 一种投票系统及其实现方法、设备及存储介质 |
CN110599177A (zh) * | 2019-09-23 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种交易验证方法及相关设备 |
CN110659494A (zh) * | 2019-09-27 | 2020-01-07 | 重庆邮电大学 | 一种可扩展的智能合约漏洞检测方法 |
CN111309305A (zh) * | 2020-02-12 | 2020-06-19 | 扬州大学 | 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质 |
CN111447592A (zh) * | 2020-03-24 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 一种确定传输资源的方法、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
宋杰;孙宗哲;李甜甜;鲍玉斌;于戈;: "面向代码的软件能耗优化研究进展", 计算机学报, vol. 39, no. 11 * |
朱岩;甘国华;邓迪;姬菲菲;陈爱平;: "区块链关键技术中的安全性研究", 信息安全研究, vol. 2, no. 12, 31 December 2016 (2016-12-31) * |
李炜: "产品数据管理中的产品结构树的设计方法", 安庆师范学院学报(自然科学版), vol. 7, no. 03 * |
赵洋;马建斌;刘博;王春山;: "基于Internet的农业信息资源采集系统", 农机化研究, no. 10, 31 October 2008 (2008-10-31) * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612482A (zh) * | 2020-12-28 | 2021-04-06 | 杭州趣链科技有限公司 | 执行智能合约的方法、装置、设备及存储介质 |
CN112631656A (zh) * | 2021-01-06 | 2021-04-09 | 中山大学 | 一种基于源代码的智能合约优化方法及装置 |
CN116805947A (zh) * | 2023-08-21 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
CN116805947B (zh) * | 2023-08-21 | 2023-11-10 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
CN117574320A (zh) * | 2024-01-15 | 2024-02-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN117574320B (zh) * | 2024-01-15 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112070608B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
Zheng et al. | Xblock-eth: Extracting and exploring blockchain data from ethereum | |
CN112070608B (zh) | 信息处理方法、装置、介质及电子设备 | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
Kondo et al. | Code cloning in smart contracts: a case study on verified contracts from the ethereum blockchain platform | |
US9569288B2 (en) | Application pattern discovery | |
CN112506747B (zh) | 一种业务进程监控方法、装置、电子设备及存储介质 | |
CN111026858B (zh) | 基于项目推荐模型的项目信息处理方法及装置 | |
CN103150647B (zh) | 报表文件处理方法、服务器和系统 | |
CN112417178B (zh) | 基于文档模板定义的链上合约处理方法、装置和电子设备 | |
CN112187558A (zh) | 数据校验方法、装置、电子设备 | |
CN111931220A (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN112671734A (zh) | 面向多数据源的报文处理方法及其相关设备 | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
CN111475692A (zh) | 区块链数据的处理方法、装置及存储介质 | |
CN116860856A (zh) | 一种财务数据处理方法、装置、计算机设备及存储介质 | |
Pierro et al. | A Tool to check the Ownership of Solana's Smart Contracts | |
CN114816361A (zh) | 拼搭工程生成方法、装置、设备、介质和程序产品 | |
CN114138679A (zh) | 测试数据构造方法、装置、计算机可读介质及电子设备 | |
CN113095806B (zh) | 工单处理方法与装置、电子设备和计算机可读存储介质 | |
CN110443044A (zh) | 区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
CN116340366A (zh) | 基于区块链的数据共享存储方法、装置、设备和介质 | |
US8904411B2 (en) | Framework for system communication for handling data | |
CN111078569B (zh) | 光学字符识别应用的测试方法、装置及存储介质 | |
CN111400623A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40035328 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |