区块链系统的运行方法、装置、设备和存储介质与流程

文档序号:26278043发布日期:2021-08-13 19:34阅读:267来源:国知局
区块链系统的运行方法、装置、设备和存储介质与流程

本公开涉及计算机技术领域,尤其涉及区块链技术。



背景技术:

区块链行业在持续的快速发展,区块链技术发展初期主要的应用场景还是以数字货币和游戏为主。目前,区块链技术开始从支撑数字货币的底层技术,进入了全面探索赋能产业的新阶段。

目前主流的区块链实现方案,基本上都有明确的适用场景定位,由于传统方案大多都是面向数字货币类的应用场景,更加适合数字货币类的应用,在实际业务场景落地中会遇到适用性的问题,需要深入框架做改造,改造成本和技术门槛都非常高。

然而,深入框架进行改造的模式,使得改造难度大、成本高,改造后还无法自动跟进对应框架最新的更新。



技术实现要素:

本公开提供了一种区块链系统的运行方法、装置、设备和存储介质,以提高区块链针对于不同场景的适用性,降低开发难度和成本。

根据本申请的一方面,提供了一种区块链系统的运行方法,所述方法包括:

通过区块链系统的内核引擎,获取待处理区块链数据;

通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

根据本申请的另一方面,提供了一种区块链系统的运行装置,所述装置包括:

待处理区块链数据获取模块,用于通过区块链系统的内核引擎,获取待处理区块链数据;

待处理区块链数据处理模块,用于通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

根据本申请的另一方面,提供一种电子设备,该电子设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例任一项所述的区块链系统的运行方法。

根据本申请的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例任一项所述的区块链系统的运行方法。

根据本申请的一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本申请实施例任一项所述的区块链系统的运行方法。

本申请实施例的技术方案,能够提高区块链实现方案的可扩展性和适用性,能够通过对区块链系统进行无代码侵入的改造,切换区块链系统应用的业务场景,从而降低区块链技术的研发成本。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请实施例的一种区块链系统的运行方法的示意图;

图2是根据本申请实施例的又一种区块链系统的运行方法的示意图;

图3是根据本申请实施例的又一种区块链系统的运行方法的示意图;

图4是根据本申请实施例的又一种区块链系统的运行方法的示意图;

图5是根据本申请实施例的又一种区块链系统的运行方法的示意图;

图6是根据本申请实施例的又一种区块链系统的运行方法的示意图;

图7是根据本申请实施例的一种区块链系统的运行装置的示意图;

图8是用来实现本申请实施例的区块链系统的运行方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本申请实施例所提供的区块链系统的运行方法,是在发明人构造的区块链内核架构的基础上提出的。

区块链系统整体上可以分为两个部分,分别为区块链内核架构和区块链应用层。其中,区块链应用层是供用户基于区块链系统实现具体业务需求的,区块链应用层向用户屏蔽了复杂的区块链底层技术,在用户了解区块链基本原理的情况下即可搭建区块链完成业务需求。可以由区块链系统主程序来实现区块链应用层的服务端功能。区块链应用层还可以包括客户端(client)和应用程序接口(api),从而提供用户交互界面或交互机制,实现与用户的交互。在一个区块链系统中可以支撑一个或多个区块链应用层的业务功能。应用层的客户端或api可通过专有组件与区块链内核架构进行交互,专有组件例如是对设定交互端口的监听服务。

本申请更为关注区块链的内核架构,内核架构至少包括:内核引擎层和内核组件层,还可以进一步包括基础组件层。其中,内核引擎层,定义了区块链内核核心流程,即区块链运行过程中的各种业务逻辑的核心流程,例如,交易处理流程、矿工出块流程、和同步区块流程等。本申请实施例中,所谓交易,是由区块链用户发起,需要由区块链节点基于区块链系统进行处理,并将处理过程上链存储的事务请求,并不限于交易业务,可以是任何区块链所需承载的应用业务或区块链管理事务请求。所谓矿工,即当前出块周期内有权限进行出块的区块链节点,并不限于基于工作量证明共识机制(pow)来确定的出块节点,基于其他共识机制确定的出块节点,也可称为矿工。并且,内核引擎采用了读写分离的设计来降低复杂度,可以采用独立读组件的方式来实现读操作,实现了读操作可单独扩展。内核引擎层中的内核引擎是可以由用户根据场景需要,进行无框架代码侵入的扩展定制,或者轻量级的代码调整定制。即,开发人员可以基于内核组件的功能来开发内核引擎,无需再单独开发内核组件。基于内核架构为用户提供了配置多种类内核引擎层的可能性,具体的可配置开发:超级公链引擎(xuperosengine)、超级联盟链引擎(xchainengine)和用户自主实现的内核引擎(otherengine)等。

