CN111695991B - 基于区块的合约处理方法、装置、区块链节点及存储介质 - Google Patents
基于区块的合约处理方法、装置、区块链节点及存储介质 Download PDFInfo
- Publication number
- CN111695991B CN111695991B CN201910192618.5A CN201910192618A CN111695991B CN 111695991 B CN111695991 B CN 111695991B CN 201910192618 A CN201910192618 A CN 201910192618A CN 111695991 B CN111695991 B CN 111695991B
- Authority
- CN
- China
- Prior art keywords
- contract
- consensus
- block
- execution result
- execution
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012856 packing Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 6
- 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
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种基于区块的合约处理方法、装置、区块链节点及存储介质。本发明实施例的方法,通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足所述共识合约的执行条件,若当前区块满足所述共识合约的执行条件,则执行所述共识合约,将所述共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种基于区块的合约处理方法、装置、区块链节点及存储介质。
背景技术
随着区块链技术的发展,目前区块链的技术已经不仅仅是进行数据的存储,它支持智能合约(一种可编程的程序),使得人们可以在区块链实际存储之前通过智能合约对数据进行处理。
目前区块链的智能合约是定义于交易的层级,也就是说是对发起交易的各种程序化处理。若需要进行基于区块层级的数据处理,就需要遍历所有区块,获取每个区块的信息,然后对每个区块的信息进行综合数据处理,得到处理结果。例如,需要查看截止到当前区块的所有交易总数,就需要遍历所有区块,获取每个区块中的交易数据,计算每个区块中的交易数量,然后求和。
但是,由于交易数量非常庞大、区块链中区块数量很多,遍历所有区块读取每个区块的信息,势必严重影响区块链节点的读写性能,影响区块链节点数据处理效率。
发明内容
本发明实施例提供一种基于区块的合约处理方法、装置、区块链节点及存储介质,用以解决现有技术进行基于区块层级的数据处理中,由于交易数量非常庞大、区块链中区块数量很多,遍历所有区块读取每个区块的信息,势必严重影响区块链节点的读写性能,影响区块链节点数据处理效率的问题。
本发明实施例的一个方面是提供一种基于区块的合约处理方法,包括:
在执行区块打包操作时,获取共识合约;
判断当前区块是否满足所述共识合约的执行条件;
若所述当前区块满足所述共识合约的执行条件,则执行所述共识合约,得到执行结果;
将所述共识合约的执行结果添加到所述当前区块的区块头中。
本发明实施例的另一个方面是提供一种于区块的合约处理装置,包括:
执行器模块,用于:
在执行区块打包操作时,获取共识合约;
判断当前区块是否满足所述共识合约的执行条件;
若所述当前区块满足所述共识合约的执行条件,则执行所述共识合约,得到执行结果;
将所述共识合约的执行结果添加到所述当前区块的区块头中。
本发明实施例的另一个方面是提供一种区块链节点,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现上述所述的基于区块的合约处理方法。
本发明实施例的另一个方面是提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的基于区块的合约处理方法。
本发明实施例提供的基于区块的合约处理方法、装置、区块链节点及存储介质,通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足所述共识合约的执行条件,若当前区块满足所述共识合约的执行条件,则执行所述共识合约,将所述共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响。
附图说明
图1为本发明实施例一提供的基于区块的合约处理方法流程图;
图2为本发明实施例一提供的区块头结构示意图;
图3为本发明实施例二提供的基于区块的合约处理方法流程图;
图4为本发明实施例四提供的基于区块的合约处理装置的结构示意图;
图5为本发明实施例五提供的区块链节点的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明实施例构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。
本发明实施例所涉及的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
图1为本发明实施例一提供的基于区块的合约处理方法流程图;图2为本发明实施例一提供的区块头结构示意图。本发明实施例针对现有技术进行基于区块层级的数据处理中,由于交易数量非常庞大、区块链中区块数量很多,遍历所有区块读取每个区块的信息,势必严重影响区块链节点的读写性能,影响区块链节点数据处理效率的问题,提供了基于区块的合约处理方法。
本实施例中的方法应用于区块链节点中用于执行区块打包操作的节点,通常为共识节点。在其他实施例中,该方法还可应用于其他设备,本实施例以共识节点为例进行示意性说明。
如图1所示,该方法具体步骤如下:
步骤S101、在执行区块打包操作时,获取共识合约。
其中,共识合约是指经过共识的区块层的智能合约。
本实施例中,开发人员可以将需要执行的一项区块层级的数据处理,开发生成一个共识合约。例如,共识合约可以完成计算截止到当前区块的所有交易的总数的功能;那么在当前区块生成时,只需将上一个区块中记录的交易总数与当前区块的交易数量求和,即可得到截止到当前区块的所有交易的总数,无需遍历所有区块,简单快捷。
该共识合约被共识节点执行时,可以实现共识合约对应的区块层级的数据处理的功能,执行结果为对应的区块层级的数据处理的处理结果。
共识节点在执行区块打包操作时,获取已经过共识的一个或者多个共识合约。若有多个共识合约,则分别对每个共识合约进行以下步骤S102-S104,执行每个共识合约得到执行结果,并将执行结果添加到当前区块的区块头中。
另外,若区块结构中的区块散列值是整个区块的散列值,那么,需要在计算区块散列值之前,完成执行共识合约并将执行结果添加到当前区块的区块头中的处理。
步骤S102、判断当前区块是否满足共识合约的执行条件。
在每个共识合约被执行之前,共识节点首先判断当前区块是否满足共识合约的执行条件。
对于每一个共识合约,若当前区块满足共识合约的执行条件,则执行步骤S103-S104。若当前区块不满足共识合约的执行条件,则无需执行该共识合约。
步骤S103、若当前区块满足共识合约的执行条件,则执行共识合约。
步骤S104、将共识合约的执行结果添加到当前区块的区块头中。
本实施例中,对区块结构进行调整,在区块头中增加合约执行结果信息。合约执行结果信息至少包括:合约标识信息和执行结果。
其中,合约标识信息用于唯一标识一个共识合约,合约标识信息具有唯一性,可以作为共识合约的唯一标识,也可以用于唯一标识该共识合约的执行结果。合约标识信息可以是能够用于唯一标识一个共识合约的任何信息,本实施例此处不做具体限定。例如,合约标识信息可以包括合约名称和/或合约版本信息。
另外,不同的共识合约的执行结果可以有不同的结构,通过合约标识信息可以确定对应执行结果的结构。共识合约的执行结果可以是一个结果集,执行结果具体结构可以由技术人员根据共识合约的功能和需要进行设定,本实施例此处不做具体限定。
进一步地,区块结构的区块头中的合约执行结果信息可以包括零个、一个、或者多个共识合约的执行结果。
例如,调整后的区块头的结构如图2所示,区块头中可以包括区块头原有的属性信息,以及共识合约的合约执行结果信息。图2中示出的区块头包括3条共识合约对应的合约执行结果信息,区块头中包括多个共识合约的执行结果构成的公式合约结果集。合约执行结果信息包括合约名称和合约版本号组合成的合约标识信息,以及执行结果。
另外,图2中以合约执行结果信息在区块头的其他属性信息之前为例进行示意性地说明,对合约执行结果信息的位置不做具体限定。
本发明实施例通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足共识合约的执行条件,若当前区块满足共识合约的执行条件,则执行共识合约,将共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响。
实施例二
图3为本发明实施例二提供的基于区块的合约处理方法流程图。在上述实施例一的基础上,本实施例中,在执行区块打包操作时,获取共识合约,包括:在执行区块打包操作时,获取已加载的共识合约。相应地,在执行区块打包操作时,获取共识合约之前,还包括:对经过共识的新的共识合约进行解析,判断新的共识合约是否有语法错误;若新的共识合约没有语法错误,则加载新的共识合约。
如图3所示,该方法具体步骤如下:
步骤S201、对经过共识的新的共识合约进行解析处理,判断新的共识合约是否有语法错误。
其中,共识合约是指经过共识的区块层的智能合约。
本实施例中,开发人员可以将需要执行的一项区块层级的数据处理,开发生成一个共识合约。例如,共识合约可以完成计算截止到当前区块的所有交易的总数的功能;那么在当前区块生成时,只需将上一个区块中记录的交易总数与当前区块的交易数量求和,即可得到截止到当前区块的所有交易的总数,无需遍历所有区块,简单快捷。
本实施例中,共识节点可以通过以下四个程序模块完成基于区块的合约处理的功能:适配器模块、解析器模块、加载器模块和执行器模块。
适配器模块用于暴露区块链自身的变量或接口,以向开发人员提供相应的变量或接口,供开发人员使用。例如:至少可以提供如下变量或接口:${blockHeight}为当前区块高度,${blockHash}为当前区块散列值(区块Hash),${txCount}为当前区块中的交易数量等。
共识合约本质上为实现对应功能的程序代码,解析器模块用于对开发人员提供的共识合约进行代码解析、编译,确保共识合约没有语法错误。
具体的,对经过共识的新的共识合约进行解析处理,判断新的共识合约是否有语法错误。若新的共识合约有语法错误,则不会加载该共识合约。
可选的,在对经过共识的新的共识合约进行解析处理之前,可以获取新的共识合约;根据共识算法,对新的共识合约进行共识处理,得到经过共识的共识合约。
具体的,新的共识合约可以是开放人员提交的共识合约。共识合约在经过共识节点达成执行共识之后,由所有共识节点在执行区块打包操作时执行。
其中,共识算法可以由技术人员根据实际需要进行设定,本实施例此处不做具体限定。根据共识算法对新的共识合约进行共识处理的过程与现有的共识处理一致,本实施例此处不再赘述。
另外,共识合约由开发人员自行开发,本专利不限定开发语言,但是合约本身包括但不限于以下几部分组成:合约标识信息,合约执行条件、合约执行程序。合约执行程序可以调用区块链的变量或接口。
步骤S202、若新的共识合约没有语法错误,则加载新的共识合约。
在共识合约没有错误的基础上,加载器模块用于将经过解析的共识合约加载至加载器模块。
步骤S203、在执行区块打包操作时,获取已加载的共识合约。
该共识合约被共识节点执行时,可以实现共识合约对应的区块层级的数据处理的功能,执行结果为对应的区块层级的数据处理的处理结果。
共识节点在执行区块打包操作时,从加载器模块获取已加载的一个或者多个共识合约。
若获取到多个共识合约,则分别将每个共识合约作为目标合约,对目标合约进行以下步骤S203-S206的处理,从而遍历已加载的所有共识合约。
另外,若区块结构中的区块散列值是整个区块的散列值,那么,需要在计算区块散列值之前,完成执行共识合约并将执行结果添加到当前区块的区块头中的处理。
步骤S204、判断当前区块是否满足共识合约的执行条件。
执行器模块的一项主要功能是:判断当前区块是否满足共识合约的执行条件。
在每个共识合约被执行之前,首先调用合约执行条件接口,判断当前区块是否满足共识合约的执行条件。若确定当前区块满足共识合约的执行条件时,则调用合约执行接口,执行该共识合约。若确定当前区块不满足共识合约的执行条件,则不会执行该共识合约。
步骤S205、若当前区块满足共识合约的执行条件,则执行共识合约。
执行器模块的另一项主要功能是:在确定当前区块满足共识合约的执行条件时,执行共识合约,并将执行结果添加到当前区块的区块头中。
步骤S206、将共识合约的执行结果添加到当前区块的区块头中。
本实施例中,对区块结构进行调整,在区块头中增加合约执行结果信息。合约执行结果信息至少包括:合约标识信息和执行结果。
其中,合约标识信息用于唯一标识一个共识合约,合约标识信息具有唯一性,可以作为共识合约的唯一标识,也可以用于唯一标识该共识合约的执行结果。合约标识信息可以是能够用于唯一标识一个共识合约的任何信息,本实施例此处不做具体限定。例如,合约标识信息可以包括合约名称和/或合约版本信息。
另外,不同的共识合约的执行结果可以有不同的结构,通过合约标识信息可以确定对应执行结果的结构。共识合约的执行结果可以是一个结果集,执行结果具体结构可以由技术人员根据共识合约的功能和需要进行设定,本实施例此处不做具体限定。
进一步地,区块结构的区块头中的合约执行结果信息可以包括零个、一个、或者多个共识合约的执行结果。
例如,调整后的区块头的结构如图2所示,区块头中可以包括区块头原有的属性信息,以及共识合约的合约执行结果信息。图2中示出的区块头包括3条共识合约对应的合约执行结果信息,区块头中包括多个共识合约的执行结果构成的公式合约结果集。合约执行结果信息包括合约名称和合约版本号组合成的合约标识信息,以及执行结果。
另外,图2中以合约执行结果信息在区块头的其他属性信息之前为例进行示意性地说明,对合约执行结果信息的位置不做具体限定。
该步骤中,将执行结果写入当前区块的区块头的合约执行结果信息中,从而可以将执行结果写入区块头的指定位置(合约执行结果信息所在位置)。
本发明实施例通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足共识合约的执行条件,若当前区块满足共识合约的执行条件,则执行共识合约,将共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响;并且共识合约可以实现平滑升级,通过升级共识合约即可实现不同的基于区块层级的数据处理,无需对区块结构反复进行调整。
实施例三
本发明实施例三提供的一种基于区块的合约处理装置。本发明实施例提供的基于区块的合约处理装置可以执行基于区块的合约处理方法实施例提供的处理流程。本实施例中,基于区块的合约处理装置包括执行器模块。
具体地,执行器模块用于:
在执行区块打包操作时,获取共识合约;判断当前区块是否满足共识合约的执行条件;若当前区块满足共识合约的执行条件,则执行共识合约,得到执行结果;将共识合约的执行结果添加到当前区块的区块头中。
本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足共识合约的执行条件,若当前区块满足共识合约的执行条件,则执行共识合约,将共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响。
实施例四
图4为本发明实施例四提供的基于区块的合约处理装置的结构示意图。在上述实施例三的基础上,本实施例中,区块链的区块结构中,区块头包括合约执行结果信息,合约执行结果信息至少包括:合约标识信息和执行结果。
其中,区块结构的区块头中的合约执行结果信息包括零个、一个、或者多个共识合约的执行结果。
可选的,执行器模块还用于:
将执行结果写入当前区块的区块头的合约执行结果信息中。
可选的,执行器模块还用于:
在执行区块打包操作时,获取已加载的共识合约。
可选的,如图4所示,基于区块的合约处理装置30可以包括:执行器模块301,加载器模块302和解析器模块303。
解析器模块303用于:对经过共识的新的共识合约进行解析处理,判断新的共识合约是否有语法错误。
加载器模块302用于:若新的共识合约没有语法错误,则加载新的共识合约。
可选的,如图4所示,基于区块的合约处理装置30还可以包括:共识模块304。
共识模块304用于:
获取新的共识合约;根据共识算法,对新的共识合约进行共识处理。
本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足共识合约的执行条件,若当前区块满足共识合约的执行条件,则执行共识合约,将共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响;并且共识合约可以实现平滑升级,通过升级共识合约即可实现不同的基于区块层级的数据处理,无需对区块结构反复进行调整。
实施例五
图5为本发明实施例五提供的区块链节点的结构示意图。如图5所示,该区块链节点50包括:处理器501,存储器502,以及存储在存储器502上并可由处理器501执行的计算机程序。
处理器501在执行存储在存储器502上的计算机程序时实现上述任一方法实施例提供的基于区块的合约处理方法。
本发明实施例通过对区块结构进行调整,在区块头中增加合约执行结果信息,在执行区块打包操作时,获取共识合约,判断当前区块是否满足共识合约的执行条件,若当前区块满足共识合约的执行条件,则执行共识合约,将共识合约的执行结果添加到当前区块的区块头中,实现了基于区块层级的共识合约,从而可以在打包生成区块的过程中,通过共识合约的执行完成其对应的基于区块层级的数据处理,后续只需查询最新一个区块中的数据即可得到查询结果,无需遍历所有区块,不会对区块链节点的性能和效率造成影响。
另外,本发明实施例还提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例提供的基于区块的合约处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种基于区块的合约处理方法,其特征在于,包括:
在执行区块打包操作时,获取共识合约,所述共识合约用于完成计算截止到当前区块的所有交易的总数的功能,所述共识合约是指经过共识的区块层的智能合约;
判断当前区块是否满足所述共识合约的执行条件;
若所述当前区块满足所述共识合约的执行条件,则执行所述共识合约,得到执行结果;
将所述共识合约的执行结果添加到所述当前区块的区块头中;
区块链的区块结构中,区块头包括合约执行结果信息,所述合约执行结果信息至少包括:合约标识信息和执行结果;所述将所述共识合约的执行结果添加到当前区块的区块头中,包括:
将所述执行结果写入当前区块的区块头的合约执行结果信息中。
2.根据权利要求1所述的方法,其特征在于,所述区块结构的区块头中的所述合约执行结果信息包括零个、一个、或者多个共识合约的执行结果。
3.根据权利要求1或2所述的方法,其特征在于,所述在执行区块打包操作时,获取共识合约,包括:
在执行区块打包操作时,获取已加载的共识合约。
4.根据权利要求3所述的方法,其特征在于,所述在执行区块打包操作时,获取共识合约之前,还包括:
对经过共识的新的共识合约进行解析处理,判断所述新的共识合约是否有语法错误;
若所述新的共识合约没有语法错误,则加载所述新的共识合约。
5.根据权利要求4所述的方法,其特征在于,所述对经过共识的新的共识合约进行解析处理,判断所述新的共识合约是否有语法错误之前,还包括:
获取新的共识合约;
根据共识算法,对所述新的共识合约进行共识处理。
6.一种基于区块的合约处理装置,其特征在于,包括:
执行器模块,用于:
在执行区块打包操作时,获取共识合约,所述共识合约用于完成计算截止到当前区块的所有交易的总数的功能,所述共识合约是指经过共识的区块层的智能合约;
判断当前区块是否满足所述共识合约的执行条件;
若所述当前区块满足所述共识合约的执行条件,则执行所述共识合约,得到执行结果;
将所述共识合约的执行结果添加到所述当前区块的区块头中;
区块链的区块结构中,区块头包括合约执行结果信息,所述合约执行结果信息至少包括:合约标识信息和执行结果;
所述执行器模块还用于:
将所述执行结果写入当前区块的区块头的合约执行结果信息中。
7.根据权利要求6所述的装置,其特征在于,所述区块结构的区块头中的所述合约执行结果信息包括零个、一个、或者多个共识合约的执行结果。
8.根据权利要求6或7所述的装置,其特征在于,所述执行器模块还用于:
在执行区块打包操作时,获取已加载的共识合约。
9.根据权利要求8所述的装置,其特征在于,所在装置还包括:加载器模块和解析器模块,
所述解析器模块用于:对经过共识的新的共识合约进行解析处理,判断所述新的共识合约是否有语法错误;
所述加载器模块用于:若所述新的共识合约没有语法错误,则加载所述新的共识合约。
10.根据权利要求9所述的装置,其特征在于,所在装置还包括:共识模块,用于:
获取新的共识合约;
根据共识算法,对所述新的共识合约进行共识处理。
11.一种区块链节点,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现如权利要求1-5中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192618.5A CN111695991B (zh) | 2019-03-14 | 2019-03-14 | 基于区块的合约处理方法、装置、区块链节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192618.5A CN111695991B (zh) | 2019-03-14 | 2019-03-14 | 基于区块的合约处理方法、装置、区块链节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111695991A CN111695991A (zh) | 2020-09-22 |
CN111695991B true CN111695991B (zh) | 2024-02-06 |
Family
ID=72474967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910192618.5A Active CN111695991B (zh) | 2019-03-14 | 2019-03-14 | 基于区块的合约处理方法、装置、区块链节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111695991B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、***和计算机可读存储介质 |
CN108595535A (zh) * | 2018-03-30 | 2018-09-28 | 李欣宇 | 基于同根双链式区块链的知识问答***和方法 |
CN108961052A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN108960797A (zh) * | 2018-07-18 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块生成及验证方法、装置、设备和存储介质 |
CN109033814A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约触发方法、装置、设备及存储介质 |
WO2018236479A1 (en) * | 2017-06-22 | 2018-12-27 | Mastercard International Incorporated | METHOD AND SYSTEM FOR INDEXING CONSUMER REGISTRATION USING A BLOCK CHAIN |
CN109117097A (zh) * | 2018-09-05 | 2019-01-01 | 深圳正品创想科技有限公司 | 一种基于区块链的数据存储方法及*** |
CN109241359A (zh) * | 2018-08-18 | 2019-01-18 | 深圳市网心科技有限公司 | 区块链节点设备、区块链***、区块数据处理***和方法 |
CN109256813A (zh) * | 2018-11-28 | 2019-01-22 | 杨胜杰 | 一种基于区块链的分布式电能储存***及运行方法 |
CN109345388A (zh) * | 2018-09-20 | 2019-02-15 | 百度在线网络技术(北京)有限公司 | 区块链智能合约验证方法、装置及存储介质 |
CN109395392A (zh) * | 2018-09-29 | 2019-03-01 | 杭州复杂美科技有限公司 | 预测竞猜游戏部署方法和游戏方法、设备及存储介质 |
-
2019
- 2019-03-14 CN CN201910192618.5A patent/CN111695991B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018236479A1 (en) * | 2017-06-22 | 2018-12-27 | Mastercard International Incorporated | METHOD AND SYSTEM FOR INDEXING CONSUMER REGISTRATION USING A BLOCK CHAIN |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、***和计算机可读存储介质 |
CN108595535A (zh) * | 2018-03-30 | 2018-09-28 | 李欣宇 | 基于同根双链式区块链的知识问答***和方法 |
CN108961052A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN108960797A (zh) * | 2018-07-18 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块生成及验证方法、装置、设备和存储介质 |
CN109033814A (zh) * | 2018-07-18 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约触发方法、装置、设备及存储介质 |
CN109241359A (zh) * | 2018-08-18 | 2019-01-18 | 深圳市网心科技有限公司 | 区块链节点设备、区块链***、区块数据处理***和方法 |
CN109117097A (zh) * | 2018-09-05 | 2019-01-01 | 深圳正品创想科技有限公司 | 一种基于区块链的数据存储方法及*** |
CN109345388A (zh) * | 2018-09-20 | 2019-02-15 | 百度在线网络技术(北京)有限公司 | 区块链智能合约验证方法、装置及存储介质 |
CN109395392A (zh) * | 2018-09-29 | 2019-03-01 | 杭州复杂美科技有限公司 | 预测竞猜游戏部署方法和游戏方法、设备及存储介质 |
CN109256813A (zh) * | 2018-11-28 | 2019-01-22 | 杨胜杰 | 一种基于区块链的分布式电能储存***及运行方法 |
Non-Patent Citations (1)
Title |
---|
刘敖迪 ; 杜学绘 ; 王娜 ; 李少卓 ; .区块链技术及其在信息安全领域的研究进展.软件学报.2018,(第07期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111695991A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941528B (zh) | 一种基于故障的日志埋点设置方法、装置及*** | |
US9632916B2 (en) | Method and apparatus to semantically connect independent build and test processes | |
CN111158741B (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
KR101995285B1 (ko) | 취약점이 존재하는 바이너리 패치 방법 및 그 장치 | |
CN110968437A (zh) | 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质 | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN103186463B (zh) | 确定软件的测试范围的方法和*** | |
US20170277466A1 (en) | In-memory data analytic system that provides an integrated tracking mechanism for explicit memory resources | |
CN111679852B (zh) | 一种冲突依赖库的检测方法及装置 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN111767213B (zh) | 数据库检查点的测试方法、装置、电子设备及存储介质 | |
CN117495544A (zh) | 一种基于沙箱的风控评估方法、***、终端及存储介质 | |
CN111695991B (zh) | 基于区块的合约处理方法、装置、区块链节点及存储介质 | |
CN116841906A (zh) | 智能合约的检测方法、装置及电子设备 | |
CN115827028A (zh) | ***的升级方法、装置、存储介质以及电子设备 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN114816984A (zh) | Java程序的回归测试方法以及测试装置 | |
US8321844B2 (en) | Providing registration of a communication | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
CN112860284B (zh) | 设备远程升级的sp升级包生成方法、装置及计算机设备 | |
CN109308256A (zh) | 一种java程序动态分析方法、设备和存储介质 | |
CN116775040B (zh) | 实现代码疫苗的插桩方法及基于代码疫苗的应用测试方法 | |
CN107632934B (zh) | 一种C-sharp中函数复制方法及装置 | |
CN116700840B (zh) | 文件执行方法、装置、电子设备及可读存储介质 | |
CN116661758B (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 |