CN113743951A - 区块链的智能合约交易处理方法、装置 - Google Patents
区块链的智能合约交易处理方法、装置 Download PDFInfo
- Publication number
- CN113743951A CN113743951A CN202111298951.8A CN202111298951A CN113743951A CN 113743951 A CN113743951 A CN 113743951A CN 202111298951 A CN202111298951 A CN 202111298951A CN 113743951 A CN113743951 A CN 113743951A
- Authority
- CN
- China
- Prior art keywords
- transaction
- condition
- contract
- contract transaction
- execution mode
- 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
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提出一种区块链的智能合约交易处理方法、装置,具体实现方案为:从待入链的交易中提取待执行的多笔合约交易;根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件;根据判断结果,采用与所述判断结果对应的交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块;在区块链共识从节点对所述候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行所述多笔合约交易。本申请实现合约交易执行方式的自适应可动态切换,提升智能合约交易整体执行效率,提高区块的打包和校验速度。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链的智能合约交易处理方法、装置。
背景技术
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
发明内容
本申请提供了一种区块链的智能合约交易处理方法、装置。
根据本申请的第一方面,提供了一种区块链的智能合约交易处理方法,包括;
从待入链的交易中提取待执行的多笔合约交易;
根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件;
根据判断结果,采用与判断结果对应的交易执行方式预执行每笔合约交易,形成区块链的候选区块;
在区块链共识从节点对候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行多笔合约交易。
根据本申请的第二方面,提供了一种区块链的智能合约交易处理装置,包括:
提取模块,用于从待入链的交易中提取待执行的多笔合约交易;
判断模块,用于根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件;
预执行模块,用于根据判断结果,采用与判断结果对应的合约交易执行方式预执行每笔合约交易,形成区块链的候选区块;
执行模块,用于在区块链共识从节点对候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行多笔合约交易。
根据本申请的第三方面,提供了一种计算机设备,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如第一方面的方法。
根据本申请的第四方面,提供了一种非临时性计算机可读存储介质:
其上存储有计算机程序,该程序被处理器执行时实现如第一方面的方法。
根据本申请的技术方案,通过预设交易执行方式判定条件,节点根据预设判定条件下的判定结果,自适应选取串行或者并行执行方式处理合约交易,实现合约交易执行方式的自适应可动态切换,从而提升智能合约交易整体执行效率,提高区块的打包和校验速度。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种区块链智能合约交易处理方法的流程图;
图2为本申请实施例提供的从节点验证候选区块的结构示意图;
图3为本申请实施例提供的从节点验证候选区块方法的流程图;
图4为本申请实施例提供的以区块产生时间作为判定条件的交易执行方式判断流程图;
图5为本申请实施例提供的以交易并行度作为判定条件的交易执行方式判断流程图;
图6为本申请实施例提供的以区块产生时间和交易并行度作为判定条件的交易执行方式判断流程图;
图7为本申请实施例提供的一种区块链的智能合约交易处理装置的结构框图;
图8为本申请实施例提供的一种计算机设备的框图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
需要说明的是,区块链中智能合约交易可分为串行和并行这两种交易执行方式。其中,交易串行执行,即节点对每批交易中的多笔交易逐一执行,当区块中交易耦合度较高时,对交易采取串行执行的方式执行效率较高。交易并行执行,即节点对每批交易采取所有交易同步并行执行方式进行,适用于区块中交易耦合度较低的场景,此时采用并行执行方式,可以加速区块的打包和校验速度,可解决在区块中交易预执行时,采用串行执行方式导致的区块打包和校验速度较低及用户使用体验较差等问题。然而,两种方法不能进行自适应交易执行,智能合约交易执行效率较低,区块的打包和校验速度较慢。
基于以上问题,本申请提出了一种区块链的智能合约交易处理方法、装置。具体的,下面参考附图描述本申请实施例的区块链智能合约交易处理方法。
在描述本申请实施例的区块链智能合约交易处理方法之前,首先,对本文所提到的术语或概念进行定义与说明。
交易:对区块链智能合约的一次调用,包含调用智能合约的全部信息:智能合约名称、调用函数名称、参数等。
自适应交易执行:根据交易关联性,通过预设合约交易执行方式判定条件,基于判定结果,节点自适应可动态切换选取串行或并行执行的合约执行方式预执行当前一批交易,并采用同样的方式完成交易校验的一种合约交易执行方式。
图1为本申请实施例提供的一种区块链智能合约交易处理方法的流程图。如图1所示,该区块链智能合约交易处理方法包括步骤101—104:
步骤101,从待入链的交易中提取待执行的多笔合约交易。
其中,交易是对区块链智能合约的一次调用,包含调用智能合约的全部信息:智能合约名称、调用函数名称、参数等。在区块链中,任何操作(部署合约、调用合约接口等)都是通过发送交易的方式进行。交易由用户发起,并通过客户端发送至区块链节点。区块链节点在收到交易后,会将交易打包为区块并执行。
步骤102,根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件。
其中,预设的交易执行方式判定条件可以包括:根据时间判定、根据交易并行度判定、根据指定合约类型判定或上述规则的组合。可以理解,上述给出的该交易执行方式判定条件所包含的内容,仅是为了方便本领域技术人员的理解,并不能够作为对该交易执行方式判定条件的具体限定,也就是说,该交易执行方式判定条件还可包括其他条件。
在本步骤中,可根据实际情况来选定对应的交易执行方式判定条件,基于该交易执行方式判定条件来判断多笔合约交易是否满足并行执行条件。
需要说明的是,在本申请实施例中,根据时间进行交易执行方式判定是指根据区块产生时间的长短进行判断,例如,可根据产生预设数量的区块所需的总时间与预设的时间阈值进行大小比较。
根据交易并行度进行交易执行方式判定是指根据并行度与预设阈值进行大小比较。其中,交易并行度的计算需要通过预设交易并行度计算规则或者算法,阈值的计算规则需要通过预设执行方式切换阈值规则或者算法。
根据指定合约类型进行交易执行方式判定,可理解为指定某类型的合约固定采用某种交易执行方式。
步骤103,根据判断结果,采用与判断结果对应的合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。
在一种实现方式中,响应于多笔合约交易满足并行执行条件,采用并行合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。
在一种实现方式中,响应于多笔合约交易未满足并行执行条件,采用串行合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。
需要说明的是,在执行方式判断环节当中,根据判断结果,自适应的采用串行或并行的方式来执行交易,保证提高交易的执行效率,加速区块的打包和校验速度,解决特殊情况区块打包和校验速度较低及用户使用体验较差等问题。
步骤104,在区块链共识从节点对候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行多笔合约交易。
举例而言,在交易验证环节,如图2所示,以交易执行方式判定条件为根据交易并行度为例,当区块链共识从节点对候选区块进行验证时,区块链共识从节点根据主节点判定结果,采用相同的方式串行或并行验证区块内进行交易。具体的验证方法为,主节点读取交易并行度判定结果,判断是否满足并行执行条件,若满足,并行执行条件,则并行验证区块内交易。若不满足并行执行条件,则串行校验所有交易。
在本申请实施例中,通过预先设定交易执行方式的判定条件,实现串行或并行两种执行方式的自适应切换,以保证最大程度的提高对交易的处理效率。其中通过预设时间判定条件、交易并行度判定条件或指定合约类型判定条件判断出最适合的交易执行方式,从而防止在交易预执行时出现打包和校验速度较低和用户使用体验较差等问题。再根据判断结果,采用相同的执行方式完成交易校验流程。由此,本申请实现合约交易的串行、并行执行方式的自适应可动态切换,以最大程度地提升智能合约交易执行效率,提高区块的打包和校验速度。
需要说明的是,为了保证交易校验环节的顺利进行,可通过采用与上述判断结果相同的交易执行方式进行校验,如图3所示,区块链共识从节点对候选区块验证方法包括步骤:
步骤301,区块链共识从节点获取判断结果。
其中,共识从节点是指可参与共识出块的节点,共识从节点主要功能包括:将交易池内的交易打包成区块、执行交易、运行共识算法、并将达成共识的区块写入账本。
步骤302,区块链共识从节点根据判断结果,采用相同的合约交易执行方式对候选区块进行验证。
在本申请实施例中,由于合约交易的执行方式受到合约交易是否符合执行条件的影响,所以在进行校验环节的时候,需要根据合约交易是否满足并行执行条件的判断结果,采用相同的合约交易执行方法对候选区块进行验证。
需要说明的是,当交易执行方式判定条件为根据区块产生时间而设定的判定条件时,可根据产生预设数量的区块所需的总时间与预设的时间阈值进行大小比较,从而判断多笔合约交易是否满足并行执行条件。可选地,如图4所示,根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件的方法包括步骤:
步骤401,确定产生预设数量的区块所需的总时间。
步骤402,判断总时间是否满足第一条件;其中,第一条件包括产生预设数量的区块所需的总时间大于或等于预设时间阈值,或者,产生预设数量的区块所需的总时间大于预设时间阈值。
其中,时间阈值设定规则包括:产生预设数量的区块所需的平均时间、产生预设数量的区块所需时间的加权平均值等。
步骤403,响应于总时间满足第一条件,判定多笔合约交易未满足并行执行条件。
步骤404,响应于总时间未满足第一条件,判定多笔合约交易满足并行执行条件。
本申请实施例中,为了能够更好的判断交易的执行方式,通过将判定条件设定为:确定产生预设数量的区块所需的总时间,从而实现根据产生预设数量区块的总时间和预设时间阈值进行对比,根据对比结果确定交易的执行方式。通过时间判断的方式,实现自适应串行或并行方式处理合约交易,以最大程度地提高交易处理效率。
需要说明的是,当交易执行方式判定条件为合约交易并行度时,可根据并行度与预设阈值进行大小比较,从而判断多笔合约交易是否满足并行执行条件。可选地,如图5所示,根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件的方法包括步骤:
步骤501,确定多笔合约交易的并行度。
其中,并行度是指一定数量区块的交易的平均DAG(一种数据结构)深度或一定数量区块的交易的平均每笔交易的执行重试次数,或上述两种方式的组合。需要说明的是,并行度是用于判定一批交易是否适合并行执行的指标。
在一种实现方式中,若出现对一批交易并行执行构建的DAG深度层数过多,说明此批交易依赖相关性较强,不适合并行执行;若出现对一批交易并行执行构建的DAG深度层数较少,说明此批交易依赖相关性较低,适合并行执行。
在另一种实现方式中,若平均每笔交易的执行重试次数过多,说明此批交易依赖相关性较强,不适合并行执行;若平均每笔交易的执行重试次数较少,说明此批交易依赖相关性较弱,适合并行执行。
步骤502,响应于并行度满足第二条件,判定多笔合约交易满足并行执行条件,其中,第二条件包括并行度小于或等于预设阈值,或者,并行度小于预设阈值。
步骤503,响应于并行度未满足第二条件,判定多笔合约交易未满足并行执行条件。
在一种实现方式中,主节点根据交易并行度计算规则计算出当前一批交易的并行度。并且根据预设交易执行方式自适应切换阈值规则,计算出相应阈值,然后将上述交易并行度与阈值结果进行比较。
其中,交易并行度计算规则包括:DAG深度、平均每笔交易的重试次数等,或上述多种规则组合。阈值规则包括:某固定数量区块交易平均DAG深度、某固定数量区块平均每笔交易的重试次数等,或上述多种规则组合。
本申请实施例中,为了能够更好的判断交易的执行方式,通过将判定条件设定为:多笔合约交易的并行度,从而实现并行度和预设阈值进行对比,根据对比结果确定交易的执行方式。通过并行度判断的方式,实现自适应串行/并行方式处理合约交易,以最大程度地提高交易处理效率。
需要说明的是,当交易执行方式判定条件为根据区块产生时间和合约交易并行度的组合时,可通过分别对区块产生时间和合约交易并行度进行判断,从而判断多笔合约交易是否满足并行执行条件,可选地,如图6所示,根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件的方法包括步骤:
步骤601,确定产生预设数量的区块所需的总时间。
步骤602,确定多笔合约交易的并行度。
步骤603,响应于总时间满足第一条件,且并行度未满足第二条件,判定多笔合约交易未满足并行执行条件。
其中,第一条件包括产生预设数量的区块所需的总时间大于或等于预设时间阈值,或者,产生预设数量的区块所需的总时间大于预设时间阈值;第二条件包括并行度小于或等于预设阈值,或者,并行度小于预设阈值。
步骤604,响应于总时间未满足第一条件,且并行度满足第二条件,判定多笔合约交易满足并行执行条件。
本申请实施例中,为了能够更好的判断交易的执行方式,通过将判定条件设定为:根据区块产生时间和合约交易并行度的组合,从而同时进行总时间与时间阈值的对比以及并行度和预设阈值的对比,根据对比结果确定交易的执行方式。通过并行度判断的方式,实现自适应串行/并行方式处理合约交易,以最大程度地提高交易处理效率。
需要说明的是,当交易执行方式判定条件为合约类型指定信息,可通过合约类型指定信息进行判断,从而判断多笔合约交易是否满足并行执行条件,可选地,在一些实施例中,根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件的实现方式可如下:根据交易执行方式判定条件中的合约类型指定信息,确定与合约类型指定信息匹配的交易执行方式。
其中,在本实施例中,根据判断结果,采用与判断结果对应的交易执行方式预执行每笔合约交易的实现方式可如下:采用与合约类型指定信息匹配的交易执行方式,预执行每笔合约交易。
举例而言,假设合约类型指定信息用于表示需要采用并行执行方式执行合约交易,则在从待入链的交易中提取待执行的多笔合约交易之后,可基于该合约类型指定信息,采用并行执行方式预执行每笔合约交易。
又如,假设合约类型指定信息用于表示需要采用串行执行方式执行合约交易,则在从待入链的交易中提取待执行的多笔合约交易之后,可基于该合约类型指定信息,采用串行执行方式预执行每笔合约交易。
本申请实施例中,为了能够更好的判断交易的执行方式,通过将判定条件设定为:合约类型指定信息,从而实现对合约类型指定信息的识别,最后根据对应的交易执行方式预执行每笔合约交易。通过合约类型指定信息,实现自适应串行、并行方式处理合约交易,以最大程度地提高交易处理效率,提高区块的打包和校验速度。
为实现上述实施例,本申请还提出了一种区块链的智能合约交易处理装置。
图7为本申请实施例提供的一种区块链的智能合约交易处理装置的结构框图,如图7所示,该区块链的智能合约交易处理装置可以包括:提取模块710,判断模块720,预执行模块730和执行模块740。
其中,提取模块710用于从待入链的交易中提取待执行的多笔合约交易。
判断模块720用于根据预设的交易执行方式判定条件,判断多笔合约交易是否满足并行执行条件。
在一种实现方式中,交易执行方式判定条件为根据区块产生时间而设定的判定条件;其中,判断模块720具体用于:确定产生预设数量的区块所需的总时间;判断总时间满足第一条件;其中,第一条件包括产生预设数量的区块所需的总时间大于或等于预设时间阈值,或者,产生预设数量的区块所需的总时间大于预设时间阈值;响应于总时间满足第一条件,判定多笔合约交易未满足并行执行条件;响应于总时间未满足第一条件,判定多笔合约交易满足并行执行条件。
在一种实现方式中,交易执行方式判定条件为根据合约交易并行度而设定的判定条件;其中,判断模块720具体用于:确定多笔合约交易的并行度;响应于并行度满足第二条件,判定多笔合约交易满足并行执行条件,其中,第二条件包括并行度小于或等于预设阈值,或者,并行度小于预设阈值;响应于并行度未满足第二条件,判定多笔合约交易未满足并行执行条件。
在一种实现方式中,交易执行方式判定条件为根据区块产生时间和合约交易并行度而设定的判定条件;其中,判断模块720具体用于:确定产生预设数量的区块所需的总时间;确定多笔合约交易的并行度;响应于总时间满足第一条件,且并行度未满足第二条件,判定多笔合约交易未满足并行执行条件;响应于总时间未满足第一条件,且并行度满足第二条件,判定多笔合约交易满足并行执行条件。
在一种实现方式中,交易执行方式判定条件包括合约类型指定信息;其中,判断模块具体用于:根据合约类型指定信息,确定与合约类型指定信息匹配的交易执行方式;其中,预执行模块具体用于:采用与合约类型指定信息匹配的交易执行方式,预执行每笔合约交易。
预执行模块730用于根据判断结果,采用与判断结果对应的合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。
在一种实现方式中,区块链共识节点根据预设判定条件,判断当前一批交易满足那种执行方式:若响应于多笔合约交易满足并行执行条件,采用并行合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。若响应于多笔合约交易未满足并行执行条件,采用串行合约交易执行方式预执行每笔合约交易,形成区块链的候选区块。
执行模块740用于在区块链共识从节点对候选区块采用与预执行相同的交易执行方式进行验证且验证通过后且在验证通过后,执行多笔合约交易。
在一种实现方式中,交易验证环节的具体验证流程为:根据前述判定结果,从节点采用相同的执行方式串行或并行验证候选区块。具体验证方法为:主节点读取交易方式判定结果,判断是否满足并行执行条件,若满足并行执行条件,则并行验证区块内交易。若不满足并行执行条件,则串行校验所有交易。
在本申请实施例中,通过预先设定交易执行方式的判定条件,实现串行或并行两种执行方式的自适应切换,以保证最大程度的提高对交易的处理效率。其中通过预设时间判定条件、交易并行度判定条件或指定合约类型判定条件判断出最适合的交易执行方式,从而防止在交易预执行时出现打包速度较低的现象,提高校验速度,改善用户使用体验等问题。再根据判断结果,采用相同的执行方式完成交易校验流程。由此,本申请实现合约交易的串行、并行执行方式的自适应可动态切换,以最大程度地提升智能合约交易执行效率,提高区块的打包和校验速度。
图8是根据一示例性实施例示出的一种计算机设备800的框图。如图8所示,该计算机设备800可以包括:存储器801、处理器802及存储在存储器801上并可在处理器802上运行的计算机程序803,处理器802执行计算机程序803时,实现本申请上述任一实施例区块链的智能合约交易处理方法。
在示例性实施例中,计算机设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器801,上述指令可由计算机设备800的处理器802执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (15)
1.一种区块链的智能合约交易处理方法,其特征在于,包括:
从待入链的交易中提取待执行的多笔合约交易;
根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件;
根据判断结果,采用与所述判断结果对应的交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块;
在区块链共识从节点对所述候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行所述多笔合约交易。
2.如权利要求1所述的方法,其特征在于,所述根据判断结果,采用与所述判断结果对应的合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块,包括:
响应于所述多笔合约交易满足所述并行执行条件,采用并行合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块;
响应于所述多笔合约交易未满足所述并行执行条件,采用串行合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块。
3.根据权利要求1或2所述的方法,其特征在于,所述区块链共识从节点对所述候选区块验证,包括:
所述区块链共识从节点获取所述判断结果;
所述区块链共识从节点根据所述判断结果,采用相同的合约交易执行方式对所述候选区块进行验证。
4.根据权利要求1或2所述的方法,其特征在于,所述交易执行方式判定条件为根据区块产生时间而设定的判定条件;其中,所述根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件,包括:
确定产生预设数量的区块所需的总时间;
判断所述总时间是否满足第一条件;其中,所述第一条件包括产生预设数量的区块所需的总时间大于或等于预设时间阈值,或者,产生预设数量的区块所需的总时间大于预设时间阈值;
响应于所述总时间满足第一条件,判定所述多笔合约交易未满足所述并行执行条件;
响应于所述总时间未满足所述第一条件,判定所述多笔合约交易满足所述并行执行条件。
5.根据权利要求1或2所述的方法,其特征在于,所述交易执行方式判定条件为根据合约交易并行度而设定的判定条件;其中,所述根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件,包括:
确定所述多笔合约交易的并行度;
响应于所述并行度满足第二条件,判定所述多笔合约交易满足所述并行执行条件;其中,所述第二条件包括并行度小于或等于预设阈值,或者,并行度小于预设阈值;
响应于所述并行度未满足所述第二条件,判定所述多笔合约交易未满足所述并行执行条件。
6.根据权利要求1或2所述的方法,其特征在于,所述交易执行方式判定条件为根据区块产生时间和合约交易并行度而设定的判定条件;其中,所述根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件,包括:
确定产生预设数量的区块所需的总时间;
确定所述多笔合约交易的并行度;
响应于所述总时间满足第一条件,且所述并行度未满足第二条件,判定所述多笔合约交易未满足所述并行执行条件;
响应于所述总时间未满足所述第一条件,且所述并行度满足所述第二条件,判定所述多笔合约交易满足所述并行执行条件。
7.根据权利要求1或2所述的方法,其特征在于,所述交易执行方式判定条件包括合约类型指定信息;其中,所述根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件,包括:
根据所述合约类型指定信息,确定与所述合约类型指定信息匹配的交易执行方式;
其中,所述根据判断结果,采用与所述判断结果对应的交易执行方式预执行每笔所述合约交易,包括:
采用与所述合约类型指定信息匹配的交易执行方式,预执行每笔所述合约交易。
8.一种区块链的智能合约交易处理装置,其特征在于,包括:
提取模块,用于从待入链的交易中提取待执行的多笔合约交易;
判断模块,用于根据预设的交易执行方式判定条件,判断所述多笔合约交易是否满足并行执行条件;
预执行模块,用于根据判断结果,采用与所述判断结果对应的合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块;
执行模块,用于在区块链共识从节点对所述候选区块采用与预执行相同的交易执行方式进行验证且验证通过后,执行所述多笔合约交易。
9.根据权利要求8所述的装置,其特征在于,所述预执行模块具体用于:
响应于所述多笔合约交易满足所述并行执行条件,采用并行合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块;
响应于所述多笔合约交易未满足所述并行执行条件,采用串行合约交易执行方式预执行每笔所述合约交易,形成所述区块链的候选区块。
10.根据权利要求8或9所述的装置,其特征在于,所述交易执行方式判定条件为根据区块产生时间而设定的判定条件;其中,所述判断模块具体用于:
确定产生预设数量的区块所需的总时间;
判断所述总时间是否满足第一条件;其中,所述第一条件包括产生预设数量的区块所需的总时间大于或等于预设时间阈值,或者,产生预设数量的区块所需的总时间大于预设时间阈值;
响应于所述总时间满足所述第一条件,判定所述多笔合约交易未满足所述并行执行条件;
响应于所述总时间未满足所述第一条件,判定所述多笔合约交易满足所述并行执行条件。
11.根据权利要求8或9所述的装置,其特征在于,所述交易执行方式判定条件为根据合约交易并行度而设定的判定条件;其中,所述判断模块具体用于:
确定所述多笔合约交易的并行度;
响应于所述并行度满足第二条件,判定所述多笔合约交易满足所述并行执行条件;其中,所述第二条件包括并行度小于或等于预设阈值,或者,并行度小于预设阈值;
响应于所述并行度未满足所述第二条件,判定所述多笔合约交易未满足所述并行执行条件。
12.根据权利要求8或9所述的装置,其特征在于,所述交易执行方式判定条件为根据区块产生时间和合约交易并行度而设定的判定条件;其中,所述判断模块具体用于:
确定产生预设数量的区块所需的总时间;
确定所述多笔合约交易的并行度;
响应于所述总时间满足第一条件,且所述并行度未满足第二条件,判定所述多笔合约交易未满足所述并行执行条件;
响应于所述总时间未满足所述第一条件,且所述并行度满足所述第二条件,判定所述多笔合约交易满足所述并行执行条件。
13.根据权利要求8或9所述的装置,其特征在于,所述交易执行方式判定条件包括合约类型指定信息;其中,所述判断模块具体用于:根据所述合约类型指定信息,确定与所述合约类型指定信息匹配的交易执行方式;
其中,所述预执行模块具体用于:采用与所述合约类型指定信息匹配的交易执行方式,预执行每笔所述合约交易。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至7中任一所述的方法。
15.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111298951.8A CN113743951A (zh) | 2021-11-04 | 2021-11-04 | 区块链的智能合约交易处理方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111298951.8A CN113743951A (zh) | 2021-11-04 | 2021-11-04 | 区块链的智能合约交易处理方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113743951A true CN113743951A (zh) | 2021-12-03 |
Family
ID=78727392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111298951.8A Pending CN113743951A (zh) | 2021-11-04 | 2021-11-04 | 区块链的智能合约交易处理方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113743951A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221961A (zh) * | 2021-12-14 | 2022-03-22 | 深圳前海微众银行股份有限公司 | 层级式dag区块链生成方法、设备、介质及程序产品 |
CN114399309A (zh) * | 2022-03-24 | 2022-04-26 | 北京微芯感知科技有限公司 | 一种区块链交易冗余调度方法及系统 |
CN114416765A (zh) * | 2022-03-28 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块链交易无级预测执行方法及系统 |
CN115174067A (zh) * | 2022-07-07 | 2022-10-11 | 中国电信股份有限公司 | 交易处理方法、区块链节点及区块链网络 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107833060A (zh) * | 2017-11-13 | 2018-03-23 | 中国银行股份有限公司 | 一种区块链中智能合约交易的验证方法以及系统 |
EP3583562A1 (en) * | 2017-02-17 | 2019-12-25 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
CN112150163A (zh) * | 2020-11-26 | 2020-12-29 | 北京微芯区块链与边缘计算研究院 | 区块链的合约交易并行执行方法及装置 |
CN113168652A (zh) * | 2020-08-03 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理系统和方法 |
-
2021
- 2021-11-04 CN CN202111298951.8A patent/CN113743951A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3583562A1 (en) * | 2017-02-17 | 2019-12-25 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
CN107833060A (zh) * | 2017-11-13 | 2018-03-23 | 中国银行股份有限公司 | 一种区块链中智能合约交易的验证方法以及系统 |
CN113168652A (zh) * | 2020-08-03 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理系统和方法 |
CN112150163A (zh) * | 2020-11-26 | 2020-12-29 | 北京微芯区块链与边缘计算研究院 | 区块链的合约交易并行执行方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221961A (zh) * | 2021-12-14 | 2022-03-22 | 深圳前海微众银行股份有限公司 | 层级式dag区块链生成方法、设备、介质及程序产品 |
CN114221961B (zh) * | 2021-12-14 | 2024-03-26 | 深圳前海微众银行股份有限公司 | 层级式dag区块链生成方法、设备、介质及程序产品 |
CN114399309A (zh) * | 2022-03-24 | 2022-04-26 | 北京微芯感知科技有限公司 | 一种区块链交易冗余调度方法及系统 |
CN114399309B (zh) * | 2022-03-24 | 2022-07-05 | 北京微芯感知科技有限公司 | 一种区块链交易冗余调度方法及系统 |
CN114416765A (zh) * | 2022-03-28 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块链交易无级预测执行方法及系统 |
CN114416765B (zh) * | 2022-03-28 | 2022-06-14 | 北京微芯感知科技有限公司 | 一种区块链交易无级预测执行方法及系统 |
CN115174067A (zh) * | 2022-07-07 | 2022-10-11 | 中国电信股份有限公司 | 交易处理方法、区块链节点及区块链网络 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113743951A (zh) | 区块链的智能合约交易处理方法、装置 | |
US20190324772A1 (en) | Method and device for processing smart contracts | |
CN110245220A (zh) | 电子文件签署方法、装置及服务器、存储介质 | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
CN110928661B (zh) | 一种线程迁移方法、装置、设备及可读存储介质 | |
CN111290699A (zh) | 数据迁移方法、装置及系统 | |
CN110298666B (zh) | 交易处理过程中的异常处理方法及装置 | |
CN111913743B (zh) | 数据处理方法及装置 | |
CN109002348B (zh) | 一种虚拟化系统中的负载均衡方法及装置 | |
CN110704226A (zh) | 数据校验方法、装置及存储介质 | |
CN117076127A (zh) | 一种算力调度的处理方法、装置及介质 | |
CN112508524A (zh) | 一种电子审批方法、系统、装置及存储介质 | |
CN109729015A (zh) | 数据处理方法及其装置 | |
CN116204293A (zh) | 一种资源调度方法、装置、计算机设备以及存储介质 | |
CN111143063A (zh) | 任务的资源预约方法及装置 | |
CN107577518B (zh) | 一种虚拟机部署方法及装置 | |
CN115454574A (zh) | 容器的部署方法、装置及电子设备 | |
CN104572036B (zh) | 事件的处理方法及装置 | |
CN111198986B (zh) | 信息发送方法、装置、电子设备及存储介质 | |
CN113609082A (zh) | 一种文件系统碎片整理方法、装置及存储介质 | |
CN113391915A (zh) | 分配边缘计算主机的方法、相关设备及存储介质 | |
CN107770620B (zh) | 请求信息响应方法、系统及可读存储介质 | |
CN113055459A (zh) | 日志投递方法和装置、电子设备及存储介质 | |
CN110704461A (zh) | 一种数据校验方法、装置、计算机设备及可读存储介质 | |
CN113051143A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211203 |
|
RJ01 | Rejection of invention patent application after publication |