基于Hyperledger Fabric1.4 自定义搭建自己的区块链(三)

六、用于创建通道和部署合约

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/[email protected]/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/[email protected]/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/[email protected]/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

区块链初始化到此为止,后面为合约部署阶段

发布了10 篇原创文章 · 获赞 5 · 访问量 5668

猜你喜欢

转载自blog.csdn.net/u010471976/article/details/104769845