Hyper Fabric [fabric-sdk-go]错误:CONNECTION_FAILED。说明:拨号连接超时

时间:2018-04-26 20:17:12

标签: hyperledger-fabric hyperledger

当我尝试创建请求(提案)并使用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

1 个答案:

答案 0 :(得分:3)

来自rocketchat

, 解决这个问题添加到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