示例四:学历认证
功能描述
该 智能合约 实现了一个简单的征信管理的案例。针对于学历认证领域,由于条约公开,在条约外无法随意篡改的特性,天然具备稳定性和中立性。
该智能合约中三种角色如下:
学校
个人
需要学历认证的机构或公司
学校可以根据相关信息在区块链上为某位个人授予学历,相关机构可以查询某人的学历信息,由于使用私钥签名,确保了信息的真实有效。 为了简单,尽量简化相关的业务,另未完成学业的学生因违纪或外出创业退学,学校可以修改其相应的学历信息。
账户私钥应该由安装在本地的客户端生成,本例中为了简便,使用模拟私钥和公钥。
数据结构设计
学校
名称
所在位置
账号地址
账号公钥
账户私钥
学校学生
个人
姓名
账号地址
过往学历
学历信息
学历信息编号
就读学校
就读年份
完成就读年份
就读状态 // 0:毕业 1:退学
修改记录(入学也相当于一种修改记录)
编号
学校账户地址(一般根据账户地址可以算出公钥地址,然后可以进行校验)
学校签名
个人账户地址
个人公钥地址(个人不需要公钥地址)
修改时间
修改操作// 0:正常毕业 1:退学 2:入学
对学历操作信息所有的操作都归为记录。
function及各自实现的功能
init
初始化函数invoke
调用合约内部的函数updateDiploma
由学校更新学生学历信息,并签名(返回记录信息)enrollStudent
学校招生(返回学校信息)createSchool
添加一名新学校createStudent
添加一名新学生getStudentByAddress
通过学生的账号地址访问学生的学历信息getRecordById
通过Id获取记录getRecords
获取全部记录(如果记录数大于 10,返回前 10 个)getSchoolByAddress
通过学校账号地址获取学校的信息getBackgroundById
通过学历 Id 获取所存储的学历信息writeRecord
写入记录writeSchool
写入新创建的学校writeStudent
写入新创建的学生
接口设计
createSchool
request参数:
response参数:
createStudent
request参数:
response参数:
updateDiploma
request参数
response参数
enrollStudent
request参数:
response参数
getStudentByAddress
request参数
response参数
getRecordById
request参数
response参数
getRecords
response参数
getSchoolByAddress
request参数
response参数
getBackgroundById
request参数
response参数
测试
最后更新于