本文只是刚入门小白为了记录配置和在配置过程中自己遇到的问题,如果有错误欢迎指正~
一、版本
网络环境可以访问外网;
Ubuntu版本安装的是20.04;
hyperledger fabric版本是2.3.1,fabric CA版本1.4.9;
go版本1.15.5;
linux里非root用户进行配置,如果有的命令不能执行或者报错,请先试试在命令前加上sudo,再执行试试。ps:进入root用户命令:sudo su;退回普通用户exit root。
二、安装包
1.安装git、curl、docker、docker-compose
以上安装就是几条命令行,可以直接参照下面这个博客
Ubuntu20.04上部署 Hyperledger Fabric2.3_ubuntu 20.04 + hyperledger fabric-CSDN博客
安装结束后,参照博客里的命令,查看docker以及docker-compose是否安装好。
2.安装go
go安装也可参照上面这个这个博客,但注意安装的版本不是!不是!!!1.16.3,要把相应的命令改成1.15.5。(版本过高,可能后续运行sdk会出问题)命令如下:
sudo tar -zxvf ./go1.15.5.linux-amd64.tar.gz -C /usr/local/
其他go环境的配置,直接按照上面那篇博客来,最后要go version检查版本,还有第6步对go进行配置都要做;到这都没问题的话,第7步go程序就不必编写了。
三、Fabric安装
1. 创建文件夹
sudo mkdir /usr/go/src/github.com/hyperledger
进入hyperledger目录内
cd /usr/go/src/github.com/hyperledger
2. 安装fabric只需要运行下面这一条命令。
sudo curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.3.1 1.4.9
如果命令不成功,可能是有墙无法直接访问外网。可以访问网址https://bit.ly/2ysbOFE,复制下来。注意!!!一定要将复制下来的fabric版本改成2.3.1;fabric CA版本1.4.9。然后放在Ubuntu里的hyperledger文件夹下。
具体参照下面这个视频:大约在4分钟那儿开始超级账本 hyperledger fabric v2.3 安装与测试网络_哔哩哔哩_bilibili
最后,按照上面视频中的步骤验证是否有fabric-samples这个文件夹,再查看这个文件夹下的bin目录是否全。
在。。。hyperledger/fabric/bin目录下,再运行下面命令,将bin目录下的所有文件复制到全局的bin文件夹下,方便全局使用。
cp * /usr/local/bin
知识点:https://bit.ly/2ysbOFE这个网址里的脚本包含了需要下载的东西,分为三个部分:第一部分下载fabric源码;第二部分是cloneSample,将测试网络的例子从gitHub仓库上克隆下来;第三部分把fabric所需的Docker镜像下载下来。fabric版本2.3.1;fabric CA版本1.4.9。
四、运行fabric测试网络
1.进入测试网络的路径
2.启动网络
在该路径下运行,这部分可以参照官网。
使用 Fabric 测试网络 — hyperledger-fabricdocs 主要文档
sudo ./network.sh up
未报错且输入sudo docker ps命令,出现夏明这些容器,则可以进行下一步。
3.创建通道和部署链码
这两步都按照b站的这个视频来配置就可以,真的讲得很好。需要配置的命令怕输错,或者懒得输,可以到上面那个官网的链接里直接对照着视频复制。
超级账本 hyperledger fabric v2.3 安装与测试网络_哔哩哔哩_bilibili
sudo ./network.sh createChannel
链码下载要注意!!!正常执行下面的命令时,在下面这个文件目录下没有vendor这个文件夹,导致没有go依赖,需要先执行go mod vendor这条命令。执行不了的看视频,视频里up换源。
#先进入root,再执行。
go mod vendor
go env -w GO111MODULE=ON
然后输入go env查看配置。
sudo ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
按照视频添加环境变量。
最后,关闭网络。
sudo ./network.sh down
五、fabric explorer搭建
在。。。github.com/hyperledger/下创建explorer文件夹
sudo mkdir explorer
cd explorer
按照下面的视频和博客安装,这部分主要是有些问题需要排障。
aahyperledger fabric explorer 超级账本区块链浏览器搭建_哔哩哔哩_bilibili
docker方式简单部署blockchain-explorer-CSDN博客
这一部分一定要按照视频里修改配置文件,可以到下面的官网直接复制那三个配置文件,但是注意docker-compse.yaml这个文件复制过程中缺少external:(见问题4的图片)
hyperledger-labs/blockchain-explorer (github.com)
六、排障:
1. 问题:如果出现权限类报错导致无法执行的
有两种方法:①可以尝试在文件下输入sudo chmod 777 -R,增加该文件夹的权限;②sudo su命令进入root,再执行。
2.问题:如果出现钱包创建失败
查看/usr/go/src/github.com/hyperledger/explorer目录下的三个修改的配置文件可能有问题,重点查看下图圈出来的两个文件中的路径是否正确。如果检查不出来有什么问题,可能是你的json文件格式在复制粘贴时出现了问题。我就是在修改config.json过程中,漏了个逗号。。。
3.问题:身份证书有误。由于我重新启动了fabric网络,因此身份证书更换了,而我没有更换explorer目录下的organizations文件。
error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Endorser- name: peer0.org1.example.com, url:grpcs://peer0.org1.example.com:7051, connected:false, connectAttempted:true
解决方法:
①删除explorer目录下的organization文件;sudo rm -rf organizations
②重新将fabric-samples/test-network/organizations文件夹下圈出来的文件,复制到explorer文件夹下的organizations里。
4.问题:“钱包”是不正确的,或者过时了。输入sudo docker ps,很多之前运行的数据。
error: [DiscoveryService]: send[mychannel] - Channel:mychannel received discovery error:access denied
[ERROR] FabricClient - Error: DiscoveryService: mychannel error: access denied
解决方法:
①要区分docker-compose down只是关闭了,要删除需要docker-compose down -v。直接执行命令docker-compose down -v,并不能达到即关闭、又删除的功能。
②所以,需要先docker-compose down,然后docker-compose down -v。再输入docker ps,查看是否删干净了。这里有个问题,在删除结束后,显示测试网络被跳过了,这是因为配置文件docker-compose.yaml里将网络设置为external了,是正常现象。
p.s.这里图片中network中的name也要改成相应的网络,要不也会报错,可以通过docker network ls查看网络名称。