我目前正在尝试评估请求者 MSPID 以授权能够在链码上请求函数的特定成员列表,但是当我要求“stub.getCreator().mspId”时,它总是给我“未定义”
我目前正在使用诸如通过“docker exec”之类的命令调用该函数。我检查了我的交易是否应该在“getCreator”之前签名才能工作,但我不知道是否可以通过命令行调用来签署交易。
我的命令行请求是:
docker exec cli.example.com peer chaincode invoke -o orderer.example.com:7050 -C examplechannel -c '{"Args":["createVcc", "{ \"date\": 12345, \"reference\": \"anything\", \"serialNumber\": \"BR-12345\", \"presentedTo\": \"Example project\", \"quantity\": 22279 }"]}' -n example
验证功能:
const isAdmin = (func, creator) => {
if (!adminList.includes(creator)) {
throw new Error(`Organization ${creator} does not have access to perform function ${func}`);
}
}
在链码中使用验证功能:
async (stub, data) => {
...
isAdmin('createVcc', stub.getCreator().mspId);
...
}
我收到:
Error: endorsement failure during invoke. response: status:500 message:"transaction returned with failure: Organization undefined does not have access to perform function createVcc"
我希望“getCreator().mspid”不是未定义的,有人知道什么可以解决我的问题吗?