mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
22 lines
1.5 KiB
Plaintext
22 lines
1.5 KiB
Plaintext
Hardening request packets are sent as crypto request packets (see crypto docs.)
|
|
NOTE: currently only get nodes requests are tested in the code which is why there is only one test (more will be added soon.)
|
|
|
|
All hardening requests must contain exactly 768 bytes of data. (The data sent must be padded with zeros if it is smaller than that.)
|
|
|
|
1. Get the information (IP_port, client_id) of the node we want to test.
|
|
2. Find a couple random nodes that is not that node (one for each test.)
|
|
3. Send crypto request packets to each of these random nodes with the data being:
|
|
|
|
[byte with value: 02 (get nodes test request)][struct Node_format (the node to test.)][client_id(32 bytes) the id to query the node with.][padding]
|
|
|
|
4. The random node receives a packet.
|
|
-The packet is a get nodes test request:
|
|
send a get_node request to that node with the id to query in the request.
|
|
when a send_node response is received, send the following response to the person who sent us the get nodes test request packet:
|
|
[byte with value: 03 (get nodes test response)][client_id(32 bytes): the id of the tested node][The list of nodes it responded with in IPv6 Node format (struct Node_Format)]
|
|
PROTIP: (get node requests and response contain an encrypted part that you can use to store information so that you don't
|
|
have to store in your memory where/if to send back the response from the send node)
|
|
|
|
5. Receive the test responses.
|
|
-If the test(s) pass (the nodes behave in a satisfactory manner), make these nodes have priority over those who don't pass the test(s).
|