The three nodes A, B, and R are in different networks, and the external network of nodes A and B cannot be directly accessed. Node R can be accessed directly. RelayService is enabled on node R, and the bootstrap of nodes A and B are set to the address of node R. Both nodes A and B can connect to R normally, but node A and node B cannot discover each other.
Running “ipfs id” on node R results:
{
"ID": "12D3Ko..........R",
"PublicKey": "CAESIKh...........",
"Addresses": [
"/ip4/10.0.0.72/tcp/4001/p2p/12D3Ko..........R",
"/ip4/127.0.0.1/tcp/4001/p2p/12D3Ko..........R",
"/ip4/*.*.*.*/tcp/4001/p2p/12D3Ko..........R",
"/ip4/*.*.*.*/tcp/44435/p2p/12D3Ko..........R",
"/ip6/::1/tcp/4001/p2p/12D3Ko..........R"
],
"AgentVersion": "kubo/0.14.0/",
"ProtocolVersion": "ipfs/0.1.0",
"Protocols": [
"/floodsub/1.0.0",
"/ipfs/bitswap",
"/ipfs/bitswap/1.0.0",
"/ipfs/bitswap/1.1.0",
"/ipfs/bitswap/1.2.0",
"/ipfs/id/1.0.0",
"/ipfs/id/push/1.0.0",
"/ipfs/kad/1.0.0",
"/ipfs/lan/kad/1.0.0",
"/ipfs/ping/1.0.0",
"/libp2p/autonat/1.0.0",
"/libp2p/circuit/relay/0.1.0",
"/libp2p/circuit/relay/0.2.0/hop",
"/libp2p/circuit/relay/0.2.0/stop",
"/libp2p/fetch/0.0.1",
"/meshsub/1.0.0",
"/meshsub/1.1.0",
"/p2p/id/delta/1.0.0",
"/x/"
]
}
Running “ipfs id” on node A results:
{
"ID": "12D3Ko..........A",
"PublicKey": "CAESIByiv3K............",
"Addresses": [
"/ip4/127.0.0.1/tcp/4001/p2p/12D3Ko..........A",
"/ip4/*.*.*.*/tcp/4001/p2p/12D3Ko..........R/p2p-circuit/p2p/12D3Ko..........A",
"/ip4/*.*.*.*/udp/4001/p2p/12D3Ko..........R/p2p-circuit/p2p/12D3Ko..........A",
"/ip6/::1/tcp/4001/p2p/12D3Ko..........A"
],
"AgentVersion": "kubo/0.14.0/",
"ProtocolVersion": "ipfs/0.1.0",
"Protocols": [
"/floodsub/1.0.0",
"/ipfs/bitswap",
"/ipfs/bitswap/1.0.0",
"/ipfs/bitswap/1.1.0",
"/ipfs/bitswap/1.2.0",
"/ipfs/id/1.0.0",
"/ipfs/id/push/1.0.0",
"/ipfs/lan/kad/1.0.0",
"/ipfs/ping/1.0.0",
"/libp2p/autonat/1.0.0",
"/libp2p/circuit/relay/0.1.0",
"/libp2p/circuit/relay/0.2.0/stop",
"/libp2p/fetch/0.0.1",
"/meshsub/1.0.0",
"/meshsub/1.1.0",
"/p2p/id/delta/1.0.0",
"/x/"
]
}
Running “ipfs id” on node B results:
{
"ID": "QmXmM3c..........B",
"PublicKey": "CAASpgIwggEi............",
"Addresses":
[
"/ip4/10.104.87.104/tcp/42611/p2p/QmXmM3c..........B",
"/ip4/127.0.0.1/tcp/42611/p2p/QmXmM3c..........B",
"/ip6/::1/tcp/40399/p2p/QmXmM3c..........B"
],
"AgentVersion": "go-ipfs/0.12.2/",
"ProtocolVersion": "ipfs/0.1.0",
"Protocols":
[
"/floodsub/1.0.0",
"/ipfs/bitswap",
"/ipfs/bitswap/1.0.0",
"/ipfs/bitswap/1.1.0",
"/ipfs/bitswap/1.2.0",
"/ipfs/id/1.0.0",
"/ipfs/id/push/1.0.0",
"/ipfs/lan/kad/1.0.0",
"/ipfs/ping/1.0.0",
"/libp2p/autonat/1.0.0",
"/libp2p/circuit/relay/0.1.0",
"/libp2p/circuit/relay/0.2.0/stop",
"/libp2p/fetch/0.0.1",
"/meshsub/1.0.0",
"/meshsub/1.1.0",
"/p2p/id/delta/1.0.0",
"/x/"
]
}
Do ‘ipfs ping A’ on B:
{
"Success": false,
"Time": 0,
"Text": "Ping error: failed to dial 12D3Ko..........A:
* [/ip4/127.0.0.1/tcp/4001] dial tcp4 127.0.0.1:4001: connect: connection refused
* [/ip6/::1/tcp/4001] dial tcp6 [::1]:4001: connect: connection refused
* [/ip4/*.*.*.*/tcp/44435/p2p/12D3Ko..........R/p2p-circuit] error opening relay circuit: NO_RESERVATION (204)
* [/ip4/*.*.*.*/udp/4001/p2p/12D3Ko..........R/p2p-circuit] concurrent active dial through the same relay failed with a protocol error
* [/ip4/*.*.*.*/tcp/4001/p2p/12D3Ko..........R/p2p-circuit] concurrent active dial through the same relay failed with a protocol error"
}
Is it because of the IPFS version problem on B?How can I solve this problem?