安装wget环境
yum -y install wget
安装gcc环境
yum install gcc-c++
1.node.js和pm2的安装
①.执行: wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
②.执行: tar xvf node-v12.18.3-linux-x64.tar.xz -C /opt 直接解压到/opt目录下(并将其改名为node)
③.解压文件的bin目录底下包含了node,npm等命令,我们可以使用ln命令来设置软连接:
ln -s /opt/node/bin/node /usr/local/bin/
ln -s /opt/node/bin/npm /usr/local/bin/
设置环境变量
vim /etc/profile
添加以下环境:
export NODE_HOME=/opt/node
export PATH=
N
O
D
E
H
O
M
E
/
b
i
n
:
NODE_HOME/bin:
NODEHOME/bin:PATH
重新加载系统环境变量
source /etc/profile
④.查看node版本 node -v
⑤.pm2全局安装: npm install pm2 -g
⑥.安装好后在你的/node/bin目录下会出现一个pm2文件,同样设置软连接
ln -sf /opt/node/bin/pm2 /usr/local/bin/
⑦.查看pm2版本 pm2 -v
2.go环境的安装
(准备linux上go的安装包)
①.由于默认的go路径,在/usr/local下, 所以用如下命令,解压创建/usr/local/go
tar -xzf go1.20.4.linux-amd64.tar.gz -C /usr/local
②.添加PATH环境变量
vim /etc/profile
然后加入下面这行:
export PATH=$PATH:/usr/local/go/bin
③.重新加载系统环境变量
source /etc/profile
④.查看go版本 go version
3.拉取fabric所需docker镜像
docker pull hyperledger/fabric-peer:1.2.0 && docker pull hyperledger/fabric-orderer:1.2.0 && docker pull hyperledger/fabric-ca:1.2.0 && docker pull hyperledger/fabric-tools:1.2.0 && docker pull hyperledger/fabric-ccenv:1.2.0 && docker pull hyperledger/fabric-baseimage:0.4.10 && docker pull hyperledger/fabric-baseos:0.4.10 && docker pull hyp erledger/fabric-couchdb:0.4.10
4.为镜像打上tag latest
docker tag hyperledger/fabric-peer:1.2.0 hyperledger/fabric-peer && docker tag hyperledger/fabric-orderer:1.2.0 hyperledger/fabric-orderer && docker tag hyperledger/fabric-ca:1.2.0 hyperledger/fabric-ca && docker tag hyperledger/fabric-tools:1.2.0 hyperledger/fabric-tools && docker tag hyperledger/fabric-ccenv:1.2.0 hyperledger/fabric-ccenv && docker tag hyperledger/fabric-baseimage:0.4.10 hyperledger/fabric-baseimage && docker tag hyperledger/fabric-baseos:0.4.10 hyperledger/fabric-baseos && docker tag hyperledger/fabric-couchdb:0.4.10 hyperledger/fabric-couchdb
5.上传代码到linux服务器/或者直接git拉取(直接从项目中拖拽到moba)
blockchain-trace-bcnetwork
6.运行basic_network目录下的start.sh文件
①.修改权限 chmod -R 777 start.sh
②.修改格式 vim start.sh
:set ff=unix 回车
:wq! 回车
③.运行 ./start.sh (第二次直接从这启动)
如果出现以下报错:
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-93686a0c0591 -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
则执行:
重启docker
service docker restart
如果出现以下报错:
docker exec cli peer channel create -o orderer.trace.com:7050 -c tracechannel -f ./channel-artifacts/channel.tx
2023-05-22 08:43:23.989 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: got unexpected status: BAD_REQUEST – error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/Application/Org2MSP at version 0, but got version 1
则执行:
停止并删除使用docker-compose启动的容器、网络、卷等资源,-f docker-compose.yml参数指定了使用当前目录下的docker-compose.yml文件中定义的服务进行操作,down则表示停止并删除这些服务。
① docker-compose -f docker-compose.yml down
删除所有未被容器使用的Docker Volume
② docker volume rm $(docker volume list -q)
再运行basic_network目录下的start.sh文件 ./start.sh
7.切换到webapp目录
先给webapp目录下的所有sh文件授权,如下
chmod -R 777 startFarmerCC.sh
8.执行npm install安装依赖
npm install --unsafe-perm=true --allow-root
9.注册用户
①.先删除hfc-key-store
rm -rf hfc-key-store/
②.执行: node enrollAdmin.js
③.执行: node registerUser.js
先重启防火墙
systemctl restart firewalld
10.启动webapp目录下的node服务(node服务就是一个中间件,连接前端和fabric网络)
node app.js 阻塞启动 (第二次直接启动)
或者
pm2 start app.js 后台启动
pm2 stop app.js 后台停止
11.修改PC端(blockchain-trace-pc)项目中src目录下的main.js
Vue.prototype.$httpUrl = “http://ip:8080/route”; //其中ip地址修改为自己虚拟机的ip或者云服务器的ip