# Perfect Dark (P2P)

Perfect Dark (パーフェクトダーク) est un logiciel japonais destiné au partage de fichiers en pair à pair anonyme. Perfect Dark a été développé avec l'intention d'être le successeur de Winny et de Share.
En plus de permettre le partage de fichiers en pair à pair, il permet de aussi de façon anonyme d'utiliser des forums (message boards), et dispose d'une fonction gadget de défilement de flux de courts textes.
Son auteur est connu sous le pseudonyme Kaichō (会長), il est anonyme et très probablement japonais.
Alors que l'association japonaise pour le droit d'auteur de logiciels de logiciels a signalé qu'en janvier 2014, le nombre de nœuds connectés sur Perfect Dark (24000) était inférieur à celui de Share (44000), mais plus que sur Winny (12000), Netagent en 2018 Winny rapporté étant le plus grand avec 50 000 nœuds suivis de Perfect Dark avec 30 000 nœuds suivis par Share avec 10 000. Netagent affirme que le nombre de nœuds sur Perfect Dark est tombé depuis 2015, tandis que le nombre de Winny était stable. Netagent rapporte que les utilisateurs de Perfect Dark sont les plus susceptibles de partager des livres / manga.

## Aperçu
### DKT+DHT+DU

Ces trois parties composent le réseau entier :
* "DKT" signifie "Distributed Keyword Table" (table de mots-clés distribuée, c'est-à-dire une table de hachage distribuée dédiée aux mots clés)
* "DHT" pour Distributed Hash Table (table de hachage distribuée)
* "DU" pour "distributed Unity" (Unity est le nom du réseau de Perfect Dark).
"DKT" est utilisée principalement pour permettre la recherche effective de fichier tandis que "DHT" et "DU" sont utilisés pour le partage effectif de fichiers et l'amélioration de l'anonymat.
Le logiciel utilise une variante du ECC pour chiffrer les données transitant entre les usagers.

### Bande passante requise

Perfect Dark a de plus hautes exigences en bande passante et espace de stockage que ses prédécesseurs Winny et Share. La vitesse de téléversement minimum est de 100 Kio/s.

### Espace disque requis

Le logiciel impose de partager au minimum 40 Go d'espace disque dur, pour le besoin de son dossier cache "Unity" (une énorme table de hachage distribuée utilisée comme système de fichiers distribué).

### Système de fichiers

Perfect Dark requiert le système de fichiers NTFS et pas FAT32, parce que FAT32 est limité à une taille de fichier de 4 GO, alors que Perfect Dark peut télécharger des fichiers ayant une taille jusqu'à 32 GO.

### Listes de nœuds (node list)

Unity n'étant basé sur aucun serveur central, si un nouveau client Perfect Dark souhaite s'y connecter, il doit connaitre l'adresse d'un autre pair (nœud) (en anglais : node) pour pouvoir s'y connecter (par copier/coller de l'adresse), afin ensuite de télécharger automatiquement à partir de ce premier pair une liste d'autres pairs. C'est pourquoi il existe quelques sites web qui publient des listes de nœuds (en anglais : "nodes lists") Perfect Dark.

## Fonctionnalités
### Recherche de fichier sous forme arborescente

Le concept de "tree search" (recherche en arbre, comprendre : recherche sous forme d'arborescence) apporte une forte fonctionnalité de recherche. De plus, l'usage flexible des opérateurs Booléens (ET, OU, et NI) aide l'utilisateur à filtrer les résultats indésirables.

### Flux de texte

Perfect Dark inclut une caractéristique originale nommée "text flow" (flux de texte) : une fenêtre dans laquelle des lignes de texte écrites des utilisateurs se déroulent. Chaque utilisateur peut écrire un (seul) court message (quelques lignes et colonnes) et il sera affiché aux autres pairs utilisant la fonction "text flow".

### Mise à jour automatique

Le logiciel Perfect Dark se met à jour automatiquement via son propre réseau (depuis la version 1.02 sortie en 2008 sous le nom de code "Stand Alone Complex" et suivantes).

### Forums

Perfect dark inclut une fonction rudimentaire de forums anonymes. Ces forums sont distribués à travers le réseau Unity. Pour obtenir des forums, ils doivent être cherchés avec la fonction de recherche de fichiers, avec (par exemple) le mot clé japonais : ボード ("board").