基于Hyperledger Fabric的学位学历认证管理系统

这篇具有很好参考价值的文章主要介绍了基于Hyperledger Fabric的学位学历认证管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Hyperledger Fabric的学位学历认证管理系统

项目源码:https://github.com/Pistachiout/Academic-Degree-BlockChain

一、选题背景

学历造假、认证造假等是一个全球日益普遍的现象,不仅对社会产生了巨大的负面影响,同时也极大增加了企业和单位的用人成本,造成了无谓的经济消耗;从另一个角度来说,纸质或电子版的证书无论从保存便利性、验证可靠性、可信性等方面,都存在着很大的不足。一种高度可靠、易保存、易证伪同时还顾全隐私保护的学位学历认证管理系统,是一个必然的需求。
区块链是非中心化信任网络,适合作为此类分布式应用的底层架构和基础工具。区块链具有两大核心特点:一是数据难以篡改、二是去中心化。区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。

二、功能分析

由于系统需要保证人才受教育情况真实性,所以对于系统的用户而言,不可能由用户自己添加相应的学历信息,而是由具有一定权限的用户来完成添加或修改的功能。但普通用户可以通过系统溯源功能来确定信息的真伪。所以我们将系统用户的使用角色分为两种:

  • 普通用户
  • 管理员用户

普通用户具有对数据的查询功能 ,但实现查询之前必须经过登录认证:

  • 用户登录:系统只针对合法用户进行授权使用,所以用户必须先进行登录才能完成相应的功能。
  • 查询实现:查询分为两种方式实现
    • 根据证书编号与姓名查询:根据用户输入的证书编号与姓名进行查询。
    • 根据身份证号码查询:根据用户输入指定的身份证号码进行查询,此功能可以实现溯源。

管理员用户除具有普通用户的功能之外,额外添加了两个功能:

  • 添加信息:可以向系统中添加新的学历信息。
  • 修改信息:针对已存在的学历信息进行修改。

最后需要达到的要求

  1. 认证颁发时的数据生成和上链流程;
  2. 认证验证时的验证方法:核实电子证书文件的哈希值;
  3. 用户界面:证书生成、证书上链、证书查询、证书核验;
  4. 安全和隐私保护。

三、架构设计

在此应用中需要编写实现完整的链码并通过业务层调用链码中的各个函数,以实现对数据状态的操作。界面为了方便用户操作使用,使用Web浏览器的方式实现。而且在此应用中我们将 Hyperledger Fabric 默认的状态数据库由 LevelDB 替换为 CouchDB 来实现
基于Hyperledger Fabric的学位学历认证管理系统
Fabric Network 结构包括几个组件,如 CA、MSP、Orderer 等 ,如下图所示

  1. CA 代表证书颁发机构。它负责颁发和管理数字证书,用于识别 Fabric Network 中的参与者 。
  2. MSP 代表成员服务提供商。它定义了验证网络参与者身份和角色的规则和策略 。
  3. Orderer 是一个节点,它将交易排序成区块,并将它们发送给对等节点 。
  4. Org1 是属于 Fabric Network 的一个组织的例子。它可以有自己的 CA、MSP、策略和通道 。
  5. Peer0 和 Peer1 是属于 Org1 的两个节点。它们存储账本的副本并执行链码(智能合约)。
    基于Hyperledger Fabric的学位学历认证管理系统

四、数据模型设计

由于需要向分类账本中保存数据,所以必须设计相关的结构体用于声明要保存的数据结构,用于方便的在应用中处理数据。

名称 数据类型 说明
ObjectType string
Name string 姓名
Gender string 性别
Nation string 民族
EntityID string 身份证号(记录的Key)
Place string 籍贯
BirthDay stirng 出生日期
Photo string 照片
EnrollDate string 入学日期
GraduationDate string 毕(结)业日期
SchoolName string 所读学校名称
Major string 所读专业
QuaType string 学历类别(普通、成考等)
Length string 学制(两年、三年、四年、五年)
Mode string 学习形式(普通全日制)
Level string 层次(专科、本科、研究生、博士)
Graduation string 毕(结)业(毕业、结业)
CertNo string 证书编号
Historys []HistoryItem 当前edu的详细历史记录

为了能够从当前的分类状态中查询出详细的历史操作记录,我们在 Education 中设计了一个类型为HistoryItem 数组的 Historys 成员,表示当前状态的历史记录集。
HistoryItem 结构体设计如下表所示:

名称 数据类型 说明
TxId string 交易编号
Education Education 本次历史记录的详细信息

五、原型交互设计

https://js.design/v?i=8znNXl&p=R9WgEyOBdM&f=iGC6qsWuq2qnKAa_mCCcF

六、链码及API操作

education/chaincode/edu.go实现了使用链码相关的API如GetState,PutState,GetQueryResult等对分类账本状态进行具体操作的各个函数:

  • PutEdu:实现将指定的对象序列化后保存至分类账本中
  • GetEduInfo:根据指定的Key(身份证号码)查询对应的状态,反序列后将对象返回
  • getEduByQueryString:根据指定的查询字符串从 CouchDB 中查询状态
  • addEdu:接收对象并调用 PutEdu 函数实现保存状态的功能
  • queryEduByCertNoAndName:根据指定的证书编号与姓名查询状态
  • queryEduInfoByEntityID:根据指定的身份证号码(Key)查询状态
  • updateEdu:实现对状态进行编辑功能

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统

七、数据存储

链上数据是直接或者间接由区块链共识产生的数据,一般包括区块链节点数据智能合约代码

区块链节点数据包括区块数据和状态数据两者
1.区块数据描述区块自身信息数据,实际是区块链上面发生的每一笔交易的记录(如添加学历信息,修改学历信息及对应的时间戳)
2.状态数据则是记录了每个账户和智能合约的当前状态(如张三的学历信息)

区块链节点的数据存储最普遍的方式就是存入我们的磁盘中间,而我们的区块链不会直接的访问我们的磁盘,而是通过特定的数据库如LevelIDB,CouchDB等独立和分布式的数据库来操作我们的数据
基于Hyperledger Fabric的学位学历认证管理系统
本项目选用CouchDB作为存储链上数据的数据库

八、Fabric优势

  1. 1.所有上链数据基于密码学数字签名,上链数据不可被第三方篡改,不可抵赖。
  2. 基于多参与方的共识算法,防止单方面作恶,修改自己链上历史数据。
  3. Fabric淡化了去中心化(Decentralized),而以分布式 (Distributed)代替,每个节点具有完整全账本,防止单机故障和数据丢失。
  4. .fabric采用中心化的CA机制来发放证书,只有持有有效证书的节点和用户才可以访问区块链上的账本数据,此外还有TLS加密通讯、通道隔离等技术,保证了数据的传播范围可控,防止数据被窃取。

Fabric充分利用了模块化的设计、容器技术和密码学技术,使得系统具有可扩展、灵活和安全等特性。采用传统数据库或许可以实现部分区块链的功能,如设计只写数据库,设计访问权限,共享数据库,分布式协议等,但这不是数据库的功能,只是创造出一个另一种形势的“区块链”,传统数据库无法达到区块链的分布式和信任。

十、功能演示

http://localhost:9000/

基于Hyperledger Fabric的学位学历认证管理系统

输入管理员账号及密码登录验证成功,则进入系统首页面
基于Hyperledger Fabric的学位学历认证管理系统
在首页面中点击 查询范围链接,进入 help页面,
基于Hyperledger Fabric的学位学历认证管理系统
点击添加学历信息链接进入,添加学历信息页面
基于Hyperledger Fabric的学位学历认证管理系统

根据学历证书编号与姓名查询页面

基于Hyperledger Fabric的学位学历认证管理系统

根据身份证号码查询页面
基于Hyperledger Fabric的学位学历认证管理系统

根据身份证号码查询页面查询结果页面
基于Hyperledger Fabric的学位学历认证管理系统

编辑页面
基于Hyperledger Fabric的学位学历认证管理系统

编辑成功自动跳转到根据身份证号码查询结果页面
基于Hyperledger Fabric的学位学历认证管理系统

