v.2.3.1管理台多机部署长安链+docker-go合约上链+区块链浏览器

虚拟机

1.下载centos7

CentOS-7-x86_64-DVD-2009.iso
文件地址:阿里云centos7镜像
配置过程参照CentOS-7-x86_64 iso镜像的安装(Linux操作系统)

2.安装,其他设置如下

image.png

环境搭建

1.更新软件仓库

参考: CentOS7 更新yum源
1.1、yum备份

cd /etc/yum.repos.d/
mkdir repo_bak
mv *.repo repo_bak/

1.2、检查安装wget

wget -v
yum install wget -y

1.3、下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget http://mirrors.aliyun.com/repo/Centos-7.repo

1.4、yum clean all 清除缓存,运行 yum makecache 生成新的缓存

yum clean all
yum makecache

1.5、yum clean all 清除缓存,运行 yum makecache 生成新的缓存

yum install -y epel-release
yum clean all
yum makecache

1.6、更新yum

yum -y update

2.安装环境

2.1、go环境安装

yum -y install golang
//go version go1.19.10 linux/amd64

2.2、docker环境依赖

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo systemctl start docker
//Docker version 24.0.4, build 3713ee1
//docker-compose version 1.29.2, build 5becea4c

2.3、git

yum -y install git
//git version 1.8.3.1

3.部署管理台

3.1、账号依赖
私人仓库,需要https://git.chainmaker.org.cn/users/sign_up 进行账号注册。
3.2、代码下载

git clone -b v2.3.1   --depth=1 https://git.chainmaker.org.cn/chainmaker/management-backend.git
cd management-backend
docker-compose up

3.3、登录管理台
在安装好管理台之后,打开管理台进入登录页面,默认的账号为的admin账号,默认密码为a123456。
image.png
3.4、申请链账户的证书文件
登陆后,在链账户管理处,申请4个组织证书,4个节点证书,4个用户证书,其中每个组织拥有一个节点一个用户。
image.pngimage.png
image.png

4.虚拟机克隆

由于本机属于模拟多机状态,所以在这一步进行虚拟机克隆。这时克隆就不需要再导入组织节点用户证书,其余虚拟机也可以直接进入管理台。以VMware17.0为例。
image.png

image.png
image.png
选择创建完整克隆。
image.png
注意,不要选择到系统盘。
image.png
image.png
克隆3台机器后,打开终端,输入ifconfig,找到本机ip地址(192.168.162.139)
image.pngimage.png

5.部署区块链

image.png
进入区块链管理页面,点击左上角到新建区块链。
输入区块链ID,区块链名称,区块链最大容量,出块间隔,交易过期时长,证书模式。
选择共识策略为TBFT。
备注:TBFT基于Tendermint算法,与PBFT的最大区别在于:PBFT有一个固定的leader节点打包交易,当leader节点故障的时候会使用view-change子协议更换leader;而在TBFT中,leader是轮换的,每提交n个块(可以配置)leader会轮换成下一个节点。因此,TBFT比PBFT有更好的公平性。
image.png
选择多机部署,输入本机及其余3台克隆机的ip地址,以及我们打算部署的4个节点所占用的网络端口。此处需要确保端口没被占用,且网络通畅。
image.png
合约虚拟机配置处选中DOCKER-GO,点击下一步。
由于需要支持编译docker-go合约,所以需要在每个虚拟机上拉取chainmaker-vm-docker-go镜像。由于系统为CentOS,所以需要安装7z工具。

$ docker pull chainmakerofficial/chainmaker-vm-engine:v2.3.1
$ cd /usr/local/src
$ wget -c http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm
$ rpm -ivh epel-release-latest-7.noarch.rpm
$ yum repolist #查看是否启用
$ yum install -y p7zip*

多机部署,需要下载链配置文件,并把压缩包移动到要部署的虚拟机上。
image.png

示例: 以其中第一台机器为例,该机器部署zhaopu01组织下的zhaopu0101节点。解压NewChain.zip文件。进入release文件夹,删除其余3个节点文件夹。
image.png
image.png
仅保留所需运行的节点文件包,然后利用终端进入release文件夹。进入root权限,输入 ./start.sh 启动节点。
image.png
进入管理台,点击下一步。
在主机器处,订阅信息基本已经填好,选择用户,点击订阅即可。
image.png
其余虚拟机,需要进入各自管理台,进入区块链管理订阅区块链,输入链ID,组织名称,节点RPC地址(注意是节点RPC地址,非节点P2P地址),点击保存即可订阅。
image.png
image.png
image.png
利用快速引导给的docker-go示例合约进行检查,经过投票可以上链即部署成功。

image.png

也可以利用IEDA生成dockergo合约。注意选择2.3.0版本。
image.png

6.部署区块链浏览器

和管理台部署相似。

$ git clone --depth=1 https://git.chainmaker.org.cn/chainmaker/chainmaker-explorer.git
$ make docker-compose-start
# 或者
$ cd docker && docker-compose up -d

部署完成即可连接http://localhost:9996来访问。如果是新部署区块链浏览器,进入则是订阅界面。从管理台将所需证书文件下载,然后传入区块链浏览器订阅中,其余和管理台订阅区块链相似,完成后即实现订阅。
image.png
image.png

总结

属于第一次部署联盟链,碰上了很多问题。出现问题可以多去长安链ISSUE论坛查找和咨询。笔者很多问题都是查资料得知。做一下小的总结。
第一个是rpc端口和节点端口不同,管理平台部署时自动补齐rpc地址,这与订阅后展示的节点地址是不一样的。所以一定要记住当时部署的RPC地址
第二个是ubuntu22不支持,翻issue评论发现,遂转成centos7.6。(vm-engine采用cgroup限制资源,目前只支持cgroupv1,在2.4.0版本会支持v2。)
第三个是多机部署情况下,每个节点的组织证书不齐是无法上链的,应该是上链投票策略、调用引擎出现的问题。docker-go合约上链出现报错,可以考虑是不是证书问题(应该是要把节点证书全放上)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值