Estoy ejecutando mi red fabric en kubernetes y he configurado servidores ca para todas las organizaciones. Puedo registrar e inscribir al usuario desde la CLI, pero cuando uso la biblioteca fabric-ca-client con nodejs para registrar e inscribir a los usuarios. Me enfrento al problema de tiempo de espera de CONEXIÓN, también al mismo tiempo, si miro los registros de mi servidor CA, se muestra que puede procesar la solicitud. Edit1: estoy usando el mismo código provisto en fabric-sample para registrar e inscribir a los usuarios.
Todos los pods se comunican entre sí mediante estos servicios en kubernetes
así es como se ve mi perfil de conexión
"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 } } }Encontré la solución a este problema. El problema estaba relacionado con el tiempo de espera de la conexión, mi servidor CA estaba recibiendo las solicitudes y también podía procesarlas, pero debido al breve tiempo de espera, la solicitud se canceló. La solución fue aumentar el tiempo de espera de la connection timeout y el tiempo request-timeout . El valor predeterminado de los tiempos de espera es 3 segundos y lo aumenté a 30 segundos y comenzó a funcionar. La configuración predeterminada se puede encontrar aquí
{ "request-timeout" : 3000, "tcert-batch-size" : 10, "crypto-hash-algo": "SHA2", "crypto-keysize": 256, "crypto-hsm": false, "connection-timeout": 3000 } podemos actualizar los valores de tiempo de espera del código fuente de la biblioteca fabric-ca-client o simplemente podemos usar los métodos de la biblioteca fabric-common para actualizar estos valores de configuración de esta manera.
const { Utils: utils } = require('fabric-common'); const path=require('path'); let config=utils.getConfig() config.file(path.resolve(__dirname,'config.json')) Y aquí está nuestro archivo de configuración modificado config.json
{ "request-timeout" : 30000, "tcert-batch-size" : 10, "crypto-hash-algo": "SHA2", "crypto-keysize": 256, "crypto-hsm": false, "connection-timeout": 30000 }