Mac系统下配置fabric网络环境

说一些个人配置环境时遇到的坑
1.第一次按照官方手册的介绍没装go,在最后运行first-network一直出现问题(具体问题没记录)
我也不知道怎么回事,我就重新找其他博主的教程重装。所以就有了第二个问题
2.第二个问题是运行第一个网络有start图标没有end图标,显示

error getting chaincode bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric-contract-api-go/contractapi
!!!!!!!!!!!!!!! Chaincode packaging on peer0.org1 has failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========

头疼的不行,始终解决不了,有的博主好像给了解决办法,但是基础差,不知道他说的是啥,我随便试了几下莫名奇妙的好了。
3还参考了一篇博客
https://www.jianshu.com/p/cd05e966a6a8
4.建议go和fabric的版本都装最新的。
5.docker-compose 应该是安装docker时自动安装,可以通过检查他的version看是否安装了compose

Docker Compose
Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

作者:张东冬
链接:https://www.jianshu.com/p/ca1623ac7723
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

开始介绍正文:

一、先决条件(Prerequisites)
1、安装homebrew
在控制台中输入:

#下载安装homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#查看homebrew版本
brew --version

homebrew默认的镜像源下载会比较慢,这里切换到阿里源:

#替换brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
#替换home-brew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
#应用生效
brew update
#替换home-brew-bottles
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

这里注意一下,从macOS Catalina Beta版本开始,zsh(Z shell)是所有新建账户的默认Shell(详见Apple技术支持)。在环境配置方面,.zprofile相当于原来的.bash_profile(在用户登陆时生效),.zshrc相当于.bashrc(在打开shell时生效),因此我们这里修改的是.zshrc文件。

下面是还原回原镜像源的办法:

#重置brew.git
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
#重置home-brew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
#删除.zshrc中HOMEBREW_BOTTLE_DOMAIN内容

2、安装Git
安装最新版本git(https://git-scm.com/downloads)。如果已经安装,则通过git clone https://github.com/git/git命令更新到最新版本。

3、安装cURL
macOS已经安装好cURL,但是系统安装的cURL并不方便更新,因此我们使用homebrew重新安装一个cURL。但是homebrew安装的cURL是keg-only的,因此安装好之后我们还需要把路径添加到.zshrc中使得系统优先使用我们安装的cURL(命令可以在brew info curl中找到),具体操作如下:

#安装cURL
brew install curl
#配置路径
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc
#使配置生效
source ~/.zshrc
#验证使用的是否为我们安装的cURL
which curl

4、Docker下载安装
docker下载地址

安装打开即可,在上方任务栏会出现一个鲸鱼图标。
5、GO语言环境安装
首先建立一个go工作空间(macOS下官网似乎建议创建在Users及其子目录下,其中般包括三个目录:src存放go源文件,pkg存放编译好的库文件,bin存放可执行文件,src是自己创建的目录)。GOPATH指向创建的go工作空间,GOBIN指向$GOPATH/bin,具体过程如下:

#安装go
brew install go
#查看版本
go version
#创建go工作目录并打开.zprofile
cd /Users/xia
mkdir go
vi ~/.zprofile
#在.zprofile中配置环境变量(路径因人而异,以本人路径为例)
export GOPATH=/Users/xia/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
#使.zprofile生效
source ~/.zprofile

6、安装Node.js和NPM
如果要利用适用于Node.js的Hyperledger Fabric SDK开发Hyperledger Fabric应用程序,则需要安装Node.js和NPM。

下载地址

安装好Node.js的同时会安装好NPM。

二、克隆示例、拉取二进制文件和Docker镜像
克隆示例、拉取二进制文件和Docker镜像hyperledger fabric官方其实提供了一个脚本文件bootstrap.sh来帮助我们完成所有步骤,但是由于国内网络限制,直接执行脚本文件基本上无法成功,会在拉取二进制文件和Docker镜像的时候出现二进制文件tar包下载失败以及Docker镜像下载timeout等问题,所以我们需要在bootstrap.sh脚本的基础上,自行搭建,更多关于bootstrap.sh的内容,详见另一篇博客。

1、下载脚本文件并克隆fabric-samples

#下载脚本文件
curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o /Users/xia/go
#转换为可执行文件
sudo chmod +x bootstrap.sh
#在go目录下克隆fabric-samples(官方文档中提到macOS需要在/Users目录下)
git clone -b master https://github.com/hyperledger/fabric-samples.git

2、下载、解压二进制文件tar包并修改bootstrap.sh文件
可以先尝试一下直接sh bootstrap.sh是否能够直接下载,我在挂了vpn的情况下依然多次下载失败,于是采取手动下载并解压tar包的方式。一共是两个tar包,根据版本选择合适的下载,我最后是通过淘宝的代下服务完成的下载(fabric二进制包、fabric-ca二进制包)。将下载好的两个tar包放入fabric-samples文件夹中解压,可以看到多了bin和config两个文件夹。

#解压tar包
tar xvzf hyperledger-fabric-ca-darwin-amd64-1.4.4.tar.gz
tar xvzf hyperledger-fabric-darwin-amd64-2.0.0.tar.gz 

我们已经手动完成了二进制文件的下载和解压,因此我们需要修改一下bootstrap.sh,将pullBinaries()函数中,两次调用download()函数注释掉

3、运行docker并配置
在拉取docker镜像的时候我遇到了诸如:Client.Timeout exceeded while awaiting headers、net/http: TLS handshake timeout等问题,尝试更换国内镜像源和更改hosts都没有显著效果,最后尝试使用阿里云镜像加速器后解决。进入阿里云注册账号(免费),完成后在个人界面搜索镜像加速器,根据给的每个人不同的链接配置docker,如下图:
在这里插入图片描述
配置完成点击Apply&Restart,等待docker重启完成。

4、执行bootstrap.sh
执行bootstrap.sh文件,完成配置。

#执行bootstrap.sh文件
sh bootstrap.sh

5、完成
本文转载链接:https://blog.csdn.net/Nemoosi/article/details/88239038,感谢原博主的付出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值