内核组件层,是对内核组件编程规范的具体实现,内置非常完备的标准内核组件的实现,包括账本组件、共识组件、合约组件、网络组件、加密组件和权限组件等可供内核引擎的开发者选用,同时开发者也可以低成本的按照内核组件编程规范开发适合自己场景的内核组件,并将自主实现的内核组件无缝接入到各种内核引擎中。其中,内核组件编程规范是用以抽象内核组件的规范。根据内核组件编程规范实现内核组件,可以为内核引擎调用内核组件提供标准内核组件功能接口,使得内核引擎可以通过内核引擎层内的组件适配器(如consensus、contract、ledge、network或者permission)确定的内核组件接口,基于内核组件接口实现对内核组件的调用,再通过内核组件完成对待处理区块链数据的处理工作。内核组件接口也可称为内核功能接口,是内核组件提供给内核引擎调用的、功能层级的接口。无论哪种内核组件,无论内部如何实现组件功能,都可以提供规范化、统一的内核组件接口,以方便内核引擎调用。

基础组件层内设置有与区块链业务无关的基础公共组件,例如包括:基础存储、p2p网络库、密码学库、编解码库和日志库等。

本申请提供的区块链内核架构是一种全新的高可扩展、广域场景适用的区块链通用内核框架,本架构的高度模块化的设计,保证了模块间松耦合,使得各模块都可以自由的扩展替换。基于本架构,用户可以根据具体场景的需要和喜好,非常轻量级的开发具体的区块链系统,本架构将区块链系统开发的难度降维到只是根据场景需要扩展部分子领域功能,极大的降低区块链技术的研发成本。

图1是根据本申请实施例的一种区块链系统的运行方法的示意图。本实施例可适用于在利用区块链对待处理区块链数据的情况。本实施例公开的区块链系统的运行方法可以由区块链系统的运行装置来执行,该装置可以由软件和/或硬件的方式实现,配置于具备计算和存储功能的电子设备中,例如配置于区块链节点中。

参见图1,本实施例提供的一种区块链系统的运行方法,包括:s110、通过区块链系统的内核引擎,获取待处理区块链数据。

其中,内核引擎为区块链内核核心流程,内核引擎获取的待处理区块链数据可以是由内核引擎的上一层,即应用层,从用户客户端获取待处理区块链数据以后,发送给内核引擎的,也可以是内核引擎通过网络组件接收到用户客户端发送的待处理区块链数据,以及内核引擎通过网络组件接收到区块链系统运行过程中如生成的新区块验证过程和区块同步过程产生的待处理区块链数据。

其中,待处理区块链数据是指需要由区块链节点处理的数据,示例性的,待处理区块链数据还可以包括治理数据,即用于管理网络的操作数据,具体的如变更出块节点,管理节点和监控网络状态等操作数据,待处理区块链数据还可以是由内核引擎接收到的用户对区块链中数据的查询请求以及对待处理区块链数据处理过程的内核组件的反馈的处理结果。待处理区块数据的具体内容在这里不限定,具体依据实际情况确定。

s120、通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

内核引擎在获取到待处理区块链数据以后,会对待处理区块链数据进行处理。具体的,内核引擎会在处理过程中,可以在组件适配器提供的内核组件接口中确定用于处理该待处理区块链数据的内核组件接口。内核引擎对待处理区块链数据进行处理的过程中,实质是根据待处理区块链数据对选择对应功能内核组件的过程。

其中,内核组件接口是对内核组件可实现功能的抽象,区块链系统中的每个内核组件均存在对应的内核组件接口,一个内核组件接口可以对应多个内核组件。内核组件接口由组件适配器提供给内核引擎,内核引擎只需要根据待处理区块链数据对需要的内核组件功能进行选择,无需关心内核组件功能的具体实现。内核引擎通过调用内核组件接口即可实现对内核组件的调用。

其中,组件适配器是配置于内核引擎层的,组件适配器充当翻译器的角色,用于将各内核组件的功能抽象为可供内核引擎直接调用的内核组件接口,组件适配器向内核引擎屏蔽内核组件的功能实现细节。无论哪种内核组件,无论内部如何实现组件功能,但组件适配器抽象出来的为内核引擎提供的内核组件接口是规范化的接口。这样做可以保持内核引擎和内核组件之间的松耦合关联关系,使得内核引擎和内核组件都可以自由的扩展替换。

示例性的,内核引擎中的矿工线程可以通过调用competemaster接口调用共识组件监听本机节点是否是当前高度矿工。其中,competemaster接口是组件适配器向内核引擎提供的用于检查指定高度矿工的共识组件接口。组件适配器会根据当前的共识类型(如pow),实例化对应的共识组件,再调用该组件的competemaster接口,完成当前高度矿工计算。

在一个可选的实施例中,在处理过程中调用组件适配器提供的内核组件接口之后,所述方法还具体包括:下述操作s130~s150,即通过组件适配器具体实现内核组件调用的过程。

s130、通过所述组件适配器,在所述内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求。

内核引擎根据待处理区块链数据,在组件适配器提供的内核组件接口中确定所需内核组件接口,并通过组件适配器,在内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求。

