CN111078370A - fabric联盟链的任务执行方法、装置和计算机设备 - Google Patents
fabric联盟链的任务执行方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111078370A CN111078370A CN201910965241.2A CN201910965241A CN111078370A CN 111078370 A CN111078370 A CN 111078370A CN 201910965241 A CN201910965241 A CN 201910965241A CN 111078370 A CN111078370 A CN 111078370A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- snapshot
- task data
- block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种fabric联盟链的任务执行方法、装置、计算机设备和计算机可读存储介质,涉及数据处理领域,方法包括:接收任务的执行请求;使用snapshot技术对任务信息对应的第一任务数据进行备份,得到第一任务数据快照;根据第一任务数据快照执行智能合约得到签名任务;将签名任务打包得到任务区块;判断任务区块是否合法;若合法则保存任务区块。本申请通过对原始数据库中的当前次任务相关数据进行快照,使得后续在对任务数据进行读写时,可以直接通过快照中的数据进行智能合约等操作,不需要再对原始数据库中的数据使用读写锁,在保证任务数据一致性的同时,不会影响其他任务数据的读写,实现多线程操作,提高并发性能。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种fabric联盟链的任务执行方法、装置和计算机设备。
背景技术
区块链一般被理解为一个分布式账本,它的本质也是一个分布式的数据库。在现有区块链的架构中,所有的数据都是以键值对的形式存储在leveldb(LevelDB是Google开源的持久化KV单机数据库)中。而为了保证数据的一致性和容错性,leveldb对数据的读取和写入使用了读写锁,从而使得节点不能同时执行背书和存储区块,成为fabric联盟链通过多线程执行任务实现高并发的一个瓶颈。
发明内容
本申请的主要目的为提供,旨在解决现有fabric联盟链无法多线程执行任务的弊端。
为实现上述目的,本申请提供了一种fabric联盟链的任务执行方法,所述执行方法包括:
接收任务的执行请求,其中,所述执行请求携带任务信息;
使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
将所述签名任务打包,得到任务区块;
判断所述任务区块是否合法;
若所述任务区块合法,则保存所述任务区块。
进一步的,所述使用snapshot技术对所述任务信息当前对应的第一任务数据进行备份,得到第一任务数据快照的步骤,包括:
根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
进一步的,所述判断所述任务区块是否合法的步骤,包括:
从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
若与所述第二任务数据一致,则判定所述任务区块合法;
若与所述第二任务数据不一致,则判定所述任务区块不合法。
进一步的,所述判断所述任务区块是否合法的步骤之后,包括:
若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
根据所述第二任务数据快照重新执行所述任务的执行请求。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤,包括:
访问所述第一任务数据快照,得到所述第一任务数据;
基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
将所述执行后的第一任务数据进行签名,得到所述签名任务。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤之后,包括:
释放所述第一任务数据快照。
本申请还提供了一种fabric联盟链的任务执行装置,所述执行装置包括:
接收模块,用于接收任务的执行请求,其中,所述执行请求携带任务信息;
快照模块,用于使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
第一执行模块,用于根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
打包模块,用于将所述签名任务打包,得到任务区块;
判断模块,用于判断所述任务区块是否合法;
保存模块,用于所述任务区块合法,则保存所述任务区块。
进一步的,所述快照模块包括:
筛选单元,用于根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
备份单元,用于使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
进一步的,所述判断模块,包括:
获取单元,用于从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
判断单元,用于判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
第一判定单元,用于若与所述第二任务数据一致,则判定所述任务区块合法;
第二判定单元,用于若与所述第二任务数据不一致,则判定所述任务区块不合法。
进一步的,所述执行装置,还包括:
备份模块,用于若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
第二执行模块,用于根据所述第二任务数据快照重新执行所述任务的执行请求。
进一步的,所述第一执行模块包括:
访问单元,用于访问所述第一任务数据快照,得到所述第一任务数据;
执行单元,用于基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
签名单元,用于将所述执行后的第一任务数据进行签名,得到所述签名任务。
进一步的,所述执行装置,还包括:
释放模块,用于释放所述第一任务数据快照。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请中提供的一种fabric联盟链的任务执行方法、装置和计算机设备,通过对原始数据库中的当前次任务相关数据进行快照,使得后续在对任务数据进行读写时,可以直接通过快照中的数据进行智能合约等操作,不需要再对原始数据库中的数据使用读写锁,在保证任务数据一致性的同时,不会影响其他线程任务数据的读写,实现多线程的任务操作,提高并发性能。
附图说明
图1是本申请一实施例中fabric联盟链的任务执行方法步骤示意图;
图2是本申请一实施例中fabric联盟链的任务执行装置整体结构框图;
图3是本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中提供了一种fabric联盟链的任务执行方法,所述执行方法包括:
S1:接收任务的执行请求,其中,所述执行请求携带任务信息;
S2:使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
S3:根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
S4:将所述签名任务打包,得到任务区块;
S5:判断所述任务区块是否合法;
S6:若所述任务区块合法,则保存所述任务区块。
本实施例中,用户在需要通过fabric联盟链进行相关任务的执行时,需要向执行系统发起请求,其中,任务泛指数据交互,比如交易。执行系统的peer节点在接收到用户发起的任务的执行请求时,根据执行请求中携带的与该任务相关的任务信息,从原始数据库中筛选到与任务信息对应的第一任务数据,并基于leveldb的snapshot技术对第一任务数据进行备份,得到第一任务数据快照,其中,原始数据库为区块链。Peer节点接下来需要执行任务的智能合约,在执行智能合约的过程中,执行系统直接使用第一任务数据快照进行数据访问,从而得到第一任务数据。由于第一任务数据快照是在peer节点接收到执行请求后生成的单独数据库,与原始数据库相对独立,即原始数据库中的数据发生改变时,第一任务数据快照中的数据不会随着改变,由此可以保证第一任务数据的纯粹性,并且不需要对原始数据库中的数据使用读写锁。执行系统根据访问得到的第一任务数据执行智能合同,对执行完成后的任务进行签名认证,从而得到签名任务,并释放第一任务数据快照。执行系统将签名任务从peer节点发送到orderer,通过orderer将签名任务进行打包,得到任务区块。执行系统将任务区块返回到peer节点,由执行系统的peer节点进行任务区块的合法性验证。具体地,peer节点在接收到任务区块后,直接访问原始数据库,从原始数据库中筛选与任务对应的当前版本的第二任务数据。由于区块链的特性,原始数据库中只会保留数据的最新版本。执行系统将当前版本的第二任务数据与任务区块中的数据进行比对,若两者的数据相同,则判定任务区块合法,执行系统判定该次任务执行完成,保存任务区块,对任务区块中的数据进行存储。
进一步的,所述使用snapshot技术对所述任务信息当前对应的第一任务数据进行备份,得到第一任务数据快照的步骤,包括:
S201:根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
S202:使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
本实施例中,执行系统内部预先构建有原始数据库,即区块链,原始数据库中存储有任务信息与任务数据映射关系表。执行系统根据任务信息与任务数据映射关系表,从原始数据库中筛选得到与任务信息在第一当前时间对应的第一任务数据。由于原始数据库中的数据只会保留最新版本,而执行系统接收到执行请求到后续需要访问第一任务数据之间有一定的时间间隔。为了避免其他任务的执行动作,导致当前次任务与其他任务有交集的数据发生改变,因此执行系统使用基于leveldb的snapshot技术对第一任务数据进行备份,从而得到第一任务数据快照。第一任务数据快照中的数据独立于原始数据库中的数据,即原始数据库中数据的变更不会影响到第一任务数据快照中的数据,由此保证了第一任务数据在接收到任务的执行请求后续过程中的一致性,并且不需要对原始数据库中的数据使用读写锁,不会影响其他线程任务的读写动作。
进一步的,所述判断所述任务区块是否合法的步骤,包括:
S501:从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
S502:判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
S503:若与所述第二任务数据一致,则判定所述任务区块合法;
S504:若与所述第二任务数据不一致,则判定所述任务区块不合法。
本实施例中,执行系统在判断任务区块是否合法时,需要根据任务的最终版本数据进行判断。因此,执行系统直接对原始数据库进行访问,根据任务信息获取对应的第二当前时间,即当前版本的任务数据,第二任务数据。执行系统将第二任务数据与任务区块内的数据,即第一任务数据进行比对,判断两个版本之间的数据是否一致。若第一任务数据与第二任务数据一致,则执行系统判定当前次的任务区块合法;若第一任务数据与第二任务数据不一致,则执行系统判定任务区块不合法。
进一步的,所述判断所述任务区块是否合法的步骤之后,包括:
S7:若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
S8:根据所述第二任务数据快照重新执行所述任务的执行请求。
本实施例中,执行系统验证到任务区块的数据不合法,则判定当前次的任务执行失败,执行系统需要将失败信息发送到用户接收端。进一步的,执行系统可以自动重新执行任务,对当前版本的第二任务数据进行snapshot,并依次执行智能合约、签名、打包以及验证数据的合法性,即根据第二任务数据快照重新对当前次的任务进行处理,进行相应的执行动作。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤,包括:
S401:访问所述第一任务数据快照,得到所述第一任务数据;
S402:基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
S403:将所述执行后的第一任务数据进行签名,得到所述签名任务。
本实施例中,执行系统通过访问第一任务数据快照中的数据,从而得到第一任务数据。然后,基于第一任务数据执行智能合约,根据智能合约中的预设条件对第一任务数据中对应的数据进行相应的修改,得到执行后的第一任务数据。其中,智能合约是一段代码和数据的集合,也叫“可编程合约”,即通过程序编码定义合约、预设执行条件,当相应信息触发执行条件时执行对应的行为。其中的“智能”是执行上的智能,也就是说达到某个预设条件,合约自动执行。智能合约的本质是一些执行任务的集合,当满足合约中的触发条件或者预置条件后,会按照事先定义好的执行任务进行执行,一般情况下,执行任务可包括操作和交易。执行系统在执行智能合同后,对执行后的第一任务数据进行签名,得到签名任务。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤之后,包括:
S9:释放所述第一任务数据快照。
本实施例中,执行系统在完成对任务的签名后,由于后续已经不需要使用到第一任务数据快照中的数据,并且第一任务数据快照会占用部分资源,因此执行系统直接释放第一任务数据快照,将第一任务数据快照中的数据删除。执行系统释放第一任务数据快照可以有效规避数据库资源耗尽,影响系统的运行速度,提高CPU的高效性。
本实施例提供的一种fabric联盟链的任务执行方法,通过对原始数据库中的当前次任务相关数据进行快照,使得后续在对任务数据进行读写时,可以直接通过快照中的数据进行智能合约等操作,不需要再对原始数据库中的数据使用读写锁,在保证任务数据一致性的同时,不会影响其他线程任务数据的读写,实现多线程的任务操作,提高并发性能。
参照图2,本申请一实施例中还提供了一种fabric联盟链的任务执行装置,所述执行装置包括:
接收模块1,用于接收任务的执行请求,其中,所述执行请求携带任务信息;
快照模块2,用于使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
第一执行模块3,用于根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
打包模块4,用于将所述签名任务打包,得到任务区块;
判断模块5,用于判断所述任务区块是否合法;
保存模块6,用于所述任务区块合法,则保存所述任务区块。
本实施例中,用户在需要通过fabric联盟链进行相关任务的执行时,需要向执行系统发起请求,其中,任务泛指数据交互,比如交易。执行系统的peer节点在接收到用户发起的任务的执行请求时,根据执行请求中携带的与该任务相关的任务信息,从原始数据库中筛选到与任务信息对应的第一任务数据,并基于leveldb的snapshot技术对第一任务数据进行备份,得到第一任务数据快照,其中,原始数据库为区块链。Peer节点接下来需要执行任务的智能合约,在执行智能合约的过程中,执行系统直接使用第一任务数据快照进行数据访问,从而得到第一任务数据。由于第一任务数据快照是在peer节点接收到执行请求后生成的单独数据库,与原始数据库相对独立,即原始数据库中的数据发生改变时,第一任务数据快照中的数据不会随着改变,由此可以保证第一任务数据的纯粹性,并且不需要对原始数据库中的数据使用读写锁。执行系统根据访问得到的第一任务数据执行智能合同,对执行完成后的任务进行签名认证,从而得到签名任务,并释放第一任务数据快照。执行系统将签名任务从peer节点发送到orderer,通过orderer将签名任务进行打包,得到任务区块。执行系统将任务区块返回到peer节点,由执行系统的peer节点进行任务区块的合法性验证。具体地,peer节点在接收到任务区块后,直接访问原始数据库,从原始数据库中筛选与任务对应的当前版本的第二任务数据。由于区块链的特性,原始数据库中只会保留数据的最新版本。执行系统将当前版本的第二任务数据与任务区块中的数据进行比对,若两者的数据相同,则判定任务区块合法,执行系统判定该次任务执行完成,保存任务区块,对任务区块中的数据进行存储。
进一步的,所述快照模块2包括:
筛选单元,用于根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
备份单元,用于使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
本实施例中,执行系统内部预先构建有原始数据库,即区块链,原始数据库中存储有任务信息与任务数据映射关系表。执行系统根据任务信息与任务数据映射关系表,从原始数据库中筛选得到与任务信息在第一当前时间对应的第一任务数据。由于原始数据库中的数据只会保留最新版本,而执行系统接收到执行请求到后续需要访问第一任务数据之间有一定的时间间隔。为了避免其他任务的执行动作,导致当前次任务与其他任务有交集的数据发生改变,因此执行系统使用基于leveldb的snapshot技术对第一任务数据进行备份,从而得到第一任务数据快照。第一任务数据快照中的数据独立于原始数据库中的数据,即原始数据库中数据的变更不会影响到第一任务数据快照中的数据,由此保证了第一任务数据在接收到任务的执行请求后续过程中的一致性,并且不需要对原始数据库中的数据使用读写锁,不会影响其他线程任务的读写动作。
进一步的,所述判断模块5,包括:
获取单元,用于从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
判断单元,用于判断所述任务区块中的第二任务数据是否与所述第二任务数据一致;
第一判定单元,用于若与所述第二任务数据一致,则判定所述任务区块合法;
第二判定单元,用于若与所述第二任务数据不一致,则判定所述任务区块不合法。
本实施例中,执行系统在判断任务区块是否合法时,需要根据任务的最终版本数据进行判断。因此,执行系统直接对原始数据库进行访问,根据任务信息获取对应的第二当前时间,即当前版本的任务数据,第二任务数据。执行系统将第二任务数据与任务区块内的数据,即第一任务数据进行比对,判断两个版本之间的数据是否一致。若第一任务数据与第二任务数据一致,则执行系统判定当前次的任务区块合法;若第一任务数据与第二任务数据不一致,则执行系统判定任务区块不合法。
进一步的,所述执行装置,还包括:
备份模块7,用于若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
第二执行模块8,用于根据所述第二任务数据快照重新执行所述任务的执行请求。
本实施例中,执行系统验证到任务区块的数据不合法,则判定当前次的任务执行失败,执行系统需要将失败信息发送到用户接收端。进一步的,执行系统可以自动重新执行任务,对当前版本的第二任务数据进行snapshot,并依次执行智能合约、签名、打包以及验证数据的合法性,即根据第二任务数据快照重新对当前次的任务进行处理,进行相应的执行动作。
进一步的,所述第一执行模块3包括:
访问单元,用于访问所述第一任务数据快照,得到所述第一任务数据;
执行单元,用于基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
签名单元,用于将所述执行后的第一任务数据进行签名,得到所述签名任务。
本实施例中,执行系统通过访问第一任务数据快照中的数据,从而得到第一任务数据。然后,基于第一任务数据执行智能合约,根据智能合约中的预设条件对第一任务数据中对应的数据进行相应的修改,得到执行后的第一任务数据。其中,智能合约是一段代码和数据的集合,也叫“可编程合约”,即通过程序编码定义合约、预设执行条件,当相应信息触发执行条件时执行对应的行为。其中的“智能”是执行上的智能,也就是说达到某个预设条件,合约自动执行。智能合约的本质是一些执行任务的集合,当满足合约中的触发条件或者预置条件后,会按照事先定义好的执行任务进行执行,一般情况下,执行任务可包括操作和交易。执行系统在执行智能合同后,对执行后的第一任务数据进行签名,得到签名任务。
进一步的,所述执行装置,还包括:
释放模块9,用于释放所述第一任务数据快照。
本实施例中,执行系统在完成对任务的签名后,由于后续已经不需要使用到第一任务数据快照中的数据,并且第一任务数据快照会占用部分资源,因此执行系统直接释放第一任务数据快照,将第一任务数据快照中的数据删除。执行系统释放第一任务数据快照可以有效规避数据库资源耗尽,影响系统的运行速度,提高CPU的高效性。
本实施例提供的一种fabric联盟链的任务执行装置通过对原始数据库中的当前次任务相关数据进行快照,使得后续在对任务数据进行读写时,可以直接通过快照中的数据进行智能合约等操作,不需要再对原始数据库中的数据使用读写锁,在保证任务数据一致性的同时,不会影响其他线程任务数据的读写,实现多线程的任务操作,提高并发性能。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储原始数据库等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种fabric联盟链的任务执行方法。
上述处理器执行上述fabric联盟链的任务执行方法的步骤:
S1:接收任务的执行请求,其中,所述执行请求携带任务信息;
S2:使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
S3:根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
S4:将所述签名任务打包,得到任务区块;
S5:判断所述任务区块是否合法;
S6:若所述任务区块合法,则保存所述任务区块。
进一步的,所述使用snapshot技术对所述任务信息当前对应的第一任务数据进行备份,得到第一任务数据快照的步骤,包括:
S201:根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
S202:使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
进一步的,所述判断所述任务区块是否合法的步骤,包括:
S501:从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
S502:判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
S503:若与所述第二任务数据一致,则判定所述任务区块合法;
S504:若与所述第二任务数据不一致,则判定所述任务区块不合法。
进一步的,所述判断所述任务区块是否合法的步骤之后,包括:
S7:若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
S8:根据所述第二任务数据快照重新执行所述任务的执行请求。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤,包括:
S401:访问所述第一任务数据快照,得到所述第一任务数据;
S402:基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
S403:将所述执行后的第一任务数据进行签名,得到所述签名任务。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤之后,包括:
S9:释放所述第一任务数据快照。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种fabric联盟链的任务执行方法,具体为:
S1:接收任务的执行请求,其中,所述执行请求携带任务信息;
S2:使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
S3:根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
S4:将所述签名任务打包,得到任务区块;
S5:判断所述任务区块是否合法;
S6:若所述任务区块合法,则保存所述任务区块。
进一步的,所述使用snapshot技术对所述任务信息当前对应的第一任务数据进行备份,得到第一任务数据快照的步骤,包括:
S201:根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
S202:使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
进一步的,所述判断所述任务区块是否合法的步骤,包括:
S501:从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
S502:判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
S503:若与所述第二任务数据一致,则判定所述任务区块合法;
S504:若与所述第二任务数据不一致,则判定所述任务区块不合法。
进一步的,所述判断所述任务区块是否合法的步骤之后,包括:
S7:若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
S8:根据所述第二任务数据快照重新执行所述任务的执行请求。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤,包括:
S401:访问所述第一任务数据快照,得到所述第一任务数据;
S402:基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
S403:将所述执行后的第一任务数据进行签名,得到所述签名任务。
进一步的,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤之后,包括:
S9:释放所述第一任务数据快照。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种fabric联盟链的任务执行方法,其特征在于,所述执行方法包括:
接收任务的执行请求,其中,所述执行请求携带任务信息;
使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
将所述签名任务打包,得到任务区块;
判断所述任务区块是否合法;
若所述任务区块合法,则保存所述任务区块。
2.根据权利要求1所述的fabric联盟链的任务执行方法,其特征在于,所述使用snapshot技术对所述任务信息当前对应的第一任务数据进行备份,得到第一任务数据快照的步骤,包括:
根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
3.根据权利要求2所述的fabric联盟链的任务执行方法,其特征在于,所述判断所述任务区块是否合法的步骤,包括:
从所述原始数据库中获取与所述任务信息在第二当前时间对应的第二任务数据,其中,所述第二当前时间晚于所述第一当前时间;
判断所述任务区块中的第一任务数据是否与所述第二任务数据一致;
若与所述第二任务数据一致,则判定所述任务区块合法;
若与所述第二任务数据不一致,则判定所述任务区块不合法。
4.根据权利要求3所述的fabric联盟链的任务执行方法,其特征在于,所述判断所述任务区块是否合法的步骤之后,包括:
若所述任务区块不合法,则使用snapshot技术对所述第二任务数据进行备份,得到第二任务数据快照;
根据所述第二任务数据快照重新执行所述任务的执行请求。
5.根据权利要求1所述的fabric联盟链的任务执行方法,其特征在于,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤,包括:
访问所述第一任务数据快照,得到所述第一任务数据;
基于所述第一任务数据执行所述智能合约,得到执行后的第一任务数据;
将所述执行后的第一任务数据进行签名,得到所述签名任务。
6.根据权利要求1所述的fabric联盟链的任务执行方法,其特征在于,所述根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务的步骤之后,包括:
释放所述第一任务数据快照。
7.一种fabric联盟链的任务执行装置,其特征在于,所述执行装置包括:
接收模块,用于接收任务的执行请求,其中,所述执行请求携带任务信息;
快照模块,用于使用snapshot技术对所述任务信息对应的第一任务数据进行备份,得到第一任务数据快照;
第一执行模块,用于根据所述第一任务数据快照执行所述任务的智能合约,得到签名任务;
打包模块,用于将所述签名任务打包,得到任务区块;
判断模块,用于判断所述任务区块是否合法;
保存模块,用于所述任务区块合法,则保存所述任务区块。
8.根据权利要求7所述的fabric联盟链的任务执行装置,其特征在于,所述快照模块包括:
筛选单元,用于根据所述任务信息从预先构建的原始数据库中筛选得到第一当前时间的所述第一任务数据,其中,所述原始数据库中存储有任务信息与任务数据映射关系表;
备份单元,用于使用基于leveldb的snapshot技术对所述第一任务数据进行备份,得到所述第一任务数据快照。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910965241.2A CN111078370B (zh) | 2019-10-11 | 2019-10-11 | fabric联盟链的任务执行方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910965241.2A CN111078370B (zh) | 2019-10-11 | 2019-10-11 | fabric联盟链的任务执行方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078370A true CN111078370A (zh) | 2020-04-28 |
CN111078370B CN111078370B (zh) | 2023-03-28 |
Family
ID=70310325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910965241.2A Active CN111078370B (zh) | 2019-10-11 | 2019-10-11 | fabric联盟链的任务执行方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078370B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434307A (zh) * | 2021-06-22 | 2021-09-24 | 北京沃东天骏信息技术有限公司 | 任务发送的处理、任务处理的方法、装置、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959888A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 云存储系统中的任务处理方法及装置 |
CN109118230A (zh) * | 2018-08-29 | 2019-01-01 | 众安信息技术服务有限公司 | 基于区块链的信息处理方法和装置 |
CN109214792A (zh) * | 2017-07-06 | 2019-01-15 | 万事达卡国际公司 | 经由区块链的电子代金券的方法和系统 |
CN110058878A (zh) * | 2019-04-04 | 2019-07-26 | 交通银行股份有限公司 | 基于智能合约的Fabric区块链配置方法及系统 |
-
2019
- 2019-10-11 CN CN201910965241.2A patent/CN111078370B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959888A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 云存储系统中的任务处理方法及装置 |
CN109214792A (zh) * | 2017-07-06 | 2019-01-15 | 万事达卡国际公司 | 经由区块链的电子代金券的方法和系统 |
CN109118230A (zh) * | 2018-08-29 | 2019-01-01 | 众安信息技术服务有限公司 | 基于区块链的信息处理方法和装置 |
CN110058878A (zh) * | 2019-04-04 | 2019-07-26 | 交通银行股份有限公司 | 基于智能合约的Fabric区块链配置方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434307A (zh) * | 2021-06-22 | 2021-09-24 | 北京沃东天骏信息技术有限公司 | 任务发送的处理、任务处理的方法、装置、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111078370B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928653B (zh) | 跨集群任务的执行方法、装置、计算机设备和存储介质 | |
CN110727698A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN111078370B (zh) | fabric联盟链的任务执行方法、装置和计算机设备 | |
US20160232197A1 (en) | Copy-on-write update-triggered consistency | |
CN111651304A (zh) | 基于双芯智能电表的软件恢复方法、装置和计算机设备 | |
CN110569001B (zh) | 基于固态硬盘的L2P表dirty位标记方法和装置 | |
CN112765126A (zh) | 数据库事务的管理方法、装置、计算机设备和存储介质 | |
CN111159025B (zh) | 应用程序接口测试方法、装置、计算机设备和存储介质 | |
CN117195129A (zh) | 一种基于沙箱系统的异常处理方法及相关设备 | |
CN117076416A (zh) | 一种优化目录容量嵌套配额的方法、系统、设备和介质 | |
CN111339054A (zh) | 一种存储系统分级管理的方法、装置、设备及存储介质 | |
WO2017058148A1 (en) | Executing transactions based on success or failure of the transactions | |
CN112559248B (zh) | 预处理服务恢复方法、装置、设备及存储介质 | |
CN111459404B (zh) | 数据压缩方法、装置、计算机设备和存储介质 | |
CN114138408A (zh) | 克隆卷创建的方法、装置、计算机设备和存储介质 | |
CN115398182A (zh) | 电子地图更新方法、装置、计算机设备和存储介质 | |
CN112463836A (zh) | 基于Django框架的数据查询方法、装置、计算机设备和介质 | |
CN115114010A (zh) | 服务访问控制方法、装置、电子设备及存储介质 | |
CN110750511A (zh) | 操作历史还原方法、装置、计算机设备及存储介质 | |
CN111367718A (zh) | 数据库的启动方法、装置、设备和存储介质 | |
CN110928607A (zh) | 业务实现方法、装置、计算机设备及存储介质 | |
CN113609211B (zh) | 一种集群信息同步方法、装置、计算机设备及存储介质 | |
CN111158701B (zh) | 库模块发布方法、装置、设备及存储介质 | |
CN112580088A (zh) | 数据加载方法、装置、计算机设备和存储介质 | |
CN111953535B (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 |