CN113254114A - 区块链系统的运行方法、装置、设备和存储介质 - Google Patents
区块链系统的运行方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113254114A CN113254114A CN202110652735.2A CN202110652735A CN113254114A CN 113254114 A CN113254114 A CN 113254114A CN 202110652735 A CN202110652735 A CN 202110652735A CN 113254114 A CN113254114 A CN 113254114A
- Authority
- CN
- China
- Prior art keywords
- account book
- component
- data
- block chain
- request
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种区块链系统的运行方法、装置、设备和存储介质,涉及计算机技术领域,尤其涉及区块链技术,可用于云计算和云领域。具体实现方案为:通过区块链系统的内核引擎,获取待处理区块链数据;通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。执行本申请提供的技术方案可以提高区块链系统的适用性和可扩展性,从而降低区块链系统的研发成本。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术。
背景技术
区块链行业在持续的快速发展,区块链技术发展初期主要的应用场景还是以数字货币和游戏为主。目前,区块链技术开始从支撑数字货币的底层技术,进入了全面探索赋能产业的新阶段。
目前主流的区块链实现方案,基本上都有明确的适用场景定位,由于传统方案大多都是面向数字货币类的应用场景,更加适合数字货币类的应用,在实际业务场景落地中会遇到适用性的问题,需要深入框架做改造,改造成本和技术门槛都非常高。
然而,深入框架进行改造的模式,使得改造难度大、成本高,改造后还无法自动跟进对应框架最新的更新。
发明内容
本公开提供了一种区块链系统的运行方法、装置、设备和存储介质,以提高区块链针对于不同场景的适用性,降低开发难度和成本。
根据本公开的一方面,提供了一种区块链系统的运行方法,所述方法包括:
通过区块链系统的内核引擎,获取待处理区块链数据;
通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
根据本公开的另一方面,提供了一种区块链系统的运行装置,所述装置包括:
待处理区块链数据获取模块,用于通过区块链系统的内核引擎,获取待处理区块链数据;
账本组件调用请求产生模块,用于通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
根据本申请的另一方面,提供一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例任一项所述的区块链系统的运行方法。
根据本申请的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例任一项所述的区块链系统的运行方法。
根据本申请的一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本申请实施例任一项所述的区块链系统的运行方法。
本申请实施例的技术方案,能够提高区块链实现方案的可扩展性和适用性,从而降低区块链技术的研发成本。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本申请实施例的一种区块链系统的运行方法的示意图;
图2是根据本申请实施例的又一种区块链系统的运行方法的示意图;
图3是根据本申请实施例的一种区块链系统的运行装置的示意图;
图4是用来实现本申请实施例的区块链系统的运行方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例所提供的区块链系统的运行方法,是在发明人构造的区块链内核架构的基础上提出的。
区块链系统整体上可以分为两个部分,分别为区块链内核架构和区块链应用层。其中,区块链应用层是供用户基于区块链系统实现具体业务需求的,区块链应用层向用户屏蔽了复杂的区块链底层技术,在用户了解区块链基本原理的情况下即可搭建区块链完成业务需求。可以由区块链系统主程序来实现区块链应用层的服务端功能。区块链应用层还可以包括客户端(client)和应用程序接口(API),从而提供用户交互界面或交互机制,实现与用户的交互。在一个区块链系统中可以支撑一个或多个区块链应用层的业务功能。应用层的客户端或API可通过专有组件与区块链内核架构进行交互,专有组件例如是对设定交互端口的监听服务。
本申请更为关注区块链的内核架构,内核架构至少包括:内核引擎层和内核组件层,还可以进一步包括基础组件层。其中,内核引擎层,定义了区块链内核核心流程,即区块链运行过程中的各种业务逻辑的核心流程,例如,交易处理流程、矿工出块流程、和同步区块流程等。本申请实施例中,所谓交易,是由区块链用户发起,需要由区块链节点基于区块链系统进行处理,并将处理过程上链存储的事务请求,并不限于交易业务,可以是任何区块链所需承载的应用业务或区块链管理事务请求。所谓矿工,即当前出块周期内有权限进行出块的区块链节点,并不限于基于工作量证明共识机制(POW)来确定的出块节点,基于其他共识机制确定的出块节点,也可称为矿工。并且,内核引擎采用了读写分离的设计来降低复杂度,可以采用独立读组件的方式来实现读操作,实现了读操作可单独扩展。内核引擎层中的内核引擎是可以由用户根据场景需要,进行无框架代码侵入的扩展定制,或者轻量级的代码调整定制。即,开发人员可以基于内核组件的功能来开发内核引擎,无需再单独开发内核组件。基于内核架构为用户提供了配置多种类内核引擎层的可能性,具体的可配置开发:超级公链引擎(xuperos engine)、超级联盟链引擎(xchain engine)和用户自主实现的内核引擎(other engine)等。
内核组件层,是对内核组件编程规范的具体实现,内置非常完备的标准内核组件的实现,包括账本组件、共识组件、合约组件、网络组件、加密组件和权限组件等可供内核引擎的开发者选用,同时开发者也可以低成本的按照内核组件编程规范开发适合自己场景的内核组件,并将自主实现的内核组件无缝接入到各种内核引擎中。其中,内核组件编程规范是用以抽象内核组件的规范。根据内核组件编程规范实现内核组件,可以为内核引擎调用内核组件提供标准内核组件功能接口,使得内核引擎可以通过内核引擎层内的组件适配器(如consensus、contract、ledge、network或者permission)确定的内核组件接口,基于内核组件接口实现对内核组件的调用,再通过内核组件完成对待处理区块链数据的处理工作。内核组件接口也可称为内核功能接口,是内核组件提供给内核引擎调用的、功能层级的接口。无论哪种内核组件,无论内部如何实现组件功能,都可以提供规范化、统一的内核组件接口,以方便内核引擎调用。
基础组件层内设置有与区块链业务无关的基础公共组件,例如包括:基础存储、p2p网络库、密码学库、编解码库和日志库等。
本申请提供的区块链内核架构是一种全新的高可扩展、广域场景适用的区块链通用内核框架,本架构的高度模块化的设计,保证了模块间松耦合,使得各模块都可以自由的扩展替换。基于本架构,用户可以根据具体场景的需要和喜好,非常轻量级的开发具体的区块链系统,本架构将区块链系统开发的难度降维到只是根据场景需要扩展部分子领域功能,极大的降低区块链技术的研发成本。
图1是根据本申请实施例的一种区块链系统的运行方法的示意图。本实施例可适用于在利用区块链对待处理区块链数据的情况。本实施例公开的区块链系统的运行方法可以由区块链系统的运行装置来执行,该装置可以由软件和/或硬件的方式实现,配置于具备计算和存储功能的电子设备中,例如可以由区块链节点来执行。参见图1,本实施例提供的一种区块链系统的运行方法,包括:
S110、通过区块链系统的内核引擎,获取待处理区块链数据。
其中,内核引擎为区块链内核核心流程,内核引擎获取的待处理区块链数据可以是由内核引擎的上一层,即应用层,从用户客户端获取待处理区块链数据以后,发送给内核引擎的,也可以是内核引擎通过网络组件接收到用户客户端发送的待处理区块链数据,以及内核引擎通过网络组件接收到区块链系统运行过程中如生成的新区块验证过程和区块同步过程产生的待处理区块链数据。
其中,待处理区块链数据是指需要由区块链节点处理的数据,示例性的,待处理区块链数据还可以包括治理数据,即用于管理网络的操作数据,具体的如变更出块节点,管理节点和监控网络状态等操作数据,待处理区块链数据还可以是由内核引擎接收到的用户对区块链中数据的查询请求。待处理区块链数据包括下述至少一项:待处理区块链事务请求、待验证区块、待同步区块和区块链系统维护数据,待处理区块数据的具体内容在这里不限定,具体依据实际情况确定。
在一个可选的实施例中,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。账本数据为区块链数据的存储格式,内核引擎在需要调用账本组件进行区块链数据访问时,所基于的数据存储格式优选是与账本组件所采用的存储格式相同,由此,内核引擎能够直接调用账本组件,进行区块链数据访问。或者,内核引擎所基于的区块链数据存储格式与账本组件不同,则可以设置账本组件的组件适配器,内核引擎通过组件适配器来调用账本组件的功能。可以有账本组件适配器进行数据存储格式的转换。
其中,待处理事务请求是指用于对区块链上数据进行操作的事务请求。在本申请实施例中,事务请求可以是区块链系统中支持的任意事务请求,可以是业务事务请求,也可以是管理事务请求等与具体的业务相关。事务请求经处理后形成事务数据,事务数据会打包在区块中进行上链存储。在待处理区块链数据为待处理事务请求的情况下,为保证内核引擎能够调用账本组件,内核引擎获取到待处理事务请求的账本数据需要与账本组件的账本数据格式相同。
通常,区块链的账本是与区块节点和交易数据结构强相关的,账本数据有其固定的数据结构,因此,优选是将账本组件与内核引擎绑定,替换账本组件需要同时替换内核引擎,在内核引擎调用账本组件时,需要输入与账本组件相同的数据结构。
S120、通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
由于内核引擎只是区块链内核核心流程,若要满足待处理区块链数据的处理需求,内核引擎还需要和内核组件相互配合,通过调用内核组件执行设定组件功能完成对待处理区块链数据的处理。
具体的,内核引擎会在处理过程中根据待处理区块链数据,确定用于处理该待处理区块链数据的内核组件接口,并在确定内核组件接口后产生对应内核组件的调用请求。其中,内核组件的数量为至少一个,具体数量和种类在这里不作限定,具体根据区块链系统所适用的场景及其所需提供功能确定。但是值得注意的是,内核组件至少包括区块链专用组件如合约组件、网络组件、账本组件或者共识组件。
其中,内核组件接口是对内核组件可实现功能的抽象,区块链系统中的每个内核组件均存在对应的内核组件接口,一个内核组件接口可以对应多个内核组件。内核引擎只需要根据待处理区块链数据对需要的内核组件功能进行选择,无需关心内核组件功能的具体实现。内核引擎通过调用内核组件接口即可实现对内核组件的调用。
作为区块链系统非常重要的内核组件之一,账本组件负责链上数据存储,账本组件用于基于区块链账本规则对账本数据进行访问处理,并将账本访问结果反馈给所述内核引擎。
内核引擎调用账本组件对区块链账本数据进行处理,具体的,内核引擎根据当前待处理区块链数据的处理流程,在各内核组件接口中确定账本组件接口,并基于账本组件接口产生账户组件调用请求,根据账本组件调用请求对应的账本组件,通过账本组件实现对区块链账本数据的处理。
其中,账本组件接口是在根据账本组件编程规范实现账本组件时,为便于内核引擎调用账本组件提供标准账本组件功能接口。为了实现区块链的账本数据进行处理,在内核引擎中配置了账本组件基本的功能接口。可选的,内核引擎调用账本组件的过程中,账本组件接口是对区块结构进行抽象的操作接口。内核引擎和账本组件,基于相同格式的区块链账本数据,进行接口访问。其他内核组件可以实现区块结构无关的接口。
在一个可选的实施例中,账本组件接口包括下述至少一种:
打包区块矿工地址获取接口,GetProposer()[]byte,用于获取区块矿工的地址;
区块高度获取接口,GetHeight()int64,用于获取区块高度;
区块标识获取接口,GetBlockid()[]byte,用于获取区块标识;
共识扩展存储区获取接口,GetConsensusStorage()([]byte,error),用于获取共识扩展存储区;
区块打包时间获取接口,GetTimestamp() int64,用于获取区块打包时间;
预定区块字段设置接口,SetItem(item string, value interface{}) error,用于设置预定区块字段;
当前区块标识计算接口,MakeBlockId()([]byte, error),用于计算当前区块标识;
前一区块标识计算接口,MakeBlockId()([]byte, error),用于计算前一区块标识;
矿工公钥获取接口,GetPublicKey() string,用于获取矿工公钥;
矿工签名获取接口,GetSign() []byte,用于获取矿工签名。
账本组件调用请求是指由内核引擎基于账本组件接口产生的,用于调用账本组件对区块链账本数据进行处理的请求。值得注意的是,账本组件调用请求中所包括的参数的种类和参数数量,是根据预设账本组件编程规范确定的,在这里不作限定,具体依据实际情况确定。示例性的,账本组件调用请求包括:账本组件名称、输入参数、要求返回参数和回调函数等。
在一个可选的实施例中,在所述通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件以后,所述方法还包括:通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
即,在步骤S120 以后,可选的还包括步骤S130:通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
S130、通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
账本组件在接收到账本组件调用请求以后,会根据账本调用请求中的各项参数如输入参数、回调函数和要求返回参数等对区块链账本数据进行处理,示例性的如更新区块、检验区块或者交易校验。
本申请实施例的技术方案,通过内核引擎基于账本组件接口与账本组件相互配合,实现了对区块链账本数据的处理。本申请实施例中内核引擎和账本组件均采用模块化设计,二者通过账本组件接口实现配合工作,从而实现了模块间的松耦合,使得内核引擎和账本组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请实施例提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展账本组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。
图2是根据本申请实施例的另一种区块链系统的运行方法的示意图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,是对通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件的细化。
参见图2,本实施例提供的区块链系统的运行方法包括:
S210、通过区块链系统的内核引擎,获取待处理区块链数据。
S220、通过所述内核引擎,根据待处理区块链事务请求,基于账本组件接口产生账本数据读请求、账本数据写请求和账本数据校验请求,根据所述账本数据读请求、账本数据写请求和账本数据校验请求调用所述账本组件,以对区块链的账本数据进行处理。
为了便于理解,以基于本申请实施例所提供的区块链系统进行交易提交的情况为例,对内核引擎调用账本组件对待处理区块数据进行处理的过程进行描述:
内核引擎接收到待处理区块链数据,对待处理区块链数据进行处理,首先对待提交交易进行验证,具体的,内核引擎根据待处理区块链事务请求,基于账本组件接口中的校验交易接口产生校验交易请求,根据校验交易请求调用账本组件。账本组件根据校验交易请求,对待校验账本数据进行账本校验,并将账本校验结果反馈给内核引擎。
示例性的,在节点A的账户向节点B的账户汇款设定金额的情况下,账本组件对待校验账本数据进行账本校验,可以包括:对节点A和节点B是否为交易请求中交易账户的拥有者进行校验、对节点A的账户中资金金额进行校验,确保节点A的账户中资金充足,或者根据区块链公共账本对账本数据进行校验判断交易是否存在双重支付。
内核引擎在接收到账本校验通过的校验结果以后,内核引擎通过账本组件提供的执行交易接口产生执行交易请求,并根据执行交易请求调用账本组件执行该笔交易。账本组件根据执行交易请求执行待处理区块链事务请求,形成交易数据,并将形成的交易数据添加到未确认交易池。其中,执行交易请求可以包括交易参与节点和交易金额等信息。具体的,执行交易请求包括:账本数据读请求和账本数据写请求,其中,账本数据读请求用于读取待处理区块链事务请求执行过程中形成的交易数据,账本数据写请求用于将交易数据添加到未确认交易池。
如果本机节点为当前区块的矿工,则通过内核引擎,基于区块打包接口产生交易打包请求,根据交易打包请求调用账本组件。通过账本组件,根据交易打包请求,从未确认交易池中确认待打包交易数据,打包形成区块并反馈给内核引擎。
接下来,内核引擎会基于签名接口产生区块签名请求,并根据区块签名请求调用密码学组件。密码学组件根据区块签名请求,对打包形成的区块进行签名处理,并反馈给内核引擎。
内核引擎基于区块更新接口产生区块更新请求,并根据区块更新请求调用账本组件。账本组件根据区块更新请求将签名后的区块写入本机节点的本地账本中,具体的,区块更新请求中包括:账本数据读请求和账本数据写请求,其中,账本数据读请求用于读取签名后的区块,账本数据写请求用于将签名后的区块写入本机节点的本地账本中。
最后内核引擎会基于区块广播接口产生区块广播请求,并根据区块广播请求调用网络组件,通过网络组件将签名后的区块向区块链网络中传输,使得新区块可以被区块链网络中的其他区块链节点获取到。
S230、通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
在本申请实施例中,账本组件采用了模块化设计,账本组件均是在区块链的启动阶段,以init初始化注册的方式注册到区块链系统中的,使得在应用层向区块链中导入账本组件包时,能够自动完成账本组件注册。开发人员只需要关注账本组件的接入规范,实现规范约束的接口即可,组件驱动代码可以自由存放,无代码侵入。
在一个可选的实施例中,描述了在区块链系统时账本组件的启动过程。具体的,在区块链节点启动时,通过所述内核引擎实例化所述账本组件。
在区块链节点启动过程中,首先在引擎工厂中初始化内核引擎,并进行内核引擎的实例化。在内核引擎的初始化过程中,对账本组件进行实例化。
内核引擎实例化并启动内核引擎后,在内核引擎调用账本组件时,向账本组件分配计算资源和内存资源,使得账本组件能够对区块链的账本数据进行处理。
本申请实施例通过单一内核引擎绑定一个账本组件,不同内核引擎共用除账本外其他内核组件,实现了内核引擎与交易、区块结构无关,使得用户可以在无内核代码侵入的情况下,按需实现内核核心处理流程的定制和内核引擎的技术选型。
本申请实施例的技术方案,通过内核引擎基于账本组件接口与账本组件相互配合,内核引擎通过基于账本组件接口产生的账本数据读请求、账本数据写请求和账本数据校验请求实现了对账本组件的调用,从而完成了对区块链账本数据的处理。本申请实施例中内核引擎和账本组件均采用模块化设计,二者通过账本组件接口实现配合工作,从而实现了模块间的松耦合,使得内核引擎和账本组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请实施例提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展账本组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。
图3是根据本申请实施例的区块链系统的运行装置的示意图;参见图3,本申请实施例公开了一种区块链系统的运行装置300,该装置300可以包括:待处理区块链数据获取模块310和账本组件调用请求产生模块320。
待处理区块链数据获取模块310,用于通过区块链系统的内核引擎,获取待处理区块链数据;
账本组件调用请求产生模块320,用于通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
本申请实施例的技术方案,通过内核引擎基于账本组件接口与账本组件相互配合,实现了对区块链账本数据的处理。本申请实施例中内核引擎和账本组件均采用模块化设计,二者通过账本组件接口实现配合工作,从而实现了模块间的松耦合,使得内核引擎和账本组件均可以自由扩展,进而扩展了区块链系统的场景适用性,本申请实施例提出的区块链系统运行方法将区块链系统开发的难度降维到用户只需要根据场景需求扩展账本组件或者内核引擎功能的程度,极大的降低区块链技术的研发成本。
可选的,所述装置还包括:区块链账本数据处理模块,用于在所述通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件以后,通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
可选的,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。
可选的,其中,账本组件接口包括下述至少一种:打包区块矿工地址获取接口;区块高度获取接口;区块标识获取接口;共识扩展存储区获取接口;区块打包时间获取接口;预定区块字段设置接口;当前区块标识计算接口;前一区块标识计算接口;矿工公钥获取接口;矿工签名获取接口。
可选的,账本组件调用请求产生模块,具体用于通过所述内核引擎,根据待处理区块链事务请求,基于账本组件接口产生账本数据读请求、账本数据写请求和账本数据校验请求,根据所述账本数据读请求、账本数据写请求和账本数据校验请求调用所述账本组件,以对区块链的账本数据进行处理。
可选的,所述的装置,还包括:账本组件注册模块,用于在区块链节点启动时,通过所述内核引擎实例化所述账本组件。
本申请实施例所提供的区块链系统的运行装置可执行本申请任意实施例所提供的区块链系统的运行方法,具备执行区块链系统的运行方法相应的功能模块和有益效果。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如区块链系统的运行方法。例如,在一些实施例中,区块链系统的运行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的区块链系统的运行方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链系统的运行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种区块链系统的运行方法,所述方法包括:
通过区块链系统的内核引擎,获取待处理区块链数据;
通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
2.根据权利要求1所述的方法,其中,在所述通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件以后,所述方法还包括:
通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
3.根据权利要求1所述的方法,其中,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。
4.根据权利要求1所述的方法,其中,账本组件接口包括下述至少一种:
打包区块矿工地址获取接口;
区块高度获取接口;
区块标识获取接口;
共识扩展存储区获取接口;
区块打包时间获取接口;
预定区块字段设置接口;
当前区块标识计算接口;
前一区块标识计算接口;
矿工公钥获取接口;
矿工签名获取接口。
5.根据权利要求2所述的方法,其中,通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件包括:
通过所述内核引擎,根据待处理区块链事务请求,基于账本组件接口产生账本数据读请求、账本数据写请求和账本数据校验请求,根据所述账本数据读请求、账本数据写请求和账本数据校验请求调用所述账本组件,以对区块链的账本数据进行处理。
6.根据权利要求5所述的方法,还包括:
在区块链节点启动时,通过所述内核引擎实例化所述账本组件。
7.一种区块链系统的运行装置,所述装置包括:
待处理区块链数据获取模块,用于通过区块链系统的内核引擎,获取待处理区块链数据;
账本组件调用请求产生模块,用于通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件;其中,所述账本组件用于基于区块链账本规则对账本数据进行处理。
8.根据权利要求7所述的装置,其中,所述装置还包括:区块链账本数据处理模块,具体用于在所述通过所述内核引擎,对所述待处理区块链数据进行处理,并在处理过程中基于账本组件接口产生账本组件调用请求,根据所述账本组件调用请求调用对应的账本组件以后,通过所述账本组件执行所述账本组件调用请求,以对区块链账本数据进行处理。
9.根据权利要求7所述的装置,其中,所述待处理区块链数据为待处理事务请求,所述待处理事务请求的账本数据格式与所述账本组件的账本数据格式相同。
10.根据权利要求7所述的装置,其中,账本组件接口包括下述至少一种:
打包区块矿工地址获取接口;
区块高度获取接口;
区块标识获取接口;
共识扩展存储区获取接口;
区块打包时间获取接口;
预定区块字段设置接口;
当前区块标识计算接口;
前一区块标识计算接口;
矿工公钥获取接口;
矿工签名获取接口。
11.根据权利要求8所述的装置,其中,账本组件调用请求产生模块,具体用于通过所述内核引擎,根据待处理区块链事务请求,基于账本组件接口产生账本数据读请求、账本数据写请求和账本数据校验请求,根据所述账本数据读请求、账本数据写请求和账本数据校验请求调用所述账本组件,以对区块链的账本数据进行处理。
12.根据权利要求11所述的装置,还包括:
账本组件注册模块,用于在区块链节点启动时,通过所述内核引擎实例化所述账本组件。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的区块链系统的运行方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的区块链系统的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110652735.2A CN113254114B (zh) | 2021-06-11 | 2021-06-11 | 区块链系统的运行方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110652735.2A CN113254114B (zh) | 2021-06-11 | 2021-06-11 | 区块链系统的运行方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254114A true CN113254114A (zh) | 2021-08-13 |
CN113254114B CN113254114B (zh) | 2022-03-01 |
Family
ID=77187564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110652735.2A Active CN113254114B (zh) | 2021-06-11 | 2021-06-11 | 区块链系统的运行方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254114B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949487A (zh) * | 2020-08-14 | 2020-11-17 | 杭州溪塔科技有限公司 | 一种模块可动态插拔的区块链监控系统及方法 |
US20210143980A1 (en) * | 2019-11-13 | 2021-05-13 | First Genesis, Inc. | BLOCKCHAIN PLATFORM AS A SERVICE (BPaaS) |
-
2021
- 2021-06-11 CN CN202110652735.2A patent/CN113254114B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210143980A1 (en) * | 2019-11-13 | 2021-05-13 | First Genesis, Inc. | BLOCKCHAIN PLATFORM AS A SERVICE (BPaaS) |
CN111949487A (zh) * | 2020-08-14 | 2020-11-17 | 杭州溪塔科技有限公司 | 一种模块可动态插拔的区块链监控系统及方法 |
Non-Patent Citations (1)
Title |
---|
百度: ""国内首个区块链开源工作组成立 百度首批加入并捐赠超级链内核"", 《HTTPS://BAIJIAHAO.BAIDU.COM/S?ID=1680598369594774842&WFR=SPIDER&FOR=PC》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254114B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230057335A1 (en) | Deployment of self-contained decision logic | |
US8788928B2 (en) | System and methodology for development of stream processing applications utilizing spreadsheet interface | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
US20210208854A1 (en) | System and method for enhancing component based development models with auto-wiring | |
CN113110963A (zh) | 业务处理方法、业务处理装置、电子设备及可读存储介质 | |
US20170351506A1 (en) | Automating feature graduation | |
CN111427971B (zh) | 用于计算机系统的业务建模方法、装置、系统和介质 | |
US20170046175A1 (en) | Enhanced configuration and property management system | |
US20220224545A1 (en) | Method and apparatus for operating blockchain system, device and storage medium | |
US9595014B1 (en) | System and method for executing workflow instance and modifying same during execution | |
KR20220072946A (ko) | 코드 저장소와 연동하여 원클릭 배포 서비스를 제공하는 방법 및 시스템 | |
CN113254114B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN114327802B (zh) | 区块链访问链外数据的方法、装置、设备和介质 | |
CN113110920A (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN113110921B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN115033233A (zh) | 一种接口调用方法、装置、电子设备及存储介质 | |
CN113254168B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN115484303A (zh) | 工厂微服务系统、方法、设备和存储介质 | |
CN110648081A (zh) | 用于计算系统的业务建模方法、装置和计算机系统 | |
US11949761B2 (en) | Techniques for distributed interface component generation | |
CN113515326B (zh) | 数据转换方法、装置、电子设备以及存储介质 | |
US20240187501A1 (en) | Techniques for distributed interface component generation | |
US20240005200A1 (en) | Generation of inference logic from training-time artifacts for machine learning model deployments | |
CN112055057B (zh) | 一种Web系统动态扩展的方法及系统和设备 | |
CN114296952A (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 |