考虑到内核引擎和内核组件使用指令系统差异,可能导致内核引擎的内核调用指令形式不能被内核组件直接识别处理的情况,在组件适配器中引入内核指令接口。在内核引擎调用内核组件接口时,组件适配器根据被调用的内核组件接口,确定与内核组件接口对应的内核指令接口。通过内核指令接口对内核引擎发送的内核组件调用指令进行处理,将内核组件调用指令转换为内核组件可以直接执行的指令形式。

内核组件接口主要是面向内核引擎,为内核引擎提供规范化的调用接口,内核指令接口与内核组件接口不同,内核指令接口是面向于内核组件,在内核引擎调用内核组件的情况下,将内核组件调用指令转化为对应内核组件可识别的指令形式。

内核引擎根据内核组件接口和待处理区块链数据产生内核组件调用请求,再通过组件适配器中的内核指令接口将内核组件调用请求转化为对应内核组件可以直接识别的指令级别调用请求。可选的,内核组件调用请求中包括内核组件名称、输入参数、要求返回参数和回调函数等。

s140、通过所述组件适配器,根据所述内核组件调用请求调用对应的内核组件;其中,所述内核组件的数量为至少一个,所述组件适配器与所述内核组件对应。

组件适配器根据内核指令接口转化得到的内核组件调用请求,调用对应的内核组件,使得内核组件在接收到内核组件调用请求执行设定组件功能的处理。

内核组件的数量为至少一个,示例性的,内核组件可以包括共识组件、账本组件、合约组件和网络组件中的至少一个,一般是专用于区块链运行功能的组件。内核组件的种类和数量在这里不作限定,具体依据实际情况确定。可以通过区块链内核组件编程规范来约束内核组件,只要遵循区块链内核组件编程规范来开发的内核组件,就可以被内核引擎调用,因此,可以开发满足各种需求的内核组件,供区块链开发时动态选择进行调用。本申请实施例的技术方案,通过对共识、账本、合约等这些区块链核心功能进行抽象,形成了内核组件,由此,让各内核组件可以无代码侵入自由扩展替换,同时让内核引擎订制变得轻量级。定义各个可插拔内核组件的编程规范,一般可包括:上下文、对外暴露接口、驱动约束接口和公共数据结构等。由具体驱动实现内核组件的实现逻辑。各内核组件驱动加载方式采用init初始化注册的方式,由具体的应用程序导入对应内核组件包时自动完成组件注册。

可选的,在本申请实施例的区块链系统中的内核组件可存在对应的组件适配器,示例性的,组件适配器可以包括:与共识组件对应的共识组件适配器(consensus)、与合约组件对应的合约组件适配器(contract)、与网络组件对应的网络组件适配器(network)和权限组件对应的权限组件适配器(permission)等组件适配器。部分组件也可以根据情况不设置组件适配器。

s150、通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

内核组件在接收到内核组件调用请求以后,会根据内核调用请求中的各项参数如输入参数、回调函数和要求返回参数等直接执行内核组件调用请求,完成对待处理区块链数据的处理需求。其中,设定组件功能与待处理区块链数据的处理需求相关。

本申请实施例的技术方案通过内核引擎与内核组件相互配合,完成了对待处理区块链数据的处理需求。本申请中内核引擎和内核组件均采用模块化设计,二者通过组件适配器实现配合工作,从而实现了模块间的松耦合,组件适配器向内核引擎提供内核组件接口,供内核引擎按需选择内核组件;另一方面,组件适配器通过内核指令接口,将内核引擎的内核组件调用指令和待处理区块链转换为内核组件能够识别的形式。组件适配器的引入使得内核引擎和内核组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请实施例提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

图2是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对通过所述组件适配器,在所述内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求的细化。

参见图2,本实施例提供的区块链系统的运行方法包括:

s210、通过区块链系统的内核引擎,获取待处理区块链数据。

s220、通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

s230、通过所述组件适配器,在所述内核组件接口被调用时,从同类的内核组件集合中确定待调用内核组件。

由于对开发语言和区块链系统性能等要求不同,在不同的落地场景中对内核组件的需求是不同的。在内核引擎通过内核组件调用接口,调用内核组件时,组件适配器还需要根据具体的用户需求从同类的内核组件集合中确定待调用内核组件,即需要对功能大类下的内核组件的子类型进行选择。

在本申请实施例中,主要是根据功能对内核组件进行分类,具体的,从可实现功能上可将内核组件分为合约组件、网络组件和共识组件等。结合内核组件适用场景和内核组件自身特点,每种内核组件的集合中还可以进一步包括多个不同子类型的内核组件。

为了扩大区块链系统的应用程场景,降低用户开发区块链难度,在本申请实施例中,就合约组件、网络组件和共识组件等区块链系统的关键核心组件,在区块链系统中内置完备的标准内核组件的实现供用户选用,以满足用户个性化需求。

