我正在尝试根据发现的以下文档设置Idemix:
但是在进行交易时,我收到以下错误:
numpy
我采取的步骤:
$ docker exec -e "CORE_PEER_LOCALMSPTYPE=idemix" -e "CORE_PEER_LOCALMSPID=Org1IdemixMSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com" cli peer chaincode query -C channel1 -n chaincode1 -c '{"Args":["query","a"]}'
Error: error getting default signer: error obtaining the default signing identity: no default signer setup
到结构CA User1@org1.example.com
fabric-ca-client register --id.name User1@org1.example.com --id.secret mysecret --id.type client --id.affiliation org1 --id.attrs role=2 -u http://localhost:7054
fabric-ca-client enroll --enrollment.type idemix -u http://User1@org1.example.com:mysecret@localhost:7054
重命名为$USER1_DIR/msp/IssuerRevocationPublicKey
。在事务调用期间,应使用名称$USER1_DIR/msp/RevocationPublicKey
,而不是RevocationPublicKey
IssuerRevocationPublicKey
和IssuerPublicKey
复制到了IssuerRevocationPublicKey
文件夹中。我需要将msp
重命名为IssuerRevocationPublicKey
,否则RevocationPublicKey
会抱怨在configtxgen
中,添加一个Idemix MSP
configtx.yaml
我进行了一些故障排除,并根据- &Org1Idemix
Name: Org1IdemixMSP
# ID to load the MSP definition as
ID: Org1IdemixMSP
msptype: idemix
MSPDir: crypto-config/peerOrganizations/org1idemix.example.com/
Policies: &Org1IdemixMSPPolicies
Readers:
Type: Signature
Rule: "OR('Org1IdemixMSP.member')"
Writers:
Type: Signature
Rule: "OR('Org1IdemixMSP.member')"
Admins:
Type: Signature
Rule: "OR('Org1IdemixMSP.admin')"
文档,发现需要将默认签名者放入idemix msp中,即idemixgen
文件夹中。因此,我将user
的{{1}}文件放入User1@org1.example.com
文件夹中,然后重新运行SignerConfig
。我收到以下错误:
user
接下来,我对configtxgen
的{{1}}和Error loading MSP configuration for org: Org1IdemixMSP: unexpected EOF
生成的SignerConfig
进行了比较。 idemixgen
生成的一个无法打开,而另一个是.json文件(如下所示),因此格式不同。使用SignerConfig
生成的SignerConfig运行User1@org1.example.com
成功。我想尝试通过idemixgen
生成的身份来调用事务,但是除了默认签名者之外,没有办法生成身份。
configtxgen
答案 0 :(得分:0)
我深入研究了代码... 如果您有兴趣,可以在结构1.4版本分支的msp / configbuilder.go中找到GetIdemixMspConfig函数。 在此函数中,我们可以看到它将尝试加载具有原型类型的signconf。 但是,我们使用ca client cli注册了msp,这将返回一个json ... 我以Unable to unmarshal json to protobuf struct field
搜索了某个主题在我看来,原型机Unmarshal会以json格式失败。