我遇到了 Hyperledger Fabric 客户端,它具有将新成员身份验证到区块链网络的方法/功能。但我不确定如何将新用户验证到区块链网络的通道中。
我可以在超级账本结构中使用频道配置(configtx)来邀请/注册新参与者到频道吗?
链接到通道配置:http ://hyperledger-fabric.readthedocs.io/en/latest/configtx.html#channel-creation
我遇到了 Hyperledger Fabric 客户端,它具有将新成员身份验证到区块链网络的方法/功能。但我不确定如何将新用户验证到区块链网络的通道中。
我可以在超级账本结构中使用频道配置(configtx)来邀请/注册新参与者到频道吗?
链接到通道配置:http ://hyperledger-fabric.readthedocs.io/en/latest/configtx.html#channel-creation
你可以使用fabric-ca。Fabric-ca 提供了几个用于用户管理的 api。您可以通过 fabric-ca 注册、撤销、注册、重新注册用户。Fabric-ca 的文档在这里。
设置您的 fabric-ca 服务器后,您可以使用 SDK(当前为 node-sdk 和 java-sdk)或 fabric-ca 客户端与 fabric-ca 服务器交互。java-sdk 的示例在这里。node-sdk 的示例在这里。
在链码方面,您可以在每次用户调用调用或从客户端查询时读取证书。以下是示例代码。
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)
}