在一个可选的实施例中,所述内核组件集合的种类包括下述至少一种:合约组件,所述合约组件的类型包括原生代码合约虚拟机、web字节码合约虚拟机、或以太坊合约虚拟机;网络组件,所述网络组件的类型包括对等网络;共识组件,所述共识组件的类型包括单一共识组件、pow共识组件、xpos共识组件或xpoa共识组件。

在开发区块链系统时,可由开发者根据场景需求来完成内核组件的选型配置,并将配置信息注册到组件适配器中。则,在内核引擎调用内核组件时,组件适配器可根据预先配置,确定具体选型的内核组件。示例性的,在面向公开网络场景的情况下,由于面向公开网络场景更加侧重去中心化和安全性,该场景需要拜占庭容错的共识机制。组件适配器在单一共识组件、pow共识组件、xpos共识组件或者xpoa共识组件中可以选用pow共识组件,作为区块链系统的共识机制。当然,在区块链运行过程中,区块链的管理方也可以根据需求对组件适配器中的配置信息进行更改,从而控制区块链的运行。其中,xpos和xpoa分别为百度超级链所支持的poa(proofofauthority,权威证明)共识和pos(proofofstake,权益证明)共识。

为了使得用户可以根据自身需求实现对内核组件的选型。在一个可选的实施例中,通过所述组件适配器,在所述内核组件接口被调用时,从同类的内核组件集合中确定待调用内核组件包括:通过所述组件适配器,在所述内核组件接口被调用时,根据区块链部署的内核组件配置参数,从同类的内核组件集合中确定待调用内核组件;其中,所述内核组件配置参数包括内核组件选型。区块链部署时,即在开发或创建区块链时,允许管理方进行配置。

其中,内核组件配置参数是在区块链的部署过程中,用户根据区块链系统的应用场景和业务需求预先配置在组件适配器中的,配置参数包括内核组件选型,其中,内核组件选型是指用户预期选用的内核组件的类型信息。在内核组件被调用时,组件适配器根据内核组件的配置参数,完成从同类的内核组件集合中确定待调用内核组件的工作。

s240、根据待调用内核组件的内核指令接口产生所述内核组件调用请求。

s250、通过所述组件适配器,根据所述内核组件调用请求调用对应的内核组件;其中,所述内核组件的数量为至少一个,所述组件适配器与所述内核组件对应。

组件适配器根据内核组件调用请求调用对应的内核组件,此时,内核组件为经过组件适配器选型后确定的内核组件。

s260、通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

具体的,通过选型后确定的内核组件执行内核组件调用请求,执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

在一个可选的实施例中,通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理包括:通过所述内核组件执行所述内核组件调用请求,并在处理所述内核组件调用请求的过程中基于基础组件接口产生基础组件调用请求,根据所述基础组件调用请求调用对应的基础组件;其中,所述基础组件的数量为至少一个;通过所述内核组件,根据所述基础组件反馈的基础组件处理结果,实现设定组件功能的处理。

其中,基础组件是指与具体业务场景完全无关,用于支持区块链系统运行的基础功能组件。在一个可选的实施例中,所述基础组件包括下述至少一个:基础存储组件、对等网络组件、密码学库组件、编解码组件和日志库组件。

其中,基础存储组件、对等网络组件、密码学库组件、编解码组件和日志库组件分别用于支持区块链系统运行过程中数据存储功能、网络交互和数据传输功能、签名加解密功能、数据的编解码功能和区块链系统运行情况记录功能。

内核组件根据内核组件调用请求中各项参数确定对应的基础组件接口,并生成基础组件调用请求。由内核组件根据基础组件调用请求,基于基础组件接口调用对应的基础组件,通过基础组件执行基础组件调用请求。

其中,基础组件接口是在根据基础组件编程规范实现基础组件时,为便于内核组件调用基础组件提供标准基础组件功能接口。与内核组件调用请求类似,基础组件调用请求中所包括的参数的种类和参数数量,是根据预设基础组件编程规范确定的,在这里不作限定,具体依据实际情况确定。示例性的,基础组件调用请求包括:基础组件名称、输入参数、要求返回参数和回调函数等参数。

可选的,内核组件在执行内核组件调用请求的过程中,产生的基础组件调用请求至少为一个。

基础组件在执行基础组件调用请求以后向内核组件反馈基础组件处理结果,从而实现设定组件功能的处理,完成对待处理区块链数据的处理需求。

本申请实施例的技术方案通过内核引擎与内核组件相互配合,完成了对待处理区块链数据的处理需求。本申请中内核引擎和内核组件均采用模块化设计,二者通过组件适配器实现配合工作,从而实现了模块间的松耦合,组件适配器的引入使得内核引擎和内核组件均可以自由扩展。另一方面,通过组件适配器,在内核组件接口被调用时,从同类的内核组件集合中确定待调用内核组件,根据待调用内核组件的内核指令接口产生所述内核组件调用请求,在区块链系统中内置完备的标准内核组件供用户按需选择内核组件,满足了用户个性化需求,扩大区块链系统的应用程场景,本申请的提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

图3是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对区块链系统中区块链节点的启动过程进行了描述。

