CN111339187B - 基于智能合约的数据处理方法、装置、设备和存储介质 - Google Patents
基于智能合约的数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111339187B CN111339187B CN202010104354.6A CN202010104354A CN111339187B CN 111339187 B CN111339187 B CN 111339187B CN 202010104354 A CN202010104354 A CN 202010104354A CN 111339187 B CN111339187 B CN 111339187B
- Authority
- CN
- China
- Prior art keywords
- endorsement
- time
- block
- current
- local
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- 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)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了基于智能合约的数据处理方法、装置、设备和存储介质,涉及区块链技术领域。具体实现方案为:在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。本申请实施例通过在调用智能合约过程中,根据区块链中上一区块的时间确定当前时间,并根据当前时间对当前事务处理请求进行处理,即在预执行机制中,能够支持依赖时间的智能合约。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及基于智能合约的数据处理方法、装置、电子设备和存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链技术领域,智能合约指不可篡改、自动执行的计算机程序。
部分区块链网络中例如Fabric和百度超级链,智能合约基于预执行机制执行,即在事务处理请求打包到区块之前,先通过背书节点对事务处理请求进行预执行,区块链网络中其他节点根据背书节点的预执行结果对事务处理请求进行处理。
在预执行机制中,由于不同节点的时钟不一致,且存在网络延迟等原因,因此为智能合约的开发者提供获取时间的能力,即无法实现依赖时间的智能合约。
发明内容
本申请实施例公开基于智能合约的数据处理方法、装置、设备和存储介质,在预执行机制中,能够实现依赖时间的智能合约。
第一方面,本申请实施例公开了基于智能合约的数据处理方法,包括:
在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;
根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。
上述申请中的一个实施例具有如下优点或有益效果:在调用智能合约过程中,根据区块链中上一区块的时间确定当前时间,并根据当前时间对当前事务处理请求进行处理。区块链网络中不同节点,只要更新到最长区块链,执行智能合约过程中所确定的当前时间相同,使得不同节点中智能合约的处理结果一致,即在预执行机制中,支持依赖时间的智能合约。
另外,根据本申请上述实施例的基于智能合约的数据处理方法,还可以具有如下附加的技术特征:
可选的,根据背书区块链中上一区块的时间,确定背书当前时间,包括:
根据背书区块链中上一区块的时间和出块时间间隔,确定背书区块链的当前区块时间;
将所述背书区块链的当前区块时间,作为所述背书当前时间。
可选的,在所述智能合约执行当前时间获取函数时,触发执行所述背书当前时间的确定操作。
上述申请中的一个实施例具有如下优点或有益效果:通过区块链中上一区块的时间和出块时间间隔,能够确定出区块链的当前区块时间,也就是说预执行机制在当前区块生成之前能够确定当前区块时间,并利用当前区块时间处理当前事务处理请求,并且将当前时间的误差控制在单次出块时间间隔之内,提高了智能合约的处理准确度。
可选的,所述方法还包括:
在调用智能合约过程中,确定背书区块链的上一区块高度,用于使所述其他节点根据所述背书区块链的上一区块高度对所述背书处理结果进行校验。
上述申请中的一个实施例具有如下优点或有益效果:背书节点在调用智能合约过程中,确定背书区块链的上一区块高度,使得后续其他节点通过比较上一区块高度确定背书区块链或其他节点中区块链高度是否一致,若不一致结束操作,可以提高其他节点的事务处理效率。
第二方面,本申请实施例公开了基于智能合约的数据处理方法,包括:
接收当前事务处理请求和背书处理结果;其中所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到;
调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间;
根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果;
校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果。
第三方面,本申请实施例公开了基于智能合约的数据处理装置,包括:
背书时间模块,用于在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;
请求预处理模块,用于根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。
第四方面,本申请实施例公开了基于智能合约的数据处理装置,包括:
接收模块,用于接收当前事务处理请求和背书处理结果;其中所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到;
本地时间模块,用于调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间;
请求处理模块,用于根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果;
结果校验模块,用于校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果。
第五方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的基于智能合约的数据处理方法。
第六方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的基于智能合约的数据处理方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的基于智能合约的数据处理方法的流程图;
图2是根据本申请第二实施例的基于智能合约的数据处理方法的流程图;
图3是根据本申请第三实施例的基于智能合约的数据处理方法的流程图;
图4是根据本申请第四实施例的基于智能合约的数据处理装置的结构图;
图5是根据本申请第五实施例的基于智能合约的数据处理装置的结构图;
图6是用来实现本申请实施例的基于智能合约的数据处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1是根据本申请第一实施例的基于智能合约的数据处理方法的流程图,本实施例可适用于基于预执行机制,调用依赖时间的智能合约,处理事务请求的情况,该方法可由配置于区块链网络中背书节点的基于智能合约的数据处理装置来执行,该装置采用软件和/或硬件的方式实现。如图1所示,该方法具体包括如下:
S110、在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间。
基于预执行机制,区块链网络确定至少一个背书节点。例如百度超级链中在单个出块周期内,只确定一个背书节点,用户节点的事务处理请求发送到背书节点进行预执行,背书节点将预执行结果返回给用户节点。用户节点再将预执行结果和事务处理请求发送到区块链网络进行处理。Fabric区块链在单个出块周期内,确定至少两个背书节点,每个事务处理请求均需要至少两个背书节点进行预处理。本申请实施例对背书节点的确定方式不作具体限定。
在本申请实施例中,背书区块链是指背书节点中的区块链,智能合约是指依赖于时间的智能合约,背书当前时间是指由背书节点所确定的当前时间。
具体的,背书节点调用智能合约对从用户节点获取的当前事务处理请求进行预处理过程中,根据背书区块链中上一区块的时间,确定背书当前时间,例如直接将上一区块的时间作为背书当前时间,或者对上一区块的时间执行预设处理后得到背书当前时间。由于背书当前时间由背书区块链中上一区块的时间决定,与节点时钟无关,且背书节点本身存储有背书区块链,因此无需通讯操作,即可确定背书当前时间。基于区块链网络的最长链原则,区块链网络中更新到最长链的节点所确定的当前时间相同,即能够得到区块链网络的当前时间,如果某一节点所确定的当前时间与区块链网络的当前时间不同,则该节点中区块链不是最长区块链,即该节点处理的数据可丢弃。该节点可以是背书节点、区块生成节点或校验节点。
S120、根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。
在本申请实施例中,智能合约根据背书当前时间,对当前事务处理数据集进行预处理,以得到智能合约的读写集作为背书处理结果。其中智能合约的读写集中读集合用于记录智能合约执行过程中需要读取的数据,写集合用于记录智能合约的执行结果。背书处理结果可以为背书节点中智能合约的读写集或写集合。
其中,其他节点为区块生成节点和/或校验节点。若其他节点为区块生成节点,则区块生成节点自己调用智能合约对当前事务处理请求进行处理得到处理结果,并校验得到的处理结果与背书处理结果是否一致,若一致,则生成当前区块,若不一致,则停止操作。若其他节点为区块校验节点,则确定当前区块校验通过,即确认将当前区块写入区块链中。需要注意的是,如果区块生成节点或区块校验节点为背书节点本身,则无需重复处理,直接根据背书处理结果得到最终处理结果。
本实施例的技术方案,区块链网络中节点基于预执行机制,调用智能合约过程中,根据区块链中上一区块的时间确定当前时间,从而使得区块链网络中各节点的当前时间能够达成共识,即智能合约的执行能够达成共识,即在预执行机制中,支持依赖时间的智能合约,智能合约能够为开发者提供获取时间的能力。本申请实施例适用于所有预执行机制。
第二实施例
图2是根据本申请第二实施例的基于智能合约的数据处理方法的流程图,本实施例在上述第一实施例的基础上,进一步基于预执行机制的智能合约进行解释说明。参考图2,该方法具体包括如下:
S210、在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间。
在本申请实施例中,可选的,根据背书区块链中上一区块的时间,确定背书当前时间,包括:
根据背书区块链中上一区块的时间和出块时间间隔,确定背书区块链的当前区块时间;
将所述背书区块链的当前区块时间,作为所述背书当前时间。
其中,出块时间间隔是指区块链网络中相邻两次区块时间的间隔,为已知固定值。通过根据上一区块的时间和出块时间间隔,在生成当前区块之前即可确定当前区块时间,并且将当前区块时间作为当前时间,不仅能够保证当前时间具有确定性,能够达成共识,并且还能够将当前时间的误差控制在出块时间间隔之内,从而可以提高智能合约的事务处理准确度。
可选的,在所述智能合约执行当前时间获取函数时,触发执行所述背书当前时间的确定操作。
在本申请实施例中,智能合约依赖于时间,需要调用当前时间获取函数now(),例如智能合约可以是根据当前时间进行资产质押等。本申请实施例中对智能合约的具体逻辑不作限定。
S220、确定背书区块链的上一区块高度,用于使所述其他节点根据所述背书区块链的上一区块高度对所述背书处理结果进行校验。
在本申请实施例中,背书节点调用智能合约对当前事务处理请求进行预处理过程中,还确定背书区块链的上一区块高度。基于区块链网络的最长链原则,区块链网络中更新到最长链的节点所确定的上一区块高度相同。后续其他节点在对背书处理结果进行校验之前,可以先校验自己区块链的上一区块高度与背书区块链的上一区块高度是否相同,若相同,再继续对背书处理结果进行校验;若不相同,则说明背书区块链和/或自己区块链不是最长区块链,停止操作,说明校验不通过。
通过预先基于上一区块高度确定不同节点中区块链是否更新到最长链,可以提高其他节点对背书处理结果的校验效率。
S230、根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。
本实施例的技术方案,背书节点预执行智能合约过程中,根据背书区块链中上一区块的时间确定背书当前时间,且确定背书区块链的上一区块高度,智能合约根据背书当前数据处理当前事务处理请求得到背书处理结果。区块链网络中其他节点通过先根据背书区块链的上一区块高度确定其他节点和背书节点中区块链是否同步,如果同步继续对背书处理结果进行校验,如果不同步直接结束操作。基于预执行机制,不仅能够实现依赖时间的智能合约,还能够提高其他节点对背书处理结果的校验效率。
第三实施例
图3是根据本申请第三实施例的基于智能合约的数据处理方法的流程图,本实施例可适用于基于预执行机制,调用依赖时间的智能合约,处理事务请求的情况,该方法可由配置于区块链网络中其他节点的基于智能合约的数据处理装置来执行,该装置采用软件和/或硬件的方式实现。如图3所示,该方法具体包括如下:
S310、接收当前事务处理请求和背书处理结果。
在本申请实施例中,所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到。
具体的,用户节点向背书节点发送当前事务处理请求,背书节点调用智能合约对当前事务处理请求进行处理得当背书处理结果,并将背书处理结果返回给用户节点。用户节点采用自己私钥对背书处理结果和当前事务处理请求进行签名,并将签名数据发送给区块链网络中其他节点。其他节点采用用户节点的公钥对签名数据进行验签,以得到当前事务处理请求和背书处理结果。可选地,其他节点为区块链网络中区块生成节点和/或区块校验节点。
S320、调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间。
其中,本地区块链是指其他节点中区块链,本地当前时间是指其他节点所确定的当前时间。本地当前时间由本地区块链中上一区块的时间决定,与节点时钟无关,且无需网络通信即可确定。
可选的,根据本地区块链中上一区块的时间,确定本地当前时间,包括:根据本地区块链中上一区块的时间和出块时间间隔,确定本地区块链的当前区块时间;将所述本地区块链的当前区块时间,作为所述本地当前时间。
可选的,在所述智能合约执行当前时间获取函数时,触发执行所述本地当前时间的确定操作。
S330、根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果。
S340、校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果。
在本申请实施例中,若背书处理结果和本地处理结果一致,则智能合约的处理通过确认,即其他节点与背书节点对处理结果达成共识;若背书处理结果与本地处理结果不一致,则未达成共识,停止后续操作。
可选的,若所述其他节点为区块生成节点,且所述校验结果为一致,则生成当前区块以作为所述最终处理结果;
若所述其他节点为区块校验节点,且所述校验结果为一致,则确定当前区块校验通过以作为所述最终处理结果。
本实施例的技术方案,区块链网络中节点执行智能合约过程中,根据自己区块链中上一区块的时间确定自己当前时间,且根据自己当前时间处理当前事务处理请求得到自己处理结果。如果不同节点的处理结果一致,则区块链网络达成共识,否则未达成共识。在预执行机制中,不仅能够实现依赖时间的智能合约,还能提高其他节点对背书处理结果的校验效率。
可选的,S320之前,还包括:
接收背书区块链的上一区块高度;
确定本地区块链的上一区块高度;
若所述背书区块链的上一区块高度与所述本地区块链的上一区块高度不一致,则结束操作。
具体的,若所述背书区块链的上一区块高度与所述本地区块链的上一区块高度不一致,则背书区块链和/或本地区块链不是最长区块链,停止操作,校验不通过,无需再执行智能合约对背书处理结果进行校验。
第四实施例
图4是根据本申请第四实施例的一种基于智能合约的数据处理装置的结构图,本实施例可适用于基于预执行机制,调用依赖时间的智能合约,处理事务请求的情况,该装置可实现本申请任意实施例中背书节点执行的基于智能合约的数据处理方法。该装置400具体包括如下:
背书时间模块410,用于在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;
请求预处理模块420,用于根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理。
进一步的,背书时间模块410具体用于:
根据背书区块链中上一区块的时间和出块时间间隔,确定背书区块链的当前区块时间;
将所述背书区块链的当前区块时间,作为所述背书当前时间。
进一步的,在所述智能合约执行当前时间获取函数时,触发执行所述背书当前时间的确定操作。
进一步的,所述装置还包括:
第一结果校验模块,用于在调用智能合约过程中,确定背书区块链的上一区块高度,用于使所述其他节点根据所述背书区块链的上一区块高度对所述背书处理结果进行校验。
本实施例的技术方案,背书节点预执行智能合约过程中,根据背书区块链中上一区块的时间确定背书当前时间,且确定背书区块链的上一区块高度,智能合约根据背书当前数据处理当前事务处理请求得到背书处理结果。区块链网络中其他节点通过先根据背书区块链的上一区块高度确定其他节点和背书节点中区块链是否同步,如果同步继续对背书处理结果进行校验,如果不同步直接结束操作。预执行机制,不仅能够实现依赖时间的智能合约,还能提高其他节点对背书处理结果的校验效率。
第五实施例
图5是根据本申请第五实施例的一种基于智能合约的数据处理装置的结构图,本实施例可适用于基于预执行机制,调用依赖时间的智能合约,处理事务请求的情况,该装置可实现本申请任意实施例中其他节点执行的基于智能合约的数据处理方法。该装置500具体包括如下:
接收模块510,用于接收当前事务处理请求和背书处理结果;其中所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到;
本地时间模块520,用于调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间;
请求处理模块530,用于根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果;
第二结果校验模块540,用于校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果。
进一步的,本地时间模块520具体用于:
根据本地区块链中上一区块的时间和出块时间间隔,确定本地区块链的当前区块时间;
将所述本地区块链的当前区块时间,作为所述本地当前时间。
进一步的,还包括第三结果校验模块,具体用于执行如下:
接收背书区块链的上一区块高度;
确定本地区块链的上一区块高度;
若所述背书区块链的上一区块高度与所述本地区块链的上一区块高度不一致,则结束操作。
进一步的,第二结果校验模块540具体用于:
若所述其他节点为区块生成节点,且所述校验结果为一致,则生成当前区块以作为所述最终处理结果;
若所述其他节点为区块校验节点,且所述校验结果为一致,则确定当前区块校验通过以作为所述最终处理结果。
本实施例的技术方案,区块链网络中节点执行智能合约过程中,根据自己区块链中上一区块的时间确定自己当前时间,且根据自己当前时间处理当前事务处理请求得到自己处理结果。如果不同节点的处理结果一致,则区块链网络达成共识,否则未达成共识。在预执行机制中,不仅能够实现依赖时间的智能合约,还能提高其他节点对背书处理结果的校验效率。
第六实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的基于智能合约的数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于智能合约的数据处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于智能合约的数据处理方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于智能合约的数据处理方法对应的程序指令/模块(例如,附图4所示的背书时间模块410和请求预处理模块420,附图5所示的接收模块510、本地时间模块520、请求处理模块530和结果校验模块540)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于智能合约的数据处理方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于智能合约的数据处理的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至基于智能合约的数据处理的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于智能合约的数据处理的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与基于智能合约的数据处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,背书节点预执行智能合约过程中,根据背书区块链中上一区块的时间确定背书当前时间,且确定背书区块链的上一区块高度,智能合约根据背书当前数据处理当前事务处理请求得到背书处理结果。区块链网络中其他节点通过先根据背书区块链的上一区块高度确定其他节点和背书节点中区块链是否同步,如果同步继续对背书处理结果进行校验,如果不同步直接结束操作。预执行机制,不仅能够实现依赖时间的智能合约,还能提高其他节点对背书处理结果的校验效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.基于智能合约的数据处理方法,其特征在于,由区块链网络中背书节点执行,所述方法包括:
在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;
根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理;
其中,所述根据背书区块链中上一区块的时间,确定背书当前时间,包括:
根据背书区块链中上一区块的时间和出块时间间隔,确定背书区块链的当前区块时间;
将所述背书区块链的当前区块时间,作为所述背书当前时间。
2.根据权利要求1所述的方法,其特征在于,
在所述智能合约执行当前时间获取函数时,触发执行所述背书当前时间的确定操作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在调用智能合约过程中,确定背书区块链的上一区块高度,用于使所述其他节点根据所述背书区块链的上一区块高度对所述背书处理结果进行校验。
4.基于智能合约的数据处理方法,其特征在于,由区块链网络中其他节点执行,所述方法包括:
接收当前事务处理请求和背书处理结果;其中所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到;
调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间;
根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果;
校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果;
其中,所述根据本地区块链中上一区块的时间,确定本地当前时间,包括:
根据本地区块链中上一区块的时间和出块时间间隔,确定本地区块链的当前区块时间;
将所述本地区块链的当前区块时间,作为所述本地当前时间。
5.根据权利要求4所述的方法,其特征在于,调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间之前,还包括:
接收背书区块链的上一区块高度;
确定本地区块链的上一区块高度;
若所述背书区块链的上一区块高度与所述本地区块链的上一区块高度不一致,则结束操作。
6.根据权利要求4所述的方法,其特征在于,根据校验结果得到最终处理结果,包括:
若所述其他节点为区块生成节点,且所述校验结果为一致,则生成当前区块以作为所述最终处理结果;
若所述其他节点为区块校验节点,且所述校验结果为一致,则确定当前区块校验通过以作为所述最终处理结果。
7.基于智能合约的数据处理装置,其特征在于,配置于区块链网络中背书节点,所述装置包括:
背书时间模块,用于在调用智能合约过程中,根据背书区块链中上一区块的时间,确定背书当前时间;
请求预处理模块,用于根据所述背书当前时间,对当前事务处理请求进行预处理,以得到背书处理结果,用于使区块链网络中其他节点根据所述背书处理结果对所述当前事务处理请求进行处理;
其中,所述背书时间模块,具体用于:
根据背书区块链中上一区块的时间和出块时间间隔,确定背书区块链的当前区块时间;
将所述背书区块链的当前区块时间,作为所述背书当前时间。
8.基于智能合约的数据处理装置,其特征在于,配置于区块链网络中其他节点,所述装置包括:
接收模块,用于接收当前事务处理请求和背书处理结果;其中所述背书处理结果通过背书节点调用所述智能合约对所述当前事务处理请求进行预处理得到;
本地时间模块,用于调用智能合约,根据本地区块链中上一区块的时间,确定本地当前时间;
请求处理模块,用于根据所述本地当前时间,对所述当前事务处理请求进行处理,以得到本地处理结果;
结果校验模块,用于校验所述背书处理结果和所述本地处理结果是否一致,并根据校验结果得到最终处理结果;
其中,所述本地时间模块,具体用于:
根据本地区块链中上一区块的时间和出块时间间隔,确定本地区块链的当前区块时间;
将所述本地区块链的当前区块时间,作为所述本地当前时间。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010104354.6A CN111339187B (zh) | 2020-02-20 | 2020-02-20 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
| KR1020210018443A KR102451678B1 (ko) | 2020-02-20 | 2021-02-09 | 스마트 계약을 기반으로 하는 데이터 처리 방법, 장치, 기기 및 저장 매체 |
| EP21157274.8A EP3869377B1 (en) | 2020-02-20 | 2021-02-16 | Method and apparatus for data processing based on smart contract, device and storage medium |
| US17/249,003 US20210263912A1 (en) | 2020-02-20 | 2021-02-17 | Method for data processing based on smart contract and device |
| JP2021024139A JP7016436B2 (ja) | 2020-02-20 | 2021-02-18 | スマートコントラクトに基づくデータ処理方法、装置、機器及び記憶媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010104354.6A CN111339187B (zh) | 2020-02-20 | 2020-02-20 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111339187A CN111339187A (zh) | 2020-06-26 |
| CN111339187B true CN111339187B (zh) | 2023-05-09 |
Family
ID=71181740
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010104354.6A Active CN111339187B (zh) | 2020-02-20 | 2020-02-20 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20210263912A1 (zh) |
| EP (1) | EP3869377B1 (zh) |
| JP (1) | JP7016436B2 (zh) |
| KR (1) | KR102451678B1 (zh) |
| CN (1) | CN111339187B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111611066A (zh) * | 2020-06-30 | 2020-09-01 | 平安银行股份有限公司 | 任务执行方法、任务执行服务器和存储介质 |
| US11574336B1 (en) * | 2022-03-11 | 2023-02-07 | Rx Paradigm Inc. | Apparatus for secure decentralized rebate management |
| CN114327804B (zh) * | 2022-03-15 | 2022-06-07 | 北京百度网讯科技有限公司 | 基于区块链的分布式事务处理方法、装置、设备和介质 |
| WO2025013960A1 (ko) * | 2023-07-07 | 2025-01-16 | 주식회사 헤세그 | 블록체인 네트워크와 연계하여 블록체인 네트워크의 외부에서 계약이 실행되도록 하기 위한 방법 및 시스템 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106960165A (zh) * | 2017-03-13 | 2017-07-18 | 广东网金控股股份有限公司 | 一种基于区块链智能合约实现电子合同多方会签的方法 |
| CN109039513A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 时钟同步方法、装置、设备及存储介质 |
| CN109872157A (zh) * | 2017-12-01 | 2019-06-11 | 北京欧链科技有限公司 | 区块链中执行智能合约的方法及装置 |
| CN109947843A (zh) * | 2017-12-01 | 2019-06-28 | 北京欧链科技有限公司 | 区块链中时间的确定方法、装置及系统 |
| CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
| CN110046523A (zh) * | 2019-03-15 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 智能合约校验方法及装置和电子设备 |
| CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
| CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
| CN110601849A (zh) * | 2019-08-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种可信时间戳添加方法、装置和存储介质 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI659373B (zh) * | 2018-02-14 | 2019-05-11 | 財團法人工業技術研究院 | 區塊鏈系統及應用其的方法 |
| US20200013025A1 (en) * | 2018-07-06 | 2020-01-09 | International Business Machines Corporation | Conditional deferred transactions for blockchain |
| CN110740113B (zh) | 2018-07-20 | 2021-10-29 | 富士通株式会社 | 通过多个主体协作进行信息处理的方法和装置 |
| US11308073B2 (en) | 2018-08-08 | 2022-04-19 | International Business Machines Corporation | Database node functional testing |
| SG11202002467TA (en) * | 2019-09-02 | 2020-04-29 | Alibaba Group Holding Ltd | Managing blockchain-based centralized ledger systems |
| KR102848454B1 (ko) * | 2020-05-19 | 2025-08-20 | 삼성에스디에스 주식회사 | 블록체인 기반의 데이터 관리 방법 및 장치 |
-
2020
- 2020-02-20 CN CN202010104354.6A patent/CN111339187B/zh active Active
-
2021
- 2021-02-09 KR KR1020210018443A patent/KR102451678B1/ko active Active
- 2021-02-16 EP EP21157274.8A patent/EP3869377B1/en active Active
- 2021-02-17 US US17/249,003 patent/US20210263912A1/en not_active Abandoned
- 2021-02-18 JP JP2021024139A patent/JP7016436B2/ja active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106960165A (zh) * | 2017-03-13 | 2017-07-18 | 广东网金控股股份有限公司 | 一种基于区块链智能合约实现电子合同多方会签的方法 |
| CN109872157A (zh) * | 2017-12-01 | 2019-06-11 | 北京欧链科技有限公司 | 区块链中执行智能合约的方法及装置 |
| CN109947843A (zh) * | 2017-12-01 | 2019-06-28 | 北京欧链科技有限公司 | 区块链中时间的确定方法、装置及系统 |
| CN109039513A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 时钟同步方法、装置、设备及存储介质 |
| CN109978516A (zh) * | 2019-03-06 | 2019-07-05 | 西安电子科技大学 | 区块链网络中区块的制造和同步方法、信息数据处理终端 |
| CN110046523A (zh) * | 2019-03-15 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 智能合约校验方法及装置和电子设备 |
| CN110417502A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种区块链节点时钟共识方法及装置 |
| CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
| CN110601849A (zh) * | 2019-08-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种可信时间戳添加方法、装置和存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| "Impact of network delays on Hyperledger Fabric";NGUYEN THANH SON LAM ET AL;《Computer communications workshops》;222-227 * |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3869377A1 (en) | 2021-08-25 |
| KR102451678B1 (ko) | 2022-10-06 |
| JP2021131860A (ja) | 2021-09-09 |
| CN111339187A (zh) | 2020-06-26 |
| EP3869377B1 (en) | 2023-05-10 |
| US20210263912A1 (en) | 2021-08-26 |
| KR20210106355A (ko) | 2021-08-30 |
| JP7016436B2 (ja) | 2022-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111339187B (zh) | 基于智能合约的数据处理方法、装置、设备和存储介质 | |
| CN111831420B (zh) | 用于任务调度的方法、相关装置及计算机程序产品 | |
| CN110806923B (zh) | 一种区块链任务的并行处理方法、装置、电子设备和介质 | |
| CN111984476B (zh) | 测试方法和装置 | |
| CN111782669B (zh) | 一种分布式锁的实现方法、装置及电子设备 | |
| CN111582375B (zh) | 数据增强策略搜索方法、装置、设备以及存储介质 | |
| CN111708520B (zh) | 应用构建方法、装置、电子设备及存储介质 | |
| CN112346512B (zh) | 时间同步方法和装置 | |
| CN111475262A (zh) | 区块链中事务请求处理方法、装置、设备和介质 | |
| CN111260474B (zh) | 跨区块链的资产交易方法、装置、设备、系统和存储介质 | |
| CN112016028B (zh) | 一种信息记录方法及装置、信息存储方法、装置及系统 | |
| CN111178937B (zh) | 应用的用户奖励方法、装置、电子设备及可读存储介质 | |
| CN110737560B (zh) | 一种服务状态检测方法、装置、电子设备和介质 | |
| CN113051043A (zh) | 微服务异常补偿方法和装置 | |
| CN113254043A (zh) | Web前端项目处理方法、装置、电子设备及存储介质 | |
| CN112380033A (zh) | 车载安卓操作系统架构、车载操作系统调用方法、电子设备和存储介质 | |
| CN111563253A (zh) | 智能合约运行方法、装置、设备及存储介质 | |
| CN111459504A (zh) | 智能合约的处理方法、装置、设备和存储介质 | |
| JP7135142B2 (ja) | コード再利用処理方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品 | |
| CN111258954B (zh) | 数据迁移方法、装置、设备及存储介质 | |
| CN111753330B (zh) | 数据泄露主体的确定方法、装置、设备和可读存储介质 | |
| CN113312362B (zh) | 区块链的数据修改方法、装置、设备和存储介质 | |
| CN113312131B (zh) | 标注工具的生成、运行方法和装置 | |
| CN114661274A (zh) | 用于生成智能合约的方法和装置 | |
| CN113760979B (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 |