发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种区块链应用程序处理方法、装置及区块链应用系统。
根据本申请实施例的一个方面,提供了一种区块链应用程序处理方法,包括:
获取待处理应用程序对应的部署请求,所述部署请求中包括所述待处理应用程序对应的静态资源文件及合约配置文件;
解析所述静态资源文件得到所述待处理应用程序对应的应用部署文件,及解析所述合约配置文件得到合约部署文件;
对所述待处理应用程序执行所述应用部署文件对应的部署操作;
将所述合约部署文件发送到合约服务器,由所述合约服务器执行对所述合约部署文件的安装。
可选的,所述解析所述静态资源文件得到所述待处理应用程序对应的应用部署文件,包括:
生成所述静态资源文件中指定的应用类型对应的文件模板及目录结构;
将所述文件模板组装到所述目录结构中各目录下,生成所述应用部署文件。
可选的,所述将所述文件模板组装到所述目录结构中各目录下,包括:
对所述文件模板进行校验;
当校验得到所述文件模板中存在资源配置参数缺失时,根据预设规则补全所述资源配置参数。
可选的,所述解析所述合约配置文件得到合约部署文件,包括:
从所述合约配置文件中解析得到智能合约源代码及合约部署位置信息;
根据所述智能合约源代码生成智能合约文件;
将所述智能合约文件及合约部署位置信息压缩得到所述合约部署文件。
可选的,当所述部署操作为安装操作时,所述对所述待处理应用程序执行所述应用部署文件对应的部署操作,包括:
调用容器集群接口;
通过所述容器集群接口将所述应用部署文件部署到容器集群以安装所述待处理应用程序;
当所述部署操作为更新操作时,所述对所述待处理应用程序执行所述应用部署文件对应的部署操作,包括:
调用容器集群接口;
通过所述容器集群接口使用所述应用部署文件更新所述容器集群中所述待处理应用程序对应的资源文件。
可选的,所述方法还包括:
从接收到的查询请求中获取所述待处理应用程序的应用标识;
调用容器集群接口;
通过所述容器集群接口,从容器集群中查询所述应用标识对应的运行状态信息。
可选的,所述方法还包括:
从接收到的卸载请求中获取所述待处理应用程序的应用标识;
调用容器集群接口;
通过所述容器集群接口,从所述容器集群中删除所述应用标识对应的资源文件。
根据本申请实施例的另一个方面,提供了一种区块链应用程序处理装置,包括:
获取模块,用于获取待处理应用程序对应的部署请求,所述部署请求中包括所述待处理应用程序对应的静态资源文件及合约配置文件;
解析模块,用于解析所述静态资源文件得到所述待处理应用程序对应的应用部署文件,及解析所述合约配置文件得到合约部署文件;
应用部署模块,用于对所述待处理应用程序执行所述应用部署文件对应的部署操作;
发送模块,用于将所述合约部署文件发送到合约服务器,由所述合约服务器执行对所述合约部署文件的安装。
根据本申请实施例的另一方面,还提供了一种区块链应用系统,包括:
区块链前端,用于获取对待处理应用程序的部署请求,将所述部署请求发送到区块链服务器,所述部署请求中包括所述待处理应用程序对应的静态资源文件及合约配置文件;
所述区块链服务器,用于将所述部署请求发送到区块链资源服务器;
所述区块链资源服务器,用于从所述部署请求的静态资源文件中解析得到所述待处理应用程序对应的应用部署文件,及从所述部署请求的合约配置文件中解析得到合约部署文件;对所述待处理应用程序执行所述应用部署文件对应的部署操作;将所述合约部署文件发送到合约服务器;
所述合约服务器,用于执行对所述合约部署文件的安装。
可选的,所述区块链资源服务器,用于从所述合约配置文件中解析得到智能合约源代码及合约部署位置信息;根据所述智能合约源代码生成智能合约文件;将所述智能合约文件及合约部署位置信息压缩得到所述合约部署文件;
所述合约服务器,用于对所述合约部署文件解压缩得到所述智能合约文件及合约部署位置信息,将所述智能合约文件安装到所述合约部署位置信息对应的区块链网络。
可选的,所述合约服务器,当智能合约在所述区块链网络及区块链账本安装成功时,生成合约部署信息;将所述合约部署信息上传至所述区块链服务器;
所述区块链服务器,用于当接收到所述区块链前端发送的合约查询请求时,将所述合约查询请求对应的合约部署信息发送到所述区块链前端;
所述区块链前端,用于对所述合约部署信息进行展示。
可选的,所述区块链前端,用于将获取到的卸载请求发送到所述区块链服务器;
所述区块链服务器,用于当获得所述区块链网络中该应用程序的所有参与方对卸载应用程序的同意信息时,将所述卸载请求发送到所述区块链资源服务器;
所述区块链资源服务器,用于从所述卸载请求中获取所述待处理应用程序的应用标识;调用容器集群接口;通过所述容器集群接口,从所述容器集群中删除所述应用标识对应的资源文件。
可选的,所述区块链前端,用于将获取到的更新请求发送到所述区块链服务器;
所述区块链服务器,用于当确定所述区块链网络中该应用程序的所有参与方对更新应用程序的同意信息满足预设条件时,将所述更新请求发送到所述区块链资源服务器;
所述区块链资源服务器,用于从所述更新请求中获取所述待处理应用程序的应用标识;调用容器集群接口;通过所述容器集群接口,在容器集群中更新所述应用标识对应的资源文件。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
可以在区块链网络运行的任意时刻,将用户需求的带有合约的应用程序部署到区块链网络中,无需重新组建区块链网络。并且,对于智能合约的安装,无需用户指定初始化参数,所述参数均配置在合约部署文件中,对于用户来说,无需多次操作并指定初始化参数,简化业务操作,实现一键安装智能合约。其次,由于Baas-Resources对用户上传的应用程序文件进行解析,转换为Baas平台所支持的应用部署文件,使得上链的应用程序不仅包括Baas平台支持范围内的应用,甚至第三方自主研发应用均可以,第三方只需提供Baas平台部署的标准静态文件即可。另外,用户可以根据业务需求,及时调整部署区块链网络中的应用程序,提高k8s的资源利用率。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种区块链应用系统的框图。如图1所示,本申请实施例涉及区块链应用系统(即Baas平台),涉及区块链前端(Baas-Web)10、区块链服务器(Baas-Server)20、区块链资源服务器(Baas-Resources)30及合约服务器(FabricTools)40。
基于本申请实施例,Baas-Web10增加对应用程序的管理功能,包括:部署应用程序到指定的区块链网络;更新、卸载已部署应用程序;邀请其他网络参与方安装应用程序;其他参与方申请安装应用程序;查看已部署应用程序的运行状态;查看已部署的所有应用程序;查看已部署应用的详情信息;等等。
Baas-Server20接收Baas-Web10发送业务请求,将具体操作指令发送给Baas-Resources;接收其他服务层(如FabricTools)上传信息,供Baas-Web10展示。
Baas-Resources30接收Baas-Server20发送的指令,并操作k8s/rancher底层服务,实现具体业务逻辑。
FabricTools40接收来自于Baas-Resources30发送的安装合约请求,部署合约。合约部署成功后,将部署的合约信息上传给Baas-Server20,供Baas-Web10展示。
下面首先对本发明实施例所提供的一种区块链应用程序处理方法进行介绍。
图2为本申请实施例提供的一种区块链应用程序处理方法的流程图。如图2所示,该方法应用于Baas-Resources30,包括以下步骤:
步骤S11,获取待处理应用程序对应的部署请求,部署请求中包括待处理应用程序对应的静态资源文件及合约配置文件。
其中,部署请求可以由区块链网络参与方的客户端上传到Baas-Web10,Baas-Web10通过Baas-Server20发送到Baas-Resources30。
可选的,该步骤中Baas-Resources30启动静态资源文件监听器,实时监听是否有文件传入。
步骤S12,解析静态资源文件得到待处理应用程序对应的应用部署文件,及解析合约配置文件得到合约部署文件。
其中,静态资源文件可以为Yaml格式,如部署请求中的静态资源文件为deploy.yaml。Baas-Resources30解析deploy.yaml,生成用于部署到k8s中的应用部署文件(chart部署包)。
Baas-Resources30还解析合约配置文件,生成zip格式的合约部署包。
步骤S13,对待处理应用程序执行应用部署文件对应的部署操作。
该步骤中,可以通过Helm将应用部署文件安装部署到k8s环境。
Helm是k8s的软件包管理器,主要用于k8s应用程序Chart的创建、打包、发布以及创建和管理本地和远程的Chart仓库。
步骤S14,将合约部署文件发送到合约服务器,由所述合约服务器执行对所述合约部署文件的安装。
其中,合约部署文件包括智能合约源代码及合约部署位置信息。Baas-Resources30从合约配置文件中解析得到智能合约源代码及合约部署位置信息,根据智能合约源代码及合约部署位置信息生成合约部署文件。
Baas-Resources30将合约部署文件发送到FabricTools40,FabricTools40根据合约部署文件,将智能合约安装到指定的区块链网络中。
本实施例中,通过上述步骤S11至步骤S14,可以在区块链网络运行的任意时刻,将用户需求的带有合约的应用程序部署到区块链网络中,无需重新组建区块链网络。并且,对于智能合约的安装,无需用户指定初始化参数,所述参数均配置在合约部署文件中,对于用户来说,无需多次操作并指定初始化参数,简化业务操作,实现一键安装智能合约。
其次,由于Baas-Resources对用户上传的应用程序文件进行解析,转换为Baas平台所支持的应用部署文件,使得上链的应用程序不仅包括Baas平台支持范围内的应用,甚至第三方自主研发应用均可以,第三方只需提供Baas平台部署的标准静态文件即可。
另外,用户可以根据业务需求,及时调整部署区块链网络中的应用程序,提高k8s的资源利用率。
再者,应用程序一旦发布,区块链网络中受邀请的用户均可以自主安装该应用,无需发布方同意或审批,且未被邀请的用户也可主动发起申请安装应用程序。
图3为本申请另一实施例提供的一种区块链应用程序处理方法的流程图。如图3所示,上述步骤S12中,解析静态资源文件得到待处理应用程序对应的应用部署文件,包括:
步骤S211,生成静态资源文件中指定的应用类型对应的文件模板及目录结构;
步骤S212,将文件模板组装到目录结构中各目录下,生成应用部署文件。
例如,对于静态资源文件deploy.yaml,Baas-Resources30中的文件解析器可根据deploy.yaml中指定的应用类型(如:deployment、service、secret、configmap等),生成对应的Yaml模版,同时生成chart目录结构。将Yaml模板组装到生成到chart目录结构下,中各目录下,生成应用部署文件chart包。
可选的,该文件解析器还对文件模板进行校验;当校验得到文件模板中存在资源配置参数缺失时,根据预设规则补全资源配置参数。从而生成标准chart部署包,供Helm安装部署到k8s中。
图4为本申请另一实施例提供的一种区块链应用程序处理方法的流程图。如图4所示,上述步骤S12中,解析合约配置文件得到合约部署文件,包括:
步骤S221,从合约配置文件中解析得到智能合约源代码及合约部署位置信息;
合约部署位置信息用于标识需要部署智能合约的区块链网络,如包括区块链网络标识。可选的,合约部署位置信息还可以包括该区块链网络对应的账本地址信息,即指定该应用程序对应的数据存储位置。
步骤S222,根据智能合约源代码生成智能合约文件;
例如,智能合约文件可以为go数据包。
步骤S223,将智能合约文件及合约部署位置信息压缩得到合约部署文件。
例如,将智能合约文件及合约部署位置信息压缩为ZIP包。
本实施例中,通过步骤S12对部署请求中静态资源文件及合约配置文件的解析,生成Baas平台所支持的部署文件,使得上链的应用程序不仅包括Baas平台支持范围内的应用,甚至第三方自主研发应用均可以,第三方只需提供Baas平台部署的标准静态文件即可。
可选的,本实施例在Baas平台上的部署操作可以包括:安装操作或更新操作。
其中,更新操作包括对应用程序的更新操作和/或对智能合约的更新操作。
在可选实施例中,当部署操作为安装操作时,上述步骤S13包括:
步骤S311,调用容器集群接口;
步骤S312,通过容器集群接口将应用部署文件部署到容器集群以安装待处理应用程序。
在可选实施例中,当部署操作为更新操作时,上述步骤S13包括:
步骤S321,调用容器集群接口;
步骤S322,通过容器集群接口使用应用部署文件更新容器集群中待处理应用程序对应的资源文件。
本实施例中,当对智能合约进行更新时,可以直接对新的智能合约进行安装,因此,更新智能合约与安装智能合约的过程基本相同,在此不再赘述。
本实施例中,带有合约的应用程序可同时在区块链网络运行过程中被部署,无需按部就班在区块链网络启动时安装应用程序,在区块链网络启动后再部署合约。
可选的,本实施例在Baas平台上对应用程序的操作还包括:查询或卸载。
图5为本申请另一实施例提供的一种区块链应用程序处理方法的流程图。如图5所示,该方法还包括以下步骤:
步骤S151,从接收到的查询请求中获取待处理应用程序的应用标识;
步骤S152,调用容器集群接口;
步骤S153,通过容器集群接口,从容器集群中查询应用标识对应的运行状态信息。
图6为本申请另一实施例提供的一种区块链应用程序处理方法的流程图。如图6所示,该方法还包括以下步骤:
步骤S161,从接收到的卸载请求中获取待处理应用程序的应用标识;
步骤S162,调用容器集群接口;
步骤S163,通过容器集群接口,从容器集群中删除所述应用标识对应的资源文件。
下面以一个具体的实例对区块链网络组建后,在该区块链网络中用户安装应用程序的流程进行详细说明。
A、B、C、D四个参与方共同构建区块链网络baasnet,创建账本baasledger,并部署执行合约baascontract。
因业务需求,需在已运行的baasnet上部署自主研发的应用myApp,且执行自主研发的合约myContract。此时,A发起,邀请B执行myApp。A将myApp应用及合约共同打包,并通过Baas平台提供的“应用商店”功能页面,指定部署的网络/账本等,上传/安装应用。
基于现有技术,不仅不支持自主研发的应用,且网络组建成功后,已部署组件不会再变更,若想添加新App应用,需重新组建新的网络。而且,合约只能在网络下通过合约页面上传指定的合约包方可部署安装,不支持合约可随App应用一键部署。
而基于上述方法实施例,可通过“应用商店”部署myApp应用到区块链网络,且会将合约myContract安装到指定网络、指定账本上,如baasnet网络baasledger账本上安装myContact合约。
此时还可通过查询功能模块,查看该区块链网络(baasnet)下创建的账本(baasledger)、已安装的合约(myContract)、已安装的应用(myApp)。
myApp部署完成后,受邀人B可选择“同意”/“拒绝”参与myApp;若B同意,则会在B的网络服务器部署及安装myApp和myContract。
B可将myApp公开出去,网络中其他参与者如C、D,可选择“申请加入”,待B批准后,会在C、D的网络服务器部署及安装myApp和myContract。
若后期有部署功能权限限制,发起者A可通过“应用商店”功能页面更新安装部署包,并通知所有已安装myApp和myContract的参与方进行同步更新。其他参与方同意后,发起方A才可更新。
若因某些原因,如资源不足等,可将不必要应用程序,如myApp通过baas平台“应用”列表页面卸载。首先发起方A通知所有参与方B、C、D卸载myApp;B、C、D接到通知后选择退出myApp应用,此时A即可直接删除myApp,释放资源空间。
下面分别对应用程序安装、邀请安装、申请安装、卸载、更新过程中,Bass-Web、Bass-Server及Bass-Resources之间的交互流程进行详细说明。
图7为本申请实施例提供的应用程序安装的时序图。如图7所示,基于上述方法实施例,应用程序安装的过程如下步骤:
步骤S401,用户在Bass-Web上打开安装应用程序页面;
步骤S402,Bass-Web从Bass-Server获取页面基础数据;
步骤S403,Bass-Server查询当前组织下所有区块链网络/账本数据;
步骤S404,Bass-Server将查询到的区块链网络/账本数据返回给Bass-Web;
步骤S405,Bass-Web将用户上传的应用程序安装包上传到Bass-Server;
步骤S406,Bass-Server将应用程序安装包上传到Bass-Resources;
步骤S407,Bass-Resources将上传成功/失败标识返回Bass-Server;
步骤S408,Bass-Server将上传成功/失败标识返回Bass-Web;
步骤S409,用户在Bass-Web上选择某个区块链网络/账本;
步骤S410,Bass-Web将安装应用请求发送到Bass-Server;
步骤S411,Bass-Server将应用数据存储到数据量并组装参数;
步骤S412,Bass-Server将安装应用请求发送到Bass-Resources;
步骤S413,Bass-Resources根据上述实施例中的方法完成应用程序安装后,将安装应用程序成功/失败标识返回到Bass-Server;
步骤S414,Bass-Server将安装应用程序成功/失败标识返回Bass-Web;
步骤S415,Bass-Web将查询应用程序列表请求发送的Bass-Server;
步骤S416,Bass-Server查询所有已安装的应用程序;
步骤S417,Bass-Server将所有已安装的应用程序列表返回给Bass-Web;
步骤S418,Bass-Web将查看某一应用程序安装状态的请求发送至Bass-Server;
步骤S419,Bass-Server根据请求组装参数;
步骤S420,Bass-Server向Bass-Resources发送查询请求,请求获取应用程序的运行状态;
步骤S421,Bass-Resources将应用程序的运行状态返回给Bass-Server;
步骤S422,Bass-Server运行状态返回给Bass-Web。
通过上述流程可以看出,在区块链网络运行的任意时刻,均可将用户需求的带有合约的应用程序部署到区块链网络中,无需重新组建区块链网络。并且,由于Baas-Resources对用户上传的应用程序文件进行解析,转换为Baas平台所支持的应用部署文件,使得上链的应用程序不仅包括Baas平台支持范围内的应用,甚至第三方自主研发应用均可以,第三方只需提供Baas平台部署的标准静态文件即可。另外,对于智能合约的安装,无需用户指定初始化参数,所述参数均配置在合约部署文件中,对于用户来说,无需多次操作并指定初始化参数,简化业务操作,实现一键安装智能合约。
图8为本申请实施例提供的邀请参与方安装应用程序的时序图。如图8所示,基于上述方法实施例,邀请参与方安装应用程序的过程如下步骤:
步骤S501,用户在Bass-Web上安装应用程序成功后触发邀请其他参与方安装该应用程序;
步骤S502,Bass-Web将安装应用程序的邀请请求发送到Bass-Server;
步骤S503,Bass-Server获取区块链网络中的其他参与方;
步骤S504,Bass-Server向其他参与方发送邀请请求;
步骤S505,其他参与方通过Bass-Web获取到邀请请求后,向Bass-Server查询邀请安装的所有应用程序;
步骤S506,Bass-Server查询当前区块链网络被邀请安装的所有应用程序;
步骤S507,Bass-Server返回被邀请安装的应用程序列表至Bass-Web;
步骤S508,其他参与方通过Bass-Web从应用程序列表中选择某一应用程序,将对该应用程序的安装请求发送到Bass-Server;
步骤S509,Bass-Server将应用安装请求发送到Bass-Resources;
步骤S510,Bass-Resources在安装应用程序后,返回安装应用程序成功/失败标识至Bass-Server;
步骤S511,Bass-Server将安装应用程序成功/失败标识返回Bass-Web。
通过上述流程可以看出,发起方可以选择执行该应用程序的其他参与方,且受邀用户均可以自主安装该应用,无需发布方同意或审批。
图9为本申请实施例提供的主动申请安装应用程序的时序图。如图9所示,基于上述方法实施例,主动申请安装应用程序的过程如下步骤:
步骤S601,应用程序安装成功后,其他参与方在Bass-Web申请安装该应用程序;
步骤S602,Bass-Web将安装申请发送到Bass-Server;
步骤S603,Bass-Server将申请成功/失败状态返回Bass-Web;
步骤S604,应用程序的发起者通过Bass-Web将获取申请人及申请安装应用程序信息的获取请求发送至Bass-Server;
步骤S605,Bass-Server查询申请人及申请安装应用程序信息;
步骤S606,Bass-Server将查询到的申请人及申请安装应用程序信息返回Bass-Web;
步骤S607,Bass-Web将发起者同意/拒绝请求发送到Bass-Server;
步骤S608,Bass-Server查询安装申请的回复状态;
步骤S609,Bass-Server将申请成功/失败状态返回Bass-Web;
步骤S610,若发起者同意安装申请,Bass-Web将申请者的安装请求发送至Bass-Server;
步骤S611,Bass-Server将应用数据存储到数据库,并组装参数;
步骤S612,Bass-Server将安装应用请求发送到Bass-Resources;
步骤S613,Bass-Resources在安装应用程序后,返回安装应用程序成功/失败标识至Bass-Server;
步骤S614,Bass-Server将安装应用程序成功/失败标识返回Bass-Web。
通过上述流程可以看出,对于在区块链网络中已经安装的应用程序,为受邀用户也可以主动发起申请安装应用程序。
图10为本申请实施例提供的卸载应用程序的时序图。如图10所示,基于上述方法实施例,卸载应用程序的过程如下步骤:
步骤S701,参与方在Bass-Web申请卸载该应用程序;
步骤S702,Bass-Web将卸载申请发送到Bass-Server;
步骤S703,Bass-Server查询该应用程序中是否还存在其他参与方;
步骤S704,当存在其他参与方时,Bass-Server将卸载失败状态返回Bass-Web;
步骤S705,参与方在Bass-Web上发出应用卸载通知;
步骤S706,Bass-Web将应用卸载通知发送到Bass-Server;
步骤S707,Bass-Server将通知成功/失败标识返回Bass-Web;
步骤S708,Bass-Web接收到其他参与方同意并退出应用程序的退出信息;
步骤S709,Bass-Web将退出信息发送到Bass-Server;
步骤S710,Bass-Server将退出成功/失败标识返回Bass-Web;
步骤S711,参与方在Bass-Web申请卸载该应用程序;
步骤S712,Bass-Web将卸载申请发送到Bass-Server;
步骤S713,Bass-Server查询该应用程序中是否还存在其他参与方;
步骤S714,当不存在其他参与方时,Bass-Server将卸载应用程序请求发送到Bass-Resources;
步骤S715,Bass-Resources根据上述方法实施例卸载应用程序后,将卸载成功/失败状态信息返回给Bass-Server;
步骤S716,Bass-Server将卸载成功/失败状态信息返回给Bass-Web。
通过上述流程可以看出,用户可以根据业务需求,及时调整部署区块链网络中的应用程序,删除不需要的应用程序,释放资源空间,提高区块链网络的资源利用率。
图11为本申请实施例提供的更新应用程序的时序图。如图11所示,基于上述方法实施例,更新应用程序的过程如下步骤:
步骤S801应用程序发起方在Bass-Web上申请更新应用程序;
步骤S802,Bass-Web将更新应用程序请求发送到Bass-Server;
该更新应用程序请求中包括对应用程序的更新配置信息,如启动/禁用应用程序中的某一功能等等;
步骤S803,Bass-Server判断对于更新应用程序请求是否满足预设规则;
该预设规则可以为该应用程序预设百分比的参与方同意更新;
步骤S804,Bass-Server将更新通知通过Bass-Web通知其他参与方,并将通知成功/失败标识返回Bass-Web;
步骤S805,其他参与方在Bass-Web选择同意/拒绝更新;
步骤S806,Bass-Web将同意/拒绝更新信息发送至Bass-Server;
步骤S807,Bass-Server将接收成功/失败标识返回Bass-Web;
步骤S808,用户在Bass-Web的网络应该管理页面上查看某一应用程序详情;
步骤S809,Bass-Web将查询请求发送到Bass-Server;
步骤S810,Bass-Server向Bass-Resources发送对该应用程序详细信息的获取请求;
步骤S811,Bass-Resources解析该获取请求,并根据获取请求查询应用程序详细信息;
步骤S812,Bass-Resources将应用程序详细信息返回给Bass-Server;
步骤S813,Bass-Server将应用程序详细信息返回给Bass-Web;Bass-Web将应用程序详细信息展示给用户;
步骤S814,应用程序发起方在Bass-Web上提交对应用程序的更新配置信息;
步骤S815,Bass-Web将更新配置信息发送至Bass-Server;
步骤S816,Bass-Server将更新配置信息发送至Bass-Resources;
步骤S817,Bass-Resources根据上述方法实施例更新应用程序;
步骤S818,Bass-Resources将更新成功/失败状态信息返回给Bass-Server;
步骤S819,Bass-Server将更新成功/失败状态信息返回给Bass-Web。
通过上述流程可以看出,对于在区块链网络中已经安装的应用程序,也可随时进行应用程序本身和/或智能合约的更新,使得应用程序可以满足用户使用需求的变化。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图12为本申请实施例提供的一种区块链应用程序处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图12所示,该区块链应用程序处理装置应用于区块链资源服务器,包括:
获取模块301,用于获取待处理应用程序对应的部署请求,所述部署请求中包括所述待处理应用程序对应的静态资源文件及合约配置文件;
解析模块302,用于解析所述静态资源文件得到所述待处理应用程序对应的应用部署文件,及解析所述合约配置文件得到合约部署文件;
应用部署模块303,用于对所述待处理应用程序执行所述应用部署文件对应的部署操作;
发送模块304,用于将所述合约部署文件发送到合约服务器,由所述合约服务器执行对所述合约部署文件的安装。
基于上述交互流程实施例中,如图1所示的区块链应用系统具体说明如下。
区块链前端10,用于获取对待处理应用程序的部署请求,将部署请求发送到区块链服务器20,部署请求中包括待处理应用程序对应的静态资源文件及合约配置文件;
区块链服务器20,用于将部署请求发送到区块链资源服务器30;
区块链资源服务器30,用于从部署请求的静态资源文件中解析得到待处理应用程序对应的应用部署文件,及从部署请求的合约配置文件中解析得到合约部署文件;对待处理应用程序执行应用部署文件对应的部署操作;将合约部署文件发送到合约服务器40;
合约服务器40,用于执行对合约部署文件的安装。
在可选实施例中,区块链资源服务器30,用于从合约配置文件中解析得到智能合约源代码及合约部署位置信息;根据智能合约源代码生成智能合约文件;将智能合约文件及合约部署位置信息压缩得到合约部署文件;
合约服务器40,用于对合约部署文件解压缩得到智能合约文件及合约部署位置信息,将智能合约文件安装到合约部署位置信息对应的区块链网络。
在可选实施例中,合约服务器40,当智能合约在区块链网络及区块链账本安装成功时,生成合约部署信息;将合约部署信息上传至区块链服务器20;
区块链服务器20,用于当接收到区块链前端发送的合约查询请求时,将合约查询请求对应的合约部署信息发送到区块链前端10;
区块链前端10,用于对合约部署信息进行展示。
在可选实施例中,区块链前端10,用于将获取到的卸载请求发送到区块链服务器20;
区块链服务器20,用于当获得区块链网络中该应用程序的所有参与方对卸载应用程序的同意信息时,将卸载请求发送到区块链资源服务器30;
区块链资源服务器30,用于从卸载请求中获取待处理应用程序的应用标识;调用容器集群接口;通过容器集群接口,从容器集群中删除应用标识对应的资源文件。
在可选实施例中,区块链前端10,用于将获取到的更新请求发送到区块链服务器20;
区块链服务器20,用于当确定区块链网络中该应用程序的所有参与方对更新应用程序的同意信息满足预设条件时,将更新请求发送到区块链资源服务器30;
区块链资源服务器30,用于从更新请求中获取待处理应用程序的应用标识;调用容器集群接口;通过容器集群接口,在容器集群中更新应用标识对应的资源文件。
本申请实施例还提供一种电子设备,如图13所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(PeripheralComponentInterconnect,P C I)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。