参见图3,本实施例提供的区块链系统的运行方法包括:

s310、在内核引擎工厂中注册一个或多个内核引擎的创建程序。

本申请实施例采用了工厂模式对内核引擎进行实例化,具体的,在不同的业务应用场景下对内核引擎有不同的要求,为了方便区块链系统满足不同业务场景的需求,在区块链系统的启动过程中将用户所需内核引擎的创建程序注册到内核引擎工厂中。

在内核引擎工厂中注册的内核引擎的数量可以是一个也可是多个,优选的,向内核引擎工厂中注册多个内核引擎,以便于用户按需实例化对应的内核引擎,避免多次进行内核引擎的注册过程。

可选的,引擎注册采用init初始化注册方式,由应用层向内核引擎层导入对应内核引擎包时自动完成内核引擎的注册过程。内核引擎包可以包括内核引擎创建程序和内核引擎配置文件。在内核引擎工厂中注册一个或多个内核引擎的创建程序,是在区块链的部署阶段,初次创建区块链的时候进行的。

s320、根据应用层确定的引擎选型和引擎配置信息,根据选定的内核引擎的创建程序创建内核引擎,并根据引擎配置信息对内核引擎进行配置,实例化所述内核引擎;所述引擎配置信息包括下述至少一项:区块链名称、区块广播方式、缓存有效期和同步区块队列大小。

在区块链的部署阶段过程中,用户会根据具体的业务场景需求,通过应用层的客户端将内核引擎的引擎选型和引擎配置信息配置在区块链系统中,再在区块链启动的过程中,根据引擎选型在引擎工厂中将需要实例化的内核引擎的创建程序确定为目标内核引擎,再根据引擎配置信息对目标内核引擎进行实例化。

其中,引擎的选型信息是指内核引擎的类型信息,选型信息与注册到引擎工厂中的内核引擎的创建程序相关,一般而言,选型信息是由用户根据业务场景需求自主指定,当然也可以设置默认选型信息,在选型信息缺失或者与预存内核引擎类型无法匹配的情况下使用。

引擎配置信息是指用于实例化内核引擎的信息,一般而言,引擎配置信息是用户根据实际需求设定的,引擎配置信息包括下述至少一项:区块链名称、区块广播方式、缓存有效期和同步区块队列大小等。其中,区块链名称作为区块链的标识信息,用于区分不同的区块链;区块的广播方式限定的是区块链系统的节点,向区块链系统中除本机节点以外的其他区块节点传输区块链数据的方式;缓存有效期限定了区块链节点的本地缓存数据的保留期限;同步区块队列大小限定了一次性可以进行区块同步的区块数量。引擎配置信息中配置内核引擎的基本参数。

值得注意的是,在区块链成功启动后,区块链节点开始运行。

s330、在所述内核引擎创建完成,且所述内核组件注册完成后,启动运行所述内核引擎。

由于内核引擎为区块链内核核心流程,如果想要完成对待处理区块链数据的处理需求,还需要通过内核组件执行设定组件功能。因此,在内核引擎创建完成以后,还需要向区块链系统注册内核组件。只有在内核引擎创建完成,且内核组件注册完成后,才能启动运行内核引擎。

在一个可选的实施例中,在区块链节点启动时,在组件适配器中注册内核组件的组件驱动。

具体的,在区块链节点启动过程中,在组件适配器中注册内核组件的组件驱动,从而实现注册内核指令接口和内核组件配置参数。内核组件初始化方法运行的过程中,主程序调用适配器注册接口,基于适配器注册接口向对应的组件适配器中注册全部的内核指令接口。可选的,组件指令接口是适配器约定的,由组件驱动去实现。在内核组件的注册过程中,是将组件驱动注册到组件适配器,相当于注册了内核组件的具体实现逻辑。注册后,适配器通过组件指令接口可调用这些处理逻辑完成组件功能处理。其中,内核指令接口是面向内核组件的接口,用于在内核引擎调用内核组件的情况下,将内核组件调用指令转化为对应内核组件可识别的形式。内核组件配置参数用于配置调用内核组件时的基本参数,内核组件的配置参数包括内核组件的选型信息。可选的,将全部的内核组件的内核指令接口注册到组件适配器中。

在一个可选的实施例中,通过所述内核引擎获取内核组件的配置参数,并根据所述配置参数变更所述组件适配器中的内核组件配置参数。

在内核组件的配置参数发生改变的情况下,内核引擎获取内核组件变更的配置参数,并依据配置参数对组件适配器中的对应内核组件的配置参数进行更新。

s340、通过所述内核引擎启动并实例化账本组件,且通过所述账本组件加载区块链的区块数据。

由于区块链的账本是与区块节点和交易数据结构强相关的,账本数据有其固定的数据结构,在本申请实施例将账本组件与内核引擎绑定,在内核引擎调用账本组件时,需要输入与账本组件相同的数据结构,账本组件不存在与之对应的组件适配器,替换账本组件需要同时替换内核引擎。

