掌桥专利:专业的专利平台
掌桥专利
首页

一种区块链智能合约执行器及方法、区块链运行系统

文献发布时间:2023-06-19 11:16:08


一种区块链智能合约执行器及方法、区块链运行系统

技术领域

本发明涉及计算机应用领域,具体涉及一种区块链智能合约执行器及方法。另外,还涉及一种区块链运行系统。

背景技术

随着网络技术的快速发展,区块链相关技术逐渐完善成熟。越来越多的企业开始将区块链相关技术作为重点内容来研究。区块链可以被看做一个特殊的共享数据库,其主要特征在于存储于其中的数据或信息,具有不可伪造、可追溯以及集体维护等特点。以区块链技术为基础构建数字“信任”基础,并将其纳入未来数字基础设施中,可以为数字信息提供坚实的“信任”平台,构建可靠的“合作”机制,结合各行各业的具体应用,具有广阔的运用前景。智能合约作为区块链技术的重要扩展和补充,由区块链节点发起、执行、管理和终止。因此与区块链相同,智能合约本质上是一段可由计算机执行的程序,在通用计算机处理上执行。当前广泛应用的区块链技术方案通常是在现有的通用硬件计算平台上,通过软件开发的方法部署区块链与智能合约技术。所使用的通用硬件计算平台包括桌面电脑和服务器,其底层硬件平台为通用桌面或服务器处理器(比如X86、ARM、POWER指令集架构的桌面或服务器处理器等)、以及与之配套的存储器件和外设器件。硬件计算平台还需要通用操作系统对底层硬件平台提供驱动和管理,并为上层应用软件提供软件基础平台。常见的操作系统包括Windows操作系统、linux操作系统。在操作系统的软件平台之上,区块链和智能合约作为应用软件通常是使用高级语言编写,通过编译或者解释的方式。最终映射为通用处理器上的一组机器码指令顺序执行。然而,由于通用处理器以及通用计算平台的主要设计考量是适配广泛多样的应用,其指令集和软硬件架构更多从适配应用的通用性和兼容性出发,并未对某类特定应用有针对性的优化。因此,如何在现有技术方案基础之上设计一种区块链智能合约专用硬件以提升智能合约执行效率成为本领域研究的重要课题。

发明内容

为此,本发明提供一种区块链智能合约执行器及方法,以解决现有技术中存在的区块链智能合约执行器只能通过通用处理器处理智能合约指令机器码,导致智能合约的执行效率较低的问题。

本发明提供一种区块链智能合约执行器,包括:通用处理器和区块链智能合约协处理器;

所述通用处理器,用于在智能合约执行过程中处理智能合约扩展指令时,将所述智能合约扩展指令对应的实际执行过程转至所述区块链智能合约协处理器进行执行;其中,所述智能合约扩展指令是指通用指令集外所扩展的与智能合约对应的专用指令;

所述区块链智能合约协处理器,用于根据所述智能合约扩展指令进行相应的智能合约执行操作;其中,所述智能合约扩展指令用于实现智能合约程序中的频发任务。

进一步的,所述通用处理器,还用于运行编译成通用指令集机器码程序的智能合约,根据所述智能合约进行相应的智能合约执行操作;以及用于根据所获得的通用指令进行相应的通用程序执行操作。

进一步的,所述通用处理器包括取指模块、译码器模块以及执行模块;所述通用处理器,具体用于在指令处理过程中,利用所述取指模块从存储器中获取目标指令;利用所述译码器模块对所获取的目标指令进行解析,得到相应的解析结果;并利用所述执行模块根据所述解析结果选择相应的执行功能子模块或者采用相应的执行模式进行指令执行操作。

进一步的,所述存储器用于存放智能合约和目标应用程序执行所需的指令机器码,以及所述智能合约和所述目标应用程序执行所需的目标数据。

