前期准备
操作系统:centOS 7
Fabric版本: 1.4.4(注:1.x版本均适用,2.x版本参考Fabric2.0 SDK测试网络搭建)
- 已安装go,git
- 已安装docker,docker-compose
- 已安装二进制工具(下载地址)
下载fabric-samples源码:
git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples && git checkout v1.4.4
mkdir bin #建立二进制工具存放文件夹
将下载好的二进制工具,放置在fabric-samples/bin路径下,请确保所下载二进制工具版本为v1.4.4
修改配置文件
默认fabric-samples/first-network会启动一个两个组织四个节点(不含CA节点),为了SDK测试方便,我们做如下修改:
vim byfn.sh
修改COMPOSE_FILE=docker-compose-e2e.yaml(默认docker-compose yaml),不用担心first-network目录下没有这个文件,启动脚本会根据目录下docker-compose-e2e-template.yaml自动创建docker-compose-e2e.yaml
将下列代码(拷贝自docker-compose-ca.yaml )添加到docker-compose-e2e-template.yaml
ca0:
image: hyperledger/fabric-ca:$IMAGE_TAG
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca-org1
- FABRIC_CA_SERVER_TLS_ENABLED=false
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/CA1_PRIVATE_KEY
ports:
- "7054:7054"
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/CA1_PRIVATE_KEY -b admin:adminpw -d'
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
container_name: ca_peerOrg1
networks:
- byfn
ca1:
image: hyperledger/fabric-ca:$IMAGE_TAG
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca-org2
- FABRIC_CA_SERVER_TLS_ENABLED=false
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/CA2_PRIVATE_KEY
ports:
- "8054:7054"
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/CA2_PRIVATE_KEY -b admin:adminpw -d'
volumes:
- ./crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
container_name: ca_peerOrg2
networks:
- byfn
保存docker-compose-e2e-template.yaml
关于启用/关闭 TLS
启用/关闭 TLS 请修改fabric-samples/first-network/base/目录下的peer-base.yaml
Orderer节点:
- ORDERER_GENERCORE_PEER_TLS_ENABLED=true
Peer节点:
- CORE_PEER_TLS_ENABLED=true
脚本修改
fabric-samples/first-network/scripts
默认情况下执行脚本,会在三个节点安装链码,做如下修改:
if [ "${NO_CHAINCODE}" != "true" ]; then
## Install chaincode on peer0.org1 and peer0.org2
echo "Installing chaincode on peer0.org1..."
installChaincode 0 1
echo "Install chaincode on peer0.org2..."
installChaincode 0 2
# Instantiate chaincode on peer0.org2
echo "Instantiating chaincode on peer0.org2..."
instantiateChaincode 0 2
# Query chaincode on peer0.org1
#echo "Querying chaincode on peer0.org1..."
#chaincodeQuery 0 1 100
# Invoke chaincode on peer0.org1 and peer0.org2
#echo "Sending invoke transaction on peer0.org1 peer0.org2..."
#chaincodeInvoke 0 1 0 2
## Install chaincode on peer0.org1
echo "Installing chaincode on peer1.org1.."
installChaincode 1 1
## Install chaincode on peer1.org2
echo "Installing chaincode on peer1.org2..."
installChaincode 1 2
# Query on chaincode on peer1.org2, check if the result is 90
#echo "Querying chaincode on peer1.org2..."
#chaincodeQuery 1 2 90
fi
运行脚本
./byfn.sh up
文件参考
docker-compose-e2e-template.yaml(已改好配置)
下载地址:https://pan.baidu.com/s/1qhXKi4iqIPtUj-bsDruUeA
提取码:djrf
其它博客(持续更新):
1.Fabric hyperledger 1.4 first-network 测试及手动执行
2.Faric 1.4中的背书策略
3.Fabric Hyperledger如何确保数据隐私?
4.Fabric Hyperledger之隐私数据(Private data)
5.Fabric启用CouchDB
6.Fabric共识机制