微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

注册管理员失败,错误:%o message=调用注册端点失败,连接超时

如何解决注册管理员失败,错误:%o message=调用注册端点失败,连接超时

我在 kubernetes 上运行我的结构网络,并且为所有组织设置了 ca 服务器。我可以从 cli 注册注册用户,但是当我使用带有 nodejsfabric-ca-client 库来注册注册用户时。我正面临 CONNECTION 超时问题,同时如果我查看我的 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 application logs

ca server logs

解决方法

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

{
    "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,"connection-timeout": 30000
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。