【发布时间】:2021-03-21 13:52:47
【问题描述】:
我目前正在做this tutorial。在同一台机器上它按预期工作:节点正在连接并正在创建和完成块。但现在我想通过互联网做同样的事情。所以我有一个开放端口 30333 的服务器(Ubuntu 16.04 xenial),我在上面运行这个命令:
./target/release/node-template \
--base-path /tmp/alice \
--chain ./customSpecRaw.json \
--alice \
--rpc-methods Unsafe \
--port 30333 \
--ws-port 9945 \
--rpc-port 9933 \
--node-key 0000000000000000000000000000000000000000000000000000000000000001 \
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' \
--validator \
--name Node01
而我的电脑(Manjaro 20.2.1 Nibia)没有运行此命令的开放端口:
./target/release/node-template
--base-path /tmp/bob
--chain ./customSpecRaw.json
--bob
--port 30334
--ws-port 9946
--rpc-port 9934
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 0'
--validator
--rpc-methods Unsafe
--name Node02
--bootnodes /ip4/<SERVER IP>/tcp/30333/p2p/<BOOTNODE P2P ID>
在终端中,我看到两个节点上的网络流量,因此网络应该不是问题。但是两个节点上都有 0 个对等点,并且没有创建/最终确定的块。但是我在 bootnodes 终端上重复打印了两个错误:
拨号时出错 /dns/telemetry.polkadot.io/tcp/443/x-parity-wss/%2Fsubmit%2F: Custom { kind: Other, error: Timeout }
和
解析 mdns 数据包失败:LabelIsNotAscii
在我尝试从我的 PC 连接到引导节点之前,这两个错误都已输出。
两个节点都使用相同的代码编译,并使用服务器上生成的相同自定义链规范文件。
所以我的问题是:
- 错误/警告是什么意思?
- 如何修复它们以获得预期结果?
- 如果错误/警告没有引起问题,还有什么可能?
【问题讨论】:
-
所以在我设置以下所有答案之前,您需要使用
--unsafe-rpc-external来实现 RPC 功能,并使用--unsafe-ws-external来向非本地调用者公开 ws 功能。更多信息:github.com/paritytech/substrate/wiki/Public-RPC -
对于mDNS 问题,请尝试
--no-mdns禁用它,因为它是本地 节点发现彼此的,而不是你如何找到远程节点。跨度> -
对于遥测,我怀疑上面的 ws 标志应该可以解决这个问题,但这可能是防火墙问题或其他一些网络配置错误 - 如果它仍然存在,请告诉我 :)
-
您好@NukeManDan 感谢您的帮助。当我使用 --no-mds 标志时,“解析 mdns 数据包失败:LabelIsNotAscii”错误消失了。但不幸的是,问题并没有消失:我看到了同样的行为。 --unsafe-rpc-external 和 --unsafe-ws-external 标志似乎没有改变任何东西。
标签: substrate