玩转WeIdentity之可视化部署 | 联盟链开发

多组织多群主区块链部署+WeId组件可视化部署

在之前的[文章](https://mp.weixin.qq.com/s/BySSeIkMstBXLTeZ2krIHA)中,我们介绍了如何建一条单链单机构单群组四节点的区块链网络,并在此基础上体验 WeIdentity 数字身份组件。 现在,几个月时间过去,WeIdentity部署工具进行了全面升级,从命令行工具转变为可视化工具。 因此,对 WeIdentity 的玩法也发生了变化,让我们来康康吧~ ![image20201002194044901.png](https://img.learnblockchain.cn/attachments/2020/10/cfFzuifs5f7f0c8f633ff.png) ## 1 部署单链2机构2群组2节点网络 在官方的入门教程里,我们最开始学习的是通过`build_chain.sh`脚本搭建单链单机构单群组四节点: ```bash bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 ``` 但是,这种简单的网络结构有时候难以满足我们的需要。 因此,在对这种最基本的部署方式掌握以后,我们可以学习如何去部署更复杂的区块链网络作为我们的开发环境——这也是区块链运维的必备技能。 官方文档中的这一篇讲述了「星形拓扑」和「并行多组」两种区块链组网方式: > https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/group_use_cases.html ![image20201002194730372.png](https://img.learnblockchain.cn/attachments/2020/10/zNFaeBjD5f7f0c9e1e0a2.png) 我们只要照着这个例子,就能在我们本机上搭建出任意的区块链网络结构。 在此我们以WeIdentity所需要的单链2机构2群组2节点为例。 ### 1.1 安装依赖 部署FISCO BCOS区块链节点前,需安装`openssl, curl`等依赖软件,具体命令如下: ```bash # CentOS $ sudo yum install -y openssl curl # Ubuntu $ sudo apt install -y openssl curl # Mac OS $ brew install openssl curl ``` ### 1.2 编写配置文件 在`build_chain.sh`同一个目录下创建ipconf文件: ``` # 空格分隔的参数分别表示如下含义: # ip:num: 物理机IP以及物理机上的节点数目 # agency_name: 机构名称 # group_list: 节点所属的群组列表,不同群组以逗号分隔 127.0.0.1 webank 1,2 127.0.0.1 leeduckgo 1 ``` ### 1.3 一键建链 ``` # 根据配置生成星形区块链 需要保证机器的30300~30301,20200~20201,8545~8546端口没有被占用 $ bash build_chain.sh -f ipconf -p 30300,20200,8545 ``` ### 1.4 启动节点 节点提供`start_all.sh`和`stop_all.sh`脚本启动和停止节点。 ``` # 进入节点目录 $ cd ~/fisco/nodes/127.0.0.1 # 启动节点 $ bash start_all.sh # 停止节点 $ bash stop_all.sh ``` ### 1.5 查看共识是否成功 这个步骤很重要,因为只有共识成功了,才能算区块链网络搭好了。 我们主要通过查找日志中的`+++`来查看是否成功。 ``` tail -f nodes/127.0.0.1/node0/log/log* | grep +++ ``` ![image20201002195951882.png](https://img.learnblockchain.cn/attachments/2020/10/oUuerqlO5f7f0cb286b8f.png) ## 2 安装与配置 MySQL 如果要体验 WeIdentity 的全部功能,我们需要安装与配置MySQL来全面使用 Transportation, Envidence 异步存证, Persistence 数据存储等相关功能组件。 在 Mac 上可以通过 brew 方式很容易地完成安装: ```bash brew install mysql ``` 然后我们新建用户weid: ``` CREATE USER 'weid'@'127.0.0.1' IDENTIFIED BY '123456'; ``` 新建数据库weid: ``` create database weid; ``` 授予用户数据库权限: ``` GRANT ALL PRIVILEGES ON *.* TO 'weid'@'127.0.0.1'; ``` MySQL8还需要一个操作,不然接下来的WeIdentity安装可能会出问题: ``` ALTER USER 'weid'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '123456'; ``` ## 3 通过可视化安装方式部署WeIdentity > 参考文档: > > https://weidentity.readthedocs.io/zh_CN/latest/docs/weidentity-installation-by-web.html > > https://weidentity.readthedocs.io/zh_CN/latest/docs/deploy-via-web.html 可视化版本只需要简单的几步就可以完成安装,其他的操作都可以在网页上面进行完成,大大降低了操作难度。 ### 3.1 下载安装脚本 ``` wget -c https://gitee.com/WeBank/WeIdentity-Build-Tools/raw/master/common/script/install/weid_install.sh ``` ### 3.2 执行安装脚本 ``` chmod u+x weid_install.sh ./weid_install.sh cd weid-build-tools ``` ### 3.3 启动Web服务 ``` ./start.sh ``` 出现下列输出,则表示Web服务启动成功。 ``` the server start successfully. the server url: http://127.0.0.1:6021 ``` ### 3.4 选择角色 此步骤可选择部署时所用的角色, 包括 “联盟链委员会管理员” 和 “非联盟链委员会管理员”, 如下图所示。 ![deployviawebguidechooserole.png](https://img.learnblockchain.cn/attachments/2020/10/Lb2TLz3f5f7f0cc5486f5.png) > 什么是“联盟链委员会管理员”? > > 一条联盟链中,选取一家机构来作为联盟链委员会管理员,此机构将会管理和运维此联盟链,并负责 完成 WeIdentity 智能合约的部署。举个例子,一条联盟链有4个机构,其中一个机构可以作为联盟链委员会管理员,其他则是联盟链委员会普通成员。 ### 3.5 配置区块链节点 此步骤将配置需连接的区块链节点, 如下图所示。 ![deployviawebguidesetupblockchain.png](https://img.learnblockchain.cn/attachments/2020/10/sBNlVZ7S5f7f0dbea4a9a.png) 此时我们的机构要写 1 中我们所配置的同时在两个群组中的webank,才能完整的使用WeIdentity。 ### 3.6 选择主群组 如下图所示。 ![deployviawebguidechoosegroupid.png](https://img.learnblockchain.cn/attachments/2020/10/e8i7ngLV5f7f0dc97b899.png) ### 3.7 配置数据库 此步骤将配置所需连接的数据库环境, 也即我们2中我们配置好的MySQL数据库。 ![deployviawebguidesetupdatabase.png](https://img.learnblockchain.cn/attachments/2020/10/xfFseFhX5f7f0dd1b149a.png) ### 3.8 创建机构的WeID 此步骤将为机构创建 WeID, 后续的合约部署,发交易等操作将使用该账户。 > 推荐”系统自动创建公私钥”:在部署工具的安装目录下,有一个目录: ./output/admin/, 会存放自动生成的私钥文件, 请妥善保管。 ![deploy-via-web-guide-create-admin-weid.png](/Users/liaohua/Documents/deploy-via-web-guide-create-admin-weid.png) ### 3.9 部署WeIdentity智能合约 此步骤将部署 WeIdentity 智能合约到指定的区块链上, 如图所示。 ![deployviawebguidedeployweidcontract.png](https://img.learnblockchain.cn/attachments/2020/10/yKiyGRux5f7f0dde7c7a5.png) ### 3.10 成功! 一切顺利之后,我们就能进入管理页面。 ![image20201002202433811.png](https://img.learnblockchain.cn/attachments/2020/10/JUbaxmkj5f7f0e3fab59d.png) ### 3.11 部署存证智能合约 这时候,我们所配置的双群组就派上用场了。我们选择第二个群组,就能顺利部署存证智能合约。 ![image20201002202530088.png](https://img.learnblockchain.cn/attachments/2020/10/yT0lzEgz5f7f0e4d4992e.png) 到此为止,我们就把WeIdentity用最新的可视化方式部署完成,可以愉快地玩耍了! 我们还有好几件事情要做,包括: - 配置多群组环境下的控制台 - 安装区块链浏览器 - 安装 WeIdentity Restful Service - 体验WeIdentity 全流程 不过篇幅所限,就放到后续的文章里讲解。

在之前的文章中,我们介绍了如何建一条单链单机构单群组四节点的区块链网络,并在此基础上体验 WeIdentity 数字身份组件。

现在,几个月时间过去,WeIdentity部署工具进行了全面升级,从命令行工具转变为可视化工具。

因此,对 WeIdentity 的玩法也发生了变化,让我们来康康吧~

1 部署单链2机构2群组2节点网络

在官方的入门教程里,我们最开始学习的是通过build_chain.sh脚本搭建单链单机构单群组四节点:

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545

但是,这种简单的网络结构有时候难以满足我们的需要。

因此,在对这种最基本的部署方式掌握以后,我们可以学习如何去部署更复杂的区块链网络作为我们的开发环境——这也是区块链运维的必备技能。

官方文档中的这一篇讲述了「星形拓扑」和「并行多组」两种区块链组网方式:

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/group_use_cases.html

我们只要照着这个例子,就能在我们本机上搭建出任意的区块链网络结构。

在此我们以WeIdentity所需要的单链2机构2群组2节点为例。

1.1 安装依赖

部署FISCO BCOS区块链节点前,需安装openssl, curl等依赖软件,具体命令如下:

# CentOS
$ sudo yum install -y openssl curl

# Ubuntu
$ sudo apt install -y openssl curl

# Mac OS
$ brew install openssl curl

1.2 编写配置文件

build_chain.sh同一个目录下创建ipconf文件:

# 空格分隔的参数分别表示如下含义:
# ip:num: 物理机IP以及物理机上的节点数目
# agency_name: 机构名称
# group_list: 节点所属的群组列表,不同群组以逗号分隔
127.0.0.1 webank 1,2
127.0.0.1 leeduckgo 1

1.3 一键建链

# 根据配置生成星形区块链 需要保证机器的30300~30301,20200~20201,8545~8546端口没有被占用
$ bash build_chain.sh -f ipconf -p 30300,20200,8545

1.4 启动节点

节点提供start_all.shstop_all.sh脚本启动和停止节点。

# 进入节点目录
$ cd ~/fisco/nodes/127.0.0.1

# 启动节点
$ bash start_all.sh
# 停止节点
$ bash stop_all.sh

1.5 查看共识是否成功

这个步骤很重要,因为只有共识成功了,才能算区块链网络搭好了。

我们主要通过查找日志中的+++来查看是否成功。

tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

2 安装与配置 MySQL

如果要体验 WeIdentity 的全部功能,我们需要安装与配置MySQL来全面使用 Transportation, Envidence 异步存证, Persistence 数据存储等相关功能组件。

在 Mac 上可以通过 brew 方式很容易地完成安装:

brew install mysql

然后我们新建用户weid:

CREATE USER 'weid'@'127.0.0.1' IDENTIFIED BY '123456';

新建数据库weid:

create database weid;

授予用户数据库权限:

GRANT ALL PRIVILEGES ON *.* TO 'weid'@'127.0.0.1';

MySQL8还需要一个操作,不然接下来的WeIdentity安装可能会出问题:

ALTER USER 'weid'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '123456';

3 通过可视化安装方式部署WeIdentity

参考文档:

https://weidentity.readthedocs.io/zh_CN/latest/docs/weidentity-installation-by-web.html

https://weidentity.readthedocs.io/zh_CN/latest/docs/deploy-via-web.html

可视化版本只需要简单的几步就可以完成安装,其他的操作都可以在网页上面进行完成,大大降低了操作难度。

3.1 下载安装脚本

wget -c https://gitee.com/WeBank/WeIdentity-Build-Tools/raw/master/common/script/install/weid_install.sh

3.2 执行安装脚本

chmod u+x weid_install.sh
./weid_install.sh
cd weid-build-tools

3.3 启动Web服务

./start.sh

出现下列输出,则表示Web服务启动成功。

the server start successfully.
the server url:  http://127.0.0.1:6021

3.4 选择角色

此步骤可选择部署时所用的角色, 包括 “联盟链委员会管理员” 和 “非联盟链委员会管理员”, 如下图所示。

什么是“联盟链委员会管理员”?

一条联盟链中,选取一家机构来作为联盟链委员会管理员,此机构将会管理和运维此联盟链,并负责 完成 WeIdentity 智能合约的部署。举个例子,一条联盟链有4个机构,其中一个机构可以作为联盟链委员会管理员,其他则是联盟链委员会普通成员。

3.5 配置区块链节点

此步骤将配置需连接的区块链节点, 如下图所示。

此时我们的机构要写 1 中我们所配置的同时在两个群组中的webank,才能完整的使用WeIdentity。

3.6 选择主群组

如下图所示。

3.7 配置数据库

此步骤将配置所需连接的数据库环境, 也即我们2中我们配置好的MySQL数据库。

3.8 创建机构的WeID

此步骤将为机构创建 WeID, 后续的合约部署,发交易等操作将使用该账户。

推荐”系统自动创建公私钥”:在部署工具的安装目录下,有一个目录: ./output/admin/, 会存放自动生成的私钥文件, 请妥善保管。

3.9 部署WeIdentity智能合约

此步骤将部署 WeIdentity 智能合约到指定的区块链上, 如图所示。

3.10 成功!

一切顺利之后,我们就能进入管理页面。

3.11 部署存证智能合约

这时候,我们所配置的双群组就派上用场了。我们选择第二个群组,就能顺利部署存证智能合约。

到此为止,我们就把WeIdentity用最新的可视化方式部署完成,可以愉快地玩耍了!

我们还有好几件事情要做,包括:

  • 配置多群组环境下的控制台
  • 安装区块链浏览器
  • 安装 WeIdentity Restful Service
  • 体验WeIdentity 全流程

不过篇幅所限,就放到后续的文章里讲解。

区块链技术网。

  • 发表于 2020-10-08 21:07
  • 阅读 ( 1524 )
  • 学分 ( 106 )
  • 分类:FISCO BCOS

评论