# Todo ## peer discovery - get rsquest to the uri /peers/ ## registration with the server - generation of the cryptographic key OK - put request to the uri (check if the peer is already connected) OK - udp handshakes OK - get request to the uri /peers/key to get the public key of a peer OK - get request to the uri /peers/key/addresses OK ## handshake - handshake structure OK - 5min timeout after handshake - matain connection every 4 min ## data transfer - request structure - root/root reply structure - datum/nodatum and datum structures - nattraversal 1 and 2 structures - setting in gui to act as a relay - chunk, directory, big, bigdirectory structures ## nat traversal - make hello and helloreply messages set the first extension bit to announce that peer is available for nat traversal - implement actual nat traversal requests - implement nat traversal : - if hello/helloreply doesnt work with a peer, find a peer that supports nat traversal (server in priority) then begin protocol fonctionnalités : s'enregistrer avec le serveur OK rechercher un pair generer une clé publique OK rechercher les fichiers d'un pair telechargement des fichiers choisir un dossier à partager se deconnecter du réseau 2 channels -> un pour envoyer et un pour recevoir OK