前期準備
操作系統: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共識機制