目前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"]}'
网友评论