进一步的,所述的区块链智能合约执行器,还包括:接口单元;所述接口单元,用于接收所述通用处理器和所述区块链智能合约协处理器生成的智能合约执行结果数据,并将所述智能合约执行结果数据发送至智能合约执行器外部相应的区块链主机;以及用于获取智能合约执行器外部所述区块链主机发送的智能合约对应的目标数据。

进一步的,所述通用处理器、所述存储器、所述区块链智能合约协处理器以及所述接口单元通过总线连接,所述总线用于提供区块链智能合约执行器内部数据传输的通道。

进一步的,所述区块链智能合约协处理器采用专用集成芯片实现;或者,采用现场可编程逻辑阵列芯片加载相应的电路逻辑设计实现。

本发明还提供一种区块链智能合约执行方法,包括:

基于接口单元接收区块链主机发送的智能合约代码;

基于通用处理器将所述智能合约代码存储于存储器;

基于接口单元接收所述区块链主机发送的智能合约信息和智能合约输入参数;

利用所述通用处理器根据所述智能合约信息和所述智能合约输入参数从所述存储器中逐条读取智能合约代码指令,并进行智能合约代码指令执行操作;完成智能合约代码指令执行操作后,将相应的智能合约执行结果数据发送至接口单元;

基于所述接口单元将所述智能合约执行结果数据发送至所述区块链主机。

进一步的,所述智能合约代码指令执行操作,具体包括:

基于所述通用处理器的取指单元从所述存储器读出智能合约代码指令;

基于所述通用处理器的译码器判别所述智能合约代码指令是否为智能合约扩展指令;若是,则转至所述区块链智能合约协处理器进行执行操作;若否,则由所述通用处理器的执行单元进行执行操作;

在当前智能合约代码指令执行完成后,由所述通用处理器的取指单元进行下一条智能合约代码指令的取指操作,若识别新智能合约代码指令为合约终止指令,则确定智能合约执行完毕。

本发明还提供一种区块链运行系统,包括:区块链主机和区块链智能合约执行器;所述区块链主机通过电学接口与所述区块链智能合约执行器的接口单元相连接,实现双向数据通信;

所述区块链主机,用于将智能合约代码发送至所述区块链智能合约执行器的接口单元,以及将智能合约信息和智能合约输入参数发送至区块链智能合约执行器的接口单元;

所述区块链智能合约执行器,用于基于接口单元接收所述区块链主机发送的智能合约代码,以及接收所述区块链主机发送的智能合约信息和智能合约输入参数;基于通用处理器将所述智能合约代码存储于存储器;并根据所述智能合约信息和所述智能合约输入参数从所述存储器中逐条读取智能合约代码指令,进行智能合约代码指令执行操作;完成智能合约代码指令执行操作后,将相应的智能合约执行结果数据发送至接口单元;基于所述接口单元将所述智能合约执行结果数据发送至所述区块链主机。

采用本发明所述的区块链智能合约执行器及方法,能够通过专用硬件设计并配合扩展指令映射专用硬件来加速智能合约执行,利用专门设计的区块链智能合约协处理器来实现频发任务的快速执行,从而提升智能合约的执行效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。

图1为本发明实施例提供的一种区块链智能合约执行器的结构示意图;

图2为本发明实施例提供的一种区块链智能合约执行器中通用处理器的组成示意图;

图3为本发明实施例提供的一种区块链智能合约执行方法的流程示意图;

图4为本发明实施例提供的种区块链智能合约执行方法中智能合约代码指令执行操作的流程示意图;

图5为本发明实施例提供的一种区块链运行系统的组成示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。

本发明旨在通过专用硬件设计,构建一种针对智能合约执行进行优化的专用计算平台,即区块链智能合约执行器,通过专用硬件设计并配合扩展指令映射专用硬件来加速智能合约执行,同时提出一种基于该执行器的智能合约执行方法,以实现智能合约执行效率的提升。

下面基于本发明所述的区块链智能合约执行器,对其实施例进行详细描述。如图1所示,其为本发明实施例提供的一种区块链智能合约执行器的结构示意图,具体实现过程包括以下部分:通用处理器101、区块链智能合约协处理器102、接口单元103以及存储器104。所述通用处理器101、所述存储器104、所述区块链智能合约协处理器102以及所述接口单元103通过总线105连接。所述总线105用于提供区块链智能合约执行器内部数据传输的通道。

