上云无忧 > 文档中心 > 百度智能云超级链BaaS 以太坊Dapp开发指南 - Dapp部署
超级链BaaS平台
百度智能云超级链BaaS 以太坊Dapp开发指南 - Dapp部署

文档简介:
Dapp部署是指将我们开发完成的Dapp应用层进行部署。因为Dapp应用层只是一个前端React App,理论上我们只是寻找一个Dapp js的托管服务器。当用户访问Dapp的线上地址时,浏览器获得HTML+CSS+JS,之后所有的交互响应都不再与托管服务器有关。 【百度智能云】可信计算平台
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Dapp部署是指将我们开发完成的Dapp应用层进行部署。因为Dapp应用层只是一个前端React App,理论上我们只是寻找一个Dapp js的托管服务器。当用户访问Dapp的线上地址时,浏览器获得HTML+CSS+JS,之后所有的交互响应都不再与托管服务器有关。

这里我们依托百度智能云CCE容器服务来部署我们的托管服务器。

什么是CCE容器服务

CCE容器服务是基于Kubernetes构建的轻量级分布式容器编排引擎。事实上,超级链BaaS平台服务提供的区块链节点也是托管在CCE集群上的。Kubernetes能够帮助用户快速部署定义好的应用服务,并且能够完全自动化地对应用实例进行健康检查、故障重启自恢复。另外还有应用实例自动水平扩缩容、持续集成构建流、配置管理、服务发现等高级功能。Kubernetes是业界服务托管的趋势。

使用CCE做应用托管,首先需要将应用打包成Docker镜像。因为Kubernetes对应用实例(Pod)的所有定义都是围绕容器实例(Container)来完成的。

Dapp镜像化

Docker是一种有助于加速开发和部署过程的技术,Docker可以很轻松地将小型独立服务运行环境封装起来。 它还有助于消除特定于环境的错误,因为我们可以在本地复制生产环境。

Docker环境安装

Docker安装请参考官方文档,一般的,可以使用系统包管理器一键安装。这里不再赘述。本文使用的Docker版本为1.9.1,是较老版本,请读者确保Docker版本大于1.9.1。

Dockerfile定义

我们在项目根目录下创建一个Dockerfile文件,内容为

FROM node:10.15.1
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
RUN npm install --silent
COPY . /usr/src/app
RUN npm run build
RUN apt-get update && apt-get install -y nginx
RUN cp -a /usr/src/app/build/* /var/www/html/
RUN rm -rf /usr/src
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

再创建一个.dockerignore文件,过滤掉不需要载入到镜像内的文件,内容为

node_modules
.git
.gitignore
README.md

Docker镜像制作

运行docker build命令即可

$ docker build -t notewall-dapp:latest .

构建好本地镜像后,我们可以直接在本地运行这个Docker镜像,确认镜像没有问题。

$ docker run -p 8080:80 -d notewall-dapp:latest

用浏览器访问本地的8080,就能够看到我们的便签板应用啦。

Docker镜像上传

接下来我们将构建好的Dapp镜像上传推送到百度智能云镜像仓库,用来在百度智能云CCE服务上直接部署Dapp。

上传前我们需要开通镜像,请参考百度智能云镜像仓库使用说明

配合本文档,我们提供了一个已经上传好的镜像地址 hub.baidubce.com/jpaas-public/notewall-dapp:2.1.0

如何用百度CCE服务发布Dapp

在上传完镜像后,我们开始试用CCE服务。

  1. 首先我们需要按照使用说明创建集群。
  2. 我们打开创建好的CCE集群控制台,进入集群列表页,点击集群右侧的“控制台”
  3. 在新打开的控制台中,我们点击右上角“+创建”按钮,在“从文本输入框创建”标签页中,我们输入如下yaml内容:
---
apiVersion: v1
kind: Service
metadata:
  name: notewall
  labels:
    app: notewall
spec:
  # comment or delete the following line if you want to use a LoadBalancer
  type: LoadBalancer 
  # if your cluster supports it, uncomment the following to automatically create
  # an external load-balanced IP for the frontend service.
  ports:
  - port: 80
  selector:
    app: notewall
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: notewall
spec:
  selector:
    matchLabels:
      app: notewall
  replicas: 3
  template:
    metadata:
      labels:
        app: notewall
    spec:
      containers:
      - name: noteall-dapp
        # 这里替换成自行推送的镜像地址,这里填的是默认已有的镜像地址
        image: hub.baidubce.com/jpaas-public/notewall-dapp:2.1.0
        ports:
        - containerPort: 80

点击上传后,就会按照上述yaml描述的资源规范在CCE集群创建一个外网可以访问的服务。

4.稍等片刻,我们可打开左侧“服务发现与负载均衡”,“服务”列表内找到notewall服务,点击外部端点提供的IP:Port形式的URL就能访问到便签板Dapp

到此便签板Dapp部署完成,外网已经能够访问

相似文档
  • 什么是Dapp: 如果我们熟悉web应用开发,一个经典的web应用架构是B/S结构的。 一般来说,我们开发完web应用后会把web服务部署到公网上,现在比较流行的方式是部署到云端VPS。无论在服务端我们用了什么负载均衡、容器化等技术,又无论客户端用户用的是浏览器还是一个API构造器。 【百度智能云】可信计算平台
  • IDE环境准备: 本文采用Go语言开发Fabric链码,Golang IDE请读者自行准备。 链码实现: 编写链码的Golang基础语法请读者自行阅读或参考完整源码,这里主要介绍便签板合约的主要实现。 【百度智能云】可信计算平台
  • Dapp应用层要做什么: Dapp应用层最主要的是实现用户侧的交互逻辑,包括web页面和页面事件响应。同时不同的操作会带来不同的事件,我们还需要针对页面事件去调用后端链码方法,存入便签、更新便签、读取便签等。 【百度智能云】可信计算平台
  • Dapp部署是指将我们开发完成的Dapp应用层进行部署。因为Dapp应用层只是一个前端React App,理论上我们只是寻找一个Dapp js的托管服务器。当用户访问Dapp的线上地址时,浏览器获得HTML+CSS+JS,之后所有的交互响应都不再与托管服务器有关。 【百度智能云】可信计算平台
  • Quorum联盟链操作演示: 介绍百度智能云Quorum联盟链和使用联盟链配置便签的演示操作。 【百度智能云】可信计算平台
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部