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

一种基于智能合约的云原生应用开发与部署系统和方法与流程

2022-04-02 02:38:26 来源:中国专利 TAG:


1.本发明涉及区块链智能合约技术领域,特别涉及一种基于智能合约的云原生应用开发与部署系统和方法。


背景技术:

2.智能合约是执行一组指令的计算机代码,被设计出来去执行一系列的指令,以数字化形式部署在区块链节点中,基于加密货币和区块链技术,保障代码执行过程透明可跟踪且无法篡改,开发者可以基于智能合约构建去中心化的应用程序。
3.云原生环境下的开发是未来应用开发的主流方向,不断发展的云原生全栈技术带给开发者全新的资源、工具与架构视角,使得开发者可以拥抱更现代化的技术方法、工具与最佳实践,开发者借助云原生,有效确保研发与运维团队的现代化水平,从工具层面推动研发与运维能力提升。带来的技术能力标准化,大幅提升了开发者的工作效率,包括开发与测试环境的配置效率,功能组件、业务系统的软件开发效率,以及服务化、组件化的应用的部署效率。
4.在云原生环境下进行基于智能合约的应用开发过程中,尚未形成系统性的解决方案,中国发明专利:一种基于云原生程序开发与部署的代码编辑方法及装置,公开号:cn111857694a,申请日为2020-10-30,该专利中对传统应用开发在云原生下开发与部署进行的阐述,并未考虑区块链作为基础设施,基于智能合约下的应用开发结合云原生环境的情况;在中国发明专利:一种自动生成solidity智能合约java客户端程序的方法,公开号:cn110633076b,申请日:2021-05-04,该专利中对solidity智能合约生成java客户端程序方法进行了阐述,未考虑实际开发过程中与云原生环境下devops结合,以及开发过程中开发者学习时间长,未考虑提供模版作为参考示提升开发者效率,且团队开发过程中,智能合约类库版本统一管理问题欠缺考虑。
5.目前,基于智能合约进行应用程序开发过程中,不同的编程语言调用智能合约的类库以及类库版本不同,难以统一维护,且区块链智能合约的代码生成及智能合约部署多为命令行操作,开发人员操作繁琐,在实际开发过程中缺少智能合约模版参考,开发人员上手难度较高,应用开发和部署等流程耗时较长,无法满足业务发展需要。
6.本发明中出现的技术术语:
7.区块链:区块链是一种去中心化记录数据的技术,所有参与到区块链网络的节点,可以不属于某一组织,彼此互不信任;区块链数据由所有节点共同维护,每个参与维护节点都能获得一份完整数据记录的拷贝;区块链本质是一个分布式数据库,具有去中心化、不可篡改、留痕追溯、集体维护、高度透明等特点。
8.智能合约:以数字化形式部署在区块链节点中,基于加密货币和区块链技术,保障代码执行过程透明可跟踪且无法篡改。
9.去中心化应用:指运行在分布式网络上,根据区块链上设定的条件来执行的一个合约或者一组合约。
10.web3j:一个轻量级、高度模块化、响应式、类型安全的java和android类库提供丰富api,用于处理以太坊智能合约及与以太坊网络上的节点进行集成。
11.云原生:基于分布部署和统一运管的分布式云,以容器、微服务、devops等技术为基础建立的一套云技术产品体系。
12.devops(development和operations的组合词)是一种重视“软件开发人员(dev)”和“it运维技术人员(ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
13.docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows机器上,也可以实现虚拟化。
14.kubernetes:简称k8s,是用8代替8个字符“ubernete”而成的缩写,是一个开源用于管理云平台多主机上容器化应用。
15.helm:kubernetes的软件包,由helm charts定义,用于安装和升级复杂配置的kubernetes环境运行的容器化应用程序。
16.jenkins:基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
17.容器应用集群服务器:指多台服务器集中起来一起运行kubernetes容器化应用的服务器集群,当某一台服务器出现任何故障,运行在这台服务器上的应用就会切换到其它的服务器上。


技术实现要素:

18.本发明针对现有技术的缺陷,提供了一种基于智能合约的云原生应用开发与部署系统和方法,用于简化基于智能合约的应用开发过程,提高基于区块链智能合约的去中心化应用开发和部署效率。
19.为了实现以上发明目的,本发明采取的技术方案如下:
20.一种基于智能合约的云原生应用开发与部署系统,包括:用户交互组件、应用开发组件、配置组件、检查组件和应用部署组件;
21.用户交互组件,用于提供用户操作界面以及发起请求与其他组件通信,接收其他组件返回的结果并呈现给用户;
22.应用开发组件,包括:合约模板模块、应用模板模块、代码上传模块和合约代码编写模块;
23.合约模板模块,用于提供智能合约代码模板以及调用智能合约类库,以及智能合约语言版本及对应类库版本的管理;
24.应用模板模块,用于提供构建软件镜像的模板,以及提供构建去中心化应用的通用软件包模板;
25.代码上传模块,用于将用户开发好的智能合约代码、智能合约模板、构建镜像的文件、软件包模板上传至容器应用集群服务器;
26.合约代码编写模块,用于提供智能合约代码的在线开发和保存;
27.配置组件,包括:区块链配置模块和应用部署配置模块;
28.区块链配置模块,用于配置待部署的智能合约版本,待部署智能合约身份标识,待
部署区块链节点信息;
29.应用部署配置模块,用于配置待部署应用的模板信息,构建应用的镜像信息;
30.检查组件,包括:模板检查模块和配置检查模块;
31.模板检查模块,用于检查是否选择合约模板和应用模板,若否,选择合约模板和应用模板,若是,输出合约模板信息至合约代码编写模块,输出应用模板信息至应用配置摸快;
32.配置检查模块,用于检查是否配置区块链配置,若否,输出信息至区块链配置模块,若是,输出信息至应用部署配置模块;
33.应用部署组件,包括:合约部署模块和应用发布模块;
34.合约部署模块,用于执行合约部署工作流,将智能合约部署至预先配置好的区块链节点上;
35.应用发布模块,调用合约代码生成工作流,应用打包工作流,应用部署工作流,将应用部署至容器应用集群服务器。
36.本发明还公开了一种基于智能合约的云原生应用开发与部署方法,包括如下步骤:
37.s1:用户通过用户交互组件访问合约模板组件选择智能合约代码模板;
38.s2:应用开发组件接收合约模板,输出至合约代码编写模块;
39.s3:用户通过用户交互组件访问合约代码编写模块进行合约代码开发;
40.s4:合约代码开发完毕后,用户通过用户交互组件发起保存代码请求;
41.s5:代码上传模块接收保存代码请求,将合约代码上传至容器应用集群服务器中,返回上传成功结果;
42.s6:用户交互组件接收代码上传成功结果,并配置待部署的智能合约描述信息及待部署的区块链节点信息;
43.s7:区块链配置模块接配置信息并返回配置成功结果;
44.s8:用户交互组件接收配置成功结果,访问应用部署配置模块,配置应用开发语言及选择部署镜像;
45.s9:完成配置后用户通过应用部署组件发起应用部署配置检查请求;
46.s10:配置检查组件接收应用部署配置检查请求,检查用户区块链配置及应用配置是否正确,若是,发送应用部署请求至应用部署组件,若否,返回信息至用户交互组件;
47.s11:应用部署组件接收到用户应用发布请求,执行合约应用部署工作流。
48.进一步地,所述应用部署工作流包括:合约部署工作流、调用合约代码生成工作流、应用打包工作流和应用部署工作流,将应用部署至集群服务器。
49.进一步地,所述用户交互组件提供用户操作界面通过restful接口调用方式与其他组件通信。
50.进一步地,所述合约部署工作流将通过web3j类库将智能合约部署至预先设置好的区块链节点上。
51.进一步地,所述应用打包工作流根据预先选择的开发语言以及对应的调用合约类库版本生成调用合约代码并打包成docker镜像文件。
52.进一步地,所述应用部署工作流通过jenkins部署应用镜像至容器应用集群服务
器的kubernetes集群工作节点上。
53.进一步地,所述应用部署工作流组件接收合约部署工作流、调用合约代码生成工作流、应用打包工作流、应用部署工作流的状态和结果并传递到用户交互组件。
54.与现有技术相比,本发明的优点在于:将区块链和容器应用集群服务器视作基础设施,基于云原生的思想与区块链智能合约应用开发过程结合,通过devops思想简化智能合约应用的开发部署流程,充分利用云原生组件及工具,提供智能合约模版以及通用功能应用模版,提供智能合约语言版本以及对应类库的版本统一管理,为开发者屏蔽繁琐的底层技术并节省不必要的时间成本,使得开发者能够更加专注地聚焦业务价值创造以及创新,去构建基于智能合约的云原生应用程序。
附图说明
55.为了清楚的说明本发明实施方式和技术方案,下面对实施方式或技术方案附图作简单介绍,显而易见的,对于本领域技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1是本发明云原生应用开发与部署的系统组件图。
57.图2是本发明云原生应用开发与部署的方法流程图。
58.图3是本发明实施例云原生应用开发与部署的方法流程图。
具体实施方式
59.为使本发明的目的、技术方案及优点更加清楚明白,以下根据附图并列举实施例,对本发明做进一步详细说明。
60.如图1所示,一种基于区块链智能合约的云原生应用开发与部署的系统,包括如下组件:
61.用户交互组件,用于提供用户操作界面及发起请求与其他组件通信;
62.应用开发组件,包括:合约模板模块、应用模板模块、代码上传模块、合约代码编写模块;
63.合约模板模块,用于提供智能合约代码模板,以及智能合约语言版本对应类库版本的管理;
64.应用模板模块,用于提供构建镜像的模板,构建应用的软件包模板;
65.代码上传模块,用于将开发好的智能合约代码、智能合约模板,构建镜像的文件,软件包模板上传至应用集群服务器;
66.合约代码编写模块,用于提供智能合约代码的在线开发和保存;
67.配置组件包含,区块链配置模块,应用部署配置模块;
68.区块链配置模块,用于配置待部署的智能合约版本,待部署智能合约身份标识,待部署区块链节点信息;
69.应用部署配置模块,用于配置待部署应用的模板信息,构建应用的镜像信息;
70.检查组件包括,模板检查模块,配置检查模块;
71.模板检查模块,用于检查是否选择合约模板和应用模板,若否,选择合约模板和应用模板,若是,输出合约模板信息至合约代码编写模块,输出应用模板信息至应用配置摸
快;
72.配置检查模块,用于检查是否配置区块链配置,若否,输出信息至区块链配置模块,若是,输出信息至应用部署配置模块;
73.应用部署组件包括合约部署模块,和应用发布模块;
74.合约部署模块,用于执行合约部署工作流,将智能合约部署至预先配置好的区块链节点上;
75.应用发布模块,调用合约代码生成工作流,应用打包工作流,应用部署工作流,将应用部署至容器应用集群服务器。
76.如图2所示,一种基于区块链智能合约的云原生应用开发与部署的方法,包括如下步骤:
77.a.用户通过系统交互组件选择智能合约代码模板、智能合约语言版本和对应类库版本,根据代码模板在系统中编写用户自己的智能合约;
78.b.智能合约代码开发完毕后,通过用户交互组件保存并上传智能合约代码至应用开发组件;
79.c.应用开发组件返回代码保存结果至用户交互组件;
80.d.用户通过用户交互组件配置区块链节点配置信息以及应用部署配置信息;
81.e.检查组件执行配置检查,检查用户配置的区块链节点配置信息以及应用部署配置信息;
82.f.检查组件返回各项配置检查结果;
83.g.用户通过用户交互组件发起应用部署请求;
84.h.应用部署组件接收应用部署请求,通过web3j等类库将智能合约部署至配置的区块链节点上;
85.i.区块链节点接口返回智能合约部署结果信息并保存智能合约部署地址;
86.j.应用部署组件通过web3j等类库生成用户预配置开发语言的智能合约调用代码;
87.k.通过jenkins执行镜像打包将生成的代码打包成镜像并上传至镜像仓库;
88.l.jenkins通过k8s api将helm应用模版部署至k8s集群节点上;
89.m.jenkins接收应用部署的结果;
90.n.jenkins返回应用部署结果至应用部署组件;
91.o.应用部署组件将应用部署执行结果传递至用户交互组件;
92.p.由用户交互组件展现应用部署结果给用户。
93.下面通过具体的例子进行说明,如图3所示,在该实施例中使用智能合约语言为solidity,调用智能合约开发语言为java;
94.(1)选择简单key-value存储solidity智能合约模版,智能合约语言版本为0.4.26模版对应支持合约类库web3j版本4.8.2;
95.(2)对solidity智能合约模版代码进行开发;
96.(3)保存开发完毕的solidity智能合约代码;
97.(4)选择java应用的软件包模板;
98.(5)配置区块链节点信息和应用部署配置信息并保存;
99.(6)执行配置检查,若配置检查通过则提示检查通过,否则提示失败重新配置;
100.(7)发起部署请求,应用部署组件执行合约部署工作流,通过web3j执行
101.deploy命令将智能合约部署至配置好的区块链节点上,并返回部署结果和智能合约地址;
102.(8)应用部署组件执行应用打包工作流,通过web3j运行generate-sources命令生成调用智能合约的java代码;
103.(9)应用部署组件通过jenkins将生成的调用合约java代码与应用模版代码打包成docker镜像;
104.(10)应用部署组件通过jenkins将打包后的docker镜像推送至容器应用集群服务器;
105.(11)应用部署组件通过jenkins执行kubernetesdeploy将应用部署至容器应用集群服务器;
106.(12)通过用户交互组件查看智能合约部署结果和应用部署结果。
107.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
再多了解一些

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

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

相关文献