内核引擎启动并实例化账本组件,通过账本组件加载区块链上的区块数据。

本申请实施例通过单一内核引擎绑定一个账本组件,不同内核引擎共用除账本外其他内核组件,实现了内核引擎与交易、区块结构无关,使得用户可以在无内核代码侵入的情况下,按需实现内核核心处理流程的定制和内核引擎的技术选型。

s350、通过所述内核引擎启动并实例化至少一个内核组件。

内核引擎启动并实例化内核组件,向内核组件分配计算资源和内存资源,使得内核组件可以执行设定功能。示例性的,在内核引擎启动后,启动并实例化网络组件,利用网络组件定时监听在区块链系统的运行过程中是否存在待处理区块链数据。当然,区块链系统中其他组件如共识组件、合约组件和权限组件也可以同时启动并实例化,为各内核组件分配内核组件所需资源,供内核组件被调用时使用,从而缩短区块链系统响应时延。

s360、通过内核引擎加载应用层服务配置信息,根据所述应用层服务配置信息启动并实例化对应用层交互端口的监听服务。

其中,应用层配置信息包括需要进行监听的应用层交互端口。其中,应用层交互端口是指应用层与内核引擎进行交互的端口,应用层交互端口的数量为至少一个,一般为多个。

内核引擎加载用户配置的应用层服务配置信息,并根据应用层服务配置信息启动并实例化监听服务,对内核引擎和应用层交互的应用层交互端口进行监听,示例性的,监听服务为rpc服务(remoteprocedurecall,远程过程调用)。

本申请实施例的技术方案提供了区块链系统中区块链节点的启动过程,本申请实现了多内核引擎架构,本申请实施例中用户可根据业务需求可定制多个内核引擎,将所有内核引擎注册到内核引擎工厂,外部统一通过内核引擎工厂实例化内核引擎,使得内核引擎可自由无侵入扩展。本申请实施例通过向组件适配器中注册内核组件并根据配置信息实例化内核组件,实现了在内核组件无代码侵入的情况下对内核组件进行技术选型,实现了内核引擎和内核组件的模块化设计,扩展了区块链系统的场景适用性,本申请的提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

图4是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对通过所述内核引擎,在处理过程中基于内核组件接口产生内核组件调用请求,根据所述内核组件调用请求调用对应的内核组件的细化。

参见图4,本实施例提供的区块链系统的运行方法包括:

s410、通过区块链系统的内核引擎,获取待处理区块链数据。

由于区块链的账本是与区块节点和交易数据结构强相关的,账本数据有其固定的数据结构,在本申请实施例将账本组件与内核引擎绑定。

在一个可选的实施例中,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。

其中,待处理事务请求是指用于对区块链上数据进行操作的事务请求。在本申请实施例中,事务请求可以是区块链系统中支持的任意事务请求,可以是业务事务请求,也可以是管理事务请求等与具体的业务相关。

为保证内核引擎能够调用账本组件,内核引擎获取到待处理事务请求的账本数据需要与账本组件的账本数据格式相同,具体的,待处理事务请求的账本数据需要与账本组件的账本数据的字段是相同的。

s420、通过所述内核引擎,基于账本组件的账本组件接口产生账本组件调用请求,并根据所述账本组件调用请求调用所述账本组件。

账本组件不存在与之对应的组件适配器,内核引擎与账本组件绑定,在内核引擎需要调用账本组件的情况下,内核引擎不再通过组件适配器,而是直接调用账本组件,具体的,内核引擎基于账本组件向内核引擎提供的账本组件接口,产生账本组件调用请求,根据账本组件的调用请求调用账本组件。

s430、通过所述账本组件执行所述账本组件调用请求,以执行设定账本组件功能的处理,完成对所述待处理区块链数据的处理需求。

账本组件根据账本组件调用请求中的各项参数,执行设定账本组件功能,完成对所述待处理区块链数据的处理需求。设定账本组件功能是与待处理区块链数据的处理需求相关,具体根据实际情况确定。示例性的,设定账本组件功能可以是更新区块、检验区块或者交易校验。

本申请实施例考虑了账本数据的数据结构特殊性,将内核引擎与账本组件绑定,不需要再经过组件适配器参与,通过内核引擎基于账本组件接口直接调用账本组件,避免了对账本数据进行复杂的数据格式转化,简化了区块链系统。

图5是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对“通过所述组件适配器,在所述内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求”的细化。

参见图5,本实施例提供的区块链系统的运行方法包括:

s510、通过区块链系统的内核引擎,获取待处理区块链数据。

s520、通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

s530、通过所述组件适配器,在所述内核组件接口被调用时,将调用输入参数基于内核组件的内核指令接口转换为内核组件调用请求的输入参数,以产生所述内核组件调用请求。

其中,调用输入参数是由内核引擎基于内核组件接口生成的,由于内核引擎和内核组件的指令系统不同,使得调用输入参数很大可能性上是能被内核组件直接识别的。

内核组件调用请求的输入参数,是指经过内核指令接口处理过的调用输入参数,是可以被对应内核组件直接识别的输入参数。

