CN112929396B - 基于区块链的业务处理方法、装置、设备和可读存储介质 - Google Patents

基于区块链的业务处理方法、装置、设备和可读存储介质 Download PDF

Info

Publication number
CN112929396B
CN112929396B CN201911239763.0A CN201911239763A CN112929396B CN 112929396 B CN112929396 B CN 112929396B CN 201911239763 A CN201911239763 A CN 201911239763A CN 112929396 B CN112929396 B CN 112929396B
Authority
CN
China
Prior art keywords
function
calling
target
service
block chain
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.)
Active
Application number
CN201911239763.0A
Other languages
English (en)
Other versions
CN112929396A (zh
Inventor
任亚坤
姚小龙
江海龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SF Technology Co Ltd
Original Assignee
SF Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SF Technology Co Ltd filed Critical SF Technology Co Ltd
Priority to CN201911239763.0A priority Critical patent/CN112929396B/zh
Publication of CN112929396A publication Critical patent/CN112929396A/zh
Application granted granted Critical
Publication of CN112929396B publication Critical patent/CN112929396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种基于区块链的业务处理方法、装置、设备和可读存储介质。所述基于区块链的业务处理方法包括:从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;运行所述功能工具包中的功能代码,以实现所述预设功能。采用本方法能够提升区块链业务处理效率。

Description

基于区块链的业务处理方法、装置、设备和可读存储介质
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的业务处理方法、装置、设备和可读存储介质。
背景技术
区块链是一种应用了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链可以利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由脚本代码组成的智能合约来操作数据。
目前,结合区块链***进行业务处理时,业务端需要智能合约实现其业务逻辑。针对每个业务需求,传统技术首先在区块链网络中部署编写的智能合约,部署完成后,再在业务端编写对应的调用代码以调取该智能合约,调取到该智能合约后,再在业务端编写对应的执行代码以执行该智能合约来进行业务处理。
然而,对于业务量、存量数据较大,或者业务量、存量数据突发显著增长的场景,存在区块链TPS(Transaction Per Second,每秒执行的事务或者交易的数量)过低、业务处理效率低下的情况。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升区块链业务处理效率的基于区块链的业务处理方法、装置、设备和可读存储介质。
第一方面,本申请实施例提供了一种基于区块链的业务处理方法,所述基于区块链的业务处理方法包括:
从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;
确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;
运行所述功能工具包中的功能代码,以实现所述预设功能。
在其中一个实施例中,所述运行所述功能工具包中的功能代码之后,还包括:
在所述功能代码运行完毕后,发送合约调用完成消息至第二消息队列,以供所述目标业务端从所述第二消息队列中获取所述合约调用完成消息。
在其中一个实施例中,所述目标调用请求还包括与业务需求对应的业务写入数据;
所述运行所述功能工具包中的功能代码,包括:
根据所述业务写入数据,运行所述功能工具包中的所述功能代码。
在其中一个实施例中,所述根据所述业务写入数据,运行所述功能工具包中的所述功能代码之后,还包括:
在所述功能代码运行完毕后,发送合约执行完成消息至第三消息队列,以供所述目标业务端从所述第三消息队列中获取所述合约执行完成消息;所述合约执行完成消息包括上链信息和索引信息,所述索引信息用于所述目标业务端将所述业务写入数据与所述上链信息进行关联。
在其中一个实施例中,所述方法还包括:
若接收到业务端发送的调用请求,则将所述调用请求存入所述第一消息队列;所述调用请求包括调用接口参数。
在其中一个实施例中,所述方法还包括:
若所述第一消息队列不具有持久化存储功能,则在接收到所述调用请求时,将所述调用请求存储至数据库。
在其中一个实施例中,所述方法还包括:
若从所述第一消息队列中未获取所述目标调用请求,则从所述数据库中获取所述目标调用请求,并在所述功能代码运行完毕时,从所述数据库中清除所述目标调用请求。
第二方面,本申请实施例提供一种基于区块链的业务处理装置,所述装置包括:
第一获取模块,用于从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;
确定模块,用于确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;
运行模块,用于运行所述功能工具包中的功能代码,以实现所述预设功能。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;运行所述功能工具包中的功能代码,以实现所述预设功能;由此,区块链服务器将智能合约对应的预设功能的功能代码封装得到功能工具包,业务端需要实现智能合约的预设功能时,直接根据调用接口参数请求调用功能工具包即可,区块链服务器则运行功能工具包中的功能代码,以实现该预设功能;避免了传统技术中,业务端需要调用智能合约或者需要执行智能合约时,必须编写对应的调用代码或者执行代码来实现,对于业务量、存量数据较大,或者业务量、存量数据突发显著增长的场景,容易造成区块链TPS过低、业务处理效率低下的问题。本申请提升了区块链业务处理的TPS及业务处理效率。
附图说明
图1为一个实施例提供的基于区块链的业务处理方法的应用环境图;
图2为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图3为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图4为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图5为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图6为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图7为一个实施例提供的基于区块链的业务处理方法的流程示意图;
图8为一个实施例提供的基于区块链的业务处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于区块链的业务处理方法,可以应用于如图1所示的计算机设备,该计算机设备可以是服务器,其内部结构图可以如图1所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存基于区块链的业务处理方法的数据。
本申请实施例提供的基于区块链的业务处理方法、装置、设备和可读存储介质,旨在解决传统技术中,业务端需要区块链智能合约实现其业务逻辑时,区块链业务处理的TPS过低、业务处理效率低下的技术问题。下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体地实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
需要说明的是,本申请实施例提供的基于区块链的业务处理方法,其执行主体可以是基于区块链的业务处理装置,该基于区块链的业务处理装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。下述方法实施例中,均以执行主体是计算机设备为例来进行说明,具体是以该计算机设备是区块链服务器为例来进行说明。
请参考图2,其示出了本申请实施例提供的一种基于区块链的业务处理方法的流程示意图,如图2所示,本实施例基于区块链的业务处理方法可以包括以下步骤:
步骤S100,从第一消息队列中获取目标调用请求。
其中,目标调用请求包括调用接口参数,目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约。
本实施例中,开发人员针对不同的业务需求场景,开发部署对应的智能合约在区块链网络中。当业务端基于当前的业务需求,需要依赖部署的智能合约进行业务处理时,例如,需要将业务数据写入区块链的区块节点中,业务端需要调取与当前业务需求匹配的智能合约,并通过执行该智能合约将业务数据写入智能合约中约定的区块节点。
业务端发送调用请求至区块链服务器,调用请求用于请求调用区块链网络中的智能合约或者用于请求执行区块链网络中的智能合约,调用请求包括调用接口参数。区块链服务器接收到各业务端发送的调用请求后,将各调用请求存入第一消息队列。
区块链服务器消费第一消息队列,从第一消息队列中获取目标业务端发送的目标调用请求。
本实施例中,作为一种实施方式,业务端可以是存证***、追溯***,等等,在此不做具体限制。
步骤S200,确定调用接口参数对应的功能工具包。
其中,功能工具包是将智能合约对应的预设功能的功能代码封装得到的;预设功能包括对智能合约的调用功能或对智能合约的执行功能。
本实施例中,区块链服务器获取智能合约对应的功能代码,该功能代码可以是开发人员针对智能合约对应的预设功能编写的,该功能代码在运行时实现该智能合约对应的预设功能。预设功能可以是对智能合约的调用功能,或者是对智能合约的执行功能。本实施例区块链可以是Ethereum(以太坊)或者Fabric(超级账本),在此不做具体限制。
例如,预设功能的功能代码为智能合约的调用功能对应的功能代码,该调用功能对应的功能代码在运行时实现对该智能合约的调用。区块链服务器将该调用功能对应的功能代码进行封装,得到功能工具包。
或者,预设功能的功能代码也可以是智能合约的执行功能对应的功能代码,该执行功能对应的功能代码在运行时实现对该智能合约的执行。区块链服务器将该执行功能对应的功能代码进行封装,得到功能工具包。
区块链服务器对由功能代码封装得到的功能工具包设置调用接口,即对业务端提供统一的操作接口,供业务端根据调用接口所对应的调用接口参数对该功能工具包所实现的功能进行调用。
步骤S300,运行功能工具包中的功能代码,以实现预设功能。
区块链服务器从第一消息队列中获取目标调用请求,根据目标调用请求包括的调用接口参数,确定该调用接口参数对应的功能工具包,并运行该调用接口参数对应的功能工具包中的功能代码,以实现该功能代码对应的功能,例如,实现对智能合约的调用功能,或者,实现对智能合约的执行功能。
传统技术中,业务端发送请求至区块链服务器后,区块链服务器会立即响应该请求;然而,若业务端的TPS大于区块链服务器的TPS,很容易造成区块链服务器的崩溃,对业务处理造成较大的影响。
本实施例中,区块链服务器接收到各业务端发送的调用请求后,将各调用请求存入第一消息队列,然后再消费第一消息队列,由此,实现了业务端和区块链服务器的解耦,在业务端的业务量、存量数据较大的场景中,或者业务量、存量数据突发显著增长,即业务端突发高并发请求的场景中,确保了业务处理的正常进行,提升了***的稳定性。
本实施例通过从第一消息队列中获取目标调用请求;目标调用请求包括调用接口参数,目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;确定调用接口参数对应的功能工具包;功能工具包是将智能合约对应的预设功能的功能代码封装得到的;预设功能包括对智能合约的调用功能或对智能合约的执行功能;运行功能工具包中的功能代码,以实现预设功能;由此,将智能合约对应的预设功能的功能代码封装得到功能工具包,业务端需要实现智能合约的预设功能时,直接根据调用接口参数请求调用功能工具包即可,服务器则运行功能工具包中的功能代码,以实现该预设功能;避免了传统技术中,业务端需要调用智能合约或者需要执行智能合约时,必须编写对应的调用代码或者执行代码来实现,对于业务量、存量数据较大,或者业务量、存量数据突发显著增长的场景,容易造成区块链TPS过低、业务处理效率低下的问题。本实施例提升了区块链业务处理的TPS及业务处理效率。
在另一个实施例中,预设功能具体是对智能合约的调用功能。区块链服务器将获取到的调用功能对应的功能代码进行封装,得到功能工具包,本实施例中,功能工具包可以是SDK(Software Development Kit,软件开发工具包)。本实施例将传统技术中,业务端通过程序对智能合约实现调用请求转换为业务端对SDK接口的请求,本实施例业务端不需要关心调用智能合约的编程实现细节,只需要根据该SDK提供的调用接口参数,发送包括该调用接口参数的调用请求至区块链服务器,区块链服务器消费第一消息队列,运行SDK中的功能代码,即可完成对智能合约的调用。
进一步地,参见图3,图3为本实施例提供的基于区块链的业务处理方法的流程示意图,在上述图2所示实施例的基础上,本实施例步骤S300之后还包括步骤S410,具体地:
步骤S410,在功能代码运行完毕后,发送合约调用完成消息至第二消息队列,以供目标业务端从第二消息队列中获取合约调用完成消息。
本实施例中,区块链服务器将智能合约的调用功能对应的功能代码运行完毕后,将执行结果异步返回给目标业务端,即区块链服务器发送合约调用完成消息至第二消息队列,目标业务端从第二消息队列中获取合约调用完成消息,由此,业务端和区块链之间的请求及结果返回,均是基于消息队列异步实现,解耦了业务***和区块链***,提升了业务处理时的***稳定性。
在另一个实施例中,预设功能具体是对智能合约的执行功能,目标调用请求还包括与业务需求对应的业务写入数据。本实施例区块链服务器将获取到的执行功能对应的功能代码进行封装,得到功能工具包。本实施例中,区块链服务器对该功能工具包设置通用的API(Application Programming Interface,应用程序接口),将传统技术中业务端通过程序对智能合约实现的执行请求转换为业务端对API接口的请求,业务端不需要关心智能合约执行的编程实现细节,只需要根据该功能工具包提供的调用接口参数,发送包括该调用接口参数的调用请求至区块链服务器,区块链服务器消费第一消息队列,获取调用请求,运行该功能工具包中的功能代码即可。
参见图4,图4为本实施例提供的基于区块链的业务处理方法的流程示意图,在上述图2所示实施例的基础上,本实施例步骤S300包括步骤S310,具体地:
步骤S310,根据业务写入数据,运行功能工具包中的功能代码。
区块链服务器根据业务写入数据,运行功能工具包中的功能代码。具体地,业务写入数据是业务端基于与业务需求对应的智能合约中的约定,需要写入区块链区块节点中的业务数据,区块链服务器从第一消息队列中获取目标调用请求,运行功能工具包中的功能代码,将该业务写入数据,写入该智能合约约定的区块节点中。
作为一种实施方式,以业务端为存证***为例,功能工具包的API接口包括存入接口和读取接口,当存证***需要请求执行智能合约以将业务写入数据写入区块节点时,存证***则发送包括存入接口对应的调用接口参数的调用请求,区块链服务器执行如图4所示的步骤,运行执行功能对应的功能代码,将业务写入数据存入智能合约约定的区块节点中。在其它实施例中,作为一种实施方式,当存证***需要请求执行智能合约以从区块节点读取业务数据时,存证***则发送包括读取接口对应的调用接口参数的调用请求,区块链服务器从第一消息队列中获取目标调用请求,确定目标调用请求包括的调用接口参数对应的功能工具包,运行功能工具包中的功能代码,以从智能合约中约定的区块节点中读取业务数据。
进一步地,继续参见图4,本实施例中,步骤S310之后还包括步骤S420,具体地:
步骤S420,在功能代码运行完毕后,发送合约执行完成消息至第三消息队列,以供目标业务端从第三消息队列中获取合约执行完成消息。
其中,合约执行完成消息包括上链信息和索引信息,该索引信息用于目标业务端将业务写入数据与上链信息进行关联。
区块链服务器将智能合约的执行功能对应的功能代码运行完毕后,将上链信息和索引信息异步返回给目标业务端,即区块链服务器发送合约执行完成消息至第三消息队列,目标业务端从第三消息队列中获取上链信息和索引信息,目标业务端通过索引信息将业务写入数据与上链信息进行关联。作为一种实施方式,上链信息包括Block Height(区块高度)、TransactionID(交易哈希)等。由此,业务端和区块链服务器之间的请求及结果返回,均是基于消息队列异步实现,解耦业务***和区块链***,提升业务处理时的***稳定性。
在上述图2所示实施例的基础上,参见图5,图5为另一个实施例提供的基于区块链的业务处理方法的流程示意图,本实施例基于区块链的业务处理方法还包括步骤S510,具体地:
步骤S510,若接收到业务端发送的调用请求,则将调用请求存入第一消息队列。
其中,调用请求包括调用接口参数。
本实施例中,区块链服务器接收到各业务端发送的调用请求,将各调用请求存入第一消息队列,再从第一消息队列中获取目标调用请求,确定调用接口参数对应的功能工具包,运行功能工具包中的功能代码,以实现预设功能;其中,第一消息队列可以是具有持久化存储功能的消息队列,例如Kafaka、RabbitMQ等,以便于区块链服务器重启后可以恢复第一消息队列中未被区块链服务器消费的调用请求,由此确保了业务处理的可靠性,通过第一消息队列将业务端的调用请求与区块链服务器的响应进行解耦,提升了***的稳定性。
在上述图5所示实施例的基础上,参见图6,图6为另一个实施例提供的基于区块链的业务处理方法的流程示意图,本实施例基于区块链的业务处理方法还包括步骤S520,具体地:
步骤S520,若第一消息队列不具有持久化存储功能,则在接收到调用请求时,将调用请求存储至数据库。
本实施例中,若第一消息队列不具有持久化存储功能,则在接收到各业务端发送的调用请求时,将调用请求存入第一消息队列,并将调用请求存储至数据库,数据库可以是关系型或者非关系型数据库,例如,数据库可以是Redis(Remote Dictionary Server,远程字典服务)数据库,本实施例在此不做具体限制。
进一步地,本实施例中,区块链服务器若从第一消息队列中未获取目标调用请求,则从数据库中获取目标调用请求,并在功能代码运行完毕时,从数据库中清除目标调用请求。
本实施例中,若第一消息队列不具有持久化存储功能,区块链服务器在重启或者重新上电后,第一消息队列中未被区块链服务器消费的调用请求将被清空,区块链服务器从数据库中获取目标调用请求,以确保业务的正常开展;区块链服务器在功能代码运行完毕时,从数据库中清除目标调用请求。由此,确保了区块链服务器重启或者异常情况下,基于区块链服务器内存的第一消息队列中的调用请求丢失的情况下,区块链服务器也能继续响应业务端已发送的调用请求,确保业务的顺利开展,提升了业务处理效率。
在上述图2所示实施例的基础上,参见图7,图7为另一个实施例提供的基于区块链的业务处理方法的流程示意图,本实施例基于区块链的业务处理方法还包括步骤S610和步骤S620,具体地:
步骤S610,获取各智能合约对应的功能代码。
步骤S620,将功能代码按照预设格式进行封装处理,得到功能工具包。
其中,功能工具包包括供业务端调用的调用接口参数。
本实施例中,对于应用在不用业务需求场景中的智能合约,区块链服务器获取各智能合约对应的多组功能代码,将每组功能代码进行封装得到功能工具包,功能工具包对业务端提供接口供业务端调用,由此,通过将智能合约的服务抽象成多个功能工具包,业务端需要实现预设功能时,只需通过对应的调用接口参数调用功能工具包来实现对应的功能即可,不必再在业务端通过编写代码实现,大大提升了业务处理效率。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种基于区块链的业务处理装置,包括:
第一获取模块10,用于从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;
确定模块20,用于确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;
运行模块30,用于运行所述功能工具包中的功能代码,以实现所述预设功能。
可选地,所述装置还包括:
第一发送模块,用于在所述功能代码运行完毕后,发送合约调用完成消息至第二消息队列,以供所述目标业务端从所述第二消息队列中获取所述合约调用完成消息。
可选地,所述目标调用请求还包括与业务需求对应的业务写入数据;所述运行模块30包括:
运行单元,用于根据所述业务写入数据,运行所述功能工具包中的所述功能代码。
可选地,所述装置还包括:
第二发送模块,用于在所述功能代码运行完毕后,发送合约执行完成消息至第三消息队列,以供所述目标业务端从所述第三消息队列中获取所述合约执行完成消息;所述合约执行完成消息包括上链信息和索引信息,所述索引信息用于所述目标业务端将所述业务写入数据与所述上链信息进行关联。
可选地,所述装置还包括:
第一存储模块,用于若接收到业务端发送的调用请求,则将所述调用请求存入所述第一消息队列;所述调用请求包括调用接口参数。
可选地,所述装置还包括:
第二存储模块,用于若所述第一消息队列不具有持久化存储功能,则在接收到所述调用请求时,将所述调用请求存储至数据库。
可选地,所述装置还包括:
第二获取模块,用于若从所述第一消息队列中未获取所述目标调用请求,则从所述数据库中获取所述目标调用请求,并在所述功能代码运行完毕时,从所述数据库中清除所述目标调用请求。
本实施例提供的基于区块链的业务处理装置,可以执行上述基于区块链的业务处理方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于基于区块链的业务处理装置的具体限定可以参见上文中对于基于区块链的业务处理方法的限定,在此不再赘述。上述基于区块链的业务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种如图1所示的计算机设备,该计算机设备可以是服务器。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于区块链的业务处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的业务处理方法。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体地计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;运行所述功能工具包中的功能代码,以实现所述预设功能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Ramb微秒)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
从第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;运行所述功能工具包中的功能代码,以实现所述预设功能。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种基于区块链的业务处理方法,其特征在于,所述方法包括:
若接收到业务端发送的调用请求,则将所述调用请求存入第一消息队列;所述调用请求包括调用接口参数;
从所述第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;
确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;
运行所述功能工具包中的功能代码,以实现所述预设功能;
所述目标调用请求还包括与业务需求对应的业务写入数据;所述运行所述功能工具包中的功能代码,包括:
根据所述业务写入数据,运行所述功能工具包中的所述功能代码。
2.根据权利要求1所述的方法,其特征在于,所述运行所述功能工具包中的功能代码之后,还包括:
在所述功能代码运行完毕后,发送合约调用完成消息至第二消息队列,以供所述目标业务端从所述第二消息队列中获取所述合约调用完成消息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述业务写入数据,运行所述功能工具包中的所述功能代码之后,还包括:
在所述功能代码运行完毕后,发送合约执行完成消息至第三消息队列,以供所述目标业务端从所述第三消息队列中获取所述合约执行完成消息;所述合约执行完成消息包括上链信息和索引信息,所述索引信息用于所述目标业务端将所述业务写入数据与所述上链信息进行关联。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一消息队列具有持久化存储功能。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一消息队列不具有持久化存储功能,则在接收到所述调用请求时,将所述调用请求存储至数据库。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若从所述第一消息队列中未获取所述目标调用请求,则从所述数据库中获取所述目标调用请求,并在所述功能代码运行完毕时,从所述数据库中清除所述目标调用请求。
7.一种基于区块链的业务处理装置,其特征在于,所述装置包括:
第一存储模块,用于若接收到业务端发送的调用请求,则将所述调用请求存入第一消息队列;所述调用请求包括调用接口参数;
第一获取模块,用于从所述第一消息队列中获取目标调用请求;所述目标调用请求包括调用接口参数,所述目标调用请求是目标业务端发送的、用于请求调用或执行区块链网络中智能合约;
确定模块,用于确定所述调用接口参数对应的功能工具包;所述功能工具包是将所述智能合约对应的预设功能的功能代码封装得到的;所述预设功能包括对所述智能合约的调用功能或对所述智能合约的执行功能;
运行模块,用于运行所述功能工具包中的功能代码,以实现所述预设功能;
所述目标调用请求还包括与业务需求对应的业务写入数据,所述运行模块,具体用于根据所述业务写入数据,运行所述功能工具包中的所述功能代码。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201911239763.0A 2019-12-06 2019-12-06 基于区块链的业务处理方法、装置、设备和可读存储介质 Active CN112929396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911239763.0A CN112929396B (zh) 2019-12-06 2019-12-06 基于区块链的业务处理方法、装置、设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911239763.0A CN112929396B (zh) 2019-12-06 2019-12-06 基于区块链的业务处理方法、装置、设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN112929396A CN112929396A (zh) 2021-06-08
CN112929396B true CN112929396B (zh) 2023-03-31

