vim :文本编辑器,后面我们可以用它来编辑环境变量
git:用于克隆fabric源码
curl:在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具,习惯称url为下载工具。
python-pip:pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
sudo apt-get update
sudo apt-get vim
sudo apt-get install git
sudo apt-get install curl
sudo apt-get install python-pip
pip install --update pip
ubuntu虽然提供了go的安装包,但是版本比较旧,我们最好还是参考官方网站https://golang.org/dl ,来下载我们心仪的,比较新的版本。下面我们使用wget工具直接在命令行进行下载压缩包到本地,然后解压到指定目录。
wget https://storage.googleapis.com/golang/go1.14.6.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.14.6.linux-amd64.tar.gz
如果上wget这种方法出现“失败:拒绝连接”,那估计就得看看是否是端口号被占用,或者走了代理的方式,关掉就好了
同时,我们也可以直接到官方网站上进行下载。
vim ~/.profile
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
source ~/.profile
cd ~
mkdir go
sudo apt-get remover docker docker-engine docker.io
sudo apt-get update
sudo apt-get install -y \
linux-image-extra-$(uname -r)
linux-image-extra-virtual
首先需要按转包给apt-transport-https 等软件包支持的https协议的源:
sudo apt-get install \
apt-transport-https \
ca-certificates
curl
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
如果执行上述命令之后终端显示ok,那么表示添加成功
sudo add-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable "
其中$(lsb_release -cs)是当前操作系统的代号
sudo apt-get update
在成功添加好源之后就可以安装指定版本的docker了,可以使用sudo apt-get install docker-ce=命令,替换为具体的版本即可
如果没有指定的话,默认安装最新版的docker,“ce"代表这是社区版
sudo apt-get install -y docker-ce
docker -v
为了避免每次使用docker命令时都需要切换到特权身份,可以将当前用户加入到安装docke时自动创建的docker用户组当中
sudo usermod -aG docker USER_NAME
安装docker-compose的方法有好几种,这里我们就介绍使用官方提供的二进制包进行docker-compose的安装。
这些官方发布的二进制包可以在https://github.com/docker/compose/releases 页面下找到。
使用curl工具下载这些二进制文件,然后直接放在执行路径下,这里我们的执行路劲就是/usr/local/bin目录下。
sudo curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-'uname -s'-'uanme -m' >/usr/local/bin/docker-compose
sudo chmod a+x /usr/local/bin/docker-compose
docker-compose version
1:首先先建立放置源码的目录
2:然后进入目录,进行源码的下载
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
git checkout v1.4.3
本来这一步仅仅只需要将fabric/scripts目录下的bootstrap.sh文件复制到与fabric同级的目录下,然后执行该文件就能在该目录下生成fabric-sample,以及fabric镜像,还有fabric二进制文件和配置文件(configtxgen configtxlator cryptogen discover idemixgen orderer peer)。
问题的出现:
问题的解决方案:
既然他在第二步停掉了,我们索性就不要第二步了,将这个fabric二进制文件和配置文件的下载屏蔽掉
cd ~/go/src/github.com/hyperledger/fabric/scripts
#将bootstrao.sh复制到和fabric同级的目录下,这样一会执行下载来的fabric-samples源码才会和fabric在同一级目录下
cp bootstrap.sh ../../
#然后开始编辑
cd ../../
vim bootstrap.sh
移到230行,然后添上#号,将这行执行二进制文件下载的一行代码给屏蔽掉
#binariesInstall
现在我们再执行bootstrap.sh文件,他就只会去完成fabric-samples的下载,以及fabric镜像的拉取
./bootstrap.sh
然后不放心的话可以在hyperledger目录下看看是否有fabric-samples这个目录,已经docker images 一下,查查是否拉取到了fabric镜像
cd ~/go/src/gothub.com/hyperledger
ll
docker images
手动编译fabric/release得出二进制文件
#首先进入fabric文件夹
cd ~/go/src/github.com/hyperledger/fabric/
#编译源码
make release
#查看生成的文件
cd release/linux-amd64/bin
#如果文件夹内有如下文件的话说明编译成功
#configtxgen configtxlator cryptogen discover idemixgen orderer peer
其中configtxgen configtxlator cryptogen三个文件,我们需要将他们复制到我们在fabric-samples目录下的bin文件夹下。
因为启动网络时需要用到这些工具:
cryptogen工具读取这个crypto-config.yaml配置文件产生证书和密钥
configtxgen工具读取configtx.yaml配置文件,
当然在这里这些配置文件的各种配置,参数都已经在byfn.sh脚本上了
#在这里,为了方便,我们直接将整个bin目录复制过去
cd release/linux-amd64
cp -r bin ../../fabric-samples
至此,搭建fabric1.4.3的工作就已经全部完成了,接下来就是做测试了
切换到first-network下,创建通道
cd ~/go/src/github.com/hyoerledger/fabric-samples/first-network
./byfn.sh -m generate -c mychennel
testchannel是通道名,如果没有指定则默认为mychannel.
指定正确的通道名,启动网络
./bufn.sh -m up -c mychannel
进入cli容器:(在first-network目录下)
docker exec -it cli bash
查询a的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
如果返回的是90,说明查询正确,我们搭建成功了
./byfn.sh -m down
在关闭网络的同时,不但停掉所有容器还会将他们清理掉。
现在,我们整个fabric1.4.3的搭建流程都已经完成了,中途如果由不正确的地方希望各位网友指出来,咱们互相学习,如果有喜欢的朋友记得点赞关注呀!
Thank you!
2020年8月4日整理于家中!哈哈哈!