在内核组件接口被调用时,组件适配器基于内核组件的内核指令接口,将内核组件的调用请求的输入参数进行转化,并根据转化后的输入参数产生内核组件调用请求,产生内核组件调用请求可以直接被内核组件识别。示例性的,内核指令接口对调用输入参数进行的转换可以对调用输入参数中的接口名称进行映射转换,还可以实现接口输入参数的名称和类型转换。

在一个可选的实施例中,所述内核组件接口或内核指令接口的接口参数包括:接口名称、输入参数、返回参数和回调函数;所述内核组件接口和内核指令接口的接口参数不同。

内核组件接口和内核指令接口的接口参数的种类和数量是一致的。内核指令接口的接口参数与内核组件接口的接口参数相对应。区别在于,内核指令接口的接口参数是面向于内核组件的,是内核组件可直接识别的供内核组件根据接口参数实现设定功能;内核组件接口的接口参数是由内核引擎提供的,供内核引擎进行内核组件的功能选择。

一般情况下,内核组件接口和内核指令接口的接口参数不同,当然二者的接口参数也可以相同,示例性的,内核组件接口和内核指令接口的接口参数中接口名称存在相同的可能性,具体可以依据实际情况确定。

s540、通过所述组件适配器,根据所述内核组件调用请求调用对应的内核组件;其中,所述内核组件的数量为至少一个,所述组件适配器与所述内核组件对应。

s550、通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

本申请实施例的技术方案通过内核引擎与内核组件相互配合,完成了对待处理区块链数据的处理需求。本申请中内核引擎和内核组件均采用模块化设计,二者通过组件适配器实现配合工作,从而实现了模块间的松耦合,组件适配器向内核引擎提供内核组件接口,供内核引擎按需选择内核组件;另一方面,组件适配器通过内核指令接口,将内核引擎的内核组件调用指令和待处理区块链转换为内核组件能够识别的形式。组件适配器的引入使得内核引擎和内核组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请的提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

图6是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对“通过所述组件适配器,在所述内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求”的细化。

参见图6,本实施例提供的区块链系统的运行方法包括:

s610、通过区块链系统的内核引擎,获取待处理区块链数据。

s620、通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

s630、通过所述组件适配器,在所述内核组件接口被调用时,内核组件接口与内核指令接口的映射关系,确定至少一个内核指令接口。

其中,内核组件接口与内核指令接口的映射关系是在区块链系统的部署阶段注册到组件适配器中的。

在内核组件接口被调用时,根据内核组件接口与内核指令接口的映射关系,可以在内核指令接口中确定与内核组件接口对应的内核指令接口。一个内核组件接口可以对应多个内核指令接口。

s640、通过所述组件适配器,根据内核组件的内核指令接口产生内核组件调用请求。

其中,内核组件调用请求是指内核组件可以识别,无需经过二次转换,直接执行的调请求。内核组件调用请求是组件适配器,根据内核组件的内核指令接口产生的。

s650、通过所述组件适配器,根据所述内核组件调用请求调用对应的内核组件;其中,所述内核组件的数量为至少一个,所述组件适配器与所述内核组件对应。

s660、通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

本申请实施例的技术方案通过内核引擎与内核组件相互配合,完成了对待处理区块链数据的处理需求。本申请中内核引擎和内核组件均采用模块化设计,二者通过组件适配器实现配合工作,从而实现了模块间的松耦合,组件适配器向内核引擎提供内核组件接口,供内核引擎按需选择内核组件;另一方面,组件适配器通过内核指令接口,将内核引擎的内核组件调用指令和待处理区块链转换为内核组件能够识别的形式。组件适配器的引入使得内核引擎和内核组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请的提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

图7是根据本申请实施例的区块链系统的运行装置的示意图;参见图7,本申请实施例公开了一种区块链系统的运行装置700,配置于区块链节点,所述装置700可以包括:待处理区块链数据获取模块710和待处理区块链数据处理模块720。

还可以进一步的包括内核组件调用请求生成模块730、内核组件调用模块740和内核组件调用请求执行模块750。

待处理区块链数据获取模块710,用于通过区块链系统的内核引擎,获取待处理区块链数据;

待处理区块链数据处理模块720,用于通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中调用组件适配器提供的内核组件接口,以调用内核组件。

其中,内核组件调用请求生成模块730,用于通过所述组件适配器,在所述内核组件接口被调用时,根据内核组件的内核指令接口产生内核组件调用请求;

内核组件调用模块740,用于内核组件调用通过所述组件适配器,根据所述内核组件调用请求调用对应的内核组件;其中,所述内核组件的数量为至少一个,所述组件适配器与所述内核组件对应;

内核组件调用请求执行模块750,用于通过所述内核组件执行所述内核组件调用请求,以执行设定组件功能的处理,完成对所述待处理区块链数据的处理需求。