Family

ID=76161486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911239763.0A Active CN112929396B (zh) 2019-12-06 2019-12-06 基于区块链的业务处理方法、装置、设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN112929396B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
CN114390062A (zh) * 2021-12-30 2022-04-22 卓尔智联(武汉)研究院有限公司 基于区块链的调用方法、装置、电子设备及存储介质
CN114866615A (zh) * 2022-05-24 2022-08-05 深圳点宽网络科技有限公司 基于区块链的服务调用方法、装置、***及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688927A (zh) * 2017-09-19 2018-02-13 中国银行股份有限公司 一种调用区块链上的智能合约的方法及***
CN108510389A (zh) * 2018-03-30 2018-09-07 深圳前海微众银行股份有限公司 基于区块链的智能合约调用方法、设备及可读存储介质
CN109840429A (zh) * 2019-01-08 2019-06-04 北京众享比特科技有限公司 智能合约部署、调用方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688927A (zh) * 2017-09-19 2018-02-13 中国银行股份有限公司 一种调用区块链上的智能合约的方法及***
CN108510389A (zh) * 2018-03-30 2018-09-07 深圳前海微众银行股份有限公司 基于区块链的智能合约调用方法、设备及可读存储介质
CN109840429A (zh) * 2019-01-08 2019-06-04 北京众享比特科技有限公司 智能合约部署、调用方法和装置