其中,所述接口单元103用于接收所述通用处理器101和所述区块链智能合约协处理器102生成的智能合约执行结果数据,并将所述智能合约执行结果数据发送至智能合约执行器外部相应的区块链主机;以及用于获取智能合约执行器外部所述区块链主机发送的智能合约对应的目标数据。所述目标数据包括但不限于:外部请求、智能合约信息、智能合约代码以及智能合约输入参数等。

所述通用处理器101,用于在智能合约执行过程中处理智能合约扩展指令时,将所述智能合约扩展指令对应的实际执行过程转至所述区块链智能合约协处理器102进行执行。其中,所述智能合约扩展指令是指通用指令集外所扩展的与智能合约对应的专用指令。

所述区块链智能合约协处理器102用于根据所述智能合约扩展指令进行相应的智能合约执行操作。其中,所述智能合约扩展指令用于实现智能合约程序中的频发任务。

具体的,区块链智能合约协处理器102用于根据所述通用指令集外所扩展的与智能合约相关的专用指令进行相应的合约执行操作。所述的与智能合约相关的专用指令即为智能合约扩展指令。通用处理器101在智能合约执行过程中处理智能合约扩展指令时将实际执行过程转至区块链智能合约协处理器102执行。智能合约程序中的频发任务若根据上述智能合约扩展指令,在区块链智能合约协处理器102上运行只需要一个或者少量指令周期便可完成,极大提高了智能合约执行效率。

需要说明的是,所述区块链智能合约协处理器102可采用专用集成芯片(ASIC;Application Specific Integrated Circuit)实现,也可采用现场可编程逻辑阵列芯片加载相应的电路逻辑(FPGA;Field Programmable Gate Array)设计实现,在此不做具体限定。

在具体实施过程中,运行区块链智能合约执行器时,所述通用处理器101还用于运行编译成通用指令集机器码程序的智能合约,根据所述智能合约进行相应的智能合约执行操作;以及用于根据所获得的通用指令进行相应的通用程序执行操作。所述通用程序执行操作包括运算操作、寄存器操作、存储器操作和程序跳转操作等通用程序操作等,在此不做具体限定。所述指令集是指所有可能实现的指令的集合。通用处理器101所采用的指令集被称为通用指令集。通用指令集包括但不限于如下几个大类:x86指令集、ARM指令集、MIPS指令集和RISC-V指令集等。

图2为本发明实施例提供的一种区块链智能合约执行器中通用处理器的组成示意图。在本发明实施例中,所述通用处理器101包括取指模块1021、译码器模块1022以及执行模块1023。所述通用处理器101具体用于在指令处理过程中,利用所述取指模块1021从存储器104中获取目标指令;利用所述译码器模块1022对所获取的目标指令进行解析,得到相应的解析结果;并利用所述执行模块1023根据所述解析结果选择相应的执行功能子模块或者采用相应的执行模式进行指令执行操作。其中,所述存储器104用于存放智能合约和目标应用程序执行所需的指令机器码,以及所述智能合约和所述目标应用程序执行所需的目标数据。

采用本发明实施例所述的区块链智能合约执行器,能够通过该区块链智能合约执行器定义智能合约扩展指令,智能合约扩展指令用于快速执行智能合约中的频发任务。通过专用硬件设计并配合扩展指令映射专用硬件来加速智能合约执行,利用专门设计的区块链智能合约协处理器来实现频发任务的快速执行,从而提升智能合约的执行效率。

与上述提供的一种区块链智能合约执行器相对应,本发明还提供一种区块链智能合约执行方法。由于该方法的实施例相似于上述区块链智能合约执行器实施例,所以描述得比较简单,相关之处请参见上述区块链智能合约执行器实施例部分的说明即可,下面描述的区块链智能合约执行方法的实施例仅是示意性的。请参考图3所示,其为本发明实施例提供的一种区块链智能合约执行方法的流程示意图。

