部署IBM区块链平台:开发区块链业务网络到Hyperledger Fabric(多个组织)
2018-09-03 14:54
1976 查看
Deploying a IBM Blockchain Platform: Develop blockchain business network to Hyperledger Fabric (multiple organizations)
在参照部署IBM区块链平台:开发区块链业务网络到Hyperledger Fabric(多个组织)的教程过程中遇到的问题
问题一:
在“Download the platform binaries, including cryptogen ”(下载平台二进制文件,包括cryptogen)这一步中执行一下命令
[code]curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
时 提示连接超时:
[code]curl: (7) Failed to connect to goo.gl port 443: Operation timed out
解决方法:
方法一:
用浏览器打开命令中的地址发现:
[code]https://goo.gl/6wtTN5 这个地址映射到了下面这个地址 https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh
所以将来命令中的地址替换为执行,ok了。如果你的问题依然内有解决你可以看方法二。
[code]curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0
方法二:
浏览器打开:(文件内容会贴到后边)
[code]https://goo.gl/6wtTN5 或者(这个地址映射到了下面这个地址) https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh
其实就是bootstrap.sh文件的源码,将文件保存到本地,copy到需要执行此命令的目录下,然后执行(这一步速度真慢)
[code]sudo chmod +x bootstrap.sh ./bootstrap.sh
以上这一步命令参考的大侠的文章:https://www.geek-share.com/detail/2725686031.html
***如果你打不开这个地址可以复制如下内容,在本地新建一个bootstrap.sh文件
bootstrap.sh内容:
[code]#!/bin/bash # # Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: Apache-2.0 # # if version not passed in, default to latest released version export VERSION=1.2.0 # if ca version not passed in, default to latest released version export CA_VERSION=$VERSION # current version of thirdparty images (couchdb, kafka and zookeeper) released export THIRDPARTY_IMAGE_VERSION=0.4.10 export ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')") export MARCH=$(uname -m) printHelp() { echo "Usage: bootstrap.sh [version [ca_version [thirdparty_version]]] [options]" echo echo "options:" echo "-h : this help" echo "-d : bypass docker image download" echo "-s : bypass fabric-samples repo clone" echo "-b : bypass download of platform-specific binaries" echo echo "e.g. bootstrap.sh 1.2.0 -s" echo "would download docker images and binaries for version 1.2.0" } dockerFabricPull() { local FABRIC_TAG=$1 for IMAGES in peer orderer ccenv tools; do echo "==> FABRIC IMAGE: $IMAGES" echo docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES done } dockerThirdPartyImagesPull() { local THIRDPARTY_TAG=$1 for IMAGES in couchdb kafka zookeeper; do echo "==> THIRDPARTY DOCKER IMAGE: $IMAGES" echo docker pull hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG docker tag hyperledger/fabric-$IMAGES:$THIRDPARTY_TAG hyperledger/fabric-$IMAGES done } dockerCaPull() { local CA_TAG=$1 echo "==> FABRIC CA IMAGE" echo docker pull hyperledger/fabric-ca:$CA_TAG docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca } samplesInstall() { # clone (if needed) hyperledger/fabric-samples and checkout corresponding # version to the binaries and docker images to be downloaded if [ -d first-network ]; then # if we are in the fabric-samples repo, checkout corresponding version echo "===> Checking out v${VERSION} branch of hyperledger/fabric-samples" git checkout v${VERSION} elif [ -d fabric-samples ]; then # if fabric-samples repo already cloned and in current directory, # cd fabric-samples and checkout corresponding version echo "===> Checking out v${VERSION} branch of hyperledger/fabric-samples" cd fabric-samples && git checkout v${VERSION} else echo "===> Cloning hyperledger/fabric-samples repo and checkout v${VERSION}" git clone -b master https://github.com/hyperledger/fabric-samples.git && cd fabric-samples && git checkout v${VERSION} fi } # Incrementally downloads the .tar.gz file locally first, only decompressing it # after the download is complete. This is slower than binaryDownload() but # allows the download to be resumed. binaryIncrementalDownload() { local BINARY_FILE=$1 local URL=$2 curl -f -s -C - ${URL} -o ${BINARY_FILE} || rc=$? # Due to limitations in the current Nexus repo: # curl returns 33 when there's a resume attempt with no more bytes to download # curl returns 2 after finishing a resumed download # with -f curl returns 22 on a 404 if [ "$rc" = 22 ]; then # looks like the requested file doesn't actually exist so stop here return 22 fi if [ -z "$rc" ] || [ $rc -eq 33 ] || [ $rc -eq 2 ]; then # The checksum validates that RC 33 or 2 are not real failures echo "==> File downloaded. Verifying the md5sum..." localMd5sum=$(md5sum ${BINARY_FILE} | awk '{print $1}') remoteMd5sum=$(curl -s ${URL}.md5) if [ "$localMd5sum" == "$remoteMd5sum" ]; then echo "==> Extracting ${BINARY_FILE}..." tar xzf ./${BINARY_FILE} --overwrite echo "==> Done." rm -f ${BINARY_FILE} ${BINARY_FILE}.md5 else echo "Download failed: the local md5sum is different from the remote md5sum. Please try again." rm -f ${BINARY_FILE} ${BINARY_FILE}.md5 exit 1 fi else echo "Failure downloading binaries (curl RC=$rc). Please try again and the download will resume from where it stopped." exit 1 fi } # This will attempt to download the .tar.gz all at once, but will trigger the # binaryIncrementalDownload() function upon a failure, allowing for resume # if there are network failures. binaryDownload() { local BINARY_FILE=$1 local URL=$2 echo "===> Downloading: " ${URL} # Check if a previous failure occurred and the file was partially downloaded if [ -e ${BINARY_FILE} ]; then echo "==> Partial binary file found. Resuming download..." binaryIncrementalDownload ${BINARY_FILE} ${URL} else curl ${URL} | tar xz || rc=$? if [ ! -z "$rc" ]; then echo "==> There was an error downloading the binary file. Switching to incremental download." echo "==> Downloading file..." binaryIncrementalDownload ${BINARY_FILE} ${URL} else echo "==> Done." fi fi } binariesInstall() { echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries" binaryDownload ${BINARY_FILE} https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/${BINARY_FILE} if [ $? -eq 22 ]; then echo echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----" echo fi echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary" binaryDownload ${CA_BINARY_FILE} https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/${ARCH}-${CA_VERSION}/${CA_BINARY_FILE} if [ $? -eq 22 ]; then echo echo "------> ${CA_TAG} fabric-ca-client binary is not available to download (Available from 1.1.0-rc1) <----" echo fi } dockerInstall() { which docker >& /dev/null NODOCKER=$? if [ "${NODOCKER}" == 0 ]; then echo "===> Pulling fabric Images" dockerFabricPull ${FABRIC_TAG} echo "===> Pulling fabric ca Image" dockerCaPull ${CA_TAG} echo "===> Pulling thirdparty docker images" dockerThirdPartyImagesPull ${THIRDPARTY_TAG} echo echo "===> List out hyperledger docker images" docker images | grep hyperledger* else echo "=========================================================" echo "Docker not installed, bypassing download of Fabric images" echo "=========================================================" fi } DOCKER=true SAMPLES=true BINARIES=true # Parse commandline args pull out # version and/or ca-version strings first if [ ! -z $1 -a ${1:0:1} != "-" ]; then VERSION=$1;shift if [ ! -z $1 -a ${1:0:1} != "-" ]; then CA_VERSION=$1;shift if [ ! -z $1 -a ${1:0:1} != "-" ]; then THIRDPARTY_IMAGE_VERSION=$1;shift fi fi fi # prior to 1.2.0 architecture was determined by uname -m if [[ $VERSION =~ ^1\.[0-1]\.* ]]; then export FABRIC_TAG=${MARCH}-${VERSION} export CA_TAG=${MARCH}-${CA_VERSION} export THIRDPARTY_TAG=${MARCH}-${THIRDPARTY_IMAGE_VERSION} else # starting with 1.2.0, multi-arch images will be default : ${CA_TAG:="$CA_VERSION"} : ${FABRIC_TAG:="$VERSION"} : ${THIRDPARTY_TAG:="$THIRDPARTY_IMAGE_VERSION"} fi BINARY_FILE=hyperledger-fabric-${ARCH}-${VERSION}.tar.gz CA_BINARY_FILE=hyperledger-fabric-ca-${ARCH}-${CA_VERSION}.tar.gz # then parse opts while getopts "h?dsb" opt; do case "$opt" in h|\?) printHelp exit 0 ;; d) DOCKER=false ;; s) SAMPLES=false ;; b) BINARIES=false ;; esac done if [ "$SAMPLES" == "true" ]; then echo echo "Installing hyperledger/fabric-samples repo" echo samplesInstall fi if [ "$BINARIES" == "true" ]; then echo echo "Installing Hyperledger Fabric binaries" echo binariesInstall fi if [ "$DOCKER" == "true" ]; then echo echo "Installing Hyperledger Fabric docker images" echo dockerInstall fi
阅读更多
相关文章推荐
- 使用Hyperledger Composer将业务网络部署到单个组织的Hyperledger Fabric区块链上
- 使用Hyperledger Composer将业务网络部署到单个组织的Hyperledger Fabric区块链上
- Java为Hyperledger Fabric(超级账本)开发区块链链代码智能合约之环境部署
- 从零开始配置Hyperledger Fabric区块链网络所需组件及Hyperledger Composer开发工具的安装
- 使用Hyperledger Composer将业务网络部署到多个组织的Hyperledger Fabric区块链上
- 区块链基础知识系列第5课 Hyperledger fabric1.0网络中transaction产生以及流转过程
- 自己动手部署区块链-hyperledger/fabric-02
- 实战:区块链hyperledger fabric 初体验 - 2: 测试网络
- 自己动手部署区块链-hyperledger/fabric-01
- 区块链在中国(1):IBM HyperLedger fabric
- windows 搭建 IBM Hyperledger Fabric(超级账本)开发环境
- hyperledger fabric本地开发环境mac部署
- 区块链在中国(1):IBM HyperLedger fabric
- 面向区块链网络的 Hyperledger Fabric 的 6 大技术优势
- Hyperledger Fabric 区块链多机部署
- 开源VS商用,IBM区块链从Hyperledger到商用平台之道 | 对话IBM高级架构师【 笔记】(转)
- Hyperledger Fabric 之部署v1.0.0网络
- Hyperledger Fabric开发(二):创建网络
- 实战:区块链hyperledger fabric 初体验 - 1:安装部署
- 区块链基础知识系列 第四课Hyperledger fabric 1.0网络组成及构建流程