You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
5.5 KiB

## 基于Hyperledger Fabric的学位学历认证管理系统
2 years ago
1. `config.yaml`配置文件:描述组织结构、通道结构、所有配置文件、证书的路径
2. `chaincode`:链码文件所在的目录
- `vendor`:依赖包
- `edu.go`:链码(智能合约)
3. `fixtures`fabric基础网络所有文件所在的目录
4. `img`:存放前端的图片
5. `sdkInit`sdk核心代码
- `sdkSetting.go`实现了包括Setup、CreateAndJoinChannel、CreateCCLifecycle等基础功能的函数
- `integration.go`实现了包括DiscoverLocalPeers、InitService等基础功能的函数
- `sdkInfo.go`定义了一些组织和SDK中用到的结构体
- `set/get.go`:复制调用链码的两个函数
6. `service`:服务端代码,封装了合约接口的调用
- `eduService.go`:调用链码的关键所在
7. `explorer`:区块链浏览器文件及配置
2 years ago
2 years ago
项目功能介绍:https://blog.csdn.net/qq_45808700/article/details/129423030
2 years ago
### 1.部署环境
2 years ago
•Linux Ubunturoot 用户)
2 years ago
2 years ago
•Golang 语言 建议使用go1.17,版本过高会出现问题
2 years ago
•docker 18.09.7
2 years ago
•docker-compose 1.22.0
2 years ago
### 2.环境配置
#### 2.1安装 docker 以及 docker-compose
使用 docker 可以方便的解决程序依赖的环境问题;并且后续需要使用到的 Hyperledger Fabric 框架官方也提供了相应的 docker 的容器。
安装 docker 命令:
```bash
sudo apt install docker.io
```
验证 docker 成功安装docker version结果如图所示
2 years ago
![docker 安装成功](https://img-blog.csdnimg.cn/2747b94a14f34c9698d8d6a3bef4c100.png)
2 years ago
为了方便管理多个 docker 容器,还需要安装 docker-compose
```bash
sudo apt install docker- compose
```
验证安装成功docker-compose version如图所示
2 years ago
![docker-compose 安装成功](https://img-blog.csdnimg.cn/ffb878a022a949fe89d388a0ad8127ca.png)
#### 2.2安装 golang
区块链框架Hyperledger Fabric 目前支持Java、Go 等主流编程语言并提供了相应的SDK但是支持最全面的还是 Golang因此采用 Go 语言来进行开发是比较好的选择;
1. 安装 Golangwget https://golang.google.cn/dl/go1.17.linux-amd64.tar.gz
2 years ago
下载受网络环境影响,如果您本地有相应的 tar 包,则直接解压到指定的路径下即可。
2 years ago
3. 使用 tar 命令将压缩文件解压至指定路径/usr/local/下: tar -zxvf go1.17.0.linux-amd64.tar.gz -C /usr/local
4. sudo -s使当前用户为 root 用户,$HOME=/root
5. sudo vim /etc/hosts,添加:
2 years ago
```bash
127.0.0.1 orderer.example.com
127.0.0.1 peer0.org1.example.com
127.0.0.1 peer1.org1.example.com
```
5. sudo vim /root/.bashrc文件,添加环境变量 GOHOME 以及 GOROOT
```bash
2 years ago
export GOPATH=/root/go
2 years ago
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
```
2 years ago
6. 激活环境变量: source /etc/profile
7. 更新网络service network-manager restart
8. 验证安装成功,使用 go version 结果如图所示:
![Golang 安装成功](https://img-blog.csdnimg.cn/d449c551a6d449d7a640752149be939c.png)
### 3.项目部署
1. 1.创建保存项目的文件夹: mkdir -p $GOPATH/src
2. 进入文件夹: cd $GOPATH/src
2 years ago
3. 从 github 仓库克隆项目到education文件夹 git clone https://github.com/Pistachiout/Academic-Degree-BlockChain.git education
4. 进入项目目录cd education
5. 添加项目开发需要依赖的 Golang 包go mod tidy
命令可能会执行失败此时设置代理即可go env -w GOPROXY=https://goproxy.cn
### 4.启动项目
2 years ago
由于每次启动流程相对固定首先进入root用户并配置环境然后启动项目在项目的目录下运行 clean_docker.sh 脚本即可启动项目:
```bash
2 years ago
sudo -s
source /root/.bashrc
cd $GOPATH/src/education
export GO111MODULE=on
export GOPROXY=https://goproxy.io
go mod tidy
2 years ago
./clean_docker.sh
```
### 5.启动区块链浏览器
再开一个终端按以下步骤启动Fabric浏览器在启动Web项目之后才能启动区块链浏览器
2 years ago
```bash
2 years ago
sudo -s
source /root/.bashrc
cd $GOPATH/src/education/explorer
2 years ago
docker-compose -f docker-compose.yaml up -d
```
使用docker-compose down -v关闭浏览器Ctrl + C 停止Web服务
2 years ago
### 6.项目结果:
项目启动成功的结果如图所示:
![启动项目成功](https://img-blog.csdnimg.cn/7c55555eeed94d9bbacd18cd7d7bb05e.png)
2 years ago
通过浏览器访问 localhost:9000端口即可进入 web 端,结果如图所示:
: ![启动项目成功](https://img-blog.csdnimg.cn/c5a33dd311bd46c792da068a291b3839.png)
2 years ago
2 years ago
通过浏览器访问localhost:8080即可进入 区块链浏览器,结果如图所示:
2 years ago
![image](https://user-images.githubusercontent.com/63298680/231712067-d7cafefe-615c-495c-ba20-92827b10dfc2.png)
2 years ago
2 years ago
CouchDB 数据库1peer0节点7051端口 `http://localhost:5984/_utils`
2 years ago
2 years ago
CouchDB 数据库2peer1节点9051端口 `http://localhost:7984/_utils`
2 years ago
2 years ago
2 years ago
![在这里插入图片描述](https://img-blog.csdnimg.cn/22192eb759314993baeb3f72377343c5.png)
2 years ago
2 years ago
管理员账号admin 123456
2 years ago
普通用户账号密码bob 123456
2 years ago
2 years ago
浏览器账号密码exploreradmin exploreradminpw
2 years ago
有帮助的话希望点亮star收藏一下如果部署有困难可以加qq2097731053
2 years ago
### 7.常见部署问题
2 years ago
![image](https://github.com/Pistachiout/Academic-Degree-BlockChain/assets/63298680/88402e0a-9ce4-49a8-aa99-2f1644f33c6d)
上图的问题是网络问题可以在宿主机下载好go安装包然后放入虚拟机中解压
![image](https://github.com/Pistachiout/Academic-Degree-BlockChain/assets/63298680/103f59a4-673c-41a5-8fa3-8d66e999dfb2)
若出现上图的问题说明你的go语言版本过高可以换为go1.17