目录
1. 需求分析与架构设计 1
1.1 需求分析 1
1. 普通用户 2
2. 管理员用户 2
1.2 架构设计 2
1.3 数据模型设计 4
1.4 网络环境 5
1.5 测试网络环境 8
2 SDK与链码实现 10
2.1 创建 config.yaml 文件 10
2.2 声明结构体 15
2.3 编写链码 16
2.4 SDK实现 21
2.4.1 创建SDK 21
2.4.2 编写测试代码 22
2.5 安装dep工具 23
2.6 链码安装及实例化 27
2.6.1 使用Fabric-SDK安装及实例化链码 27
2.6.2 在main中调用 28
2.6.3 测试 28
3 业务层实现 29
3.1 事件处理 29
3.2 业务层调用链码实现添加状态 30
3.3 调用链码实现根据证书编号与名称查询状态 33
3.4 调用链码实现根据身份证号码查询状态 34
3.5 调用链码实现修改/添加信息状态 35
4 控制层实现 39
4.1 设置系统用户 39
4.2 处理响应 40
4.3 处理请求 40
4.4 指定路由 44
5 视图层实现 45
5.1 目录结构 45
5.2 照片上传 46
6 交互演示 48
6.1 启动Web服务 48
6.2 访问页面 49
1.需求分析与架构设计
我们要基于 原生Fabric-SDK-Go 实现一个简单的学历征信系统(web项目),状态数据库使用 CouchDB 来实现。
1.1 需求分析
现在是一个信息化的高科技时代,许许多多的企业必须紧跟时代步伐,不断创新,才能发展壮大;而企业的发展必然离不开人才队伍的建设,也可以说创新是企业发展的动力,而人才却是企业发展的根本,所以现在各企业对于人才队伍建设十分看重,而对于人才的素质及受教育情况的要求更是重中之重。
对学历信息的查询,要么成本较高,要么比较麻烦,甚至还有一些假冒网站让人防不胜防;传统应用是将数据保存在数据库中来实现,但是现在出现的数据库由于故障或者被删、被黑造成的数据丢失的情况更是屡见不鲜,所以传统数据库并不能真正意义上确保数据的完整性及安全性。
基于这些情况,我们设计并开发了一个 基于区块链技术的实现的学历信息征信系统 ,实现了在线对学历信息的查询功能,由于区块链技术本身的特点,无须考虑数据被破坏的问题,而且杜绝了对于信息造假的情况,保证了学历信息的真实性。由于篇幅原因,我们对学历信息征信系统的应用场景进行修改及简化,实现的业务逻辑包括添加信息、修改信息、查询信息、查询详情信息等操作,实际情况下的的业务逻辑需要根据实际需求场景做出相应的调整。
由于系统需要保证人才受教育情况真实性,所以对于系统的用户而言,不可能由用户自己添加相应的学历信息,而是由具有一定权限的用户来完成添加或修改的功能。但普通用户可以通过系统溯源功能来确定信息的真伪。所以我们将系统用户的使用角色分为两种:
1.普通用户
2.管理员用户
普通用户具有对数据的查询功能 ,但实现查询之前必须经过登录认证:
用户登录:系统只针对合法用户进行授权使用,所以用户必须先进行登录才能完成相应的功能。
查询实现:查询分为两种方式实现
根据证书编号与姓名查询:根据用户输入的证书编号与姓名进行查询。
根据身份证号码查询:根据用户输入指定的身份证号码进行查询,此功能可以实现溯源。
管理员用户除具有普通用户的功能之外,额外添加了两个功能:
添加信息:可以向系统中添加新的学历信息。
修改信息:针对已存在的学历信息进行修改。