本文主要是介绍Fabric V2.5 通用溯源系统——搭建中常见问题整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:严格按照Github仓库搭建教程安装是不会遇到问题的。但是由于本项目热度过高、涉及到的技术栈较多,读者如果没有仔细按照步骤操作,可能还是会遇到一些问题。特别总结本项目的常见问题(文末)。
项目演示站点:http://realcool.top:9090/
与B站官方合作,本项目代码讲解与二次开发课程已发布,限时特价至4月30日,支持试看: B站:Fabric V2.5通用溯源项目讲解与二次开发课程,购买课程将赠送《Fabric项目学习笔记》中所有与本项目相关的资料。
Fabric V2.5通用溯源课程活动:腾讯文档:提交源码仓库地址/PPT/视频获得返现50-300元
如果项目有帮助请给项目点上Star,我们将十分感谢! 欢迎加入TrueTechLabs Fabric学习交流QQ群:776873343
群内可免费阅读此项目的区块链部分、应用后端部分的代码说明文档。
一、 90%问题的解决方案
请严格按照以下搭建教程再试一次,一般可以解决90%以上的问题。如果之前搭建好了又不好用了请尝试重启项目或重启机器。
-
安装docker
#下载docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #添加当前用户到docker用户组 sudo usermod -aG docker $USER newgrp docker #配置docker镜像加速 sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF' {"registry-mirrors": ["https://punulfd2.mirror.aliyuncs.com"] } EOF#重启docker sudo systemctl daemon-reload sudo systemctl restart docker
-
安装开发使用的go、node、jq
#下载二进制包 wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz #将下载的二进制包解压至 /usr/local目录 sudo tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz mkdir $HOME/go #将以下内容添加至环境变量 ~/.bashrc export GOPATH=$HOME/go export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH export PATH=$GOPATH/bin:$PATH #更新环境变量 source ~/.bashrc #设置代理 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct#下载nvm安装脚本 wget https://gitee.com/real__cool/fabric_install/raw/main/nvminstall.sh #安装nvm;屏幕输出内容添加环境变量 chmod +x nvminstall.sh ./nvminstall.sh # 将环境变量写入.bashrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion # 更新环境变量 source ~/.bashrc # 安装node16 nvm install 16 #换源 npm config set registry https://registry.npmmirror.com#安装jq sudo apt install jq
-
克隆本项目
git clone https://gitee.com/real__cool/fabric-trace
-
启动区块链部分。在fabric-trace/blockchain/network目录下:
# 仅在首次使用执行:下载Fabric Docker镜像。如果拉取速度过慢或失败请检查是否完成docker换源,或者更换一个其他的镜像源再试。 ./install-fabric.sh -f 2.5.6 d
# 启动区块链网络 ./start.sh
如果在启动区块链网络时遇到报错可以尝试:
# 执行清理所有的容器指令: docker rm -f $(docker ps -aq)
然后再重新启动区块链网络
-
启动后端 在fabric-trace/application/backend目录下: 执行:
go run main.go
-
修改后端IP,将以下文件中的IP:
119.45.247.29
,换成自己云服务的IP。fabric-trace/application/web/.env.development fabric-trace/application/web/src/router/index.js
-
新开一个窗口,启动前端 在fabric-trace/application/web目录下: 执行:
# 仅在首次运行执行:安装依赖 npm install
# 启动前端 npm run dev
-
在腾讯云轻量应用服务器防火墙页面,放行TCP端口
8080,9090,9528
-
在浏览器中打开:http://云服务器IP:9528 即可看到前端页面。
-
使用tape对项目进行压力测试
根据blockchain/chaincode/chaincode/smartcontract.go中的合约函数的签名,编写压测的参数,需要修改的内容是tape目录下的yaml文件中的args。args第一个参数是函数名,后面的参数是函数的参数。例如:args: # 函数名 - RegisterUser # userID string - 1 #userType string - randomString8 # realInfoHash string - randomString8
执行./tape --config config_register.yaml -n 1
即可完成用户1的注册,然后可以对农产品上链操作与获取用户信息函数进行压测。更多的压测案例可以根据合约函数的签名进行修改。
附农产品上链操作与获取用户信息函数进行压测操作指令:
./tape --config config_invoke.yaml -n 100
./tape --config config_query.yaml -n 100
六、关闭项目与重新运行步骤
关闭项目:
-
前端(
npm run dev
界面)与后端(go run main.go
界面:使用键盘组合键:
ctrl+c
-
区块链部分:
在
fabric-trace/blockchain/network
目录./stop.sh
启动项目:
- 在
fabric-trace/blockchain/network
目录
./start.sh
如果遇到报错可以执行以下命令后再试:
执行清理所有的容器指令:
docker rm -f $(docker ps -aq)
- 在
fabric-trace/application/backend
目录下: 执行:go run main.go
- 在
fabric-trace/application/web
目录下: 执行:
npm run dev
生产模式启动项目(后台运行,访问速度更快)
-
在
fabric-trace/blockchain/network
目录
./start.sh
如果遇到报错可以执行以下命令后再试:
执行清理所有的容器指令:
docker rm -f $(docker ps -aq)
-
在
fabric-trace/application
目录下: 执行:./start.sh
注意:此方式部署项目会在后台运行,如果后续遇到端口号占用可以尝试关闭占用9090端口号的进程,可以参考:
解决端口占用 bind:address already in use
二、 常见问题总结(检查第一个报错的位置)
-
需要给机器安装mysql吗?
按照项目搭建过程即可部署好mysql,mysql容器与区块链节点一起启动,因此不需要单独安装mysql。 -
fabric镜像拉取过慢或提示timeout
一般是你的网络原因,或者是镜像源网络原因,可以尝试docker换源再试。 -
安装链码时报错:exec: “go”: executable file not found in $PATH
可能是go环境变量未安装好;可能使用了sudo,不要与安装步骤不一致 -
jq:未找到命令
漏掉安装步骤中的安装jq,使用sudo apt install jq即可解决 -
docker权限报错:docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
重新执行安装步骤中的:#添加当前用户到docker用户组 sudo usermod -aG docker $USER newgrp docker
-
提示mysql或3337端口错误
重启区块链网络部分 -
前端提示timeout
检查是否修改好IP或检查防火墙是否开通相关端口 -
前端登录页面提示404
检查是否修改好IP,除了IP不要修改任何字符。 -
npm run dev 不能启动前端
检查npm install是否完整把所有包装上了
以上问题如果还没有解决:
- 请在B站视频下带图评论,尽量详细,一般24小时内回复。
- 如果需要远程搭建服务请填写收集表:【腾讯文档】本项目搭建服务或商务合作意向收集
这篇关于Fabric V2.5 通用溯源系统——搭建中常见问题整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!