Windows10系统有了WSL(Linux on Windows),可以比较方便的使用WSL系统安装Fabric。之前有其他博主提供了安装教程,但是博主在安装的过程中遇到了很多坑。因此,提供一下排坑以后的教程。
经过配置的可以在WSL上使用docker的windows 10系统(参考: Linux on Windows(WSL)上使用docker.)上使用docker) WSL:Ubuntu 18.04
docker已经在参考博文中完成了安装,fabric要求版本是17.06.2-ce or greater 安装在windows中的工具主要是为了开发方便。
WSL自带了7.58.0版本
要求版本是1.14.0 or greater,安装docker-tools的时候会自动安装一个,但是命令是docker-compose.exe,不方便使用,所以要在WSL中安装,而apt安装的docker-compose版本太低,只能使用docker官方的安装方式:
1. sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
2. sudo chmod +x /usr/local/bin/docker-compose
3. docker-compose -v(如果出现不存在这个文件或目录,尝试重启WSL,直接关掉命令行重开)
最好安装1.13以上版本,WSL中安装(go1.14.2.linux-amd64):
1. sudo curl -L https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -o /usr/local/go1.14.2.linux-amd64.tar.gz(这个链接应该在墙外,翻出去吧。不然就百度一个可以用的网址下载)
2. sudo tar -xzvf /usr/local/go1.14.2.linux-amd64.tar.gz -C /usr/local/ && sudo rm /usr/local/go1.14.2.linux-amd64.tar.gz
3. 设置环境变量GOROOT和GOPATH(具体可参考[Ubuntu安装go语言环境配置](https://blog.csdn.net/baidu_40836478/article/details/106343800).)
5. go version
windows下安装:
[下载链接](https://golang.org/dl/)
注意配置GOPATH和GOROOT环境变量
要求版本是2.7.x,WSL自带2.7.12
windows下安装(2.7.14):
[下载链接](https://www.python.org/downloads/)
要求版本是8.9.x or greater but not 9.x & 5.6.0,,WSL中安装(8.11.3 & 5.6.0):
1. sudo curl -L https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz -o /usr/local/node-v8.11.3-linux-x64.tar.xz
2. sudo tar -xvf /usr/local/node-v8.11.3-linux-x64.tar.xz -C /usr/local/ && sudo rm /usr/local/node-v8.11.3-linux-x64.tar.xz(居然可以直接解压xz文件)
3. ln -s /usr/local/node-v8.11.3-linux-x64/lib/node_modules/npm/bin/np ./bin/node && ln -s /usr/local/node-v8.11.3-linux-x64/lib/node_modules/npm/bin/npm-cli.js ./bin/npm
4. node -v && npm -v
windows下安装:
[下载链接](https://nodejs.org/en/download/)
要全局安装windows-build-tools以使用c++写的node库:
npm install --global windows-build-tools
要求版本是2.9.x or greater,WSL自带git2.17.0
如果想在windows下安装:
[下载链接](https://git-scm.com/downloads)
windows的git安装后需要使用git bash修改下autocrlf和longpaths的配置:
git config --global core.autocrlf false
git config --global core.longpaths true
安装该IDE开发golang和JavaScript
Fbric2.0的二进制文件和fabric-samples完整文件可下载地址Ubuntu18.04Hyperledger Fabric2.0二进制文件和fabric-samples.rar.
mkdir hyper2.0
cd hyper2.0
git clone https://github.com/hyperledger/fabric.git
cd fabric && git checkout release-2.0
vim ~/.bashrc
export PATH=/path/hubwiz-hf2/bin:$PATH
source ~/.bashrc
orderer version
成功后显示:
orderer:
Version: 2.0.0
Commit SHA: 0432c3e80
Go version: go1.13.4
OS/Arch: linux/amd64
git clone https://github.com/hyperledger/fabric-samples
tree fabric-samples -L 1 -d
如果显示tree未安装,则可使用如下命令安装tree,安装完成后,再执行如上命令
apt install tree
成功则会显示以下信息:
fabric-samples
├── chaincode
├── chaincode-docker-devmode
├── ci
├── commercial-paper
├── fabcar
├── first-network
├── high-throughput
├── interest_rate_swaps
├── off_chain_data
├── scripts
└── test-network
因为vm中与windows的共享文件夹目录是/c/Users/,而在Linux on Windows中是/mnt/c/
应先将/mnt/c挂载到/c,按照前期工作,应该已经挂载了,如果不成功,可以用以下命令再挂载一次
sudo mkdir /c
sudo mount --bind /mnt/c /c
由/c进入fabirc-samples目录
cd /c/Users/yourpath/fabric-samples/first-network
./byfn.sh gengerate
./byfn.sh up
成功后会显示
解决方法:
应该是go版本的问题,应该升级go版本,参考搭建区块链–部署Hyperledger Fabric:incomplete package.
解决方法:
首先确保在挂载的文件目录下执行的命令
./byfn.sh down
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker volume prune
之后进入目录
cd /c/Users/yourpath/fabric-samples/first-network
./byfn.sh gengerate
./byfn.sh up
部分内容转载自: