我正在Hyperledger Fabric(1.4)中运行Fabcar示例,我想使用Fabcar示例中的 registerUser.js 创建一个用户,该用户仅具有 read 访问权限链码。因此,当我运行 query.js 时,我应该得到 queryAllCars 的结果,但是同一用户不能运行invoke.js createCar (防止对链代码的写访问)。
那么,要实现上述场景(不使用作曲家),应该怎么做?
我正在使用docker从Fabric-samples运行Fabcar应用。
如果在Fabcar示例的 registerUser.js 中注册用户时指定了该用户角色
const secret = await ca.register({ affiliation: 'org1.department1', enrollmentID: 'user1', role: 'user' }, adminIdentity);
然后该用户只能查询链代码,而不能调用它。
答案 0 :(得分:0)
您可以使用调用链码的用户的ClientIdentity来控制对每个功能的访问。
const ClientIdentity = require('fabric-shim').ClientIdentity;
let clientIdentity = new ClientIdentity(stub);
if (client.getMSPID() === 'user') {
return;
}