编号009 通用证书合约标准提案和证书服务应用(记录)

项目名称:
通用证书合约标准提案和证书服务应用

建设目标:
1.提供一个去中心化的证书模板。为各类用户提供客观的证书存证记录。用户(包括其他合约)可以调用合约接口发行标准证书。
2.可在行业证书上链和“Conflux社区学院颁发结业证书”等多种场景下使用。
3.在互联网上,多平台多用户多角度,发布证书合约介绍和使用教程,让链圈外的未来的潜在用户(项目经理和程序员)轻易的通过搜索引擎查到我们制定的区块链证书上链标准协议介绍和教程,然后开心的使用它!使用Conflux社区协议标准的用户,会自然的进入社区生态。

时间节点:
三个月(2020年7月-8月)

预期成果

  1. 提出并实现通用证书合约提案,发布文档和代码于Github和TOC等平台。协议草稿见备注。
  2. 实现并发布一个使用该通用证书合约的应用原型。(应用候选列表:1. @星空 提出过的“我有BTC我富有”匿名财富证明应用)2.Conflux社区学院结业证书应用 3.计量行业证书上链平台原型)
  3. 将实现过程形成实战教程,发布于Conflux社区学院,同时号召学院和生态伙伴和起源计划等所有生态建设者推广此协议标准,逐渐使相关关键字组合进入搜索结果首页。

协作人
胡小p

申请人:
chy

经费:
5wFC

申请时间
2020.6.10

备注:
https://shimo.im/docs/813c28f6be5f44fe

状态:
通过。进行中。经费待拨付。

技术委员会意见:
“悠悠:支持,肖:支持
Funny:支持”

2020年8月8日回复一下进度:

7月份大致写了协议初步草稿 https://shimo.im/docs/813c28f6be5f44fe

目前正在…学习…合约和java-sdk… 预计下周动手尝试coding一下。

(正在遇到和解决一些问题,略吃力,感兴趣的话欢迎联系加入课题,预算够用…)

2020年9月3日更新进度:
将项目拆解为:
1、社区学院毕业实习项目《学院证书》3W FC,包括提出通用证书协议CIP,证书通用模板和学院证书智能合约,学院证书发行DAPP,美工和项目管理等6个部分。
详见项目成立帖:


项目章程草稿:
https://shimo.im/docs/KrkEVJaPr7h0zWAJ
2、证书行业应用:计量行业证书应用Demo 1W FC。
3、撰写文稿和宣传等工作1W FC。

此外,整体完成时间预计延期到10月底。

https://www.processon.com/view/link/5f840733e0b34d0711ff5602 【原型图】

https://shimo.im/docs/m4kMLZPa9GTvlYqD/ 【证书合约0.3版】

https://shimo.im/boards/5bqnro5ry4t714qy/ 《流程图》(转账监听功能未实现)

1 Like

2020年10月18日更新项目进展:

证书原型图确认。
1、分三个界面,钱包链接登入界面、发证界面、查询界面。
2、两个功能,发证和查询。 发证,确定的钱包地址发证。查询,所有钱包地址可查询。
3、查询,可根据学员钱包地址或证书编号查询。
原型图链接:https://www.processon.com/view/link/5f87ab65f346fb06e1d44d00

2 Likes

下一阶段,UI美工设计,合约开发,会在接下来时间段10月25日左右进行评审,确定。

1 Like

更新经费使用说明:
经费使用第三条中,现计划与005-007号项目烤仔城市进行生态合作。为首发预售的7124只盲盒烤仔进行空投(实体+nft烤仔),共空投7000cfx左右,目前计划是7124每只空投上线后的0.1cfx作为阳光普照,额外给其中的1000只博士烤仔额外空投平均7cfx,因为博士烤仔是社区学院的吉祥物和象征 。(目前总计折合3-5k FC左右)。烤仔城市帮着后续一起宣传和出合作海报等。

欢迎社区朋友们来查看和使用通用证书合约标准,一起完善,欢迎朋友们来社区学院学习或授课、实习、毕业后就可以拿到学院毕业证书!

3 Likes

期待期待。

https://shimo.im/docs/KlkKVPYK5pFG5Dqd/ 《第六周,合约证书适应UI版》,可复制链接后用石墨文档 App 或小程序打开
1.这个合约可以配合产品原型,输入和输出。
2.基本功能可以实现。但逻辑上还有一些漏洞有待于进一步完善。

美工Web效果图,三张。

//学院证书管理员钱包地址 :0x1D28AD27E51ccc304639F92a96E6332FF9B6cCa7

//学院正式管理员密钥:07B6C0F*********************8654DE

pragma solidity >=0.5.0 <0.7.0;

