安装docker 容器
[root@localhost ~]# yum update
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@localhost ~]# yum install docker-ce
[root@localhost ~]# docker version
安装docker-compose 编排容器,可以控制多个容器
root@localhost ~]# yum -y install epel-release
root@localhost ~]# yum -y install python-pip
root@localhost ~]# yum install docker-compose
root@localhost ~]# docker-compose version
ubuntu
sudo apt-get update
sudo apt-get install docker
sudo apt-get install docker.io
sudo apt-get install docker-registry
sudo api-get install docker-compose
sudo systemctl start docker
安装git
root@localhost ~]# yum -y install git
安装 go
查看go环境
可以看到 gopath 是在 /root/go 下面,进入该目录
//创建项目存储路径 这个路劲极其重要,一定要匹配gopath
mkdir -p src/github.com/hyperledger
在hyperledger 路径下 拉取 fabric-samples 代码
git clone https://github.com/hyperledger/fabric.git
项目拉取玩之后迁到master分支,将bootstrap.sh复制到 hyperledger 路径下
然后执行 ./bootstrap.sh, 就会下载相应的 image,脚本里面也会自己去拉取fabric-samples 代码,执行完结果如下
将fabric-samples 版本 迁到release-1.4;
进入fabric-samples/bin 下就会看到已经安装好了二进制文件;
进入 first-network
//先关闭一下镜像,即使没有也可以执行以下
./byfn.sh down
//启动一下 docker
service docker start
//直接启动
./byfn.sh up
执行结束 ,可以看下启动的镜像有那些
如图可以看到初始化了四个peer节点,一个order排序节点,三个链码对象,还有一个客户端 */bin/bash
进入客户端的 docker
docker exec -it cli /bin/bash
项目启动的时候 脚本里面就初始化了两个值,一个值100,一个值200,详细的可以看启动日志,都有打印,此处查询了a的值,已经可以查出来了
//
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
//这个不好用
peer chaincode query -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
链码与链的关系 还在摸索中
自动选举leader节点:
# Fabric自动选举peer节点为leader节点(每个peer节点都需要这样设置)
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false