【问题标题】:net.corda.client.rpc.RPCException: Cannot connect to server(s). Tried with all available serversnet.corda.client.rpc.RPCException:无法连接到服务器。尝试了所有可用的服务器
【发布时间】:2020-05-15 06:05:43
【问题描述】:

操作系统:Windows 10 和 Ubuntu 18.04

Corda:4.4

我想学习 CordaRPCOps,所以我开始使用 template’s Cordform deployNodes 任务,它为我提供了三个运行节点。

首先我使用以下在本地运行的代码连接到 PartyA 的 Corda 节点。

NetworkHostAndPort nodeAddress = new NetworkHostAndPort("localhost", 10006);
CordaRPCClient client = new CordaRPCClient(nodeAddress);
CordaRPCConnection connection = client.start("user1", "test");
CordaRPCOps cordaRPCOps = connection.getProxy();

效果很好。

然后我尝试通过以下更改从同一网络上的另一台 PC 连接:

NetworkHostAndPort nodeAddress = new NetworkHostAndPort("192.168.1.149", 10006);

失败并出现以下错误:

net.corda.client.rpc.RPCException: Cannot connect to server(s). Tried with all available servers.

假设这是网络相关的,我回到本地 PC 并运行相同的代码:

NetworkHostAndPort nodeAddress = new NetworkHostAndPort("192.168.1.149", 10006);

这也失败了。所以我决定尝试使用 PC 名称而不是 IP 地址。这在本地和另一台 PC 上都失败了。

【问题讨论】:

    标签: corda


    【解决方案1】:

    如果node.conf文件中的rpcSettings使用“localhost”:

    rpcSettings {
        address="localhost:10006"
        adminAddress="localhost:10046"
    }
    

    ...除了“localhost”或“127.0.0.1”之外,您无法连接到节点

    NetworkHostAndPort nodeAddress = new NetworkHostAndPort("localhost", 10006);
    

    这也意味着您无法通过网络连接到节点。

    如果将“localhost”替换为 IP 地址或计算机名称:

    rpcSettings {
        address="192.168.1.149:10006"
        adminAddress="localhost:10046"
    }
    

    ...然后您可以通过本地 IP 或计算机名称引用节点,或者从网络上的另一台 PC 引用节点:

    NetworkHostAndPort nodeAddress = new NetworkHostAndPort("192.168.1.149", 10006);
    

    当它们启动并列出各自的信息时,您会注意到 Node Shell 的打开屏幕上的变化。

    --- Corda Open Source 4.4 (21e8c4f) -------------------------------------------------------------
    
    
    Logs can be found in                    : F:\corda\Java\cordapp-template-java\build\nodes\PartyA\logs
    ! ATTENTION: This node is running in development mode!  This is not safe for production deployment.
    Jolokia: Agent started with URL http://127.0.0.1:7006/jolokia/
    Advertised P2P messaging addresses      : localhost:10005
    RPC connection address                  : 192.168.1.149:10006
    RPC admin connection address            : localhost:10046
    

    【讨论】:

    • 注意:您可以(并且可能应该)只更改 build.gradle 文件中的 deployNodes 任务。然后您需要重新运行: ./gradlew deployNodes for linux gradlew.bat deployNodes for windows 这将自动更新 node.conf。
    • 注意:与其使用您的 IP 或计算机名称,不如在 build.gradle 文件的 deployNodes 任务中使用:address("0.0.0.0:10006")。
    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    相关资源
    最近更新 更多