推荐软件版本: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\"}"