讓我們假設以下網絡體系結構: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 關注
- 407 瀏覽
添加回答
舉報
0/150
提交
取消