因为未找到mac相关的安装方式,故根据优秀博主的文档以及本人安装、使用的经验整理此文。
1.安装清单 brewGitcUrldockerdocker-composeGoLangFabricFabric-samples 2.开始安装 2.1 Git mac自带git,也可自行安装:brew install git 2.2 curl brew install curl 2.3 docker brew install docker 2.4 docker-compose 无需 *** 作,docker安装完成后,也含有了docker-compose以上安装细节也可自行百度,网上都有^.^ 2.5 GoLang 1> 下载 Golang 照旧使用
brew install go
2> 配置环境变量
vi ~/.bash_profile
在最后一行写入:
export PATH=/usr/local/Cellar/go@1.13/1.13.15/bin:$PATH
刷新环境变量 source ~/.bash_profile
3> 使用go verison查看环境变量是否生效
xiaomanong@xiaomanongdeMacBook-Pro ~ % go version
go version go1.13.15 darwin/amd64
2.6 fabric
1> 创建目录并进入
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledge
2> 拉取fabric源码
git clone https://github.com/hyperledger/fabric.git
也可通过浏览器打开git地址,自行下载源码。
3> 切换到指定分支
cd ./fabric
查看分支:git branch -a
切换分支: git checkout release-1.4
2.7 fabric-samples
1> docker配置镜像加速
可参考:Mac下Docker镜像加速
2> 拉取依赖
在 fabric/scripts 目录下找到 bootstrap.sh 脚本,复制到与 fabric 同级目录下,执行脚本(需要有VPN):
./bootstrap.sh 1.4.12 1.4.9 0.4.22
该脚本做的事情:
如果当前目录没有 hyperledger/fabric-samples,会从 github.com 克隆 hyperledger/fabric-samples 存储库;使用 checkout 签出对应指定的版本标签;将指定版本的 Hyperledger Fabric 平台特定的二进制文件和配置文件安装到 fabric-samples 存储库的根目录中;下载指定版本的 Hyperledger Fabric Docker 镜像文件;将下载的 Docker 镜像文件标记为 “lastest"。注意:执行脚本输入的版本号不通,下载的fabric-samples版本就不同,新版本的fabric-samples中没有first-network文件夹,我本地的Fabric网络是通过first-network启动的所以需要用到。
由于我的mac使用的vpn不适用到终端中,所以第三步需要手动在浏览器下载 *** 作:
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca
下载的 hyperledger-fabric-darwin-amd64-1.4.12.tar.gz压缩包内有 bin 和 config 两个文件夹, hyperledger-fabric-ca-darwin-amd64-1.4.9.tar.gz压缩包内有 bin 文件夹,将两个 bin 文件夹内的二进制文件汇总在一个 bin 文件夹内。 最后将 bin 和 config 文件夹复制到 fabric-samples 文件夹内。
Linux系统需要注释下图中执行binariesInstall的这行代码,并重新执行./bootstrap.sh 1.4.12 1.4.9 0.4.22
3> 设置环境变量
启动 fabric-samples/first-network 网络所需二进制文件的默认路径为 fabric-samples/bin,可以将该路径添加入环境变量中:
vim ~/.bash_profile
export PATH=$PATH:/Users/xiaomanong/Documents/tool/fabric/go/src/github.com/hyperledger/fabric-samples/bin
source ~/.bash_profile
测试环境变量是否生效:
xiaomanong@xiaomanongdeMacBook-Pro ~ % fabric-ca-client version
fabric-ca-client:
Version: 1.4.9
Go version: go1.14.10
OS/Arch: darwin/amd64
4> 生成证书
进入first-network目录,使用byfn.sh脚本生成证书
cd ./fabric-samples/first-network/ && ./byfn.sh generate
5> 测试网络
启动网络cd ./fabric-samples/first-network/ && ./byfn.sh up
启动时间会比较长,最终出现一个“END”日志表示启动成功,可通过docker ps命令可以查看到节点的启动情况。
注意:该命令会检查网络实体的证书是否生成,如果没有会先生成证书。因此,可以直接执行 ./byfn.sh up 命令,而无需执行 ./byfn.sh generate 命令。
关闭网络cd ./fabric-samples/first-network/ && ./byfn.sh down
通过docker ps命令可看到各个镜像已停止并销毁。
安装合约流程 进入first-network目录,修改docker-compose-cli.yaml文件
在最后的volumes中增加自己的项目映射:
- /Users/xxx/Documents/MyProject/czkj/projects:/opt/gopath/src/github.com/hyperledger/fabric/peer/chaincode
重新启动网络frist-network./byfn.sh down&&./byfn.sh up进入hyperledger/fabric-tools:latest容器
docker ps; docker exec -it xx /bin/bash查看当前目录下是否存在chaincode目录,进入chaincode目录查看是否为合约的工程目录确认无误后执行脚本(我的是进入testCommands目录,执行./installAllChainCode4SinglePeer.sh脚本),安装并部署启动合约相关服务
个人遇到的问题: 启动服务,代码报health相关的错误时,可能是没有启动心跳检测节点,需要修改fabric-samples/first-network/base下的两个yaml文件。 在peer-base.yaml文件和docker-compose-base.yam文件的orderer.example.com中的environment增加:
- CORE_OPERATIONS_LISTENADDRESS=0.0.0.0:9443
在docker-compose-base.yam各个节点中增加对应的port重启网络:./byfn.sh down&&./byfn.sh up
参考:
Hyperledger中文文档
Fabric1.4:运行 first-network 网络
Hyperledger Fabric1.4 安装(大部分流程参考此文档整理)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)