1

我遇到Hyperledger结构客户端,它具有方法/功能以将新成员验证到区块链网络中。但我不确定我如何能够将新用户认证为区块链网络中的频道。新的参与者如何在hyperledger结构中的通道中进行身份验证

我可以使用hyperledger结构中的通道配置(configtx)邀请/注册新参与者到一个通道吗?

链接到信道配置:http://hyperledger-fabric.readthedocs.io/en/latest/configtx.html#channel-creation

回答

1

可以使用织物-CA。 Fabric-ca为用户管理提供了多个apis。您可以通过fabric-ca注册,撤销,注册和重新注册用户。并且fabric-ca的文档是here

设置fabric-ca服务器后,可以使用SDK(当前为node-sdk和java-sdk)或fabric-ca客户端与fabric-ca服务器交互。 java-sdk的示例是here。 node-sdk的示例是here

而且在chaincode的一面,你可以阅读证书时,用户每次通话从客户端调用查询。以下是示例代码。

import( 
    "crypto/x509" 
    "encoding/pem" 
    "bytes" 
    "strings" 
    "github.com/hyperledger/fabric/core/chaincode/shim" 
) 

func parseCert(stub){ 
    creator, err := identityService.Stub.GetCreator() 
    if err != nil { 
     logger.Debug("Error received on GetCreator", err) 
     vm.PushErrorObjectVa(duktape.ErrError, "%s", err.Error()) 
     vm.Throw() 
     return 
    } 
    certStart := bytes.IndexAny(creator, "----BEGIN CERTIFICATE-----") 
    if certStart == -1 { 
     logger.Debug("No certificate found") 
     return 
    } 
    certText := creator[certStart:] 
    block, _ := pem.Decode(certText) 
    if block == nil { 
     logger.Debug("Error received on pem.Decode of certificate", certText) 
     return 
    } 

    ucert, err := x509.ParseCertificate(block.Bytes) 
    if err != nil { 
     logger.Debug("Error received on ParseCertificate", err) 
     return 
    } 

    logger.Debug("Common Name", ucert.Subject.CommonName) 

} 
相关问题