×

Fabric单机部署

96
殷临风
2018.03.02 18:09* 字数 291

目前Fabric已经更新了1.0版本, 所以我们可以去了解一下这个区块链账本项目, 单机部署相对较简单, 但还是有一些小坑在里面, 这里详细的列出安装步骤, 也规避了网络及项目版本的问题

go环境准备

# 安装go
yum install go -y
# 创建项目目录
mkdir -p /mnt/go_path/src/github.com/hyperledger

# 添加 GOPATH 环境变量
vi /etc/profile
# 底部添加
##############################
export GOPATH=/mnt/go_path
##############################
# 使环境变量生效
source /etc/profile

安装docker

# 添加阿里云yum源
cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 缓存
yum makecache
# 安装
yum install docker-ce -y
# 启动docker
systemctl start docker
#查看版本
docker version

具体源站可以参照连接 https://yq.aliyun.com/articles/110806?spm=a2c4e.11154873.tagmain.6.67182e86T6vDdf

docker的需要1.17及以上版本, 服务器默认的yum源版本太低

配置docker加速器

# 输入内容
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://x2j0t6lh.mirror.aliyuncs.com"]
}
EOF
# 保存配置文件, 并重启服务
systemctl daemon-reload 
systemctl restart docker

这个一定要配置, 否者国内拉取镜像速度会很慢

下载项目

# 安装git
yum install git -y
# 下载项目(国内时间会比较长, 可以直接通过迅雷下载zip包传到服务器)
cd /mnt/go_path/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
# 切换tag
cd fabric
git checkout v1.0.2

拉取镜像并启动Fabric网络

# 进入验证目录
cd examples/e2e_cli
# 下载镜像注意版本号的指定
source download-dockerimages.sh -c x86_64-1.0.2 -f x86_64-1.0.2

拉取成功后, 镜像如下

docker images | grep hyperledger    

启动服务

# 先安装docker-compose
pip install docker-compose

如果没有python环境, 可以使用yum安装.
yum install docker-compose

# 启动
./network_setup.sh up

查看docker启动情况

docker ps -a

如果所用的服务器是阿里云ECS, 此时会出现问题

错误原因参照 https://yq.aliyun.com/articles/238940

具体修改内容参照下面

关闭并重新启动

./network_setup.sh down
./network_setup.sh up

验证

查看账户余额

# 进入容器
docker exec -it cli bash

# 查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

a账户的余额转20元给b账户

cd /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/

peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'

再次查看a账户余额

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
区块链
Web note ad 1