首页 > 天池大赛 > 2018阿里云全球区块链大赛
  • 状态 举办方 第 1 赛季截止日期 总奖池 参赛队

    2018阿里云全球区块链大赛

    已结束 2018/07/31 ¥200000 605

    报名参赛

文件名称 (报名后可下载)

文件格式

Aliyun_blockchain_contest_20180703 .pdf

.pdf (120KB)

阿里云区块链大赛-天池banner copy.jpg

2018阿里云全球区块链大赛

初赛试题

在自有系统中搭建Hyperledger Fabric开发测试环境。
推荐软件版本:Hyperledger Fabric v1.1,go version go1.9,Docker version 1.13.1  

Hyperledger Fabric环境准备及智能合约开发可参考:
http://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html

开发一份基于Golangchaincode,实现个人履历的存证,功能点如下:

1. 评测系统调用chaincodeaddRecord方法,以个人IDKey,以年份,就读学校/在职公司,学位/职位这三个信息的组合为Value,将履历记录Key-Value写入账本。假设对于同一个ID,同一年份只会写入一条记录,也不会对重复年份的情况进行评测。请注意chaincode的参数接收顺序,调用示例如下:

peer chaincode invoke …
-c '{"Args":["addRecord","1001","1999","college1","bachelor"]}'
peer chaincode invoke …
-c '{"Args":["addRecord","1001", "2003","institute1","master"]}'
peer chaincode invoke …
-c '{"Args":["addRecord","1001", "2006","corp1", "engineer"]}'

2. 评测系统调用chaincodegetRecord方法,以个人ID和年份为参数,查询出对应的就读学校/在职公司。请注意chaincode的参数接收顺序,调用示例如下(本例应返回"institute1"):

peer chaincode query … -c '{"Args":["getRecord","1001", "2003"]}

3. 评测系统调用chaincodeencRecord方法,以个人IDKey,以年份,就读学校/在职公司,学位/职位为Value通过transient传入密钥(ENCKEY)和初始化向量(IV),将加密后的履历记录Key-Value写入账本。假设对于同一个ID,同一年份只会写入一条记录,也不会对重复年份的情况进行评测。ENCKEYIV由评测系统生成,请注意chaincode的参数接收顺序,调用示例如下:

peer chaincode invoke …
-c '{"Args":["encRecord","1009","2002","college2","bachelor"]}'
--transient"{\"ENCKEY\":\"$ENCKEY\",\"IV\":\"$IV\"}"
peer chaincode invoke …
-c '{"Args":["encRecord","1009","2006","corp2", "engineer"]}'
--transient"{\"ENCKEY\":\"$ENCKEY\",\"IV\":\"$IV\"}"
peer chaincode invoke …
-c '{"Args":["encRecord","1009","2012","corp3", "manager"]}'
--transient "{\"ENCKEY\":\"$ENCKEY\",\"IV\":\"$IV\"}"

4. 评测系统调用chaincodedecRecord方法,以个人ID和年份为参数,通过transient传入密钥(DECKEY),将对应的就读学校/在职公司解密后返回。DECKEY由评测系统生成,请注意chaincode的参数接收顺序,调用示例如下(本例应正确返回"corp2"):

peer chaincode query ... -c '{"Args":["decRecord", "1009", "2006"]}
--transient"{\"DECKEY\":\"$DECKEY\"}"

chaincodeInit方法无需对账本内容做初始化

成果上传

选手完成chaincode并测试无误后,将chaincode主程序命名为cvChain.go,连同依赖的vendor文件夹打包。以cvChain.zip命名,通过大赛平台页面上传。

评分标准

得分点110分):chaincode可被安装初始化

得分点220分):成功调用addRecord方法,写入若干条记录

得分点330分):成功调用getRecord方法,获得某人某年对应的就读学校/在职公司

得分点420分):成功调用encRecord方法,写入若干条加密记录

得分点520分):成功调用decRecord方法,获得某人某年对应的就读学校/在职公司解密信息

1.png