玩转WeIdentity之可视化部署 | 联盟链开发(十三)

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

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

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

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

image20201002194044901.png

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

image20201002194730372.png

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

在此我们以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 +++

image20201002195951882.png

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 选择角色

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

deployviawebguidechooserole.png

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

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

3.5 配置区块链节点

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

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

3.6 选择主群组

如下图所示。

deployviawebguidechoosegroupid.png

3.7 配置数据库

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

deployviawebguidesetupdatabase.png

3.8 创建机构的WeID

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

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

deploy-via-web-guide-create-admin-weid.png

3.9 部署WeIdentity智能合约

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

deployviawebguidedeployweidcontract.png

3.10 成功!

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

image20201002202433811.png

3.11 部署存证智能合约

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

image20201002202530088.png

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

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

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

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

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

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

0 条评论

请先 登录 后评论
李大狗
李大狗

上海对外经贸大学区块链研究中心副主任

23 篇文章, 4461 学分