推荐软件版本:Hyperledger Fabric v1.1,go version go1.9,Docker version 1.13.1
http://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html 1. 评测系统调用chaincode的addRecord方法,以个人ID为Key,以年份,就读学校/在职公司,学位/职位这三个信息的组合为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. 评测系统调用chaincode的getRecord方法,以个人ID和年份为参数,查询出对应的就读学校/在职公司。请注意chaincode的参数接收顺序,调用示例如下(本例应返回"institute1"):
peer chaincode query … -c '{"Args":["getRecord","1001", "2003"]} 3. 评测系统调用chaincode的encRecord方法,以个人ID为Key,以年份,就读学校/在职公司,学位/职位为Value,通过transient传入密钥(ENCKEY)和初始化向量(IV),将加密后的履历记录Key-Value写入账本。假设对于同一个ID,同一年份只会写入一条记录,也不会对重复年份的情况进行评测。ENCKEY和IV由评测系统生成,请注意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. 评测系统调用chaincode的decRecord方法,以个人ID和年份为参数,通过transient传入密钥(DECKEY),将对应的就读学校/在职公司解密后返回。DECKEY由评测系统生成,请注意chaincode的参数接收顺序,调用示例如下(本例应正确返回"corp2"):
peer chaincode query ... -c '{"Args":["decRecord", "1009", "2006"]} --transient"{\"DECKEY\":\"$DECKEY\"}" 