十一、Hyperledger explorer——Fabric浏览器

http:/localhost:8080/
Hyperledger Explorer是一个简单易用的开源工具,可以用于监视 区块链网络中的活动。Hyperledger Explorer支持Fabric、Iroha等 多种区块链,可以运行在MocOS和Ubuntu下。我们可以在这里看到链上的所有信息,例如交易的时间、区块的哈希值和数据的哈希值等。
浏览器部署教程——该教程仅供了解,本项目已经部署浏览器,不需要再部署,若有其他项目需要部署可参考该教程

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统
基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统
基于Hyperledger Fabric的学位学历认证管理系统
基于Hyperledger Fabric的学位学历认证管理系统

十二、分布式数据库

CouchDB 数据库1:peer0节点7051端口 http:/localhost:5984/_utils

CouchDB 数据库2:peer1节点9051端口 http://localhost:7984/_utils

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统

基于Hyperledger Fabric的学位学历认证管理系统

十三、不可篡改性

CouchDB数据库存取链上数据,将学历信息等数据写入到数据库,窜改数据库的数据时链上的数据没有改变,查询时返回数据为链上数据,所以篡改数据库不可修改系统返回数据。
基于Hyperledger Fabric的学位学历认证管理系统
基于Hyperledger Fabric的学位学历认证管理系统

十四、项目部署

部署流程:https://github.com/Pistachiout/Academic-Degree-BlockChain

十五、总结

基于区块链的学历学位认证系统是一个利用区块链技术来防止学历造假的项目。该项目使用了go语言和Hyperledger Fabric超级账本框架,实现了以下功能:

  • 增加学历:用户可以通过智能合约向区块链系统中添加自己的学历信息。
  • 修改学历:用户可以通过智能合约修改自己在区块链系统中的学历信息,但是修改后的信息会留下痕迹,方 便追溯。
  • 查询学历:用户可以通过智能合约查询自己或者其他用户在区块链系统中的学历信息,验证其真伪。

该项目有以下优点和创新点:

  1. 使用了Fabric与Couchdb数据库,实现了分布式数据库与不可篡改性。Fabric是一个支持多种共识机制和智能合约语言的企业级区块链平台,Couchdb是一个面向文档的数据库,可以存储复杂结构化数据,并支持富查询功能。Fabric账本是有序的、不可篡改的状态转换记录,包括区块链和世界状态两部分。区块链中保存着不可变的顺序记录,包含配置记录和交易记录。世界状态中维护账本的当前状态,方便应用快速查询。
  2. 使用了HyperledgerExplorer,实现了对区块链网络和数据的可视化监控。Explorer是一个基于web的应用程序,可以展示区块链网络中的节点、通道、交易、合约等信息,并提供图表和统计分析功能。用户可以通过浏览器查看网络中的信息,包括网络拓扑、区块信息、链码信息等等。

该项目遇到了以下困难和挑战:

  • Fabric框架涉及多个组件和配置文件,需要花费较多时间来理解和搭建。
  • Couchdb数据库需要创建索引来优化查询性能,并且需要考虑数据同步和一致性问题。
  • Explorer应用程序需要与Fabric网络进行集成,并且需要适配不同版本和配置。

