该 智能合约 实现了一个简单的征信管理的案例。针对于学历认证领域,由于条约公开,在条约外无法随意篡改的特性,天然具备稳定性和中立性。
该智能合约中三种角色如下:
学校可以根据相关信息在区块链上为某位个人授予学历,相关机构可以查询某人的学历信息,由于使用私钥签名,确保了信息的真实有效。 为了简单,尽量简化相关的业务,另未完成学业的学生因违纪或外出创业退学,学校可以修改其相应的学历信息。
账户私钥应该由安装在本地的客户端生成,本例中为了简便,使用模拟私钥和公钥。
对学历操作信息所有的操作都归为记录。
init 初始化函数
init
invoke 调用合约内部的函数
invoke
updateDiploma 由学校更新学生学历信息,并签名(返回记录信息)
updateDiploma
enrollStudent 学校招生(返回学校信息)
enrollStudent
createSchool 添加一名新学校
createSchool
createStudent 添加一名新学生
createStudent
getStudentByAddress 通过学生的账号地址访问学生的学历信息
getStudentByAddress
getRecordById 通过Id获取记录
getRecordById
getRecords 获取全部记录(如果记录数大于 10,返回前 10 个)
getRecords
getSchoolByAddress 通过学校账号地址获取学校的信息
getSchoolByAddress
getBackgroundById 通过学历 Id 获取所存储的学历信息
getBackgroundById
writeRecord 写入记录
writeRecord
writeSchool 写入新创建的学校
writeSchool
writeStudent 写入新创建的学生
writeStudent
request参数:
args[0] 学校名称 args[1] 学校所在位置
response参数:
学校信息的字节数组,当创建一所新学校时,该学校学生账户地址列表为空
request参数:
args[0] 学生的姓名
response参数:
学生信息的字节数组表示,刚创建过往学历信息列表为空
request参数
args[0] 学校账户地址 args[1] 学校签名 args[2] 待修改学生的账户地址 args[3] //对该学生的学历进行怎样的修改,0:正常毕业 1:退学
response参数
返回修改记录的字节数组表示
args[0] 学校账户地址 args[1] 学校签名 args[2] 学生账户地址
args[0] address
学生信息的字节数组表示
args[0] 修改记录的ID
修改记录的字节数组表示
获取修改记录数组(如果个数大于10,返回前10个)
学校信息的字节数组表示
args[0] ID
学历信息的字节数组表示
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8