contract certificate {

struct student{        //建立学员结构体

    uint number;

    }

 mapping(address => student)students;  //地址到学员的映射

    struct Certificate {  

    string  student; //持证人

    address addrid;  //持证人钱包地址

    string department;//发证人

    string content;  //证书内容

    uint time;     //发证时间

    }

uint number;  //证书编号

mapping (uint => Certificate) Certificates;//编号是与证书一一对应的关系

address admin = 0x1D28AD27E51ccc304639F92a96E6332FF9B6cCa7; 

modifier adminOnly(){  //只有管理员才能进行一些操作。

    if(msg.sender != admin)  revert();

    else _;

    }



function inputcer(uint _number ,address _id,string memory _student,string memory _content,  string memory _department,  uint _time) 

public  adminOnly{               

    Certificates[_number].student = _student;  // 学员姓名

    Certificates[_number].addrid = _id;                  //学员地址

    Certificates[_number].department =_department; //机构名称

    Certificates[_number].content = _content;            //证书内容

    Certificates[_number].time = _time;                    //证书时间

    students[_id].number= _number; //把证书编号映射给学员

     }





function studentIndexes(address _studentid)public view returns(uint){

    return students[_studentid].number;

    }

//输入地址可以查询到证书编号



    //输入证书编号,输出该编号对应的证书

function outputceri(uint _f)public view returns(string memory,address,string memory,string memory,uint){

    return (Certificates[_f].student,Certificates[_f].addrid,Certificates[_f].department,Certificates[_f].content,Certificates[_f].time);

}

}

进展11月29日:
一、前端页面已经编写完成。
二、合约编写完成,与前端进行对接。

接下来一周,合成后进行测试。

12月17日:
联合调试中,合约更新版本。

1 Like

2020年12月27日 升级代码,修复一些bug。
增加了2个方法。

pragma solidity >=0.5.0 <0.7.0;

contract certificate {
struct student{ //建立学员结构体
uint number;
}
mapping(address => student)students; //地址到学员的映射

struct IssuingAuthority{   //建立制证机构结构体
    uint number;  //已发证书的数量
    uint permit ;//是否有权限制证 
}
mapping(address => IssuingAuthority)IssuingAuthoritys; //地址到机构的映射

    
    struct Certificate {  
    string  student; //持证人
    address addrid;  //持证人钱包地址
    string department;//发证人
    string content;  //证书内容
    uint time;     //发证时间
    }

uint number = 1;  //证书编号
mapping (uint => Certificate) Certificates;//编号是与证书一一对应的关系
address admin = 0x1D28AD27E51ccc304639F92a96E6332FF9B6cCa7;
modifier adminOnly(){  //只有管理员才能进行一些操作。
    if(msg.sender != admin)  revert();
    else _;
    }

function inIssuingAuthority(address _addr) public adminOnly{
    //require(IssuingAuthoritys[_addr].number > 1,"The IssuingAuthority has been registered!");

    IssuingAuthoritys[_addr].permit = 1;  //管理员给机构赋予制证权限
    IssuingAuthoritys[_addr].number = 0;//初始发证数为0个
    }

function inputcer(address _id,string memory _student,string memory _content,  string memory _department,  uint _time) 

public {               
    require (IssuingAuthoritys[msg.sender].permit == 1); //确定制证机构有权限
    require(students[_id].number < 1);
    Certificates[number].student = _student;  // 学员姓名

    Certificates[number].addrid = _id;                  //学员地址
    Certificates[number].department =_department; //机构名称
    Certificates[number].content = _content;            //证书内容
    Certificates[number].time = _time;                    //证书时间
    students[_id].number= number; //把证书编号映射给学员
    IssuingAuthoritys[msg.sender].number++;
    number++;

     }

function studentIndexes(address _studentid)public view returns(uint){
    return students[_studentid].number;
   }

//输入地址可以查询到证书编号
//输入证书编号,输出该编号对应的证书

function outputceri(uint _f)public view returns(string memory,address,string memory,string memory,uint){
    return (Certificates[_f].student,Certificates[_f].addrid,Certificates[_f].department,Certificates[_f].content,Certificates[_f].time);
}

function getnum()public view returns(uint,uint)//输出下一个证书编号,输出当前机构制证数量。
{
return(number,IssuingAuthoritys[msg.sender].number);
}
function getIssuingAuthority ()public view returns (uint)//增加方法,判断操作地址权限,返回“1”可以制证,返回“0”不可以制证
{
    return(IssuingAuthoritys[msg.sender].permit);
}

}

2021年1月7日:
除了学院证书之外的,另一个应用“3.计量行业证书上链平台原型”,已做出Demo。完善后会公开。

1 Like

验收申请:

验收内容:
社区学院毕业实习项目《学院证书》

证书合约,前端分别完成,申请验收。


测试地址:
http://sc.conflux.work:8080/

申请经费:3W FC

cfx:accyvsj103nyfxxucj13w06zyjb24yms929wm3sppw

发行认证类证书提案
中文:https://github.com/ice0077/CIP-9-CH
英文:https://github.com/ice0077/CIP-9

收到申请,toc和社区测试小组会尽快和您联系组织测试