多组织多群主区块链部署+WeId组件可视化部署
在之前的文章中,我们介绍了如何建一条单链单机构单群组四节点的区块链网络,并在此基础上体验 WeIdentity 数字身份组件。
现在,几个月时间过去,WeIdentity部署工具进行了全面升级,从命令行工具转变为可视化工具。
因此,对 WeIdentity 的玩法也发生了变化,让我们来康康吧~
在官方的入门教程里,我们最开始学习的是通过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节点为例。
部署FISCO BCOS区块链节点前,需安装openssl, curl
等依赖软件,具体命令如下:
# CentOS
$ sudo yum install -y openssl curl
# Ubuntu
$ sudo apt install -y openssl curl
# Mac OS
$ brew install openssl curl
在build_chain.sh
同一个目录下创建ipconf文件:
# 空格分隔的参数分别表示如下含义:
# ip:num: 物理机IP以及物理机上的节点数目
# agency_name: 机构名称
# group_list: 节点所属的群组列表,不同群组以逗号分隔
127.0.0.1 webank 1,2
127.0.0.1 leeduckgo 1
# 根据配置生成星形区块链 需要保证机器的30300~30301,20200~20201,8545~8546端口没有被占用
$ bash build_chain.sh -f ipconf -p 30300,20200,8545
节点提供start_all.sh
和stop_all.sh
脚本启动和停止节点。
# 进入节点目录
$ cd ~/fisco/nodes/127.0.0.1
# 启动节点
$ bash start_all.sh
# 停止节点
$ bash stop_all.sh
这个步骤很重要,因为只有共识成功了,才能算区块链网络搭好了。
我们主要通过查找日志中的+++
来查看是否成功。
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
如果要体验 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';
参考文档:
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
可视化版本只需要简单的几步就可以完成安装,其他的操作都可以在网页上面进行完成,大大降低了操作难度。
wget -c https://gitee.com/WeBank/WeIdentity-Build-Tools/raw/master/common/script/install/weid_install.sh
chmod u+x weid_install.sh
./weid_install.sh
cd weid-build-tools
./start.sh
出现下列输出,则表示Web服务启动成功。
the server start successfully.
the server url: http://127.0.0.1:6021
此步骤可选择部署时所用的角色, 包括 “联盟链委员会管理员” 和 “非联盟链委员会管理员”, 如下图所示。
什么是“联盟链委员会管理员”?
一条联盟链中,选取一家机构来作为联盟链委员会管理员,此机构将会管理和运维此联盟链,并负责 完成 WeIdentity 智能合约的部署。举个例子,一条联盟链有4个机构,其中一个机构可以作为联盟链委员会管理员,其他则是联盟链委员会普通成员。
此步骤将配置需连接的区块链节点, 如下图所示。
此时我们的机构要写 1 中我们所配置的同时在两个群组中的webank,才能完整的使用WeIdentity。
如下图所示。
此步骤将配置所需连接的数据库环境, 也即我们2中我们配置好的MySQL数据库。
此步骤将为机构创建 WeID, 后续的合约部署,发交易等操作将使用该账户。
推荐”系统自动创建公私钥”:在部署工具的安装目录下,有一个目录: ./output/admin/, 会存放自动生成的私钥文件, 请妥善保管。
此步骤将部署 WeIdentity 智能合约到指定的区块链上, 如图所示。
一切顺利之后,我们就能进入管理页面。
这时候,我们所配置的双群组就派上用场了。我们选择第二个群组,就能顺利部署存证智能合约。
到此为止,我们就把WeIdentity用最新的可视化方式部署完成,可以愉快地玩耍了!
我们还有好几件事情要做,包括:
不过篇幅所限,就放到后续的文章里讲解。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!