本篇内容主要讲解“Windows怎么安装Hyperledger-fabric”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Windows怎么安装Hyperledger-fabric”吧!
在正式安装Hyperledger之前,应确保之前的环境都已经安装完毕,如没有安装完毕的话,可以参考这里。
由于该文件位于墙外,所以本文提供了该文件(bootstrap.sh)对应的详细脚本内容。
该脚本主要包括三个步骤,分别如下
从 Hyperledger 克隆 hyperledger fabric示例代码
从 Hyper ledger 仓库拉取可执行命令文件
通过docker 拉取 hyperledger镜像
引用文件 - bootstrap.sh
#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# if version not passed in, default to latest released version
VERSION=2.3.1
# if ca version not passed in, default to latest released version
CA_VERSION=1.4.9
ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')")
MARCH=$(uname -m)
printHelp() {
echo "Usage: bootstrap.sh [version [ca_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 2.3.1 1.4.9 -s"
echo "will download docker images and binaries for Fabric v2.3.1 and Fabric CA v1.4.9"
}
# dockerPull() pulls docker images from fabric and chaincode repositories
# note, if a docker image doesn't exist for a requested release, it will simply
# be skipped, since this script doesn't terminate upon errors.
dockerPull() {
#three_digit_image_tag is passed in, e.g. "1.4.7"
three_digit_image_tag=$1
shift
#two_digit_image_tag is derived, e.g. "1.4", especially useful as a local tag for two digit references to most recent baseos, ccenv, javaenv, nodeenv patch releases
two_digit_image_tag=$(echo "$three_digit_image_tag" | cut -d'.' -f1,2)
while [[ $# -gt 0 ]]
do
image_name="$1"
echo "====> hyperledger/fabric-$image_name:$three_digit_image_tag"
docker pull "hyperledger/fabric-$image_name:$three_digit_image_tag"
docker tag "hyperledger/fabric-$image_name:$three_digit_image_tag" "hyperledger/fabric-$image_name"
docker tag "hyperledger/fabric-$image_name:$three_digit_image_tag" "hyperledger/fabric-$image_name:$two_digit_image_tag"
shift
done
}
cloneSamplesRepo() {
# 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 "==> Already in fabric-samples repo"
elif [ -d fabric-samples ]; then
# if fabric-samples repo already cloned and in current directory,
# cd fabric-samples
echo "===> Changing directory to fabric-samples"
cd fabric-samples
else
echo "===> Cloning hyperledger/fabric-samples repo"
git clone -b main https://github.com/hyperledger/fabric-samples.git && cd fabric-samples
fi
if GIT_DIR=.git git rev-parse v${VERSION} >/dev/null 2>&1; then
echo "===> Checking out v${VERSION} of hyperledger/fabric-samples"
git checkout -q v${VERSION}
else
echo "fabric-samples v${VERSION} does not exist, defaulting main"
git checkout -q main
fi
}
# This will download the .tar.gz
download() {
local BINARY_FILE=$1
local URL=$2
echo "===> Downloading: " "${URL}"
curl -L --retry 5 --retry-delay 3 "${URL}" | tar xz || rc=$?
if [ -n "$rc" ]; then
echo "==> There was an error downloading the binary file."
return 22
else
echo "==> Done."
fi
}
pullBinaries() {
echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries"
download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
if [ $? -eq 22 ]; then
echo
echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----"
echo
exit
fi
echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary"
download "${CA_BINARY_FILE}" "https://github.com/hyperledger/fabric-ca/releases/download/v${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
exit
fi
}
pullDockerImages() {
command -v docker >& /dev/null
NODOCKER=$?
if [ "${NODOCKER}" == 0 ]; then
FABRIC_IMAGES=(peer orderer ccenv tools)
case "$VERSION" in
2.*)
FABRIC_IMAGES+=(baseos)
shift
;;
esac
echo "FABRIC_IMAGES:" "${FABRIC_IMAGES[@]}"
echo "===> Pulling fabric Images"
dockerPull "${FABRIC_TAG}" "${FABRIC_IMAGES[@]}"
echo "===> Pulling fabric ca Image"
CA_IMAGE=(ca)
dockerPull "${CA_TAG}" "${CA_IMAGE[@]}"
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 [ -n "$1" ] && [ "${1:0:1}" != "-" ]; then
VERSION=$1;shift
if [ -n "$1" ] && [ "${1:0:1}" != "-" ]; then
CA_VERSION=$1;shift
if [ -n "$1" ] && [ "${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 "Clone hyperledger/fabric-samples repo"
echo
cloneSamplesRepo
fi
if [ "$BINARIES" == "true" ]; then
echo
echo "Pull Hyperledger Fabric binaries"
echo
pullBinaries
fi
if [ "$DOCKER" == "true" ]; then
echo
echo "Pull Hyperledger Fabric docker images"
echo
pullDockerImages
fi
由于该脚本属于linux下的命令脚本,因此无法通过Windows shell执行,但是可以通过Git bash执行,具体执行命令如下。
favccxx@DESKTOP-83S72O9 MINGW64 /f/dev/example
$ chmod 777 bootstrap.sh
favccxx@DESKTOP-83S72O9 MINGW64 /f/dev/example
$ ./bootstrap.sh
Clone hyperledger/fabric-samples repo
===> Cloning hyperledger/fabric-samples repo
Cloning into 'fabric-samples'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (9/9), done.
Receiving objremote: Total 7458 (delta 2), reused 2 (delta 0), pack-reused 7449
Receiving objects: 100% (7458/7458), 4.27 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (3874/3874), done.
fabric-samples v2.3.1 does not exist, defaulting main
Pull Hyperledger Fabric binaries
===> Downloading version 2.3.1 platform specific fabric binaries
===> Downloading: https://github.com/hyperledger/fabric/releases/download/v2.3.1/hyperledger-fabric-windows-amd64-2.3.1.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 651 100 651 0 0 614 0 0:00:01 0:00:01 --:--:-- 614
100 73.5M 100 73.5M 0 0 702k 0 0:01:47 0:01:47 --:--:-- 840k
==> Done.
===> Downloading version 1.4.9 platform specific fabric-ca-client binary
===> Downloading: https://github.com/hyperledger/fabric-ca/releases/download/v1.4.9/hyperledger-fabric-ca-windows-amd64-1.4.9.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 654 100 654 0 0 781 0 --:--:-- --:--:-- --:--:-- 780
100 19.1M 100 19.1M 0 0 1131k 0 0:00:17 0:00:17 --:--:-- 1255k
==> Done.
Pull Hyperledger Fabric docker images
FABRIC_IMAGES: peer orderer ccenv tools baseos
===> Pulling fabric Images
====> hyperledger/fabric-peer:2.3.1
2.3.1: Pulling from hyperledger/fabric-peer
801bfaa63ef2: Pulling fs layer
e7f20c07c51b: Pulling fs layer
bb00588ab247: Pulling fs layer
8a823a5e7999: Pulling fs layer
9308132a1c76: Pulling fs layer
84d74acbd352: Pulling fs layer
84d74acbd352: Waiting
9308132a1c76: Waiting
8a823a5e7999: Waiting
bb00588ab247: Verifying Checksum
bb00588ab247: Download complete
e7f20c07c51b: Verifying Checksum
e7f20c07c51b: Download complete
9308132a1c76: Verifying Checksum
9308132a1c76: Download complete
801bfaa63ef2: Verifying Checksum
801bfaa63ef2: Download complete
801bfaa63ef2: Pull complete
e7f20c07c51b: Pull complete
bb00588ab247: Pull complete
84d74acbd352: Verifying Checksum
84d74acbd352: Download complete
8a823a5e7999: Verifying Checksum
8a823a5e7999: Download complete
8a823a5e7999: Pull complete
9308132a1c76: Pull complete
84d74acbd352: Pull complete
Digest: sha256:d5f302545f71dbf83d172dd5ec2d1106db7ac77883c67b4d72b23c801bcf16fc
Status: Downloaded newer image for hyperledger/fabric-peer:2.3.1
docker.io/hyperledger/fabric-peer:2.3.1
====> hyperledger/fabric-orderer:2.3.1
2.3.1: Pulling from hyperledger/fabric-orderer
801bfaa63ef2: Already exists
e7f20c07c51b: Already exists
400c127a54db: Pulling fs layer
7d6bb7272303: Pulling fs layer
745ed752c905: Pulling fs layer
1f9702d08456: Pulling fs layer
44ee6b99c7df: Pulling fs layer
1f9702d08456: Waiting
44ee6b99c7df: Waiting
745ed752c905: Verifying Checksum
745ed752c905: Download complete
400c127a54db: Verifying Checksum
400c127a54db: Download complete
400c127a54db: Pull complete
44ee6b99c7df: Verifying Checksum
44ee6b99c7df: Download complete
1f9702d08456: Verifying Checksum
1f9702d08456: Download complete
7d6bb7272303: Download complete
7d6bb7272303: Pull complete
745ed752c905: Pull complete
1f9702d08456: Pull complete
44ee6b99c7df: Pull complete
Digest: sha256:635a7fb0b0227a59ee07bb21c0c719d952b6f1c9da6cd5eaf449e6e3f39aafcd
Status: Downloaded newer image for hyperledger/fabric-orderer:2.3.1
docker.io/hyperledger/fabric-orderer:2.3.1
====> hyperledger/fabric-ccenv:2.3.1
2.3.1: Pulling from hyperledger/fabric-ccenv
188c0c94c7c5: Pulling fs layer
0ef7d3d256c8: Pulling fs layer
de9db76c5a1d: Pulling fs layer
a99aea8d7e66: Pulling fs layer
a5124c9860dc: Pulling fs layer
0e91c50f714f: Pulling fs layer
a0ebc98ad666: Pulling fs layer
2139fe33a27c: Pulling fs layer
f22d7e155f9b: Pulling fs layer
a99aea8d7e66: Waiting
a5124c9860dc: Waiting
0e91c50f714f: Waiting
a0ebc98ad666: Waiting
2139fe33a27c: Waiting
f22d7e155f9b: Waiting
de9db76c5a1d: Verifying Checksum
de9db76c5a1d: Download complete
0ef7d3d256c8: Verifying Checksum
0ef7d3d256c8: Download complete
a5124c9860dc: Verifying Checksum
a5124c9860dc: Download complete
188c0c94c7c5: Download complete
188c0c94c7c5: Pull complete
0ef7d3d256c8: Pull complete
de9db76c5a1d: Pull complete
a0ebc98ad666: Verifying Checksum
a0ebc98ad666: Download complete
2139fe33a27c: Verifying Checksum
2139fe33a27c: Download complete
f22d7e155f9b: Verifying Checksum
f22d7e155f9b: Download complete
0e91c50f714f: Verifying Checksum
0e91c50f714f: Download complete
a99aea8d7e66: Download complete
a99aea8d7e66: Pull complete
a5124c9860dc: Pull complete
0e91c50f714f: Pull complete
a0ebc98ad666: Pull complete
2139fe33a27c: Pull complete
f22d7e155f9b: Pull complete
Digest: sha256:881ebe5a56e2424431a073e1ba518f47b1bd7117ab12f0296c5fe465dcf72504
Status: Downloaded newer image for hyperledger/fabric-ccenv:2.3.1
docker.io/hyperledger/fabric-ccenv:2.3.1
====> hyperledger/fabric-tools:2.3.1
2.3.1: Pulling from hyperledger/fabric-tools
188c0c94c7c5: Already exists
0ef7d3d256c8: Already exists
de9db76c5a1d: Already exists
a99aea8d7e66: Already exists
a5124c9860dc: Already exists
e7b57d412333: Pulling fs layer
04a826e76290: Pulling fs layer
c53dc52418de: Pulling fs layer
c53dc52418de: Download complete
e7b57d412333: Verifying Checksum
e7b57d412333: Download complete
e7b57d412333: Pull complete
04a826e76290: Verifying Checksum
04a826e76290: Download complete
04a826e76290: Pull complete
c53dc52418de: Pull complete
Digest: sha256:2fed59de66c3ad34b70e3abb644789b0fd8c66edc8be9fa624313fc2d366c6a2
Status: Downloaded newer image for hyperledger/fabric-tools:2.3.1
docker.io/hyperledger/fabric-tools:2.3.1
====> hyperledger/fabric-baseos:2.3.1
2.3.1: Pulling from hyperledger/fabric-baseos
801bfaa63ef2: Already exists
e7f20c07c51b: Already exists
e7ffd743a43f: Pulling fs layer
e7ffd743a43f: Verifying Checksum
e7ffd743a43f: Download complete
e7ffd743a43f: Pull complete
Digest: sha256:4e35a94544f68e05598a499c36ac7bb1a73d7eaacfb0c8973c0f822f87224720
Status: Downloaded newer image for hyperledger/fabric-baseos:2.3.1
docker.io/hyperledger/fabric-baseos:2.3.1
===> Pulling fabric ca Image
====> hyperledger/fabric-ca:1.4.9
1.4.9: Pulling from hyperledger/fabric-ca
b8f262c62ec6: Pulling fs layer
db9dbc6799b3: Pulling fs layer
9c5c884a6020: Pulling fs layer
370868734ec0: Pulling fs layer
cbce57ae4cad: Pulling fs layer
fc00299dbf2c: Pulling fs layer
a1e42212f1ce: Pulling fs layer
add0e148da22: Pulling fs layer
370868734ec0: Waiting
cbce57ae4cad: Waiting
fc00299dbf2c: Waiting
a1e42212f1ce: Waiting
add0e148da22: Waiting
db9dbc6799b3: Verifying Checksum
db9dbc6799b3: Download complete
370868734ec0: Download complete
9c5c884a6020: Verifying Checksum
9c5c884a6020: Download complete
cbce57ae4cad: Verifying Checksum
cbce57ae4cad: Download complete
fc00299dbf2c: Verifying Checksum
fc00299dbf2c: Download complete
add0e148da22: Verifying Checksum
add0e148da22: Download complete
a1e42212f1ce: Verifying Checksum
a1e42212f1ce: Download complete
b8f262c62ec6: Verifying Checksum
b8f262c62ec6: Pull complete
db9dbc6799b3: Pull complete
9c5c884a6020: Pull complete
370868734ec0: Pull complete
cbce57ae4cad: Pull complete
fc00299dbf2c: Pull complete
a1e42212f1ce: Pull complete
add0e148da22: Pull complete
Digest: sha256:28f50c6aa4f4642842e706d3ae6dcee181921d03bd30ab2a8b09b66e0349d92f
Status: Downloaded newer image for hyperledger/fabric-ca:1.4.9
docker.io/hyperledger/fabric-ca:1.4.9
===> List out hyperledger docker images
yeasy/hyperledger-fabric latest 9150d9d58622 5 weeks ago 2.34GB
hyperledger/fabric-tools 2.3 d3f075ceb6c6 2 months ago 454MB
hyperledger/fabric-tools 2.3.1 d3f075ceb6c6 2 months ago 454MB
hyperledger/fabric-tools latest d3f075ceb6c6 2 months ago 454MB
hyperledger/fabric-peer 2.3 1e8e82ab49af 2 months ago 56.5MB
hyperledger/fabric-peer 2.3.1 1e8e82ab49af 2 months ago 56.5MB
hyperledger/fabric-peer latest 1e8e82ab49af 2 months ago 56.5MB
hyperledger/fabric-orderer 2.3 12f8ed297e92 2 months ago 39.6MB
hyperledger/fabric-orderer 2.3.1 12f8ed297e92 2 months ago 39.6MB
hyperledger/fabric-orderer latest 12f8ed297e92 2 months ago 39.6MB
hyperledger/fabric-ccenv 2.3 55dda4b263f6 2 months ago 502MB
hyperledger/fabric-ccenv 2.3.1 55dda4b263f6 2 months ago 502MB
hyperledger/fabric-ccenv latest 55dda4b263f6 2 months ago 502MB
hyperledger/fabric-baseos 2.3 fb85a21d6642 2 months ago 6.85MB
hyperledger/fabric-baseos 2.3.1 fb85a21d6642 2 months ago 6.85MB
hyperledger/fabric-baseos latest fb85a21d6642 2 months ago 6.85MB
hyperledger/fabric-ca 1.4 dbbc768aec79 6 months ago 158MB
hyperledger/fabric-ca 1.4.9 dbbc768aec79 6 months ago 158MB
hyperledger/fabric-ca latest dbbc768aec79 6 months ago 158MB
1. 下载hyperledger示例文件
$ git clone https://github.com/hyperledger/fabric-samples
Cloning into 'fabric-samples'...
remote: Enumerating objects: 44, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (33/33), done.
remote: Total 7458 (delta 10), reused 37 (delta 8), pack-reused 7414
Receiving objects: 100% (7458/7458), 4.28 MiB | 1.06 MiB/s, done.
Resolving deltas: 100% (3856/3856), done.
2. 下载 hyperledger-fabric 镜像
C:\Users\favccxx>docker search hyperledger-fabric
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
yeasy/hyperledger-fabric Docker image for Hyperledger Fabric. 12 [OK]
yeasy/hyperledger-fabric-peer Docker image for Hyperledger Fabric Peer 7 [OK]
yeasy/hyperledger-fabric-base Docker image for hyperledger fabric base. 6 [OK]
yeasy/hyperledger-fabric-orderer Docker image for Hyperledger Fabric Orderer 3 [OK]
yeasy/hyperledger-fabric-ca Docker image for Hyperledger fabric-ca. 2 [OK]
yeasy/hyperledger-fabric-cop Docker image for the Hyperledger Fabric-Cop 2 [OK]
yeasy/hyperledger-fabric-kafka Docker image for Hyperledger Fabric Kafka. 1 [OK]
yeasy/hyperledger-fabric-membersrvc Docker image for Hyperledger Fabric Membersr… 1 [OK]
yeasy/hyperledger-fabric-couchdb Docker image for Hyperledger Fabric Couchdb 1 [OK]
yeasy/hyperledger-fabric-sdk-node Hyperledger Fabric SDK Node 0 [OK]
crazybit/hyperledger-fabric-peer hyperledger-fabric-peer 0 [OK]
crazybit/hyperledger-fabric-orderer hyperledger-fabric-orderer 0 [OK]
nicolaspence/hyperledger-fabric-couchdb 0
crazybit/hyperledger-fabric-base fabric base image 0 [OK]
downthefallline/hyperledger-fabric-couchdb 0
jincort/hyperledger-fabricapi 0
vpispanen/hyperledger-fabric-1.4-updated hyperledger fabric 1.4 with java 11 and grad… 0
xingangw/hyperledger-fabric-orderer 0
iwita/hyperledger-fabric-peer 0
amawi/hyperledger-fabric-tools hyperledger-fabric-tools 0
wingdevelop/hyperledger-fabric-tools hyperledger-fabric-tools including configtxl… 0
tricle/hyperledger-fabric-buildenv 0
iwita/hyperledger-fabric-tools 0
downthefallline/hyperledger-fabric-cli 0
downthefallline/hyperledger-fabric-peer 0
C:\Users\favccxx>docker pull yeasy/hyperledger-fabric:latest
latest: Pulling from yeasy/hyperledger-fabric
0ecb575e629c: Pull complete
7467d1831b69: Pull complete
feab2c490a3c: Pull complete
f15a0f46f8c3: Pull complete
2ea92ed63b96: Pull complete
223c5fc7af76: Pull complete
764ae8cdbfbc: Pull complete
48b0102f6708: Pull complete
66efff5eb9cb: Pull complete
56c1bfac88a2: Pull complete
a7190ed30697: Pull complete
a42da091ddaf: Pull complete
46cd834e6a98: Pull complete
336346de5934: Pull complete
d697c1864fc7: Pull complete
8507db9c26de: Pull complete
a0eda6690634: Pull complete
d3ee5adb1ef2: Pull complete
985a95cc8f81: Pull complete
c7ded885d9a7: Pull complete
Digest: sha256:497381f310e9098951e32ef02bf6ee23fe93c762f2af76045074fa79857cd895
Status: Downloaded newer image for yeasy/hyperledger-fabric:latest
参考资料:https://hyperledger-fabric.readthedocs.io/en/latest/install.html
到此,相信大家对“Windows怎么安装Hyperledger-fabric”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。