Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程

从0开始安装了一次,目前v2.1.0网上教程较少,踩了一些坑,分享&记录以便以后翻阅,有帮助的话请点赞。

 

本文包含:

1. hyper-v Ubuntu 20.04 虚拟机创建

2. Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署

3. 测试网络与部署链码

 

正文开始:

 

1. hyper-v Ubuntu 20.04 虚拟机创建

hyper-v安装ubuntu虚拟机方法见如下教程,非常详细,

https://www.linuxidc.com/Linux/2016-04/129750.htm  

ubuntu 20.04下载地址:https://linux.cn/article-12146-1.html

建议下载Ubuntu 20.04 LTS (Torrent)然后用迅雷下载,不然会慢到崩溃。

 

2. Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署

前半部分和这个外网教程一样:

Install Hyperledger Fabric in Ubuntu 20.04 LTS (https://medium.com/@bibek.poudel/install-hyperledger-fabric-in-ubuntu-20-04-lts-665482204b0d)

后半部分参考官方教程:

https://hyperledger-fabric.readthedocs.io/en/release-2.1/install.html

 2.1 终端新建一个用户(可选,但最好用)

$sudo adduser newuser             //create
$sudo usermod -aG sudo newuser    //add to sudo group
$su - newuser                     //switch to newuser

2.2 下载各种依赖

1. Git, cURL, docker, docker-compose, Node.js , NPM & Python

$sudo apt-get update 
$sudo apt-get install git curl docker.io docker-compose nodejs npm python

2. 配置docker

$sudo usermod -a -G docker $USER 
$sudo systemctl start docker 
$sudo systemctl enable docker

3. 下载配置Golang

建议版本1.14.4

$wget https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz 
$tar -xzvf go1.13.6.linux-amd64.tar.gz 

$sudo mv go/ /usr/local 
$cd ~ 
$mkdir go 

//open .bashrc 
$pico ~/.bashrc 

//末尾添加
$export GOROOT=/usr/local/go 
$export GOPATH= /home/bibek/go 
$export PATH=$PATH:$GOROOT/bin
$export PATH=$PATH:$GOPATH/bin

//保存退出

如果Golang版本不对,可以按照以下教程卸载重装:
https://studygolang.com/articles/14812

注销账户重新登入

$exit 
$su - bibek

4. 下载 Hyperledger Fabric Binaries, Docker Containers & Samples

建议先新建一个文件夹,在文件夹里操作,方面管理。

(1)网络内外畅通,按照官方教程:

$curl -sSL http://bit.ly/2ysbOFE | bash -s 2.1.0   //2.1.0是版本号,可以修改

有说这个连接已经失效,具体是否能成功要看运气。

若报错,http://bit.ly/2ysbOFE 替换为 https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh

(2)网络不畅通,修改hosts:

个人尝试(1)失败,报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused,说明这两个网站都被ban了,替换方法是修改hosts:

$sudo gedit /etc/hosts

//文件中最后一行添加:
//199.232.4.133 raw.githubusercontent.com

教程:https://www.ioiox.com/archives/62.html

然后回到(1)

$curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 2.1.0   //2.1.0是版本号,可以修改

等待一夜就下载完了(非常慢,建议晚上进行)

下载完后,会看到fabric-samples文件夹,组织结构如下,其中first-network和test-network都是测试网络,但是1.4.x用first-network,2.1.x用test-network,千万不要搞错。

Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程_第1张图片

 进入bin,组织结构如下:

把bin加入PATH:

$export PATH=/bin:$PATH  //bin的路径

测试,输入 $orderer version,若出现Fabric版本号则安装成功。

 

3. 测试网络与部署链码

这里按照官方教程测试,2.1.0的所有操作注意务必在“test-network”中进行。

官方教程:https://hyperledger-fabric.readthedocs.io/en/release-2.1/test_network.html

$cd fabric-samples/test-network

$./network.sh down    //关闭历史网络

$./network.sh up      //开启新的网络

 

若启动成功则看到如下界面:

Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程_第2张图片

$docker ps -a     //查看docker内容(可略过):

Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程_第3张图片

$./network.sh createChannel -c channelname    //创建channel(通道)

若成功则看到如下界面:

 

$./network.sh deployCC    //部署chaincode(链码)

//默认部署在默认的mychannle上
//创建mychannle:$./network.sh createChannel

若成功则看到如下界面:

Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程_第4张图片

用peer客户端与链码交互

// 添加环境变量

$export PATH=${PWD}/../bin:$PATH
$export FABRIC_CFG_PATH=$PWD/../config/
//设置从Org1交互,按需修改

$export CORE_PEER_TLS_ENABLED=true
$export CORE_PEER_LOCALMSPID="Org1MSP"
$export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
$export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/[email protected]/msp
$export CORE_PEER_ADDRESS=localhost:7051

查询链码

$peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryCar","CAR9"]}'

$peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'

Win10 hyper-v 虚拟机下Ubuntu 20.04 + Hyperledger Fabric(超级账本)2.1.0部署教程_第5张图片

测试完毕,关闭网络(关闭之后链的历史记录会被清除,如果需要在同一条链上操作请查询超级账本持久化教程)

$./network.sh down    //关闭历史网络

END

你可能感兴趣的:(区块链,智能合约开发,区块链,ubuntu,docker)