Hyperledger orderer <-> 对等连接在 MS Azure 上一段时间后中断
Hyperledger orderer <-> peer connection breaks after a while on MS Azure
我在云中有 2 台不同的机器。
第一台机器上的容器:
orderer.mydomain.com
peer0.org1.mydomain.com
db.peer0.org1.mydomain.com
ca.org1.mydomain.com
第二台机器上的容器:
peer0.org2.mydomain.com
db.peer0.org2.mydomain.com
ca.org2.mydomain.com
我都开始了。我可以让他们都加入同一个频道。我将从 hyperledger composer 导出的 BNA 部署到两个对等方。我将交易发送到 peer0.org1.mydomain.com 并查询并从 peer0.org2.mydomain.com.
获得相同的结果
到目前为止一切正常。
然而,5 到 10 分钟后,第二台机器 (peer0.org2) 上的对等点与订购者断开连接。当我将事务发送到 org1 时,我可以从 org1 查询它们并看到结果。但是 org2 被分离了。不接受新交易。 (订购者连接消失)我可以查询 org2 并查看旧结果。
我将 CORE_CHAINCODE_KEEPALIVE=30 添加到我的对等环境变量中。我在 org2 peers 日志中看到了 keep alive 操作。但是没有解决我的问题。
我应该注意:容器位于名为 "basic" 的 docker 网络中。该网络用于我的本地计算机。但是它仍然可以在云端工作。
在订购者日志中:
Error sending to stream: rpc error: code = Internal desc = transport is closing
我每次尝试都会出现这种情况。但是当我 运行 这些容器在我的本地机器上时,它们保持连接没有问题。
EDIT1:检查日志后:peer0.org2 收到所有 tx 并将它们发送给订购者。 Orderer 接收来自 peer 的请求,但不能更新 peers。我可以连接到有问题的对等点上的 requestUrl 或 eventUrl。没有网络问题。
我想我发现了问题。它是关于 MS Azure 网络的。 4 分钟后,azure 切断了空闲连接:
编辑 1:
是的,问题出在 MS Azure 上。如果有人试图在 Azure 上 运行 hyperledger,请记住,如果 peer 保持空闲超过 4 分钟,则 azure 会超时 tcp 连接。您可以将其配置为 30 分钟后超时。这不是一个错误,但我们无法理解为什么它在 4 分钟后无法正常工作,这让我们很恼火。
因此您可以使用自己的服务器或其他云解决方案,或者通过适应他们的规则来使用 azure。
我在云中有 2 台不同的机器。
第一台机器上的容器:
orderer.mydomain.com
peer0.org1.mydomain.com
db.peer0.org1.mydomain.com
ca.org1.mydomain.com
第二台机器上的容器:
peer0.org2.mydomain.com
db.peer0.org2.mydomain.com
ca.org2.mydomain.com
我都开始了。我可以让他们都加入同一个频道。我将从 hyperledger composer 导出的 BNA 部署到两个对等方。我将交易发送到 peer0.org1.mydomain.com 并查询并从 peer0.org2.mydomain.com.
获得相同的结果到目前为止一切正常。
然而,5 到 10 分钟后,第二台机器 (peer0.org2) 上的对等点与订购者断开连接。当我将事务发送到 org1 时,我可以从 org1 查询它们并看到结果。但是 org2 被分离了。不接受新交易。 (订购者连接消失)我可以查询 org2 并查看旧结果。
我将 CORE_CHAINCODE_KEEPALIVE=30 添加到我的对等环境变量中。我在 org2 peers 日志中看到了 keep alive 操作。但是没有解决我的问题。
我应该注意:容器位于名为 "basic" 的 docker 网络中。该网络用于我的本地计算机。但是它仍然可以在云端工作。
在订购者日志中:
Error sending to stream: rpc error: code = Internal desc = transport is closing
我每次尝试都会出现这种情况。但是当我 运行 这些容器在我的本地机器上时,它们保持连接没有问题。
EDIT1:检查日志后:peer0.org2 收到所有 tx 并将它们发送给订购者。 Orderer 接收来自 peer 的请求,但不能更新 peers。我可以连接到有问题的对等点上的 requestUrl 或 eventUrl。没有网络问题。
我想我发现了问题。它是关于 MS Azure 网络的。 4 分钟后,azure 切断了空闲连接:
编辑 1:
是的,问题出在 MS Azure 上。如果有人试图在 Azure 上 运行 hyperledger,请记住,如果 peer 保持空闲超过 4 分钟,则 azure 会超时 tcp 连接。您可以将其配置为 30 分钟后超时。这不是一个错误,但我们无法理解为什么它在 4 分钟后无法正常工作,这让我们很恼火。
因此您可以使用自己的服务器或其他云解决方案,或者通过适应他们的规则来使用 azure。