Hyper ledger在win 10(Win10 Pro, Win10 Education)上的安装主要有以下几步(我自己用的Win 10 教育版):
- Docker for Windows 安装
- Curl for Windows 安装
- Go 语言安装
- Node.js 和 NPM 安装
- Python 2.7安装
- Windows-build-tools 和 grpc 安装
- Hyperledger Fabric 1.4.4 Samples, Binaries and Docker Images安装
- Fabric 网络测试
Step 1: 安装Docker for Windows 10
现在Docker已经支持Win 10,并且有.exe
桌面版可供下载。
下载链接:Docker Desktop and Desktop Enterprise
点击Download Desktop for Mac and Windows
,需要注册docker账号才下载。下载完成后,直接打开Docker Desktop Installer.exe
即可安装,默认安装即可。
安装完成后,启动docker。右键docker图标,选择Settings
。
设置General
,勾选Expose daemon on tcp://localhost:2375 without TLS
。
设置Shared Drives
(可以勾选所有),我设置了D盘。
系统要求:Docker for windows 安装文档
- Windows 10 64-bit: Pro, Enterprise, or Education (Build 15063 or later).
- Hyper-V and Containers Windows features must be enabled. (参考:如何开启和使用windows 10中的Hyper-v)
- The following hardware prerequisites are required to successfully run Client Hyper-V on Windows 10:
- 64 bit processor with Second Level Address Translation (SLAT)
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the BIOS settings. For more information, see Virtualization.
接下来的步骤根据Hyper Ledger 1.4 说明文档的Getting Started
来操作。
检查Docker是否安装成功:
$ docker --version
Docker version 19.03.5, build 633a0ea
$ docker-compose --version
docker-compose version 1.24.1, build 4667896b
可以使用Docker命令pull,删除,查看,运行镜像:
Docker官网上有它们给出的一些官方镜像,例如hello-world
$ docker pull hello-world
$ docker rmi hello-world
$ docker images
$ docker run hello-world
Step 2: 安装Curl for Windows
现在Curl已经提供了比较简单的.exe
安装方式。安装Curl for 64-bit
,.exe
文件应该在bin
文件夹中。
此时,你可以在cmd
窗口中使用curl
命令检查是否安装成功。
curl --help
当然也可以安装Git Bash 64-bit for Windows,自带Curl
命令。在运行clone
命令前,要做一些设置:
$ git config --global core.autocrlf false
$ git config --global core.longpaths true
你可以通过以下命令检查设置是否成功:
$ git config --get core.autocrlf
false
$ git config --get core.longpaths
true
注意:git bash自带的curl命令无法在powershell和cmd中使用。
Step 3: 安装Go语言
版本要求:Go version 1.12.x is required.
Go语言安装路径需要在环境变量中设置,在用户变量中添加,一般win10安装完已自动添加,检查一下GOPATH
是否存在即可。
也可以在命令行中检查:
$ go help
Go is a tool for managing Go source code.
...
Step 4: 安装Node.js 和 NPM
因为我之前已经安装过,所以简单给出链接。
下载地址:Node.js Windows Installer (.msi) 64-bit
检查是否安装成功:
$ node -v
v10.16.0
$ npm -v
6.9.0
Step 5: 安装Python 2.7
下载安装Python 2.7,并将python.exe
所在路径添加到系统环境变量Path
中
检查是否安装成功:
$ python --version
Python 2.7.17
Step 6: 安装Windows-build-tools 和 grpc
使用npm
命令安装windows-build-tools
:
$ npm install --global windows-build-tools
使用npm
命令安装grpc
:
$ npm install --global grpc
Step 7: 安装Hyperledger Fabric Samples, Binaries and Docker Images
前提:已经安装了Git Bash
Clone [hyperledger/fabric-samples]( hyperledger/fabric-samples repository) repository
选择一个位置/文件夹,在该文件夹中右键打开Git Bash
,输入以下命令:
$ curl -sSL http://bit.ly/2ysbOFE | bash -s
如果运行结果,关于curl
命令报错,可能是你的curl版本太低不支持重定向,或者是你的运行环境不支持,还有一种是网络不好。
可以直接使用un-shortened URL
代替,命令如下:
$ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s
下载完成后,可以在文件夹中看到fabric-samples
文件夹。
在下载过程可能会因为网速不好卡住已经docker images下载不成功。
我尝试了另一种解决办法,根据区块链框架hyperledger Fabric1.2,win10,docker18.6,资产转移实例。重新找到一个新文件夹:
- 直接通过
git clone
命令下载fabric-samples
。- 找到
fabric-samples/basic-network/.env
文件,增加配置COMPOSE_CONVERT_WINDOWS_PATHS=1
。- 进入fabric-samples/basic-network文件夹,
cmd
输入命令:
docker-compose -f docker-compose.yml up -d
这条命令可以网络环境不好的时候比较容易的下载docker images,还可以看到实时进度(git bash 中的curl命令看不到下载进度)。而且神奇的是,当cmd
中镜像下载顺利时,之前git bash
中下载艰难的docker images也比较顺利的下载下来了。
Git Bash
安装成功,会显示:
...
Digest: sha256:048b7c44c1deaabd0f3d84fbf2f7b649d7b10c54a3241c7354f078ee2eff077c
Status: Downloaded newer image for hyperledger/fabric-couchdb:0.4.18
docker.io/hyperledger/fabric-couchdb:0.4.18
===> List out hyperledger docker images
hyperledger/fabric-ca latest 62a60c5459ae 2 weeks ago 150MB
hyperledger/fabric-orderer latest dbc9f65443aa 2 weeks ago 120MB
hyperledger/fabric-peer 1.4.4 9756aed98c6b 2 weeks ago 128MB
hyperledger/fabric-peer latest 9756aed98c6b 2 weeks ago 128MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 4 weeks ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 4 weeks ago 270MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 4 weeks ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 4 weeks ago 261MB
同时,我们也可以使用docker 命令查看镜像:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
couchdb 2.3 246ed3915b76 13 days ago 201MB
hyperledger/fabric-ca latest 62a60c5459ae 2 weeks ago 150MB
hyperledger/fabric-tools latest 7552e1968c0b 3 weeks ago 1.49GB
hyperledger/fabric-orderer latest dbc9f65443aa 3 weeks ago 120MB
hyperledger/fabric-peer 1.4.4 9756aed98c6b 3 weeks ago 128MB
hyperledger/fabric-peer latest 9756aed98c6b 3 weeks ago 128MB
hyperledger/fabric-kafka 0.4.18 caaae0474ef2 4 weeks ago 270MB
hyperledger/fabric-kafka latest caaae0474ef2 4 weeks ago 270MB
hyperledger/fabric-couchdb 0.4.18 d369d4eaa0fd 4 weeks ago 261MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 4 weeks ago 261MB
hello-world latest fce289e99eb9 11 months ago 1.84kB
Step 8: 测试Fabric网络
- 进入使用
curl -sSL
命令下载的fabric-samples
文件夹。 - 打开
first-network
文件夹,右键Git Bash
,输入命令./byfn.sh up
:
$ ./byfn.sh up
Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] Y
proceeding ...
LOCAL_VERSION=1.4.4
DOCKER_IMAGE_VERSION=1.4.4
/d/Fabric/fabric-samples/bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
+ cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
+ res=0
+ set +x
Generate CCP files for Org1 and Org2
/d/Fabric/fabric-samples/bin/configtxgen
##########################################################
######### Generating Orderer Genesis block ##############
##########################################################
...
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c987f06d5472 hyperledger/fabric-tools:latest "/bin/bash" 1 second ago Up Less than a second cli
5f7c1878ec5d hyperledger/fabric-peer:latest "peer node start" 4 seconds ago Up 2 seconds 0.0.0.0:7051->7051/tcp peer0.org1.example.com
197369a05c04 hyperledger/fabric-orderer:latest "orderer" 4 seconds ago Up 2 seconds 0.0.0.0:7050->7050/tcp orderer.example.com
4aa55b8e307e hyperledger/fabric-peer:latest "peer node start" 6 seconds ago Up 3 seconds 0.0.0.0:8051->8051/tcp peer1.org1.example.com
52bca558ece3 hyperledger/fabric-peer:latest "peer node start" 6 seconds ago Up 2 seconds 0.0.0.0:9051->9051/tcp peer0.org2.example.com
8f8cda4cd237 hyperledger/fabric-peer:latest "peer node start" 6 seconds ago Up 3 seconds 0.0.0.0:10051->10051/tcp peer1.org2.example.com
f3150caa214c hyperledger/fabric-ca "sh -c 'fabric-ca-se…" 16 hours ago Up 16 hours 0.0.0.0:7054->7054/tcp ca.example.com
430ce35b0147 couchdb:2.3 "tini -- /docker-ent…" 16 hours ago Up 16 hours 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp couchdb
f588def0ae2b hello-world "/hello" 18 hours ago Exited (0) 18 hours ago dazzling_blackwell
78a7432d31f9 hello-world "/hello" 18 hours ago Exited (0) 18 hours ago blissful_gould
ea4ba133ebbe hello-world "/hello" 18 hours ago Exited (0) 18 hours ago interesting_easley
____ _____ _ ____ _____
/ ___| |_ _| / \ | _ \ |_ _|
\___ \ | | / _ \ | |_) | | |
___) | | | / ___ \ | _ < | |
|____/ |_| /_/ \_\ |_| \_\ |_|
Build your first network (BYFN) end-to-end test
...
===================== Query successful on peer1.org2 on channel 'mychannel' =====================
========= All GOOD, BYFN execution completed ===========
_____ _ _ ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/
byfn.sh
时一个测试脚本,它首先使用2个organizations org1和org2建立网络,每个organization分别有2个peer和1个orderer。
注意:区块链框架hyperledger Fabric1.2,win10,docker18.6,资产转移实例中测试网络的方式,我无法测试成功,并且在first-network
中运行./byfn.sh up
也会报错。我仅用它来辅助我下载docker images (也就是curl -sSL
那句命令)。
- 当你看到上图end时,表示已经完成了
first-network
的测试,现在可以使用./eyfn.sh down
清理网络。
$ ./eyfn.sh down
Stopping with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] Y
proceeding ...
Stopping cli ... done
Stopping peer0.org1.example.com ... done
Stopping orderer.example.com ... done
...
Deleted: sha256:68dddcb8c4f18ae92776f71177254ef70b94b3c1567eed6c60d09196b145adc8
Deleted: sha256:c579f2e094f84bd633ae0c0bec275b776ce7394464db5c7968b1b9e08b606e06
注意:网络上我看的教程,大多使用
./byfn down
关闭网络,但是我会报错:$ ./byfn down bash: ./byfn: No such file or directory`
重新试了
./byfn.sh down
,同样可以关闭网络,一定要有.sh
。
本文作者:Joyce
文章来源:https://www.jianshu.com/p/d9dd6fdf2544
版权声明:转载请注明出处!