Also Published As

Publication number Publication date
CN112929396A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN112929396B (zh) 基于区块链的业务处理方法、装置、设备和可读存储介质
WO2021109735A1 (zh) 一种基于跨链网络的资源处理方法及装置
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
CN108573371B (zh) 数据审批方法、装置、计算机设备和存储介质
CN109492983B (zh) 基于区块链智能合约的电子***签署方法、装置、设备和介质
WO2020140663A1 (zh) 微服务灰度发布方法、装置、计算机设备和存储介质
CN109039751B (zh) 配置路由的方法、装置、计算机设备和存储介质
CN111651285A (zh) 批量业务数据处理方法、装置、计算机设备和存储介质
US10999283B2 (en) Addressing transaction conflict in blockchain systems
CN110633160A (zh) 接口调用方法、装置、计算机设备和存储介质
CN109684789B (zh) 嵌入式产品中软件安全保护的方法、装置及计算机设备
CN109413153B (zh) 数据爬取方法、装置、计算机设备和存储介质
CN113766034B (zh) 基于区块链的业务处理方法和装置
CN109445845B (zh) 接口调用方法、装置、计算机设备和存储介质
CN110083384B (zh) 应用程序编程接口创建方法以及装置
CN110704177A (zh) 计算任务处理方法、装置、计算机设备和存储介质
CN109783077B (zh) 区块链***及其中间件***、数据上链方法、存储介质
CN108399533B (zh) 交易处理方法、装置、计算机设备和存储介质
CN114281263A (zh) 容器集群管理***的存储资源处理方法、***和设备
CN111666112A (zh) 平台插件的实现方法、装置、***和计算机设备
CN111147548A (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN111159025A (zh) 应用程序接口测试方法、装置、计算机设备和存储介质
CN112104569A (zh) 报文数据处理方法、装置、计算机设备和存储介质
CN114692228A (zh) 安全监控方法、装置、设备和可读存储介质
CN109063044B (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