Hyperledger-Fabric是否提供一种方法来找出谁(以太坊中的msg.sender)调用了链码?

Rup*_*ing 5 ethereum hyperledger-fabric

在Hyperledger-Fabric中,如何在链码中获取以太坊,例如“ msg.sender”?(同样,当链码A调用链码B时,“ msg.sender”是否将是A的脚本地址(如在以太坊中一样)?

k26*_*6dr 6

要添加到陈茂哲的答案中:

func (stub *ChaincodeStub) GetCreator() ([]byte, error)
Run Code Online (Sandbox Code Playgroud)

GetCreator返回此存根引用的signedProposal的SignatureHeader.Creator。

GetCreator应该获得signedProposal和投标。

来自HyperLedger博客

创建者字段包含x.509证书,提供的公钥和成员资格服务(MSP),这些证书将这些身份颁发给客户端。Nonce字段包含一些随机字节。

type SignatureHeader struct {   
    Creator []byte 
    Nonce []byte 
}
Run Code Online (Sandbox Code Playgroud)

在同一博客上的另一篇文章中,显示了块结构图。它在每个交易中都有一个部分(请参见第4行)

创建者身份(证书,公共密钥)-客户端

似乎是的,这相当于Solidity中的msg.sender。

块状结构


小智 0

func (stub *ChaincodeStub) GetCreator() ([]byte, error)
Run Code Online (Sandbox Code Playgroud)

GetCreator 返回此 Stub 引用的signedProposal 的 SignatureHeader.Creator。

GetCreator应该得到签署的提案和提案。