让我们假设以下网络体系结构:A- > Chaincode1- > fabcarA是应用程序,Chaincode1是Go中的链码,而fabcar是Nodejs中的链码。它们在同一频道:“ mychannel”。当进行操作APIstub.InvokeChaincode从Chaincode1如APIstub.InvokeChaincode("fabcar", chainCodeArgs, "mychannel"),是那里的chaincode的可能性fabcar(称为chaincode)来获取ID主叫chaincode的?fabcar链码中的getCreator()方法仅返回调用者组织;但是所需的信息是chaincode id或仅连接到Chaincode1的一些信息。更新我getSignedProposal()尝试了Hyperledger官方文档中所写的方法:https ://fabric-shim.github.io/ChaincodeStub.html#getSignedProposal__anchor该getSignedProposal()方法返回类型为的已签名交易提议的完全解码的对象SignedProposal。该SignedProposal对象表示客户端应用程序发送到链码的请求对象。执行以下代码:const proposal = stub.getSignedProposal();console.log("signed proposal: ", proposal);结果如下:signed proposal: { signature: <Buffer 30 45 02 21 00 c3 a7 91 4c 74 f9 c2 97 04 fc 84 91 6a 71 2d 69 ad 0e a9 22 f2 ed 53 a3 66 97 56 17 d7 d7 3a e6 02 20 13 26 8a 4f f6 3d 86 4e f9 35 ae ... >, proposal: { header: { signature_header: [Object], channel_header: [Object] }, payload: { input: [Object], TransientMap: [Object] } } }似乎真的很难理解哪个信息可以在哪里检索调用链码ID。这是有关SignedProposal类型的文档链接:https : //fabric-shim.github.io/global.html#SignedProposal
2 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
getCreator()fabcar链码中的函数仅返回调用者组织,我希望链码ID或某些仅连接到Chaincode1的信息。
您可以使用GetSignedProposal方法,即:
// data elements part of a transaction proposal.
GetSignedProposal() (*pb.SignedProposal, error)
在SignedProposal包含原始chaincode客户端发送的交易提案的信息,在chaincode到chaincode调用的情况下SignedProposal简单地转发,因此你可以提取以前chaincode的信息。
注意:如果您具有复杂的链码调用链,例如chaincode1调用chaincode2并调用chaincode3,SignedProposal将包含chaincode1的信息,即您不会知道chaincode2。
- 2 回答
- 0 关注
- 379 浏览
添加回答
举报
0/150
提交
取消