一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种框架式区块链应用的兼容运行方法及装置与流程

2022-04-27 13:54:37 来源:中国专利 TAG:


1.本说明书涉及区块链技术领域,尤其涉及一种框架式区块链应用的兼容运行方法及装置。


背景技术:

2.一般认为,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式。
3.其中,可编程区块链支持用户在可编程区块链网络中创建并调用一些用于完成业务的逻辑,也即智能合约,或称区块链应用;为了提高开发效率,市面上存在一些区块链应用的开发框架,以减少开发人员的重复劳动,但这些开发框架往往只针对一种预设的区块链环境,导致基于这些框架开发的区块链应用无法在其他区块链上直接运行。


技术实现要素:

4.有鉴于此,本说明书公开了一种框架式区块链应用的兼容运行方法和装置。
5.根据本说明书实施例的第一方面,公开了一种框架式区块链应用的兼容运行方法,其中,目标区块链应用被与运行时智能合约一同打包部署在目标区块链上,所述目标区块链应用为基于目标区块链应用开发框架开发的、框架式的目标区块链应用,所述运行时智能合约由所述目标区块链应用开发框架提供,所述目标区块链通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为所述目标区块链的兼容链操作的方式,对所述运行时智能合约提供兼容支持;所述方法包括:通过所述目标区块链应用开发框架提供的接口服务,接收用户针对所述目标区块链应用的目标请求;将所述目标请求转发至目标区块链的兼容连接组件,以将所述目标请求转换为受所述运行时智能合约支持的目标操作指令;将所述目标操作指令传入所述运行时智能合约,并调用所述运行时智能合约中的解析执行逻辑,将所述目标操作指令解析为原生链操作,再转换为所述目标区块链的兼容链操作并执行,得到并返回对应的运行结果。
6.可选的,所述通过目标区块链应用开发框架提供的接口服务,接收用户针对目标区块链应用的目标请求,包括:通过目标区块链应用开发框架提供的、表示性状态转移rest风格的应用编程接口接收用户针对目标区块链应用的业务请求,并将接收到的所述业务请求转换为针对区块链的目标请求。
7.可选的,所述目标区块链包括多条可选区块链;所述将所述目标请求转发至目标区块链的兼容连接组件,包括:获取用于指示实际使用的可选区块链的链标识;
将所述目标请求转发至所述链标识指示的可选区块链的兼容连接组件。
8.可选的,所述目标区块链的兼容连接组件还对接到所述目标区块链应用开发框架提供的身份证书ca;所述将所述目标请求转换为受所述运行时智能合约支持的目标操作指令,包括:校验所述目标区块链的兼容连接组件持有的身份证书的合法性,并在未持有合法的身份证书的情况下向所述身份证书ca申请合法的身份证书;将所述目标请求转换为受所述运行时智能合约支持的目标操作指令,并使用所述身份证书,对转换得到的目标操作指令进行签名。
9.可选的,所述将所述目标操作指令传入所述运行时智能合约,包括:构造携带所述目标操作指令和所述签名的、针对所述运行时智能合约的调用交易,并发送到区块链上,以在通过校验所述签名确认所述目标操作指令合法的情况下,将所述目标操作指令传入所述运行时智能合约。
10.可选的,所述方法还包括:在所述目标区块链的微服务架构中用于执行交易的执行器中,获取事件关注列表;所述事件关注列表中记载有需要关注的事件的特征;监听所述运行时智能合约中产生的事件,将其中与所述事件关注列表中需要关注的事件的特征相匹配的目标事件写入所述目标区块链的兼容连接组件的输入流,以使所述目标区块链的兼容连接组件从所述输入流中获取到所述目标事件、并向所述用户反馈。
11.根据本说明书实施例的第二方面,公开了一种框架式区块链应用的兼容运行装置,其中,基于目标区块链应用开发框架开发的、框架式的目标区块链应用,被与所述目标区块链应用开发框架提供的运行时智能合约一同打包部署在目标区块链上;所述目标区块链通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为所述目标区块链的兼容链操作的方式,对所述运行时智能合约提供兼容支持;所述装置包括:接收模块,通过所述目标区块链应用开发框架提供的接口服务,接收用户针对所述目标区块链应用的目标请求;转发模块,将所述目标请求转发至目标区块链的兼容连接组件,以将所述目标请求转换为受所述运行时智能合约支持的目标操作指令;执行模块,将所述目标操作指令传入所述运行时智能合约,并调用所述运行时智能合约中的解析执行逻辑,将所述目标操作指令解析为原生链操作,再转换为所述目标区块链的兼容链操作并执行,得到并返回对应的运行结果。
12.可选的,所述接收模块进一步:通过目标区块链应用开发框架提供的、表示性状态转移rest风格的应用编程接口接收用户针对目标区块链应用的业务请求,并将接收到的所述业务请求转换为针对区块链的目标请求。
13.可选的,所述目标区块链包括多条可选区块链;所述转发模块进一步:获取用于指示实际使用的可选区块链的链标识;将所述目标请求转发至所述链标识指示的可选区块链的兼容连接组件。
14.可选的,所述目标区块链的兼容连接组件还对接到所述目标区块链应用开发框架提供的身份证书ca;
所述转发模块进一步:校验所述目标区块链的兼容连接组件持有的身份证书的合法性,并在未持有合法的身份证书的情况下向所述身份证书ca申请合法的身份证书;将所述目标请求转换为受所述运行时智能合约支持的目标操作指令,并使用所述身份证书,对转换得到的目标操作指令进行签名。
15.可选的,所述执行模块进一步:构造携带所述目标操作指令和所述签名的、针对所述运行时智能合约的调用交易,并发送到区块链上,以在通过校验所述签名确认所述目标操作指令合法的情况下,将所述目标操作指令传入所述运行时智能合约。
16.可选的,所述装置还包括:事件反馈模块,在所述目标区块链的微服务架构中用于执行交易的执行器中,获取事件关注列表;所述事件关注列表中记载有需要关注的事件的特征;监听所述运行时智能合约中产生的事件,将其中与所述事件关注列表中需要关注的事件的特征相匹配的目标事件写入所述目标区块链的兼容连接组件的输入流,以使所述目标区块链的兼容连接组件从所述输入流中获取到所述目标事件、并向所述用户反馈。
17.可选的,所述目标区块链应用开发框架为hyperledger composer框架,所述运行时智能合约为composer-runtime-hlfv1智能合约,所述身份证书为基于x.509证书体系的身份证书。
18.根据本说明书实施例的第三方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
19.根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
20.以上技术方案中,由于目标区块链能够兼容支持目标区块链应用开发框架提供的运行时智能合约,而基于该目标区块链应用开发框架开发的目标区块链应用与运行时智能合约被打包部署在该目标区块链上,因此,该目标区块链应用能够在该目标区块链上兼容部署;而且,由于用户针对该目标区块链应用的目标请求能够被转换为受上述运行时智能合约支持的目标操作指令以使运行时智能合约产生原生链操作,再将上述原生链操作转换为上述目标区块链支持的兼容链操作并执行,使得用户的指令最终得到兼容运行结果作为响应。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
22.图1是本说明书示出的一种智能合约的部署与调用的示例图;图2是本说明书示出的一种框架式区块链应用的兼容运行方法的流程示例图;图3是本说明书示出的一种软件逻辑在兼容运行的各个层次中进行形式转换的流程示例图;
图4是本说明书示出的一种框架式区块链应用的兼容运行装置的结构示例图;图5是本说明书示出的一种用于框架式区块链应用的兼容运行的计算机设备的结构示例图。
具体实施方式
23.为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
24.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一致的系统和方法的例子。
25.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.通常认为,区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式,根据所有权的区别可以被分为公有链、私有链、联盟链等等类型,根据是否支持编程则可以分为可编程区块链以及不可编程区块链。
28.其中,可编程区块链支持用户在可编程区块链网络中创建并调用一些复杂的逻辑,也即智能合约;不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
29.以可编程区块链为例,支持用户在可编程区块链网络中创建并调用一些复杂的逻辑。可编程区块链作为一个可编程区块链,其核心是虚拟机(vm),每个可编程区块链节点都可以运行vm。vm通常被设计为图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在可编程区块链中发布和调用智能合约就是在vm上运行的。由于智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
30.请参见图1,图1是本说明书示出的一种创建智能合约和调用智能合约的示意图。可编程区块链中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链
等过程。可编程区块链中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的vm可以分别执行该交易,将智能合约代码分布式的运行在可编程区块链网络中每个节点的虚拟机中。
31.在区块链的实际应用中,常常将具体的业务逻辑以智能合约的方式部署在区块链上,以实现业务逻辑的自动、可信执行,为了提高开发效率,市面上存在一些区块链应用的开发框架,以减少开发人员的重复劳动,但这些开发框架往往只针对一种预设的区块链环境,导致基于这些框架开发的区块链应用无法在其他区块链上直接运行。
32.基于此,本说明书提出一种从区块链底层对上述应用开发框架提供兼容运行环境,再利用应用开发框架本身对于上层业务请求的兼容性进一步减少开发人员重复劳动,从而突破应用开发框架的原生底层链类型限制的技术方案。
33.在具体实现时,可以复用待兼容的区块链应用开发框架提供的接口服务、以及运行时智能合约,一方面通过上述接口服务接收用户针对目标区块链应用的目标请求,另一方面通过区块链底层对上述运行时智能合约的兼容运行来实现基于上述区块链应用开发框架的区块链应用的部署和运行、并将对原生链的操作映射为对目标区块链的兼容链操作,最终得到兼容运行的结果。
34.在以上技术方案中,一方面,由于目标区块链能够兼容支持目标区块链应用开发框架提供的运行时智能合约,而基于该目标区块链应用开发框架开发的目标区块链应用与运行时智能合约被打包部署在该目标区块链上,因此,该目标区块链应用能够在该目标区块链上兼容部署;而且,由于用户针对该目标区块链应用的目标请求能够被转换为受上述运行时智能合约支持的目标操作指令以使运行时智能合约产生原生链操作,再将上述原生链操作转换为上述目标区块链支持的兼容链操作并执行,使得用户的指令最终得到兼容运行结果作为响应。
35.下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
36.请参考图2,图2是本说明书一实施例提供的一种框架式区块链应用的兼容运行方法的流程示例图,其中,目标区块链应用可以被与运行时智能合约一同打包部署在目标区块链上,该目标区块链应用为基于目标区块链应用开发框架开发的、框架式的目标区块链应用,该运行时智能合约由该目标区块链应用开发框架提供,该目标区块链可以通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为该目标区块链的兼容链操作的方式,对该运行时智能合约提供兼容支持;本方法可以应用于一个包含区块链的业务系统中;其中既包含区块链上执行的操作,也包含区块链之外执行的操作;因此,下述方法步骤中的执行主体宏观上均可视为该业务系统,而微观上则可以落实到具体的区块链或者其他服务端上。上述方法可以包括如下步骤:s201,通过所述目标区块链应用开发框架提供的接口服务,接收用户针对所述目标区块链应用的目标请求;s202,将所述目标请求转发至目标区块链的兼容连接组件,以将所述目标请求转换为受所述运行时智能合约支持的目标操作指令;s203,将所述目标操作指令传入所述运行时智能合约,并调用所述运行时智能合约中的解析执行逻辑,将所述目标操作指令解析为原生链操作 ,再转换为所述目标区块链
的兼容链操作并执行 ,得到并返回对应的运行结果。
37.上述目标区块链应用开发框架,可以指任意的、待实现底层链兼容的区块链应用开发框架;如前所述,为了提高开发效率,市面上存在一些区块链应用的开发框架往往只针对一种预设的区块链环境,导致基于这些框架开发的区块链应用无法在其他区块链上直接运行,即,对其他底层链不兼容;因此,本技术的目的即为将原仅与特定区块链兼容的区块链应用的开发框架,在对其他区块链进行一定改造的情况下,普适地实现对于其他区块链的兼容。
38.上述目标区块链应用,可以指基于上述目标区块链应用开发框架开发的框架式区块链应用;通常,为了使应用开发人员无需过多考虑区块链的底层交互,而专注于业务逻辑设计,应用开发框架通常会提供对应的运行时(runtime)智能合约,框架式区块链应用可以与对应的运行时智能合约打包部署在区块链上,并具体由该运行时智能合约将业务逻辑转换为底层链支持的原生链操作;因此,基于以上逻辑分析,前述基于这些框架开发的区块链应用对其他底层链不兼容,关键是现有方案中用于承载框架式区块链应用的运行时智能合约无法与不确定的多种底层链相兼容。
39.上述目标区块链,则可以指任意支持智能合约的、节点上可以搭载容器的区块链;在此基础上,该链可以被设计为通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为该目标区块链的兼容链操作的方式,对前述运行时智能合约提供兼容支持;在本说明书中,区块链也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的性质。区块链一般被划分为三种类型:公有链(public blockchain),私有链(private blockchain)和联盟链(consortium blockchain)。此外,还可以有上述多种类型的结合,比如私有链 联盟链、联盟链 公有链等。通常各种类型的区块链性质可能存在差异,进而可以用于满足不同的技术需求;例如,如果希望获得最高的去中心化程度,则可以选用公有链;如果希望兼顾去中心化程度和性能,则可以选用联盟链等等。在实施中,如果上述区块链采用联盟链的形式,那么组成上述区块链的区块链节点则可以由相关管理部门、普通用户、网络运营商等等多种类型的实体各自提供,以保证区块链记账权的相对公正合理;又例如,如果上述区块链采用通用的可编程区块链形式,则可以使用对应的、通用的智能合约构建相关功能,并取得更高的可信度;可见,各种形式的区块链各有优势,本领域技术人员可以根据具体的需求自行选择上述区块链的类型,本说明书不限定上述区块链的具体类型。
40.可以理解的是,上述区块链可以通过区块链即服务(baas,blockchain as a service)平台对外交互。通常,baas平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的应用的方式,面向与baas平台连接的客户端侧计算设备,提供灵活可定制的区块链服务。例如,在一个例子中,合约状态查询服务器需要与区块链进行数据通信,则baas平台可以提供诸如mq(message queue,消息队列)服务应用;与baas平台连接的合约状态查询服务器,可以订阅baas平台连接的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而baas平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于mq服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的合约状态查询
服务器能够得到与上述合约事件相关的通知。
41.因此,在本说明书中,上述区块链的具体形态和种类可以根据具体的业务场景、需求以及条件由相关技术人员自行选择适配,本说明书无需更多限定。
42.在本说明书中,系统可以通过上述目标区块链应用开发框架提供的接口服务,接收用户针对上述目标区块链应用的目标请求;具体而言,由于并非所有的区块链应用的用户均熟悉区块链的交易构造等交互方式,因此区块链应用开发框架通常能够提供接口服务,用以接收用户针对基于其开发的区块链应用的调用请求。
43.通常认为,软件的具体调用方式以适应用户的习惯和需求为宜,也就是说,在调用软件的具体指令信息能够传达的前提下,具体指令信息的形式(即,上述目标请求的形式)可以根据具体需求而定,本说明书无需进行详细的设定。
44.在示出的一种实施方式中,上述通过目标区块链应用开发框架提供的接口服务,接收用户针对目标区块链应用的目标请求,可以包括:通过目标区块链应用开发框架提供的、表示性状态转移rest风格的应用编程接口接收用户针对目标区块链应用的业务请求,并将接收到的上述业务请求转换为针对区块链的目标请求。在本领域中,rest(representational state transfer)表象化状态转变(表述性状态转变)在2000年被提出,基于http、uri、xml、json等标准和协议,支持轻量级、跨平台、跨语言的架构设计,通常被认为是web服务的一种新的架构风格或者思想。采用表示性状态转移rest风格的应用编程接口完成上述相关操作,有利于充分利用表示性状态转移rest风格的应用编程接口所具备的高通用性、高便携性的性质,改善系统的性能、提升对用户的友善度。
45.在本说明书中,可以将上述目标请求转发至目标区块链的兼容连接组件,以将上述目标请求转换为受上述运行时智能合约支持的目标操作指令;具体而言,通常每一种区块链都可能具有各自的操作指令形式,例如,不同的区块链发起的交易的格式都有可能存在差异,因此上述系统中可以设置与目标区块链相对应的兼容连接组件(或者说,可以将兼容连接组件视为目标区块链的一个附属模块),以使前述接口服务接收到的目标请求能够被转换为被上述目标区块链兼容的目标操作指令;在一种典型实施方式中,上述目标操作指令可以是针对上述运行时智能合约的调用交易,也可以指调用交易中携带的调用参数/参数集等等;当然可以理解的是,由于前述运行时智能合约能够被上述目标区块链兼容支持,因此,该目标操作指令也就受前述运行时智能合约支持。
46.在示出的一种实施方式中,上述目标区块链可以包括多条可选区块链;则在此情况下,上述将上述目标请求转发至目标区块链的兼容连接组件的过程,具体可以包括:首先获取用于指示实际使用的可选区块链的链标识;再将上述目标请求转发至上述链标识指示的可选区块链的兼容连接组件。由于采用区块链应用开发框架完成区块链应用开发,目的就是减少重复劳动,提高软件开发效率,而“一处开发、多处运行”则是另一种能够显著提升软件开发效率的开发构想;在一些实施场景下,上述接口服务则可能对接到了多个可选区块链的兼容连接组件,可以通过识别实际使用的可选区块链的链标识的方式,将上述目标请求转发至实际使用的可选区块链的兼容连接组件。采用此方案,可以进一步减少重复劳动,提高软件开发效率。
47.在示出的一种实施方式中,上述技术方案还可以提供安全认证功能;具体而言,上述目标区块链的兼容连接组件还可以对接到上述目标区块链应用开发框架提供的身份证
书ca;则上述将上述目标请求转换为受上述运行时智能合约支持的目标操作指令的过程,具体可以包括:首先可以校验上述目标区块链的兼容连接组件持有的身份证书的合法性,并在未持有合法的身份证书的情况下向上述身份证书ca申请合法的身份证书;其次可以将上述目标请求转换为受上述运行时智能合约支持的目标操作指令,并使用上述身份证书,对转换得到的目标操作指令进行签名。
48.应用此方案,可以保障所有转换的到的目标操作指令都能够经过合法的身份证书的签名,保障区块链应用的调用过程的安全。
49.在本说明书中,可以将上述目标操作指令传入上述运行时智能合约,并调用上述运行时智能合约中的解析执行逻辑,将上述目标操作指令解析为原生链操作,再转换为上述目标区块链的兼容链操作并执行,得到并返回对应的运行结果。在本步骤中,由于上述目标区块链通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为上述目标区块链的兼容链操作的方式,对上述运行时智能合约提供兼容支持,因此上述运行时智能合约可以在上述目标区块链的节点搭载的容器中运行,通过其内置的解析执行逻辑将上述目标操作指令解析为原生链操作,再由上述目标区块链的兼容机制将原生链操作进一步转换为能够被上述目标区块链兼容的兼容链操作。
50.举例而言,假设目标区块链为区块链a,而上述运行时智能合约是针对区块链b开发的;那么,上述运行时智能合约由于运行在上述区块链a的节点搭载的容器中,因此与直接运行在区块链b中的情况类似,其中,产生的各种对链的读写操作也是针对区块链b的原生读写操作,在此基础上,区块链a的节点则可以通过与容器的数据流获取到上述针对区块链b的原生读写操作,加以转换,得到适配区块链a的兼容读写操作,再加以执行,也就是实现了区块链a对于原本适配区块链b的运行时智能合约的兼容;而目标区块链应用依托于上述运行时智能合约运行,那么目标区块链应用也就实现了在区块链a中的兼容运行。
51.请参见图3,图3是本说明书示出的一种软件逻辑在兼容运行的各个层次中进行形式转换的流程示例图;在该示例中,兼容运行被划分为了四个基本层次,即,用户交互层,合约调用层,逻辑解析层,底层适配层;具体而言,在用户交互层,主要的目的是获取用户的交互性指示,软件逻辑的载体是目标请求,在实施时则可以采用rest风格指令的形式;在合约调用层,主要的目的是完成运行时智能合约的调用,将前述用户的交互性指示以兼容的方式引入智能合约,软件逻辑的载体是目标操作指令,在实施时则可以采用合约调用交易的形式;在逻辑解析层,主要目的是获得与业务逻辑相匹配的原生链操作,例如原生链的读写操作,这部分属于对应用开发框架的复用,可以提高软件开发效率;而在底层适配层,则可以将原本与目标区块链不兼容的原生链的读写操作转换为能够被目标区块链兼容的兼容链的读写操作。
52.可以理解的是,上述四个层次仅为便于理解方案的逻辑层次示例,并不对本技术技术方案造成额外限定。
53.在示出的一种实施方式中,上述将上述目标操作指令传入上述运行时智能合约的过程可以包括:构造携带上述目标操作指令和上述签名的、针对上述运行时智能合约的调用交易,并发送到区块链上,以在通过校验上述签名确认上述目标操作指令合法的情况下,将上述目标操作指令传入上述运行时智能合约。
54.当然可以理解的是,上述目标操作指令关联的签名既可以在上述节点的容器之外
进行验证,也可以在上述节点的容器内部进行验证;也就是说,既可以在将上述目标操作指令传入上述运行时智能合约之前,对与上述目标操作指令关联的签名进行认证,认证通过则将该签名进行“剥离”,将上述目标操作指令本身传入运行在容器中的上述运行时智能合约;也可以直接将上述目标操作指令与关联的签名一同传入上述运行在容器中的上述运行时智能合约,再在容器中由上述运行时智能合约进行签名的校验。
55.在示出的一种实施方式中,上述系统中还可以包括事件机制;具体而言,上述方法还可以包括:在上述目标区块链的微服务架构中用于执行交易的执行器中,获取事件关注列表;上述事件关注列表中记载有需要关注的事件的特征;监听上述运行时智能合约中产生的事件,将其中与上述事件关注列表中需要关注的事件的特征相匹配的目标事件写入上述目标区块链的兼容连接组件的输入流,以使上述目标区块链的兼容连接组件从上述输入流中获取到上述目标事件、并向上述用户反馈。
56.其中,上述事件的特征可以包括下列任意一种或者多种的组合:事件的流水号标识,事件的发起方标识,事件的优先级,事件的触发时间戳。
57.举例而言,可以将“转账完成”的事件类型标识符作为需要关注的事件的特征,则在监听到的、上述运行时智能合约中产生的众多事件中,事件类型标识符为“转账完成”的事件都可以被作为目标事件,写入上述目标区块链的兼容连接组件的输入流,从而使得上述目标区块链的兼容连接组件从上述输入流中获取到上述目标事件、并进一步向上述用户反馈。
58.应用此方案,可以通过事件的方式将目标区块链应用的执行过程中出现的各类事件按预设的规则向用户进行反馈,从而满足用户对于目标区块链应用的执行状态的观测需求。
59.当然可以理解的是,在上述机制基础上,本领域技术人员还可以进行进一步的细化设计,例如,搭配规则引擎,将满足某识别条件的事件通过第一渠道进行反馈,而将满足另一识别条件的事件通过第二渠道进行反馈,从而实现更复杂的事件推送和监听功能。
60.在示出的一种实施方式中,上述目标区块链应用开发框架为hyperledger composer框架,上述运行时智能合约为composer-runtime-hlfv1智能合约,上述身份证书为基于x.509证书体系的身份证书。一般认为,hyperledger composer是一种用于简化和加速区块链开发的开源的、可拓展的开发框架和工具集,可以提供业务建模的语言,用户通过这种建模语言定义自己的业务网络,得到的这个业务网络定义将被打包,连同解析运行它的composer runtime一起作为智能合约部署在区块链上,同时可以将区块链上的逻辑以restful api(rest风格的接口)的形式暴露出来供外界应用使用。由于hyperledger composer已经不再维护,社区也不再提供支持,这为已有的应用带来升级和维护的困难。使用官方实现的composer-runtime-hlfv1智能合约作为运行时智能合约,极大地降低了开发成本,并且不存在runtime实现上的差异,使得已有的基于composer开发的使用fabric后端的区块链应用可以无缝迁移到其他区块链上。
61.上述内容即为本说明书针对所述框架式区块链应用的兼容运行方法的全部实施例。基于以上实施例可知,目标区块链应用不仅能够在该目标区块链上兼容部署,而且用户针对该目标区块链应用的目标请求能够被转换为受上述运行时智能合约支持的目标操作指令以使运行时智能合约产生原生链操作,再将上述原生链操作转换为上述目标区块链支
持的兼容链操作并执行,使得用户的指令最终得到兼容运行结果作为响应。
62.本说明书还提供了对应的框架式区块链应用的兼容运行装置的实施例如下:本说明书提出一种框架式区块链应用的兼容运行装置,其中,基于目标区块链应用开发框架开发的、框架式的目标区块链应用,被与所述目标区块链应用开发框架提供的运行时智能合约一同打包部署在目标区块链上;所述目标区块链通过在节点搭载的容器中运行智能合约、并将容器中产生的原生链操作转换为所述目标区块链的兼容链操作的方式,对所述运行时智能合约提供兼容支持;该框架式区块链应用的兼容运行装置的结构示例如图4所示,可以包括下列模块:接收模块401,通过所述目标区块链应用开发框架提供的接口服务,接收用户针对所述目标区块链应用的目标请求;转发模块402,将所述目标请求转发至目标区块链的兼容连接组件,以将所述目标请求转换为受所述运行时智能合约支持的目标操作指令;执行模块403,将所述目标操作指令传入所述运行时智能合约,并调用所述运行时智能合约中的解析执行逻辑,将所述目标操作指令解析为原生链操作,再转换为所述目标区块链的兼容链操作并执行,得到并返回对应的运行结果。
63.在示出的一种实施方式中,上述接收模块401可以进一步:通过目标区块链应用开发框架提供的、表示性状态转移rest风格的应用编程接口接收用户针对目标区块链应用的业务请求,并将接收到的上述业务请求转换为针对区块链的目标请求。应用该方案,可以充分利用表示性状态转移rest风格的应用编程接口所具备的高通用性、高便携性的性质,改善系统的性能、提升对用户的友善度。
64.在示出的一种实施方式中,上述目标区块链可以包括多条可选区块链;上述转发模块402可以进一步:获取用于指示实际使用的可选区块链的链标识;将上述目标请求转发至上述链标识指示的可选区块链的兼容连接组件。采用此方案,可以进一步减少重复劳动,提高软件开发效率。
65.在示出的一种实施方式中,上述目标区块链的兼容连接组件还对接到上述目标区块链应用开发框架提供的身份证书ca;上述转发模块402可以进一步:校验上述目标区块链的兼容连接组件持有的身份证书的合法性,并在未持有合法的身份证书的情况下向上述身份证书ca申请合法的身份证书;将上述目标请求转换为受上述运行时智能合约支持的目标操作指令,并使用上述身份证书,对转换得到的目标操作指令进行签名。应用此方案,可以保障所有转换的到的目标操作指令都能够经过合法的身份证书的签名,保障区块链应用的调用过程的安全。
66.在示出的一种实施方式中,上述执行模块403可以进一步:构造携带上述目标操作指令和上述签名的、针对上述运行时智能合约的调用交易,并发送到区块链上,以在通过校验上述签名确认上述目标操作指令合法的情况下,将上述目标操作指令传入上述运行时智能合约。
67.在示出的一种实施方式中,上述装置还可以包括:事件反馈模块,在上述目标区块链的微服务架构中用于执行交易的执行器中,获取事件关注列表;上述事件关注列表中记载有需要关注的事件的特征;监听上述运行时智能合约中产生的事件,将其中与上述事件关注列表中需要关注的事件的特征相匹配的目标事件写入上述目标区块链的兼容连接组
件的输入流,以使上述目标区块链的兼容连接组件从上述输入流中获取到上述目标事件、并向上述用户反馈。应用此方案,可以通过事件的方式将目标区块链应用的执行过程中出现的各类事件按预设的规则向用户进行反馈,从而满足用户对于目标区块链应用的执行状态的观测需求。
68.在示出的一种实施方式中,上述目标区块链应用开发框架可以是hyperledgercomposer框架,上述运行时智能合约可以是composer-runtime-hlfv1智能合约,上述身份证书为基于x.509证书体系的身份证书。由于hyperledger composer已经不再维护,社区也不再提供支持,这为已有的应用带来升级和维护的困难。使用官方实现的composer-runtime-hlfv1智能合约作为运行时智能合约,极大地降低了开发成本,并且不存在runtime实现上的差异,使得已有的基于composer开发的使用fabric后端的区块链应用可以无缝迁移到其他区块链上。
69.本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的框架式区块链应用的兼容运行方法。
70.图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
71.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
72.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
73.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
74.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
75.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
76.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
77.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的框架式区块链应用的兼容运行方法。
78.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
79.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
80.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
81.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
82.以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献