0

According to BEP-05 , when you start a find_node or get_peers request, you will receive the query message or K (8) good nodes closest to the target/infohash.

However, in my case ,with the bootstrap node router.utorrent.com:6881, the remote returned the 8 nodes which closest to self's nodeId. And if it is a get_peers request, it always returned 8 nodes closest to self and 7 invalid peers. But if access to some special node which redirect to near the infohash, the protocol acts normal.

wireshark

weird wireshark dump

success wireshark dump

Any help would be appreciated!

the8472
  • 40,999
  • 5
  • 70
  • 122
J.Doe
  • 60
  • 1
  • 7

1 Answers1

1

You shouldn't pay too much attention to what the bootstrap nodes do as long as they allow you to populate your routing table, since that is their primary purpose.

They receive a disproportionate amount of traffic and to avoid directing undue amounts of traffic to any particular node they may deviate from the specification in a few ways that are harmless as long as only a vanishingly small fraction of the network behaves that way. There is only a single-digit number of bootstrap nodes among millions, so their behavior is negligible and should not be taken as a reference point.

It does not make sense to contact a bootstrap node via get peers either. find node queries would be the correct choice to populate your routing table. And it is only necessary to contact them in the relatively rare case where other mechanisms were not successful.

the8472
  • 40,999
  • 5
  • 70
  • 122
  • Sorry, my situation is: In the find_node / get_peers query, a lot of nodes returned nodes' infos closest to the query node which should be closest to the target node. The problem is not about the bootstrap nodes. You can check "weird wireshark dump". thanks. – J.Doe Feb 15 '19 at 11:55
  • Those might be malicious nodes trying to pollute your routing table. If you sort your candidate-set by distance to the target and pick closer ones then such contacts will end up far away from the target and thus should be disregarded during a lookup. Since RPCs are unauthenticated you can get a lot of questionable behavior and a lot of defensive logic will be needed. – the8472 Jun 06 '23 at 17:10