总结为几个步骤:
二进制和CA文件下载源地址链接(经常打不开且下载极慢):
二进制
CA
二进制和CA文件下载链接(本人上载了部分资源)mac选择下载darwin版本、linux选择linux版本即可:
https://download.csdn.net/user/weixin_44336181/uploads
一、Prerequisite
1、安装Git
2、安装cURL
3、安装docker
4、安装JQ(可选不安装,仅在与通道配置事务相关的教程中需要)
MAC版:
1、安装Homebrew
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ brew --version
Homebrew 2.5.2
2、Git
$ brew install git
$ git --version
git version 2.23.0
3、cURL
$ brew install curl
$ curl --version
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
Release-Date: 2019-03-27
4、Docker
如果是Home-brew v2.x:
$ brew cask install --appdir="/Applications" docker
如果是Homebrew v3.x:
$ brew install --cask --appdir="/Applications" docker
Docker安装好以后必须要保证开启docker服务。
$ open /Applications/Docker.app
5、安装GO
$ brew install go
$ go version
go1.15.7 darwin/amd64
6、安装JQ
$ brew install jq
$ jq --version
jq-1.6
Linux版
1、git
$ sudo yum install git
2、Git
$ sudo yum install curl
3、Docker
使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
手动安装
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker Engine-Community
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
使用官方源地址(比较慢)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可以选择国内的一些源地址:
阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
- 如果提示您接受 GPG 密钥,请选是。
docker-compose 安装命令
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载完成后,将文件更改为可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证是否安装成功,查看docker-compose版本信息
docker-compose -v
启动 Docker。
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
用docker默认的源,在国内的话会比较慢,我们可以配置镜像加速器:
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://d7aogz72.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
如果需要卸妆,可运行以下命令卸载 docker
删除安装包:
yum remove docker-ce
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
4、Go
安装GoLang
下载Golang包:https://golang.google.cn/dl/
wget https://golang.google.cn/dl/go1.17.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz
将 /usr/local/go/bin 目录添加至PATH环境变量:
export PATH=$PATH:/usr/local/go/bin
将其添加到配置文件,持久生效
sudo vim ~/.profile
添加如下内容
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
保存文件,并且重新加载新的环境变量
source ~/.profile
查看go版本
go version
出现版本则表示安装成功
建议修改go国内代理
go env -w GOPROXY=https://goproxy.cn,direct
Fabric环境搭建
下载Fabric源码
首先创建文件夹
mkdir HyperledgerFabric2.x
进入刚刚创建的文件夹
cd HyperledgerFabric2.x
GitHub上下载Fabric源码
git clone https://github.com/hyperledger/fabric
如果下载太慢,可以使用Gitee上的镜像仓库
git clone https://gitee.com/demonwuwen/fabric.git
#或者
git clone https://gitee.com/mirrors/fabric.git
进入文件夹
cd fabric
可以查看当前fabric分支版本:
[root@localhost fabric]# git branch -a
* feature/ca
remotes/origin/HEAD -> origin/feature/ca
remotes/origin/feature/ca
remotes/origin/feature/convergence
remotes/origin/main
remotes/origin/release-1.0
remotes/origin/release-1.1
remotes/origin/release-1.2
remotes/origin/release-1.3
remotes/origin/release-1.4
remotes/origin/release-2.0
remotes/origin/release-2.1
remotes/origin/release-2.2
remotes/origin/release-2.3
remotes/origin/v0.6
remotes/origin/v1.0.0-preview
将文件分支版本切换到自己需要的版本,我这里是需要用到2.2,所以就切换到2.2
git checkout release-2.2
下载fabric-samples和对应的镜像,进入script文件夹:
cd scripts
因为用bootstrap.sh脚本下载binary文件太慢,所以我们选择手动下载二进制文件,通过vim bootstrap.sh 命令找到133行,将Binary=true,将true改为false。下载fabric-sample也可能会太慢,我们也可以降sample的true改为false。这样就可以避免下载binary和sample文件。如果下载很快当我没说。
下载对应镜像文件
cd fabric/scripts
sudo ./bootstrap.sh # 该命令会下载官方提供镜像文件,然后进入漫长的等待。
通过命令 git clone https://gitee.com/demonwuwen/fabric-samples.git
在scripts目录下会有fabric-sample文件夹,特别注意:将fabric-sample一定要切换到自己使用的分支,不然可能会报错。
git checkout release-2.2
二进制和CA文件下载源地址链接,要下载与自己使用版本对应的文件:
二进制
CA
(二进制和CA下载下来解压后生成bin目录和config目录,直接拷贝到fabric目录下即可。)
进入fabric下的scripts目录,在该目录下启动脚本:bootstrap.sh。
进入后将下载的二进制文件解压到此,bin里面存放的是二进制程序。
进入test-network文件夹
cd test-network
可以看到有哪些文件
ls
addOrg3 configtx docker network.sh organizations README.md scripts system-genesis-block
运行network.sh
./network.sh up createChannel
出现如下结果说明环境搭建成功
如果在启动网络时遇到错误
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-2add1a39bc5d -j RETURN: iptables: No chain/target/match by that name.
原因是关闭防火墙之后docker需要重启,执行以下命令重启docker即可:
systemctl stop firewalld.service
service docker restart
test-network能够成功启动后,恭喜,说明你的fabric环境已经搭建成功了。
关闭test-network使用命令:
./network.sh down