Ibm cloud IBM BLUEMIX区块链SDK-DEMO失败

Ibm cloud IBM BLUEMIX区块链SDK-DEMO失败,ibm-cloud,blockchain,Ibm Cloud,Blockchain,我一直在为Node.js使用HFCSDK,它过去也能工作,但从昨晚开始,我遇到了一些问题 当运行helloblockchain.js时,只有几次有效,大多数情况下,当它尝试注册新用户时,我会出现此错误: E0113 11:56:05.983919636 5288 handshake.c:128] Security handshake failed: {"created":"@1484304965.983872199","

我一直在为Node.js使用HFCSDK,它过去也能工作,但从昨晚开始,我遇到了一些问题

当运行helloblockchain.js时,只有几次有效,大多数情况下,当它尝试注册新用户时,我会出现此错误:

E0113 11:56:05.983919636    5288 handshake.c:128]            Security handshake failed: {"created":"@1484304965.983872199","description":"Handshake read failed","file":"../src/core/lib/security/transport/handshake.c","file_line":237,"referenced_errors":[{"created":"@1484304965.983866102","description":"FD shutdown","file":"../src/core/lib/iomgr/ev_epoll_linux.c","file_line":948}]}

Error:  Failed to register and enroll JohnDoe: Error
其他情况下,注册工作正常,部署链码时出现故障:

Enrolled and registered JohnDoe successfully

Deploying chaincode ...
E0113 12:14:27.341527043    5455 handshake.c:128]            Security handshake failed: {"created":"@1484306067.341430168","description":"Handshake read failed","file":"../src/core/lib/security/transport/handshake.c","file_line":237,"referenced_errors":[{"created":"@1484306067.341421859","description":"FD shutdown","file":"../src/core/lib/iomgr/ev_epoll_linux.c","file_line":948}]}

Failed to deploy chaincode: request={"fcn":"init","args":["a","100","b","200"],"chaincodePath":"chaincode","certificatePath":"/certs/peer/cert.pem"}, error={"error":{"code":14,"metadata":{"_internal_repr":{}}},"msg":"Error"}
或:

这个代码昨天起作用了,所以我不知道会发生什么

有人知道我怎么修吗

谢谢, 哈维尔

ibm bluemix
区块链这些类型的间歇性问题通常与GRPC相关。初步建议是确保您至少使用GRPC版本1.0.0

如果您使用的是Mac,则应检查打开的文件描述符的最大数量(使用
ulimit-n
)。有时,该值最初设置为较低的值,如256,因此增加该值可能会有所帮助

有两个GRPC问题具有类似症状

其中一些问题中提到了一个
grpc.initial\u reconnect\u backoff\u ms
属性。将该值增加到1000毫秒以上可能有助于减少问题的发生频率。下面是如何修改helloblockchain.js文件以将此属性设置为更高值的说明

  • 在Hyperledger结构客户端示例中打开helloblockchain.js文件,并找到
    enrollAndRegisterUsers
    函数
  • 添加
    “grpc.initial\u reconnect\u backoff\u ms”:5000
    setMemberServicesUrl
    调用

    chain.setMemberServicesUrl(ca_url, {
            pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });
    
    chain.addPeer("grpcs://" + peers[i].discovery_host + ":" + peers[i].discovery_port, 
    {pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });       
    
  • 添加
    “grpc.initial\u reconnect\u backoff\u ms”:5000
    addPeer
    调用

    chain.setMemberServicesUrl(ca_url, {
            pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });
    
    chain.addPeer("grpcs://" + peers[i].discovery_host + ":" + peers[i].discovery_port, 
    {pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });       
    
  • 请注意,设置
    grpc.initial\u reconnect\u backoff\u ms
    属性可能会降低问题的频率,但不一定会消除所有问题


    与helloblockchain.js文件中的eventhub的连接也可能是一个因素。Hyperledger结构客户端的早期版本没有使用eventhub。可以尝试此早期版本来确定这是否会产生影响。运行
    git clone后https://github.com/IBM-Blockchain/SDK-Demo、 git
    ,运行
    git checkout b7d5195
    以使用此先前级别。在从node.js命令窗口运行
    节点helloblockchain.js
    之前,可以使用
    git status
    命令检查正在使用的代码级别。

    这些类型的间歇性问题通常与GRPC相关。初步建议如下:确保您使用的GRPC版本至少为1.0.0

    如果您使用的是Mac,则应检查打开的文件描述符的最大数量(使用
    ulimit-n
    )。有时,最初将其设置为较低的值,如256,因此增加该值可能会有所帮助

    有两个GRPC问题具有类似症状

    其中一些问题中提到了一个
    grpc.initial\u reconnect\u backoff\u ms
    属性。将值增加到1000 ms以上可能有助于减少问题的发生频率。以下是如何修改helloblockchain.js文件以将此属性设置为更高值的说明

  • 在Hyperledger结构客户端示例中打开helloblockchain.js文件,并找到
    enrollAndRegisterUsers
    函数
  • 添加
    “grpc.initial\u reconnect\u backoff\u ms”:5000
    setMemberServicesUrl
    调用

    chain.setMemberServicesUrl(ca_url, {
            pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });
    
    chain.addPeer("grpcs://" + peers[i].discovery_host + ":" + peers[i].discovery_port, 
    {pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });       
    
  • 添加
    “grpc.initial\u reconnect\u backoff\u ms”:5000
    addPeer
    调用

    chain.setMemberServicesUrl(ca_url, {
            pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });
    
    chain.addPeer("grpcs://" + peers[i].discovery_host + ":" + peers[i].discovery_port, 
    {pem: cert, "grpc.initial_reconnect_backoff_ms": 5000
    });       
    
  • 请注意,设置
    grpc.initial\u reconnect\u backoff\u ms
    属性可能会降低问题的频率,但不一定会消除所有问题

    与helloblockchain.js文件中的eventhub的连接也可能是一个因素。Hyperledger结构客户端的早期版本没有使用eventhub。可以尝试此早期版本来确定这是否会产生影响。运行
    git clone后https://github.com/IBM-Blockchain/SDK-Demo、 git
    ,运行
    git checkout b7d5195
    以使用此先前级别。在从node.js命令窗口运行
    节点helloblockshain.js
    之前,可以使用
    git status
    命令检查正在使用的代码级别