IPFS онлайн-узел без IP-адреса - PullRequest
0 голосов
/ 12 сентября 2018

Во время разработки обозревателя узлов IPFS в поле Addresses мы обнаружили несколько необычных сетевых узлов без действительного IP-адреса. Например: QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV

Получить информацию об узле с помощью команды ipfs id .

Запрос:

root@tux:~# ipfs id QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV

Ответ:

{
"ID": "QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV",
"PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFhgftYoqapg+Y7wlWq67HA4O2c37jelJxUJqai0DyZMEeyQBzw4+Jc0VxPuXJNovb3SRIz9XCq3tyibbBs2JcZkHF+i9t8WERJth7c3rnLsEddPHAagW9nnBd+XxT4l9guZZtYOQ/YFZBTicZEdyKdc4fithz4QaweZqj/sa5lWYuaTTEA9y4Zikhh2NkM6gs0Suhamtym2boBrFaIJMfS7I1GLJecg1ap/fGTBsdmncQ4cEKnxpUAtGzLcsqukr9qkTYKeXP5imGvrm077A1mXwbPTKP1st5zmtZduRayIfOWvWtwhrfm1CrTpUzhu+XZsAn5sTO/Dk2QWnTiuNzAgMBAAE=",
"Addresses": [
    "/ip6/::1/tcp/4001"
],
"AgentVersion": "go-ipfs/0.4.17/",
"ProtocolVersion": "ipfs/0.1.0"
}

Получен только адрес обратной связи IPv6, но нет общедоступного.

Теперь пропингуйте узел, используя ipfs ping :

Запрос:

root@tux:~# ipfs ping -n 4 QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV

Ответ:

PING QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV.
Pong received: time=8.28 ms
Pong received: time=5.98 ms
Pong received: time=6.27 ms
Pong received: time=6.20 ms
Average latency: 6.68ms

Как это может быть без IP-адреса? Как получить IP-адреса таких узлов?

1 Ответ

0 голосов
/ 13 сентября 2018

Вместо того, чтобы делать ipfs id <PeerID>, вы можете спросить DHT о том, как он видит пира, выполнив ipfs dht findpeer <PeerID>.В случае QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV я вижу следующее:

$ ipfs dht findpeer QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV

/ip4/192.168.10.11/tcp/4001
/ip4/127.0.0.1/tcp/4001
/ip6/::1/tcp/4001
/ip4/83.162.192.96/tcp/31885
/ip4/83.162.192.96/tcp/16803

Если есть случай, когда вы хотите увидеть, как вы подключены к пиру, вы можете использовать ipfs swarm peers(одноранговый, к которому вы сейчас подключены) вместе с grep (фильтрация вывода)

$ ipfs swarm peers | grep QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV

/ipfs/QmZSe5GZJb5jcKQZzQmdWaFtimTHafjvtxyMMTJy5nZ6hN/p2p-circuit/ipfs/QmRBRUCPY8saqzsLRyHexza3qUL8Wn9Zt59TcLMNnXF6zV
...