Fabric2.0 SDK测试网络搭建

   日期:2020-05-09     浏览:148    评论:0    
核心提示:前期准备 操作系统:CentOS 7 Fabric版本: 2.x(1.x版本参考Fabric SDK测试网络搭建(v1.x))软件/依赖版本go1.14.xgit最新版本curl最新版本docker17.06.2-ce及以上版本docker-compose1.14及以上  下载fabric-samples源码:下载地址git cl...运维

前期准备

  操作系统:CentOS 7
  Fabric版本: 2.x(1.x版本参考Fabric SDK测试网络搭建(v1.x))

软件/依赖 版本
go 1.14.x
git 最新版本
curl 最新版本
docker 17.06.2-ce及以上版本
docker-compose 1.14及以上

   下载fabric-samples源码:下载地址

git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples && git checkout v2.0.1
mkdir bin 

   将下载好的二进制工具,放置在fabric-samples/bin路径下,请确保所下载二进制工具版本为v2.0.1

运行

   默认fabric-samples/first-network会启动一个两个组织四个节点(不含CA节点)的网络,和1.x版本的脚本不同,2.x版本脚本启动时可选择是否启动CA节点(默认不启动CA)
   byfn.sh脚本部分内容

# Generate the needed certificates, the genesis block and start the network.
function networkUp() {
  #检查二进制文件是否可用,以及对应版本的docker镜像是否存在
  checkPrereqs
  # generate artifacts if they don't exist,假设当前sh所在的父目录不存在crypto-config目录就执行生成区块通道以及证书脚本
  if [ ! -d "crypto-config" ]; then
    generateCerts
    generateChannelArtifacts
  fi
  COMPOSE_FILES="-f ${COMPOSE_FILE} -f ${COMPOSE_FILE_RAFT2}"
  if [ "${CERTIFICATE_AUTHORITIES}" == "true" ]; then
    COMPOSE_FILES="${COMPOSE_FILES} -f ${COMPOSE_FILE_CA}"
    export BYFN_CA1_PRIVATE_KEY=$(cd crypto-config/peerOrganizations/org1.example.com/ca && ls *_sk)
    export BYFN_CA2_PRIVATE_KEY=$(cd crypto-config/peerOrganizations/org2.example.com/ca && ls *_sk)
  fi
  if [ "${IF_COUCHDB}" == "couchdb" ]; then
    COMPOSE_FILES="${COMPOSE_FILES} -f ${COMPOSE_FILE_COUCH}"
  fi
  #使用docker-compose命令启动fabric网络
  IMAGE_TAG=$IMAGETAG docker-compose ${COMPOSE_FILES} up -d 2>&1
  docker ps -a
  if [ $? -ne 0 ]; then
    echo "ERROR !!!! Unable to start network"
    exit 1
  fi

  echo "Sleeping 15s to allow Raft cluster to complete booting"
  sleep 15

  if [ "${NO_CHAINCODE}" != "true" ]; then
    #加载go合约依赖包
    echo Vendoring Go dependencies ...
    pushd ../chaincode/abstore/go
    GO111MODULE=on go mod vendor
    popd
    echo Finished vendoring Go dependencies
  fi

  # now run the end to end script
  # 使用cli客户端执行脚本操作
  docker exec cli scripts/script.sh $CHANNEL_NAME $CLI_DELAY $CC_SRC_LANGUAGE $CLI_TIMEOUT $VERBOSE $NO_CHAINCODE
  if [ $? -ne 0 ]; then
    echo "ERROR !!!! Test failed"
    exit 1
  fi
}

  CERTIFICATE_AUTHORITIES为一变量,启动时通过-a参数传入;进入fabric-samples/first-network/目录,看下官方还提供了哪些命令

./byfn.sh help

输出:

Usage: 
  byfn.sh <mode> [-c <channel name>] [-t <timeout>] [-d <delay>] [-f <docker-compose-file>] [-s <dbtype>] [-l <language>] [-o <consensus-type>] [-i <imagetag>] [-a] [-n] [-v]
    <mode> - one of 'up', 'down', 'restart', 'generate' or 'upgrade'
      - 'up' - bring up the network with docker-compose up
      - 'down' - clear the network with docker-compose down
      - 'restart' - restart the network
      - 'generate' - generate required certificates and genesis block
      - 'upgrade'  - upgrade the network from version 1.3.x to 1.4.0
    -c <channel name> - channel name to use (defaults to "mychannel")
    -t <timeout> - CLI timeout duration in seconds (defaults to 10)
    -d <delay> - delay duration in seconds (defaults to 3)
    -s <dbtype> - the database backend to use: goleveldb (default) or couchdb
    -l <language> - the programming language of the chaincode to deploy: go (default), javascript, or java
    -i <imagetag> - the tag to be used to launch the network (defaults to "latest")
    -a - launch certificate authorities (no certificate authorities are launched by default)
    -n - do not deploy chaincode (abstore chaincode is deployed by default)
    -v - verbose mode
  byfn.sh -h (print this message)

Typically, one would first generate the required certificates and 
genesis block, then bring up the network. e.g.:

	byfn.sh generate -c mychannel
	byfn.sh up -c mychannel -s couchdb
        byfn.sh up -c mychannel -s couchdb -i 1.4.0
	byfn.sh up -l javascript
	byfn.sh down -c mychannel
        byfn.sh upgrade -c mychannel

Taking all defaults:
	byfn.sh generate
	byfn.sh up
	byfn.sh down

  言归正传,执行以下命令

./byfn.sh up -a true

  由此etcd raft SDK测试网络搭建完成

关于启用/关闭 TLS

  启用/关闭 TLS 请修改fabric-samples/first-network/base/目录下的peer-base.yaml

  Orderer节点:

- ORDERER_GENERCORE_PEER_TLS_ENABLED=true

  Peer节点:

- CORE_PEER_TLS_ENABLED=true
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服