本发明所述的一种区块链智能合约执行方法具体包括如下步骤:

步骤301:基于接口单元接收区块链主机发送的智能合约代码。

步骤302:基于通用处理器将所述智能合约代码存储于存储器。

步骤303:基于接口单元接收所述区块链主机发送的智能合约信息和智能合约输入参数。

步骤304:利用所述通用处理器根据所述智能合约信息和所述智能合约输入参数从所述存储器中逐条读取智能合约代码指令,并进行智能合约代码指令执行操作;完成智能合约代码指令执行操作后,将相应的智能合约执行结果数据发送至接口单元。

步骤305:基于所述接口单元将所述智能合约执行结果数据发送至所述区块链主机。

在本发明实施例中,所述智能合约代码指令执行操作的实现过程包括:基于所述通用处理器的取指单元从所述存储器读出智能合约代码指令;基于所述通用处理器的译码器判别所述智能合约代码指令是否为智能合约扩展指令;若是,则转至所述区块链智能合约协处理器进行执行操作;若否,则由所述通用处理器的执行单元进行执行操作;在当前智能合约代码指令执行完成后,由所述通用处理器的取指单元进行下一条智能合约代码指令的取指操作,若识别新智能合约代码指令为合约终止指令,则确定智能合约执行完毕。

具体可以参考如图4所示,其为本发明实施例提供的种区块链智能合约执行方法中智能合约代码指令执行操作的流程示意图。步骤401:通用处理器取指单元从存储器读出智能合约代码指令;步骤402:译码器判别改指令是非为智能合约扩展指令;如果是,则转由区块链智能合约协处理器执行;如果不是,则由通用处理器的执行单元进行执行操作;步骤403:当前指令执行完成后,由通用处理器取指单元进行下一条指令的取指;若新指令不为合约终止指令,则继续步骤401至403的执行;若新指令为合约终止指令,则合约执行完毕。

采用本发明实施例所述的区块链智能合约执行方法,能够通过该区块链智能合约执行器定义智能合约扩展指令,智能合约扩展指令用于快速执行智能合约中的频发任务。通过专用硬件设计并配合扩展指令映射专用硬件来加速智能合约执行,利用专门设计的区块链智能合约协处理器来实现频发任务的快速执行,从而提升智能合约的执行效率。

与上述提供的区块链智能合约执行器及方法相对应,本发明还提供一种区块链运行系统。由于该区块链运行系统的实施例相似于上述区块链智能合约执行器及方法实施例,所以描述得比较简单,相关之处请参见上述区块链智能合约执行器及方法实施例部分的说明即可,下面描述的区块链运行系统仅是示意性的。如图5所示,其为本发明实施例公开的一种区块链运行系统的组成示意图。

该区块链运行系统可以包括:区块链主机501和区块链智能合约执行器502;所述区块链主机501通过电学接口与所述区块链智能合约执行器502的接口单元103相连接,实现双向数据通信。所述区块链主机501,用于将智能合约代码发送至所述区块链智能合约执行器502的接口单元103,以及将智能合约信息和智能合约输入参数发送至区块链智能合约执行器502的接口单元103。所述区块链智能合约执行器502,用于基于接口单元103接收所述区块链主机501发送的智能合约代码,以及接收所述区块链主机501发送的智能合约信息和智能合约输入参数;基于通用处理器101将所述智能合约代码存储于存储器104;并根据所述智能合约信息和所述智能合约输入参数从所述存储器104中逐条读取智能合约代码指令,进行智能合约代码指令执行操作;完成智能合约代码指令执行操作后,将相应的智能合约执行结果数据发送至接口单元103;基于所述接口单元103将所述智能合约执行结果数据发送至所述区块链主机501。

以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种区块链智能合约执行器及方法、区块链运行系统
  • 一种基于区块链智能合约的区块链钱包操作提醒方法
技术分类

06120112860072