Windows10系统下使用WSL安装Hyperledger Fabric2.0教程

Windows10系统下使用WSL安装Hyperledger Fabric2.0教程

  • 前言
  • 环境
  • 安装必须工具
  • 下载Fabric2.0
  • 运行测试网络
  • 常见错误

前言

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中的工具主要是为了开发方便。

  1. curl

WSL自带了7.58.0版本

  1. docker-compose

要求版本是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. golang

最好安装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环境变量
  1. python

要求版本是2.7.x,WSL自带2.7.12

windows下安装(2.7.14):

[下载链接](https://www.python.org/downloads/)
  1. nodejs & npm

要求版本是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
  1. git

要求版本是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
  1. WebStorm

安装该IDE开发golang和JavaScript

下载Fabric2.0

Fbric2.0的二进制文件和fabric-samples完整文件可下载地址Ubuntu18.04Hyperledger Fabric2.0二进制文件和fabric-samples.rar.

  1. 在挂载后的/c目录下设置专用目录
mkdir hyper2.0
cd hyper2.0
  1. 下载二进制源码在github下载
    https://github.com/hyperledger/fabric/releases
    也可以使用命令下载,可能会比较慢
git clone https://github.com/hyperledger/fabric.git
cd fabric && git checkout release-2.0
  1. 设置环境变量
vim ~/.bashrc
export  PATH=/path/hubwiz-hf2/bin:$PATH
source ~/.bashrc
  1. 查看是否安装成功
 orderer version

成功后显示:
orderer:
Version: 2.0.0
Commit SHA: 0432c3e80
Go version: go1.13.4
OS/Arch: linux/amd64

  1. 下载fabric-samples
git clone https://github.com/hyperledger/fabric-samples
  1. 查看并验证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

成功后会显示

Windows10系统下使用WSL安装Hyperledger Fabric2.0教程_第1张图片
到这里,Fabric安装完毕。

常见错误

  1. Error: error getting chaincode bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric-chaincode-go/shim !!! Chaincode packaging on peer0.org1 has failed !!!
    https://www.cnblogs.com/zoujiaojiao/p/12606909.html

解决方法:
应该是go版本的问题,应该升级go版本,参考搭建区块链–部署Hyperledger Fabric:incomplete package.

  1. OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused “exec: “scripts/script.sh”: stat scripts/script.sh: no such file or directory”: unknown ERROR !!! Test failed

解决方法:
首先确保在挂载的文件目录下执行的命令

./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

部分内容转载自:

  1. 基于windows的hyperledger/fabric开发环境搭建.
  2. 部署Hyperledger Fabric报错Error: error getting chaincode bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric-chaincode-go/shim.
  3. 搭建区块链–部署Hyperledger Fabric:incomplete package.
  4. “ exec:\” scripts / script.sh \”:统计脚本/script.sh:无此类文件或目录.

你可能感兴趣的:(Windows10系统下使用WSL安装Hyperledger Fabric2.0教程)