当我尝试创建请求(提案)并使用Execute
发送请求时 ctxCh := sdk.ChannelContext("mychannel", fabsdk.WithUser("user1"))
chClient, err := channel.New(ctxCh)
if err != nil {
log.Fatalln("error from New channel", err)
}
req := channel.Request{
ChaincodeID: "fabcar",
Fcn: "createCar",
Args: [][]byte{[]byte("CAR10"), []byte("Honda"), []byte("Accord"), []byte("Black"), []byte("Tom")},
}
resp, err := chClient.Execute(req)
if err != nil {
log.Fatalln("error from Execute =", err)
}
我收到此错误:
致电orderer' orderer.example.com:7050'失败:Orderer客户端 状态代码:(2)CONNECTION_FAILED。说明:拨号连接 超时[orderer.example.com:7050]
我的config.yaml
channels:
# name of the channel
mychannel:
orderers:
- orderer.example.com
orderers:
orderer.example.com:
url: grpc://localhost:7050
# these are standard properties defined by the gRPC library
# they will be passed in as-is to gRPC client constructor
grpcOptions:
ssl-target-name-override: orderer.example.com
tlsCACerts:
# Certificate location absolute path
path: ./crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
我认为执行功能尝试连接orderer服务&orderer.example.com:7050',但无法找到它, 如果我是对的,那么我如何将orderer.example.com:7050更改为grpc:// localhost:7050
答案 0 :(得分:3)
, 解决这个问题添加到config.yaml
entityMatchers:
orderer:
- pattern: (\w+).example.(\w+)
urlSubstitutionExp: grpc://localhost:7050
sslTargetOverrideUrlSubstitutionExp: orderer.example.com
mappedHost: orderer.example.com
将grpc://localhost:7050
映射到orderer.example.com