本申请实施例的技术方案通过内核引擎与内核组件相互配合,完成了对待处理区块链数据的处理需求。本申请中内核引擎和内核组件均采用模块化设计,二者通过组件适配器实现配合工作,从而实现了模块间的松耦合,组件适配器向内核引擎提供内核组件接口,供内核引擎按需选择内核组件;另一方面,组件适配器通过内核指令接口,将内核引擎的内核组件调用指令和待处理区块链转换为内核组件能够识别的形式。组件适配器的引入使得内核引擎和内核组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请的提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展内核组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。

可选的,内核组件调用请求生成模块730,包括:待调用内核组件确定子模块,用于通过所述组件适配器,在所述内核组件接口被调用时,从同类的内核组件集合中确定待调用内核组件;

内核组件调用请求产生子模块,用于根据待调用内核组件的内核指令接口产生所述内核组件调用请求。

可选的,待调用内核组件确定子模块,具体用于,通过所述组件适配器,在所述内核组件接口被调用时,根据区块链部署的内核组件配置参数,从同类的内核组件集合中确定待调用内核组件;其中,所述内核组件配置参数包括内核组件选型。

可选的,所述内核组件集合的种类包括下述至少一种:合约组件,所述合约组件的类型包括原生代码合约虚拟机、web字节码合约虚拟机、或以太坊合约虚拟机;

网络组件,所述网络组件的类型包括对等网络;

共识组件,所述共识组件的类型包括单一共识组件、pow共识组件、xpos共识组件或xpoa共识组件。

可选的,所述装置700,还包括:内核组件注册模块,具体用于在区块链节点启动时,在组件适配器中注册内核组件的组件驱动。

可选的,所述装置700,还包括:内核组件配置参数变更模块,用于通过所述内核引擎获取内核组件的配置参数,并根据所述配置参数变更所述组件适配器中的内核组件配置参数。

可选的,在区块链节点启动时,所述装置700,还包括:

内核引擎创建程序注册模块,用于在内核引擎工厂中注册一个或多个内核引擎的创建程序;

内核引擎创建和配置模块,用于根据应用层确定的引擎选型和引擎配置信息,根据选定的内核引擎的创建程序创建内核引擎,并根据引擎配置信息对内核引擎进行配置,实例化所述内核引擎;所述引擎配置信息包括下述至少一项:区块链名称、区块广播方式、缓存有效期和同步区块队列大小;

内核引擎运行启动模块,用于在所述内核引擎创建完成,且所述内核组件注册完成后,启动运行所述内核引擎;

账本组件实例化模块,用于通过所述内核引擎启动并实例化账本组件,且通过所述账本组件加载区块链的区块数据;

内核组件实例化模块,用于通过所述内核引擎启动并实例化至少一个内核组件;

应用层交互端口监听服务实例化模块,用于通过内核引擎加载应用层服务配置信息,根据所述应用层服务配置信息启动并实例化对应用层交互端口的监听服务。

可选的,待处理区块链数据处理模块720,还包括:账本组件调用子模块,用于通过所述内核引擎,基于账本组件的账本组件接口产生账本组件调用请求,并根据所述账本组件调用请求调用所述账本组件;

账本组件调用请求执行子模块,用于通过所述账本组件执行所述账本组件调用请求,以执行设定账本组件功能的处理,完成对所述待处理区块链数据的处理需求。

可选的,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。

可选的,内核组件调用请求生成模块730,包括:输入参数转换子模块,具体用于通过所述组件适配器,在所述内核组件接口被调用时,将调用输入参数基于内核组件的内核指令接口转换为内核组件调用请求的输入参数,以产生所述内核组件调用请求。

可选的,所述内核组件接口或内核指令接口的接口参数包括:接口名称、输入参数、返回参数和回调函数;所述内核组件接口和内核指令接口的接口参数不同。

可选的,内核组件调用请求生成模块730,包括:内核指令接口确定子模块,用于通过所述组件适配器,在所述内核组件接口被调用时,内核组件接口与内核指令接口的映射关系,确定至少一个内核指令接口;

内核组件调用请求产生子模块,用于通过所述组件适配器,根据内核组件的内核指令接口产生内核组件调用请求。

可选的,内核组件调用请求执行模块750,包括:基础组件调用请求产生模块,用于通过所述内核组件执行所述内核组件调用请求,并在处理所述内核组件调用请求的过程中基于基础组件接口产生基础组件调用请求,根据所述基础组件调用请求调用对应的基础组件;其中,所述基础组件的数量为至少一个;

设定组件功能实现子模块,用于通过所述内核组件,根据所述基础组件反馈的基础组件处理结果,实现设定组件功能的处理。

本申请实施例所提供的区块链系统的运行装置可执行本申请任意实施例所提供的区块链系统的运行方法,具备执行区块链系统的运行方法相应的功能模块和有益效果。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图8示出了可以用来实施本申请的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如区块链系统的运行方法。例如,在一些实施例中,区块链系统的运行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram803并由计算单元801执行时,可以执行上文描述的区块链系统的运行方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链系统的运行方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1