CN117708232A - 一种生成账本数据的方法、装置、电子设备和存储介质 - Google Patents
一种生成账本数据的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117708232A CN117708232A CN202311568930.2A CN202311568930A CN117708232A CN 117708232 A CN117708232 A CN 117708232A CN 202311568930 A CN202311568930 A CN 202311568930A CN 117708232 A CN117708232 A CN 117708232A
- Authority
- CN
- China
- Prior art keywords
- contract
- target
- blockchain
- intelligent contract
- configuration 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004590 computer program Methods 0.000 claims description 24
- 238000003491 array Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 description 10
- 239000004744 fabric Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000011056 performance test Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及区块链技术领域,提出一种生成账本数据的方法、装置、电子设备和存储介质。该方法应用于区块链平台设有的任一区块链的节点,包括:获取该任一区块链的配置信息;根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约;其中,智能合约集合包含适配不同区块链的多个智能合约;在该任一区块链的节点上部署目标智能合约;调用目标智能合约,以生成该任一区块链的账本数据。通过这样设置,各个不同的区块链都可以采用相同的方式生成各自的账本数据,而无需针对每条区块链分别手工部署与之适配的智能合约,因此能够提高区块链平台获取账本数据的效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种生成账本数据的方法、装置、电子设备和存储介质。
背景技术
在区块链技术领域中,同一区块链平台可能设有多条不同链类型的区块链,例如hyperchain区块链和fabric区块链等。当执行验证区块浏览器功能等业务操作时,一般需要在每条区块链上部署和调用实现相应业务操作的智能合约,从而生成每条区块链的账本数据并存储。然而,由于不同区块链适配的智能合约不一样,因此需要针对每条区块链分别手工部署与之适配的智能合约,导致区块链平台获取与业务操作相关的账本数据的效率较低。
发明内容
有鉴于此,本申请实施例提供了一种生成账本数据的方法、装置、电子设备和存储介质,能够提高区块链平台获取账本数据的效率。
本申请实施例的第一方面提供了一种生成账本数据的方法,该方法应用于区块链平台设有的任一区块链的节点,包括:
获取该任一区块链的配置信息;
根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约;其中,智能合约集合包含适配不同区块链的多个智能合约;
在该任一区块链的节点上部署目标智能合约;
调用目标智能合约,以生成该任一区块链的账本数据。
在本申请实施例中,区块链平台预先构建并存储一个智能合约集合,该智能合约集合包含适配不同区块链的多个智能合约。对于区块链平台的任一区块链,可以根据其配置信息从该智能合约集合中找出与该任一区块链适配的目标智能合约,然后在该任一区块链的节点上部署并调用目标智能合约,从而生成该任一区块链的账本数据。通过这样设置,各个不同的区块链都可以采用相同的方式生成各自的账本数据,而无需针对每条区块链分别手工部署与之适配的智能合约,因此能够提高区块链平台获取账本数据的效率。
在本申请实施例的一种实现方式中,配置信息包括该任一区块链的目标链类型和该任一区块链支持的智能合约的目标编写语言;根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约,包括:
从智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约。
在本申请实施例的一种实现方式中,智能合约集合包含的每个智能合约均带有各自的链类型标签和编写语言标签,链类型标签用于表示对应智能合约支持的链类型,编写语言标签用于表示对应智能合约的编写语言;从智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约,包括:
从智能合约集合中,查找带有的链类型标签包含目标链类型,且带有的编写语言标签为目标编写语言的各个智能合约,作为目标智能合约。
在本申请实施例的一种实现方式中,调用目标智能合约,包括:
根据目标智能合约的合约地址,从区块链平台的数据库中查找调用目标智能合约所需的合约信息;
根据合约信息,构造合约调用请求体;
通过合约调用请求体调用目标智能合约。
在本申请实施例的一种实现方式中,根据目标智能合约的合约地址,从区块链平台的数据库中查找调用目标智能合约所需的合约信息,包括:
以合约地址作为键,根据该任一区块链的目标链类型和目标智能合约的编写语言,从数据库中查找合约信息。
在本申请实施例的一种实现方式中,通过合约调用请求体调用目标智能合约,包括:
获取目标智能合约的合约调用参数;
通过合约调用请求体,按照合约调用参数调用目标智能合约。
在本申请实施例的一种实现方式中,获取该任一区块链的配置信息,包括:
从区块链平台存储的各个配置信息数组中,查找与该任一区块链的目标链类型对应的目标配置信息数组;其中,每个配置信息数组对应于一种链类型;
根据该任一区块链的链标识,从目标配置信息数组中查找该任一区块链的配置信息。
本申请实施例的第二方面提供了一种生成账本数据的装置,该装置应用于区块链平台设有的任一区块链的节点,包括:
配置信息获取模块,用于获取该任一区块链的配置信息;
智能合约查找模块,用于根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约;其中,智能合约集合包含适配不同区块链的多个智能合约;
智能合约部署模块,用于在该任一区块链的节点上部署目标智能合约;
智能合约调用模块,用于调用目标智能合约,以生成该任一区块链的账本数据。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面提供的生成账本数据的方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面提供的生成账本数据的方法。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如本申请实施例的第一方面提供的生成账本数据的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种区块链平台的示意图;
图2是本申请实施例提供的一种生成账本数据的方法的流程图;
图3是本申请实施例提供的生成账本数据的方法在一个实际应用场景下的操作流程示意图;
图4是本申请实施例提供的一种生成账本数据的装置的示意图;
图5是本申请实施例提供的一种电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
区块链平台在执行各类业务操作时,可在每条区块链上部署和调用实现相应业务操作的智能合约,从而生成每条区块链的账本数据。然而,由于不同区块链适配的智能合约不一样,故目前需要针对每条区块链分别手工部署与之适配的智能合约,导致获取账本数据的效率较低。可见,如何提出一种不同区块链通用的账本数据生成方法,成为本领域技术人员需要考虑的问题。
有鉴于此,本申请实施例提供了一种生成账本数据的方法、装置、电子设备和存储介质,各个不同的区块链都可以采用相同的方式生成各自的账本数据,能够提高区块链平台获取账本数据的效率。关于本申请实施例更具体的技术实现细节,请参照下文所述的各个实施例。
图1是本申请实施例提供的一种区块链平台的示意图,该区块链平台设有多条不同的区块链,例如图1中的hyperchain区块链1、hyperchain区块链2、fabric区块链1、fabric区块链2和fabric区块链3。其中,每条区块链的每个节点都可以和区块链平台进行交互,按照本申请实施例提供的生成账本数据的方法生成各自对应区块链的账本数据,最终实现整个区块链平台的某些业务操作。例如,假设需要执行验证区块浏览器功能的业务操作,则区块链平台设有的每条区块链都可以称作待测链,通过每条待测链各自的节点按照本申请实施例提供的生成账本数据的方法生成与测试场景相关的账本数据。需要说明的是,图1所示的区块链平台设有的多条区块链的类型和数量只是一个示例,本申请实施例并不对区块链平台设有的区块链的类型和数量进行任何限定,也即区块链平台可以设有任意类型和任意数量的区块链。
请参阅图2,示出了本申请实施例提供的一种生成账本数据的方法。该方法的执行主体是区块链平台设有的任一区块链的任意节点,该方法包括:
201、获取该任一区块链的配置信息;
可以理解,针对区块链平台设有的任一区块链,都可以通过其任意节点,按照步骤201-204所述的方式生成相应的账本数据。
首先,获取该任一区块链的配置信息,配置信息一般可以包括链标识、链类型、区块链支持的智能合约类型和区块链支持的智能合约的编写语言等信息。根据某个区块链的配置信息,可以确定该区块链支持怎样的智能合约,也即确定哪些智能合约适配该区块链。在实际操作中,每条区块链的配置信息既可以存储于节点本地,也可以存储于区块链平台的数据库中。
在本申请实施例的一种实现方式中,获取该任一区块链的配置信息,包括:
(1)从区块链平台存储的各个配置信息数组中,查找与该任一区块链的目标链类型对应的目标配置信息数组;其中,每个配置信息数组对应于一种链类型;
(2)根据该任一区块链的链标识,从目标配置信息数组中查找该任一区块链的配置信息。
区块链平台可以存储每条区块链的配置信息,任一区块链的节点通过对接区块链平台即可获得该任一区块链的配置信息。具体的,区块链平台可以按照链类型构建相应数量的用于存储配置信息的数组,也即配置信息数组。考虑到相同链类型的区块链需要获取的配置信息是相似的,故相同链类型的区块链的配置信息可以存储在同一个配置信息数组中,并通过链标识(即链ID,用于唯一表示一条区块链)进行区分。例如,针对图1所示的区块链平台,则可以构建配置信息数组A和配置信息数组B,将2条hyperchain区块链的配置信息存储到配置信息数组A中,hyperchain区块链1和hyperchain区块链2的配置信息在配置信息数组A中通过链标识进行区分;将3条fabric区块链的配置信息存储到配置信息数组B中,fabric区块链1、fabric区块链2和fabric区块链3的配置信息在配置信息数组B中通过链标识进行区分。
当任一区块链的节点需要获取该任一区块链的配置信息时,则可以对接区块链平台,从区块链平台存储的各个配置信息数组中,查找与该任一区块链的目标链类型对应的目标配置信息数组,比如针对上述例子,如果目标链类型是hyperchain,则目标配置信息数组是配置信息数组A。然后,根据该任一区块链的链标识,从目标配置信息数组中查找该任一区块链的配置信息。比如针对上述例子,根据hyperchain区块链1的链标识可以从配置信息数组A中查找出hyperchain区块链1的配置信息。按照这种方式存储区块链平台所有区块链的配置信息,可以实现配置信息的有效管理。
202、根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约;
区块链平台可以预先构建并维护一个智能合约集合,该智能合约集合包含适配不同区块链的多个智能合约,例如可以是分别支持不同异构链类型的多个智能合约文件。在实际操作中,可以根据业务场景需求,以及区块链平台设有的各个区块链的链类型,预先构造出可能需要使用的所有智能合约作为该智能合约集合,每条区块链可以根据各自的链类型和实际业务需求,从该智能合约集合中选取适配的那部分智能合约进行部署和调用。该智能合约集合包含的每个智能合约均可以带有各自的链类型标签和编写语言标签,其中链类型标签用于表示对应智能合约支持的链类型,编写语言标签用于表示对应智能合约的编写语言。例如,某个智能合约带有的链类型标签为hyperchain,带有的编写语言标签为solidity,则表示该智能合约支持的链类型为hyperchain,且通过solidity语言编写。又例如,某个智能合约带有的链类型标签为hyperchain和fabric,带有的编写语言标签为java,则表示该智能合约支持的链类型为hyperchain和fabric,且通过java语言编写,以此类推。
在获取到该任一区块链的配置信息之后,根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的那部分智能合约,记作目标智能合约,显然目标智能合约可以包含单个或者多个智能合约。
在本申请实施例的一种实现方式中,配置信息包括该任一区块链的目标链类型和该任一区块链支持的智能合约的目标编写语言;根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约,包括:
从智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约。
假设该任一区块链的配置信息包括链类型和支持的智能合约的编写语言,分别记作目标链类型和目标编写语言,则可以从区块链平台存储的智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约。例如,如果目标链类型是hyperchain,目标编写语言是solidity,则从智能合约集合中查找支持hyperchain且采用solidity编写的各个智能合约,作为目标智能合约。
具体的,从智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约,包括:
从智能合约集合中,查找带有的链类型标签包含目标链类型,且带有的编写语言标签为目标编写语言的各个智能合约,作为目标智能合约。
按照前文的描述,该智能合约集合包含的每个智能合约均可以带有各自的链类型标签和编写语言标签。因此,可以通过标签匹配的方式,找出支持目标链类型且采用目标编写语言编写的各个智能合约,具体是查找带有的链类型标签包含目标链类型,且带有的编写语言标签为目标编写语言的各个智能合约,作为目标智能合约。例如,如果目标链类型是hyperchain,目标编写语言是solidity,则查找带有的链类型标签包含hyperchain,且带有的编写语言标签为solidity的各个智能合约作为目标智能合约。
203、在该任一区块链的节点上部署目标智能合约;
在查找到目标智能合约之后,在该任一区块链的节点上部署这些目标智能合约,部署智能合约的具体方法可以参照现有技术,在此不再赘述。
204、调用目标智能合约,以生成该任一区块链的账本数据。
在部署目标智能合约后,通过调用目标智能合约的方式,生成该任一区块链的账本数据。作为一个示例,如果针对的业务需求是测试场景,则目标智能合约可以是适配该任一区块链且用于实现功能测试和性能测试等操作的智能合约,通过在该任一区块链上调用目标智能合约,可以实现相应的功能测试和性能测试操作,从而生成相应的测试数据,作为该任一区块链的账本数据。同理,每条区块链都可以按照上述相同方式生成各自的账本数据,并可以将各自的账本数据分别发送至区块链平台进行存储。
在本申请实施例的一种实现方式中,调用目标智能合约,包括:
(1)根据目标智能合约的合约地址,从区块链平台的数据库中查找调用目标智能合约所需的合约信息;
(2)根据合约信息,构造合约调用请求体;
(3)通过合约调用请求体调用目标智能合约。
智能合约在部署后会返回对应的合约地址,也即区块链的节点可以获知区块链已部署的所有智能合约的合约地址。因此,在调用目标智能合约时,首先获取目标智能合约的合约地址,然后根据合约地址从区块链平台的数据库中查找调用目标智能合约所需的合约信息。这里的合约信息可以包括但不限于:合约地址、合约名称、合约方法、合约abi文件、合约bin文件和方法名等信息。在实际操作中,可以在区块链平台的数据库中存储前文描述的智能合约集合中的每个智能合约的合约信息。在获得调用目标智能合约所需的合约信息之后,根据该合约信息可以构造出相应的合约调用请求体。例如,在获得合约地址、合约名称、合约方法、合约abi文件和合约bin文件等合约信息后,可以对这些信息进行拼接,通过数据和参数化的智能合约方法入参,构造出通用的合约调用请求体。最后,即可通过该合约调用请求体完成对目标智能合约的调用。显然,如果目标智能合约包括多个智能合约,则每个智能合约都可以根据各自的合约地址查找到各自的合约信息,并根据各自的合约信息构造出各自的合约调用请求体,从而完成每个智能合约的调用过程。
在本申请实施例的一种实现方式中,根据目标智能合约的合约地址,从区块链平台的数据库中查找调用目标智能合约所需的合约信息,包括:
以合约地址作为键,根据该任一区块链的目标链类型和目标智能合约的编写语言,从数据库中查找合约信息。
具体的,在根据合约地址从区块链平台的数据库中查找调用目标智能合约所需的合约信息时,可以将合约地址作为键(key),根据该任一区块链的目标链类型和目标智能合约的编写语言,从数据库中查找对应的合约信息。例如,如果目标链类型是hyperchain,目标智能合约的编写语言是solidity,则可以从数据库中查找hyperchain区块链调用solidity智能合约所需的合约abi文件、合约bin文件和方法名等合约信息。
在本申请实施例的一种实现方式中,通过合约调用请求体调用目标智能合约,包括:
(1)获取目标智能合约的合约调用参数;
(2)通过合约调用请求体,按照合约调用参数调用目标智能合约。
在通过合约调用请求体调用目标智能合约时,可以根据不同的业务场景需求,配置相应的合约调用参数,例如合约调用次数、调用的区块链标识和线程数等参数。之后,通过构造的合约调用请求体,并按照配置的合约调用参数,完成对目标智能合约的调用。另外,如果目标智能合约包含多个智能合约,则根据业务场景需求,每个智能合约可以分别配置不同的合约调用参数。将调用的区块链标识、合约调用次数、线程数、合约地址和合约方法等合约调用参数配置好,并通过合约调用请求体调用智能合约,即可自动生成合约调用的账本数据,同时可以计算出数据上链的系统吞吐量等参数。
作为一个示例,针对性能测试的业务场景,可以配置任意区块链在指定时段内需要上链的交易量和最高tps,将交易量和最高tps作为合约调用参数以调用相应的智能合约,可以满足各种场景的性能测试需要,同时也可应用于性能场景铺底数据的构造。例如,针对hyperchain区块链1的存证业务,可以配置交易量为500万,并发用户数为20,作为合约调用参数;针对hyperchain区块链2的转账业务,可以配置交易量为100万,并发用户数为5,作为合约调用参数,以此类推,能够满足不同区块链不同业务场景的性能测试需要。
在本申请实施例中,区块链平台预先构建并存储一个智能合约集合,该智能合约集合包含适配不同区块链的多个智能合约。对于区块链平台的任一区块链,可以根据其配置信息从该智能合约集合中找出与该任一区块链适配的目标智能合约,然后在该任一区块链的节点上部署并调用目标智能合约,从而生成该任一区块链的账本数据。通过这样设置,各个不同的区块链都可以采用相同的方式生成各自的账本数据,而无需针对每条区块链分别手工部署与之适配的智能合约,因此能够提高区块链平台获取账本数据的效率。
为便于理解本申请实施例提供的生成账本数据的方法,以下列举一个实际的应用场景。
如图3所示,为本申请实施例提供的生成账本数据的方法在一个实际应用场景下的操作流程示意图。图3针对的是测试场景,预先准备带有标签(例如链类型标签和编写语言标签)的智能合约集合,方法开始后,获取区块链平台设有的所有待测链的配置信息,根据每条待测链的配置信息,通过标签匹配的方式,分别从智能合约集合中查找出每条待测链对应的智能合约;然后,每条待测链分别部署各自对应的智能合约,获取调用智能合约所需的所有合约信息,构造出合约调用请求体;接着,根据具体的测试场景需求,配置智能合约的合约调用参数,通过合约调用请求体按照合约调用参数调用智能合约;最终,生成所有待测链的账本数据。采用这种方法能够有效提高测试场景中功能测试和性能测试的效率,而且,通过灵活配置智能合约的合约调用参数,能够使方法适用于各类不同的业务场景,可移植性和实用性均较强。
综上所述,本申请实施例提出一种不同类型区块链通用的账本数据生成方法,能够提高区块链账本数据的获取效率,满足各种不同业务场景的需求。
应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上面主要描述了一种生成账本数据的方法,下面将对一种生成账本数据的装置进行描述。
请参阅图4,示出了本申请实施例中一种生成账本数据的装置,该装置应用于区块链平台设有的任一区块链的节点,包括:
配置信息获取模块401,用于获取该任一区块链的配置信息;
智能合约查找模块402,用于根据配置信息,从区块链平台存储的智能合约集合中查找适配该任一区块链的目标智能合约;其中,智能合约集合包含适配不同区块链的多个智能合约;
智能合约部署模块403,用于在该任一区块链的节点上部署目标智能合约;
智能合约调用模块404,用于调用目标智能合约,以生成该任一区块链的账本数据。
在本申请实施例的一种实现方式中,配置信息包括该任一区块链的目标链类型和该任一区块链支持的智能合约的目标编写语言;智能合约查找模块包括:
智能合约查找单元,用于从智能合约集合中,查找支持目标链类型且采用目标编写语言编写的各个智能合约,作为目标智能合约。
在本申请实施例的一种实现方式中,智能合约集合包含的每个智能合约均带有各自的链类型标签和编写语言标签,链类型标签用于表示对应智能合约支持的链类型,编写语言标签用于表示对应智能合约的编写语言;智能合约查找单元包括:
智能合约查找子单元,用于从智能合约集合中,查找带有的链类型标签包含目标链类型,且带有的编写语言标签为目标编写语言的各个智能合约,作为目标智能合约。
在本申请实施例的一种实现方式中,智能合约调用模块包括:
合约信息查找单元,用于根据目标智能合约的合约地址,从区块链平台的数据库中查找调用目标智能合约所需的合约信息;
请求体构造单元,用于根据合约信息,构造合约调用请求体;
智能合约调用单元,用于通过合约调用请求体调用目标智能合约。
在本申请实施例的一种实现方式中,合约信息查找单元包括:
合约信息查找子单元,用于以合约地址作为键,根据该任一区块链的目标链类型和目标智能合约的编写语言,从数据库中查找合约信息。
在本申请实施例的一种实现方式中,智能合约调用单元包括:
调用参数获取子单元,用于获取目标智能合约的合约调用参数;
智能合约调用子单元,用于通过合约调用请求体,按照合约调用参数调用目标智能合约。
在本申请实施例的一种实现方式中,配置信息获取模块包括:
数组查找单元,用于从区块链平台存储的各个配置信息数组中,查找与该任一区块链的目标链类型对应的目标配置信息数组;其中,每个配置信息数组对应于一种链类型;
配置信息获取单元,用于根据该任一区块链的链标识,从目标配置信息数组中查找该任一区块链的配置信息。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所描述的生成账本数据的方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行如上述任一实施例所描述的生成账本数据的方法。
图5是本申请一实施例提供的电子设备的示意图。如图5所示,该实施例的电子设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个生成账本数据的方法的实施例中的步骤,例如图2所示的步骤201至204。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。
所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述电子设备5中的执行过程。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器51也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种生成账本数据的方法,其特征在于,应用于区块链平台设有的任一区块链的节点,所述方法包括:
获取所述任一区块链的配置信息;
根据所述配置信息,从所述区块链平台存储的智能合约集合中查找适配所述任一区块链的目标智能合约;其中,所述智能合约集合包含适配不同区块链的多个智能合约;
在所述任一区块链的节点上部署所述目标智能合约;
调用所述目标智能合约,以生成所述任一区块链的账本数据。
2.如权利要求1所述的方法,其特征在于,所述配置信息包括所述任一区块链的目标链类型和所述任一区块链支持的智能合约的目标编写语言;所述根据所述配置信息,从所述区块链平台存储的智能合约集合中查找适配所述任一区块链的目标智能合约,包括:
从所述智能合约集合中,查找支持所述目标链类型且采用所述目标编写语言编写的各个智能合约,作为所述目标智能合约。
3.如权利要求2所述的方法,其特征在于,所述智能合约集合包含的每个智能合约均带有各自的链类型标签和编写语言标签,所述链类型标签用于表示对应智能合约支持的链类型,所述编写语言标签用于表示对应智能合约的编写语言;所述从所述智能合约集合中,查找支持所述目标链类型且采用所述目标编写语言编写的各个智能合约,作为所述目标智能合约,包括:
从所述智能合约集合中,查找带有的所述链类型标签包含所述目标链类型,且带有的所述编写语言标签为所述目标编写语言的各个智能合约,作为所述目标智能合约。
4.如权利要求1所述的方法,其特征在于,所述调用所述目标智能合约,包括:
根据所述目标智能合约的合约地址,从所述区块链平台的数据库中查找调用所述目标智能合约所需的合约信息;
根据所述合约信息,构造合约调用请求体;
通过所述合约调用请求体调用所述目标智能合约。
5.如权利要求4所述的方法,其特征在于,所述根据所述目标智能合约的合约地址,从所述区块链平台的数据库中查找调用所述目标智能合约所需的合约信息,包括:
以所述合约地址作为键,根据所述任一区块链的目标链类型和所述目标智能合约的编写语言,从所述数据库中查找所述合约信息。
6.如权利要求4所述的方法,其特征在于,所述通过所述合约调用请求体调用所述目标智能合约,包括:
获取所述目标智能合约的合约调用参数;
通过所述合约调用请求体,按照所述合约调用参数调用所述目标智能合约。
7.如权利要求1至6任一项所述的方法,其特征在于,所述获取所述任一区块链的配置信息,包括:
从所述区块链平台存储的各个配置信息数组中,查找与所述任一区块链的目标链类型对应的目标配置信息数组;其中,每个所述配置信息数组对应于一种链类型;
根据所述任一区块链的链标识,从所述目标配置信息数组中查找所述任一区块链的配置信息。
8.一种生成账本数据的装置,其特征在于,应用于区块链平台设有的任一区块链的节点,所述装置包括:
配置信息获取模块,用于获取所述任一区块链的配置信息;
智能合约查找模块,用于根据所述配置信息,从所述区块链平台存储的智能合约集合中查找适配所述任一区块链的目标智能合约;其中,所述智能合约集合包含适配不同区块链的多个智能合约;
智能合约部署模块,用于在所述任一区块链的节点上部署所述目标智能合约;
智能合约调用模块,用于调用所述目标智能合约,以生成所述任一区块链的账本数据。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的生成账本数据的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的生成账本数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311568930.2A CN117708232A (zh) | 2023-11-22 | 2023-11-22 | 一种生成账本数据的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311568930.2A CN117708232A (zh) | 2023-11-22 | 2023-11-22 | 一种生成账本数据的方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117708232A true CN117708232A (zh) | 2024-03-15 |
Family
ID=90145172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311568930.2A Pending CN117708232A (zh) | 2023-11-22 | 2023-11-22 | 一种生成账本数据的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117708232A (zh) |
-
2023
- 2023-11-22 CN CN202311568930.2A patent/CN117708232A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117169A (zh) | 用于修复内核漏洞的方法和装置 | |
CN112631803A (zh) | 区块链的智能合约调用方法、装置、服务器和存储介质 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN111277958A (zh) | 标签位置确定方法及装置 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN112486518B (zh) | 共识算法装配方法及装置 | |
CN109614312A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN111460232A (zh) | 功能模块的查找方法、装置、终端和计算机可读存储介质 | |
CN113032245A (zh) | 错误定位识别的测试方法、装置、计算机设备及存储介质 | |
CN109710263B (zh) | 代码的编译方法、装置、存储介质及电子设备 | |
CN110245074A (zh) | 一种日志记录的生成方法、装置、存储介质和服务器 | |
CN109214362A (zh) | 单据处理方法及相关设备 | |
CN117708232A (zh) | 一种生成账本数据的方法、装置、电子设备和存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN112819464B (zh) | 一种智能合约处理方法、处理装置、终端设备及存储介质 | |
CN109086145B (zh) | 数据生成方法、装置及计算机存储介质 | |
CN112631642B (zh) | 智能合约的升级方法、装置、区块链节点及存储介质 | |
CN114518844B (zh) | 一种数据处理方法 | |
CN117850919A (zh) | 使用插件进行系统设置的方法及电子设备 | |
CN116578470A (zh) | 一种测试用例的处理方法、装置以及处理系统 | |
CN114168652A (zh) | 一种智能合约交互方法、装置、设备以及存储介质 | |
CN117033190A (zh) | 服务调用方法、装置及存储介质 | |
CN116880983A (zh) | 一种任务分发的方法、装置、存储介质及电子设备 | |
CN114205412A (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 |