启动区块链网络
- 需要环境:docker、docker-compose
- 拉取docker镜像
pull
- 更换docker拉取镜像的源:
|
|
- 拉取镜像:
|
|
tag
|
|
- 拉取项目代码
|
|
- 启动fabric网络:
|
|
BUG1:
Error: error getting endorser client for channel: endorser client failed to connect to peer0.org1.trace.com:7051: failed to create new connection: context deadline exceeded
解决:
- 修改
docker-compose.yml
中所有peer
和cli
节点environment
的CORE_PEER_ADDRESS=localhost:7051
并添加- GODEBUG=netdns=go
docker-compose-cli.yml
中的cli
节点同理- 请确保在
docker-compose.yaml
文件中为每个Peer
节点都设置了环境变量CORE_PEER_GOSSIP_BOOTSTRAP
和CORE_PEER_GOSSIP_EXTERNALENDPOINT
。 这些设置用来启用Fabric
发现服务,Hyperledger Explorer
依赖于该服务来自动发现Fabric
区块链网络的拓扑结构。 - 修改配置文件,注释掉
options
那句话,前面加#
即可
|
|
- 清理容器、数据卷
|
|
- 重启网络
!!!注意:每次启动网络前查看配置文件,看
options
那句话是否注释掉
|
|
- 还是出现该报错的话,重启,重复步骤4、5即可;关闭代理Clash,设置里网络设为自动
安装并初始化链码
- 需要环境:go
go version
查看是否添加到环境变量- 安装并初始化链码
|
|
- 查看链码是否安装成功
|
|
BUG1:
Error: could not assemble transaction, err Proposal response was not successful, error code 500, msg failed to execute transaction 84565ffe4b1b7e84b637f8194bfa1e556411d94053ff8dc992968e0b1eaeb18b: timeout expired while starting chaincode farmercc:1.0 for transaction 84565ffe4b1b7e84b637f8194bfa1e556411d94053ff8dc992968e0b1eaeb18b
解决:
- 给
docker-compose.yml
中所有peer
节点的environment
中添加- CORE_PEER_ADDRESSAUTODETECT=true
- 到
basic-network
目录下重启网络:
|
|
一次不成功,就重复几次
- 重新安装并初始化链码
|
|
- 查看链码是否安装成功
|
|
启动node中间件服务
- 需要环境:node(12.22.12)、npm(6.14.16)
node -v
、npm -v
查看版本- 安装依赖,在
webapp
目录下执行:
|
|
Bug:FetchError: request to https://registry.npmmirror.com/n failed, reason: connect ECONNREFUSED 127.0.0.1:7890
解决:开clash代理
- 安装用户密钥
|
|
BUG1:执行
node registerUser.js
可能会安装失败,请删除一下hfc-key-store后重新执行,如果还是失败,可能就是npm install出问题。
- 修改
app.js
中端口为9000
- 启动node服务(node服务就是一个中间件,连接前端和区块链网络)
|
|
- 如果需要让其常驻后台,需要安装pm2。
启动:pm2 start app.js
停止:pm2 stop app.js
到这里,区块链网络就部署完成
启动后端数据库
系统基础数据后台
blockchain-trace-basic-data
,是一个SpringBoot项目
- 需要环境:mysql、redis、fastdfs、java、maven、idea
- 检查环境是否配置成功:
|
|
- 修改
application.yml
文件中的Redis
地址和fastdfs
地址(application.yml
文件在blockchain-trace-basic-data/ruoyi-admin/src/main/resources
下)
|
|
- 修改
application-druid.yml
文件中mysql地址和密码
|
|
-
修改
pom.xml
文件中<maven-jar-plugin.version>3.6.3</maven-jar-plugin.version>
-
创建日志目录并修改权限:
|
|
- 用Navicat新建数据库
blockchain
- 用Navicat选择数据库
blockchain
,导入blockchain.sql
文件 - 配置IDEA
- 使用IDEA打开
blockchain-trace-basic-data
,会自动加载Maven
依赖包,初次加载会比较慢(根据自身网络情况而定,建议把虚拟机内存调大),运行com.ruoyi.RuoYiApplication.java
启动RuoYi-Vue后端,,出现如下图表示启动成功:
Bug1:找不到插件
org.apache.maven.plugins:maven-compiler-plugin:3.1
解决:修改pom.xml
文件中<maven-jar-plugin.version>3.6.3</maven-jar-plugin.version>
Bug2:无法解析插件
org.apache.maven.plugins:maven-install-plugin:2.4
Bug3:java: 程序包sun.misc不存在
解决:切换JDK1.8
Bug4:ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file_info] - openFile(/home/ruoyi/logs/sys-info.log,true) call failed. java.io.FileNotFoundException: /home/ruoyi/logs/sys-info.log (没有那个文件或目录)
解决:
|
|
Bug5:java.sql.SQLSyntaxErrorException: Unknown database ‘blockchain’
解决:用Navicat新建数据库blockchain
Bug6:Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table ‘blockchain.sys_config’ doesn’t exist
解决:用Navicat选择数据库blockchain
,导入blockchain.sql
文件
Bug7:could not start Quartz Scheduler after delay; nested exception is org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called.
继续往上翻会看到:Caused by: java.net.BindException: 地址已在使用
解决:关闭node中间件,释放8080端口
启动PC端
blockchain-trace-pc
- 安装依赖:
|
|
Bug1:npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
解决:在新版本的npm中,默认情况下,npm install
遇到冲突的peerDependencies时将失败。--legacy-peer-deps
标志是在v7中引入的,目的是绕过peerDependency自动安装;它告诉NPM忽略项目中引入的各个modules之间的相同modules但不同版本的问题并继续安装,保证各个引入的依赖之间对自身所使用的不同版本modules共存。
|
|
Bug2:gyp ERR! stack Error: Can’t find Python executable “python2.7”, you can set the PYTHON env variable.
解决:
|
|
Bug3:npm ERR! Cannot read property ‘insert’ of undefined
解决:更换node、npm版本:node(12.22.12)、npm(6.14.16)
注意:更换版本时要关闭前面启动的node中间件
|
|
- 修改连接区块链网络地址,
src/main.js
中修改为区块链网络所在服务器地址
|
|
- 启动项目:
|
|
Bug:(node:42423) UnhandledPromiseRejectionWarning: Error: Cannot find module ‘semver’
解决:加sudo
Bug3:前台提示404 NOT FOUND
解决:修改端口号
Bug4:Proxy error: Could not proxy request /captchaImage from 192.168.1.131:1024 to http://localhost:8088 (ECONNREFUSED).
解决:使用IDE(IDEA)启动Ruo-Yi Vue后端(data)