六、用于创建通道和部署合约
6.1修改script/script.sh文件中$CHANNEL_NAME
CHANNEL_NAME="$1"
DELAY="$2"
LANGUAGE="$3"
TIMEOUT="$4"
VERBOSE="$5"
: ${CHANNEL_NAME:="mychannel"}
: ${DELAY:="3"}
: ${LANGUAGE:="golang"}
: ${TIMEOUT:="10"}
: ${VERBOSE:="false"}
6.2创建channel操作
6.2.1 修改utils.sh文件的setGlobals() 函数,根据函数输入的0,1得到对应的TLS和MSP密钥路径
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric-samples/my-network/crypto-config/ordererOrganizations/mikechain.com/tlsca/tlsca.mikechain.com-cert.pem
PEER0_ORG1_CA=/opt/gopath/src/github.com/hyperledger/fabric-samples/my-network/crypto-config/peerOrganizations/orga.mikechain.com/peers/peer0.orga.mikechain.com/tls/ca.crt
PEER0_ORG2_CA=/opt/gopath/src/github.com/hyperledger/fabric-samples/my-network/crypto-config/peerOrganizations/orgb.mikechain.com/peers/peer0.orgb.mikechain.com/tls/ca.crt
PEER0_ORG3_CA=/opt/gopath/src/github.com/hyperledger/fabric-samples/my-network/crypto-config/peerOrganizations/orgc.mikechain.com/peers/peer0.orgc.mikechain.com/tls/ca.crt
修改setGlobals()函数
setGlobals() {
PEER=$1
ORG=$2
if [ $ORG -eq 1 ]; then
CORE_PEER_LOCALMSPID="OrgaMSP"
CORE_PEER_TLS_ROOTCERT_FILE=$PEER0_ORG1_CA
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orga.mikechain.com/users/Admin@orga.mikechain.com/msp
if [ $PEER -eq 0 ]; then
CORE_PEER_ADDRESS=peer0.orga.mikechain.com:7051
else
CORE_PEER_ADDRESS=peer1.orga.mikechain.com:7051
fi
elif [ $ORG -eq 2 ]; then
CORE_PEER_LOCALMSPID="OrgbMSP"
CORE_PEER_TLS_ROOTCERT_FILE=$PEER0_ORG2_CA
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgb.mikechain.com/users/Admin@orgb.mikechain.com/msp
if [ $PEER -eq 0 ]; then
CORE_PEER_ADDRESS=peer0.orgb.mikechain.com:7051
else
CORE_PEER_ADDRESS=peer1.orgb.mikechain.com:7051
fi
elif [ $ORG -eq 3 ]; then
CORE_PEER_LOCALMSPID="OrgcMSP"
CORE_PEER_TLS_ROOTCERT_FILE=$PEER0_ORG3_CA
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgc.mikechain.com/users/Admin@orgc.mikechain.com/msp
if [ $PEER -eq 0 ]; then
CORE_PEER_ADDRESS=peer0.orgc.mikechain.com:7051
else
CORE_PEER_ADDRESS=peer1.orgc.mikechain.com:7051
fi
else
echo "================== ERROR !!! ORG Unknown =================="
fi
if [ "$VERBOSE" == "true" ]; then
env | grep CORE
fi
}
6.3 所有节点加入到channel中,对应的指令如下:
peer channel join -b $CHANNEL_NAME.block
6.4 为通道里每个联盟设置锚点更新
$CHANNEL_NAME=mychannel
${CORE_PEER_LOCALMSPID} = OrgaMSPanchors.tx
$CORE_PEER_TLS_ENABLED = False
$ORDERER_CA = /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/mikechain.com/orderers/orderer.mikechain.com/msp/tlscacerts/tlsca.mikechain.com-cert.pem
peer channel update -o orderer.mikechain.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/${CORE_PEER_LOCALMSPID}anchors.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt