Hyperledger fabric 当我在fabric sdk go中使用msp向CA注册用户时,发生了一个错误

Hyperledger fabric 当我在fabric sdk go中使用msp向CA注册用户时,发生了一个错误,hyperledger-fabric,hyperledger-fabric-ca,hyperledger-fabric-sdk-go,Hyperledger Fabric,Hyperledger Fabric Ca,Hyperledger Fabric Sdk Go,错误如下: Register return error: failed to register user: failed to register user: Response from server: Error Code: 20 - Authentication failure 守则的有关部分如下: Register return error: failed to register user: failed to register user: Response from server:

错误如下:

Register return error:
 failed to register user: failed to register user: Response from server: Error Code: 20 - Authentication failure
守则的有关部分如下:

Register return error:
 failed to register user: failed to register user: Response from server: Error Code: 20 - Authentication failure
导入(
[...]
mspclient“github.com/hyperledger/fabric sdk go/pkg/client/msp”
[...]
)
[...]
func RegisterUser(sdk*fabsdk.FabricSDK,info*InitInfo,r*RegistrationRequest)(字符串,错误){
clientContext:=sdk.Context(fabsdk.WithUser(info.OrgAdmin),fabsdk.WithOrg(info.OrgName))
如果clientContext==nil{
返回“”,格式错误(“根据指定的组织名称与管理员创建资源管理客户端上下文失败")
}
// 创建一个新的msp客户端实例,并返回
c、 错误:=mspclient.New(sdk.Context(),mspclient.WithOrg(info.OrgName))
如果错误!=零{
返回“”,格式错误(“根据指定的 原名创建 组织MSP客户端实例失败: %v“,呃)
}
请求:=mspclient.RegistrationRequest{
姓名:r.姓名,
类型:r.类型,
MaxEnrollments:r.MaxEnrollments,
隶属关系:r.隶属关系,
//属性:,
迦南:r.迦南,
秘密:r.秘密,
}
_,err=c.寄存器(&request)
如果错误!=零{
返回“”,fmt.Errorf(“寄存器返回错误:\n%s\n”,错误)
}
返回“注册用户已完成”,无
}

在这个论坛上,我还发现有人报告了相同的错误,有些人回答说用户名和密码不匹配,但我的代码是注册用户,这个原因不应该出现。

下面是我正在使用的功能。你可以相应地更改它。在注册用户之前使用它

/**
     1. In Hyperledger fabric by default "org1 & org2" are affiliated as CA organization, so any client or peer
            wants to register or enroll into the network via CA can pass "org1 or org2" as an affiliated organization.
     2. In case of other organization like org3 & org4, they need to be affiliated
**/

// AddAffiliationOrg : adding the affiliations of orgs. need to do this if Orgname isn't org1 or org2
func AddAffiliationOrg(setup *OrgSetup, caClient *msp.Client, caName string) error {

    orgName := setup.OrgName
    affl := strings.ToLower(orgName) + ".department1"

    fmt.Println("Initializing Affiliation for " + affl)

    affResponse, err := caClient.GetAffiliation(affl)

    if affResponse != nil && err != nil {

        fmt.Println("Affiliation Exists")

        AfInfo := affResponse.AffiliationInfo
        CAName := affResponse.CAName

        fmt.Println("AfInfo : " + AfInfo.Name)
        fmt.Println("CAName : " + CAName)
    } else {

        fmt.Println("Add Affiliation " + affl)

        _, err = caClient.AddAffiliation(&msp.AffiliationRequest{

            Name:   affl,
            Force:  true,
            CAName: caName,
        })

        if err != nil {
            return fmt.Errorf("Failed to add affiliation for CA '%s' : %v ", caName, err)
        }
    }
    fmt.Println("\n Affiliation completed successfully")
    return nil
}

func(t*ServiceSetup)AddAffiliationOrg(caName,orgName字符串)错误{
sdk,err:=fabsdk.New(config.FromFile(sellerConfigFile))
ctx:=sdk.Context()
caClient,err:=msp.New(ctx)
如果错误!=零{
fmt.Printf(“未能创建msp客户端:%s\n”,错误)
返回错误
}
affl:=strings.ToLower(orgName)+“.department1”
fmt.Println(“初始化”+affl的附属关系)
affResponse,err:=caClient.GetAffiliation(affl)
如果affResponse!=nil&&err!=nil{
fmt.Println(“存在附属关系”)
AfInfo:=affResponse.AffiliationInfo
卡纳姆:=affResponse.CAName
fmt.Println(“AfInfo:+AfInfo.Name”)
fmt.Println(“迦南:+迦南”)
}否则{
fmt.Println(“添加附属机构”+affl)
_,err=caClient.AddAffiliation(&msp.affiliation请求){
姓名:affl,,
原力:没错,
迦南:迦南,
})
如果错误!=零{
fmt.Printf(“未能为CA'%s':%v添加从属关系”,caName,错误)
返回错误
}
}
fmt.Println(“\n附属关系成功完成”)
归零
}                        
错误:

Executing AddAffiliationOrg command
Initializing Affiliation for seller.department1
 [fabsdk/fab] 2020/09/28 02:12:42 UTC - n/a -> INFO generating key: &{A:ecdsa S:256}
 [fabsdk/fab] 2020/09/28 02:12:42 UTC - logbridge.(*cLogger).Info -> INFO encoded CSR
Add Affiliation seller.department1

 Affiliation completed successfully
Executing enroll command
Going to enroll user
 [fabsdk/fab] 2020/09/28 02:12:42 UTC - n/a -> INFO generating key: &{A:ecdsa S:256}
 [fabsdk/fab] 2020/09/28 02:12:43 UTC - logbridge.(*cLogger).Info -> INFO encoded CSR
Failed to enroll user: enroll failed: enroll failed: Response from server: Error Code: 20 - Authentication failure

Executing register command
register 225255 successfully,with password 462222
register success

docker-compose-ca.yaml


版本:“2”
网络:
违约:
服务:
ca.seller.com:
图片:hyperledger/fabric ca
集装箱名称:ca.seller.com
环境:
-FABRIC\u CA\u HOME=/etc/hyperledger/FABRIC CA服务器
-FABRIC\u CA\u SERVER\u CA\u NAME=CA.seller.com
-FABRIC\u CA\u SERVER\u CA\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.seller.com-cert.pem
-结构CA服务器CA密钥文件=/etc/hyperledger/FABRIC CA服务器配置/57e5f37e597264cc2fa31c98d462c51796308cedd56fa8c09ea97a07b612679e
-结构\u CA\u服务器\u TLS\u已启用=false
-FABRIC\u CA\u SERVER\u TLS\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.seller.com-cert.pem
-结构CA服务器TLS密钥文件=/etc/hyperledger/FABRIC CA服务器配置/57e5f37e597264cc2fa31c98d462c51796308cedd56fa8c09ea97a07b612679e
端口:
- 8054:7054
命令:sh-c'fabric ca server start-b admin:adminpw-d'
卷数:
-./crypto-config/peerOrganizations/seller.com/ca/:/etc/hyperledger/fabric-ca-server-config
网络:
违约:
别名:
-ca.seller.com
ca.buyer.com:
图片:hyperledger/fabric ca
集装箱名称:ca.buyer.com
环境:
-FABRIC\u CA\u HOME=/etc/hyperledger/FABRIC CA服务器
-FABRIC\u CA\u SERVER\u CA\u NAME=CA.buyer.com
-FABRIC\u CA\u SERVER\u CA\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.buyer.com-cert.pem
-FABRIC_CA_服务器_CA_密钥文件=/etc/hyperledger/FABRIC CA服务器配置/78e27e6db18578fefd8a98fe74f8393e4cb5ee414e887f3325e410539757727
-结构\u CA\u服务器\u TLS\u已启用=false
-FABRIC\u CA\u SERVER\u TLS\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.buyer.com-cert.pem
-结构CA服务器TLS密钥文件=/etc/hyperledger/FABRIC CA服务器配置/78e27e6db18578fefd8a98fe74f8393e4cb5ee414e887f3325e4105239757727
端口:
- 7054:7054
命令:sh-c'fabric ca server start-b admin:adminpw-d'
卷数:
-./crypto-config/peerOrganizations/buyer.com/ca/:/etc/hyperledger/fabric-ca-server-config
网络:
违约:
别名:
-ca.buyer.com
ca.auctionhouse.com:
图片:hyperledger/fabric ca
容器名称:ca.auctionhouse.com
环境:
-FABRIC\u CA\u HOME=/etc/hyperledger/FABRIC CA服务器
-FABRIC\u CA\u SERVER\u CA\u NAME=CA.auctionhouse.com
-FABRIC\u CA\u SERVER\u CA\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.auctionhouse.com-cert.pem
-结构CA服务器CA密钥文件=/etc/hyperledger/FABRIC CA服务器配置/F9437970FBF01BF6E449AA14F762866BF0C96F193F62C444842F3B38624F
-结构\u CA\u服务器\u TLS\u已启用=false
-FABRIC\u CA\u SERVER\u TLS\u CERTFILE=/etc/hyperledger/FABRIC CA SERVER config/CA.auctionhouse.com-cert.pem
-FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/FABRIC CA SERVER config/F9437970FBF01BF6E449AA14F762866BF0C96F193F62C444842F3B38624F_sk
端口:
- 9054:7054
命令:sh-c'fabric ca server start-b admin:adminpw-d'
卷数:
-./crypto-config/peerOrganizations/auctionhouse.com/ca/:/etc/hyperledger/fabric-ca-server-config
网络:
违约:
别名:
-ca.auctionhouse.com