该项目有以下不足和改进空间:

  • 学历信息只能由用户自己添加和修改,没有第三方机构来审核和认证。
  • 学历信息没有加密处理,可能存在隐私泄露风险。
  • Explorer应用程序没有提供用户认证和权限控制功能。`

通过参加这个项目实训,我不仅学习了go语言和Fabric框架,还深入了解了区块链技术的原理和应用。我感受到了区块链技术在学历认证领域的优势和潜力,也体会到了开发区块链应用的难度和挑战。这个项目让我收获了很多知识和经验,也激发了我对区块链技术的兴趣和热情。文章来源地址https://www.toymoban.com/news/detail-407947.html

到了这里,关于基于Hyperledger Fabric的学位学历认证管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于区块链Hyperledger Fabric的农产品(通用)溯源系统搭建步骤、源码与视频

    购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 搭建步骤与商品溯源项目一致 源码与从0开始的搭建视频请看专栏介绍中的QQ群获取(文件名:ncpsy.zip)

    2024年02月12日
    浏览(47)
  • 基于区块链/Hyperledger Fabric与IPFS的电子病历数据传输系统搭建流程

    购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 从0开始的搭建视频请看介绍内的QQ群获取 原项目链接:https://github.com/the-chain/airmedfoundation-terminal 本项目链接 https://gitee.com/real__cool/data_transfer 项目视频演示 https://www.bilibili.com/video/BV1f34y1v7hM 可以同时参考原项目的搭建

    2023年04月10日
    浏览(35)
  • 基于区块链/Hyperledger Fabric与IPFS的电子病历数据传输系统搭建流程与视频

    购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 从0开始的搭建视频请看介绍内的QQ群获取 原项目链接:https://github.com/the-chain/airmedfoundation-terminal 本项目链接 https://gitee.com/real__cool/data_transfer 项目视频演示 https://www.bilibili.com/video/BV1f34y1v7hM 可以同时参考原项目的搭建

    2023年04月20日
    浏览(29)
  • Linux搭建Hyperledger Fabric区块链框架 - Hyperledger Fabric模型概念

    2015年,Linux基金会启动了Hyperledger项目,目标是发展跨行业的区块链技术。 Hyperledger Fabric是Hyperledger中的一个区块链项目,包含一个账本,使用智能合约并且是一个通过所有参与者管理交易的系统。 Hyperledger Fabric 是分布式账本解决方案的平台,以模块化架构为基础,支持不同

    2023年04月08日
    浏览(40)
  • 【Fabric学习】什么是HyperLedger Fabric?

    本文总结自 Fabric官方文档 ,描述了Fabric产生的背景、特性、主要组件。 区块链 是不可更改的交易账本,由同等节点(peer nodes)组成的分布式网络来维护。 比特币:第一个使用区块链的应用; 以太坊:引入 智能合约 来开发分布式应用。 二者都是 公有链 ( public / permissi

    2024年01月19日
    浏览(37)
  • 【Hyperledger Fabric 学习】运行一个Fabric应用

    中文网址:https://hyperledger-fabric.readthedocs.io/zh_CN/latest 英文网址:https://hyperledger-fabric.readthedocs.io/en/latest 一般情况英文网址的内容更全面,版本也比中文新。 本教程介绍了 Fabric 应用程序如何与已部署的区块链网络进行交互。本教程使用使用 Fabric Gateway 客户端 API 构建的示例

    2023年04月08日
    浏览(60)
  • Hyperledger Fabric 环境搭建

    以 fabric:2.2.0 ; ca:1.4.7 为例 官网下载go Downloads - The Go Programming Language (google.cn) 没有问题就完成啦 官方安装脚本(修改过了): 两个简单脚本直接开启/关闭测试区块链: 开启: 关闭:

    2024年02月11日
    浏览(34)
  • Hyperledger Fabric 链码

    懂哪写哪,随时补充 链码在开发过程中需要实现链码接口,交易的类型决定了哪个接口函数将会被调用,链码的接口定义如下: 链码的必要结构如下: shim.ChaincodeStubInterface接口 1、Init方法 Init方法中,首先通过stub的GetFunctionAndParameters()方法提取本次调用的交易中所指定的

    2023年04月08日
    浏览(36)
  • Hyperledger Fabric架构设计

    目录 1、逻辑架构 答疑:什么叫做背书策略? 2、运行时架构         答疑:什么是锚节点? Hyperledger Fabric从1.X开始,在扩展性及安全性方面有了很大的提升,且新增了诸多特性。 多通道:支持多通道,提高隔离安全性。 可插拔的组件:支持共识组件、权限管理组件等可

    2024年02月11日
    浏览(26)
  • Hyperledger Fabric问题汇总

    Ubuntu 20.04 Hyperledger Fabric 2.3.3 SDK对应的Go 1.17.5 链码对应的Go 1.18 Fabric-sdk-go 1.0.0 Docker 20.10.12 Docker-Compose 2.11.2 调用命令: peer chaincode invoke -o localhost:7050 – ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包