GO语言安装
- 下载文件
wget https://golang.google.cn/dl/go1.17.8.linux-amd64.tar.gz
- 解压文件到 /usr/local
rm -rf /usr/local/go
tar -zxf go1.17.8.linux-amd64.tar.gz -C /usr/local
- 配置环境变量
- vim指令编辑 /etc/profile
vim /etc/profile
- 在/etc/profile文件末尾添加以下配置。按esc后,输入 :wq保存
#golang config
export GOROOT=/usr/local/go
export GOPATH=/home/gopath
export GOPROXY=https://goproxy.cn
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
- 创建/home/gopath。
mkdir /home/gopath
- 环境变量生效
source /etc/profile
- 查看Go版本
go version
gcc
- 检查 gcc 版本
gcc --version
- 显示结果若 < 7.3,则执行下面步骤升级
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
注意:第三条指令scl enable devtoolset-7 bash
只是在当前会话中升级了gcc,如果想每次登录gcc自动升级,可以把scl enable devtoolset-7 bash
放在 ~/.bash_profile
文件中。
长安链环境搭建
- 源码下载
git clone https://git.chainmaker.org.cn/chainmaker/chainmaker-go.git
- 下载证书生成工具源码到本地
git clone -b v2.2.0 https://git.chainmaker.org.cn/chainmaker/chainmaker-cryptogen.git
- 编译证书生成工具
cd chainmaker-cryptogen
make
- 将编译好的chainmaker-cryptogen,软连接到chainmaker-go/tools目录
# 进入工具目录
cd ../chainmaker-go/tools
# 软连接chainmaker-cryptogen到tools目录下
ln -s ../../chainmaker-cryptogen/ .
- 进入chainmaker-go/scripts目录
cd ../scripts/
- 执行prepare.sh脚本生成4节点2链的配置文件及证书
./prepare.sh 4 2
执行结果:
begin check params...
begin generate certs, cnt: 4
input consensus type (0-SOLO,1-TBFT(default),3-MAXBFT,4-RAFT): 1
input log level (DEBUG|INFO(default)|WARN|ERROR): INFO
enable docker vm (YES|NO(default))NO
config node total 4
begin generate node1 config...
begin node1 chain2 cert config...
begin node1 chain2 cert config...
begin node1 trust config...
begin generate node2 config...
begin node2 chain2 cert config...
begin node2 chain2 cert config...
begin node2 trust config...
begin generate node3 config...
begin node3 chain2 cert config...
begin node3 chain2 cert config...
begin node3 trust config...
begin generate node4 config...
begin node4 chain2 cert config...
begin node4 chain2 cert config...
begin node4 trust config...
- 配置指定端口
- 切换到生成的配置文件目录
cd ../build/config
此时会有4个节点目录:
node1 node2 node3 node4
- 修改配置文件端口
每个文件夹内有一个chainmaker.yml配置文件,主要涉及修改的端口如下:
rpc:
port: {rpc_port}
net:
listen_addr: /ip4/0.0.0.0/tcp/{net_port}
monitor:
port: {monitor_port}
pprof:
port: {pprof_port}
在第6步生成的配置文件中,每个节点的配置文件端口都是不相同的,在单机或者多级环境可以不用修改端口。如需自己指定可以按照上述修改涉及的端口。
- 配置指定IP
使用prepare.sh脚本会自动将所有共识节点的地址都会添加至net.seeds中,需要将127.0.0.1修改为集群各个节点实际所在机器的IP地址,需要将113XX修改为集群各个节点实际监听端口,监听端口与上一步中{net_port}一致。
net:
seeds:
- "/ip4/127.0.0.1/tcp/11301/p2p/QmQ3sHDwwcacnDdRzQpk7N3Bgeju4NPuTGkVYmrk99sQw8"
- "/ip4/127.0.0.1/tcp/11302/p2p/QmXvhGFjSA6XqifZvsiHRNuDo9LEPWhqq36BSyqZMdmtuq"
- "/ip4/127.0.0.1/tcp/11303/p2p/QmeDWYtVkSiR8DUq6NfrsVEYGzh8zMSUjro3VnbTagg3nX"
- "/ip4/127.0.0.1/tcp/11304/p2p/QmakPkAJYPQdMtmW88iuz8XtBcAfJbiB8U7E673q4ribCt"
- 生成节点安装包
切换回chainmaker-go/scripts目录,执行
$ ./build_release.sh
$ tree ../build/release/
../build/release/
├── chainmaker-v2.0.0-wx-org1.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org2.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org3.chainmaker.org-20210407153351-x86_64.tar.gz
├── chainmaker-v2.0.0-wx-org4.chainmaker.org-20210407153351-x86_64.tar.gz
└── crypto-config-20210407153351.tar.gz
后续上传各节点安装包,到指定的服务器上,部署解压后使用。
如果在生成安装包时出现undefined reference to `static_assert',通常由于GCC版本太低,需要按照之前的gcc升级方案升级gcc后重试。
- 解压启动节点
解压
tar -zxvf chainmaker-V2.0.0-wx-org1.chainmaker.org-20210407122304-x86_64.tar.gz
进入bin目录
cd chainmaker-v2.2.1-wx-org1.chainmaker.org/bin
启动
./start.sh
- 查看节点启动使用正常
- 查看进程是否存在
ps -ef|grep chainmaker | grep -v grep
- 查看端口是否监听
netstat -lptn | grep 1230
- 检查节点是否有ERROR日志
进入解压后的配置文件目录,执行:
$ cat ./bin/panic.log
$ cat ./log/system.log
$ cat ./log/system.log |grep "ERROR\|put block\|all necessary"