首页 > 解决方案 > 管理员注册失败,错误:%o 消息=调用注册端点失败,连接超时

问题描述

我在 kubernetes 上运行我的结构网络,并且为所有组织设置了 ca 服务器。我可以从 cli 注册和注册用户,但是当我使用带有nodejs的fabric-ca-client库来注册和注册用户时。我正面临 CONNECTION Timeout 问题,同时如果我查看我的 ca-server 的日志,它显示能够处理请求。Edit1:我正在使用 fabric-sample 中提供的相同代码来注册和注册用户。

所有的 pod 都在 Kubernetes 中使用这些服务相互通信

这就是我的连接配置文件的样子

"certificateAuthorities": {
    "ca-org2": {
        "url": "https://ca-org2:8054",
        "caName": "ca-org2",
        "tlsCACerts": {
            "pem": ["-----BEGIN CERTIFICATE-----\nMIICBjCCAa2gAwIBAgIUHwBYatG6KhezYWHxdGgYGqs77PIwCgYIKoZIzj0EAwIw\nYDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy\nc2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEQMA4GA1UEAxMHY2Etb3Jn\nMjAeFw0yMTAzMjAxMDI4MDBaFw0zNjAzMTYxMDI4MDBaMGAxCzAJBgNVBAYTAlVL\nMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNsZXkxGTAXBgNVBAoT\nEG9yZzIuZXhhbXBsZS5jb20xEDAOBgNVBAMTB2NhLW9yZzIwWTATBgcqhkjOPQIB\nBggqhkjOPQMBBwNCAAQUIABkRhfPdwoy2QrCY3oh8ZuzP5OprZJawVXO2ojid3j4\nC9W4l46QXR5J7iG5MLczguPZWB9dZWygRQdUQeoAo0UwQzAOBgNVHQ8BAf8EBAMC\nAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNVHQ4EFgQURx/h3nkH0fq+3TlRPnQW\nWTHbR7YwCgYIKoZIzj0EAwIDRwAwRAIgCF+vcLFERb+VHa6Att0rh5yhpMd0bHEn\nmkNo0YfKuX4CICodtpp6AKtNWXreskaN+kRMH8eDmwvxkhvTK68ejv8U\n-----END CERTIFICATE-----\n"]
        },
        "httpOptions": {
            "verify": false
        }
    }
}

nodejs应用程序日志

ca 服务器日志

标签: kuberneteshyperledger-fabrichyperledger-fabric-ca

解决方案


我找到了解决这个问题的方法。该问题与连接超时有关,我的 CA 服务器正在接收请求并能够处理它们,但由于超时时间短,请求被取消。解决方案是增加connection timeoutrequest-timeout。超时的默认值为 3 秒,我将其增加到 30 秒并开始工作。默认配置可以在这里找到

{
    "request-timeout" : 3000,
    "tcert-batch-size" : 10,
    "crypto-hash-algo": "SHA2",
    "crypto-keysize": 256,
    "crypto-hsm": false,
    "connection-timeout": 3000
}

我们可以从 fabric-ca-client 库的源代码中更新超时值,也可以fabric-common像这样简单地使用库的方法来更新这些配置值。

const { Utils: utils } = require('fabric-common');
const path=require('path');
let config=utils.getConfig()
config.file(path.resolve(__dirname,'config.json'))

这是我们修改后的配置文件config.json

  {
  "request-timeout" : 30000,
  "tcert-batch-size" : 10,
  "crypto-hash-algo": "SHA2",
  "crypto-keysize": 256,
  "crypto-hsm": false,
  "connection-timeout": 30000
  }

推荐阅读