From 0c9d65ff1775774706b8d55f117c7db642e211df Mon Sep 17 00:00:00 2001 From: "ivan.rigo" <ivan.rigo@etu.hesge.ch> Date: Thu, 1 Dec 2022 14:28:21 +0100 Subject: [PATCH] Final --- README.md | 88 ++++++++++++++++++++++++- schemaNode.png | Bin 0 -> 76216 bytes web-service-gin/Gnutella.go | 126 +++++++++++++++--------------------- 3 files changed, 137 insertions(+), 77 deletions(-) create mode 100644 schemaNode.png diff --git a/README.md b/README.md index cabf8f2..6268ec1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,87 @@ -# SysDistribueTPGnutella +# Rapport +Ce travail a été réalisé par Ivan Rigo dans le cadre du cours de système distribué de l'année 2022-23 -Faire un programme en GO appliquant Gnutella utilisant REST +Le but de ce travail était d'implémenter un des algorithmes vue en cours parmis une liste. Il fallait réalise l'implémentation +avec soit go ou python, et utilise REST ou les sockets pour assurer la communication entre les noeuds. Dans notre cas,la consigne +était d'implémenter Gnutella en GO, en communiquant avec un REST que nous avons mis en place. -Chaque noeud aura un directory qu'il lira au début du programme +## Information +### Ressource +Dans le programme, ils correspond au nom des fichiers contenue dans un directory propre au noeud qu'il lira lors de l'exécution, voici l'arborescence des entrepôts dans le projet +- Storage1/ + - Garbage.py +- Storage2/ + - Can.txt + - Garbage.py +- Storage3/ + - Ham.tyt + - Important.txt +- Storage4/ + - Can.txt + - Ham.txt + - Test.html +- Storage5/ + - Garbage.py + - Test.html +- Storage6/ + - Can.txt + - Important.txt +- Storage7/ + - Ham.txt + - Important.txt + +### Transmitter +Pour chaque noeud, il correspond au premier noeud l'ayant contacté. Le noeud ayant été appelé par initReq aura -1 comme transmitter +### NodePort +Nodeport correspond à 8080 + idNoeud, donc pour envoyé une requête au premier noeud, il faudra mettre 8081 +### Network +Le travail réutilise la structure du slide 104 du cours, voir schemadeNode.png pour plus de clarification sur quel node possède quel id + +## Route + +### Côtée client +#### Initialise la recherche (GET) +http://localhost:NodePort/initReq/ttl/ressource +Active un noeud pour démarré la recherche d'une ressource +##### ttl +Représente le nombre de saut que la requête effectuera avant que les noeud arrête de la propager +##### ressource +Représente la ressource cherché, dans notre programme,c'est le nom d'un fichier +Ci-dessous une liste représentant les fichiers et leurs + +##### Retour +La requête n'affichera rien sur le terminal l'ayant envoyé, cependant, le noeud ayant reçu cet appel va affiché +s'il possède la ressource sur son terminal. Il envoit ensuite une requête req contenant le ttl,la ressource et l'id du message + +### Côté noeud +Ces fonctions sont utilisé entre les noeuds et ne doivent pas être appelé par l'user +#### Envoyé la recherche au voisins (GET) +http://localhost:NodePort/req/transmitter/ttl/msgid/ressource + +##### transmiter +Correspond à l'id du noeud ayant envoyé la requête +##### ttl +Correspond au Time To Live, il est décremente avant de l'envoyé aux voisins autre que transmitter +##### msgId +Correspond à l'id de la recherche. Elle change à chaque fois que la route initReq est appelé +##### ressource +Représente la ressource cherché +##### Retour +Renvoie OK si tout se passe bien. La requête n'est traité qu'une fois et tout appel successive avec le même msgID renvoie OK sans exécuter le reste de la requête. Vérifie lors de la première requête s'il possède la ressource et l'envoie à son transmitter. Broadcast ensuite la requête avec un TTL décrémenté à ses voisins ormis transmitter + +#### Découverte de la ressource (GET) +http://localhost:NodePort/foundReq/:finder/:ressource + +##### finder +Correspond à l'id du noeud ayant l'objet dans son entrepôt + +##### ressource +Représente la ressource cherché + +#### Retour +Renvoie cette requête à son transmitter si le noeud actuel n'est pas le noeud ayant été appelé par initReq, sinon, affiche dans le terminal l'id du noeud possèdant la ressource + +## Tester le programme +Pour tester le programme, démarré chaque noeud avec un terminal ouvert dans le dossier web-service-gin. +Pour chaque noeud, exécuté la commande : go run Gnutella.go neighbour-x.yaml, x étant l'id du noeud (entre 1 à 7) +Ouvrir un autre terminal et appelé la requête initReq ( http://localhost:NodePort/initReq/ttl/ressource) \ No newline at end of file diff --git a/schemaNode.png b/schemaNode.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef47a73cc9e490139c5aead31774170b9a2b668 GIT binary patch literal 76216 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	orDZ75mnrXGd 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 K&t;ucLK6VL;Gh`* literal 0 HcmV?d00001 diff --git a/web-service-gin/Gnutella.go b/web-service-gin/Gnutella.go index c9fd41c..45965cf 100644 --- a/web-service-gin/Gnutella.go +++ b/web-service-gin/Gnutella.go @@ -14,44 +14,24 @@ import ( "gopkg.in/yaml.v2" ) -type nodeData struct { - ID int `yaml:"id"` - Address string `yaml:"address"` - Neighbours []Neighbors `yaml:"neighbors"` -} - -type Neighbors struct { +type Neighbours struct { ID int `yaml:"id"` Address string `yaml:"address"` } +type nodeData struct { + ID int `yaml:"id"` + Address string `yaml:"address"` + Neighbors []Neighbours `yaml:"neighbours"` +} var data nodeData var storage []string -var idServ string var addressCur string var transmitter int var msgId = 0 var err error -var basePort = 8080 var assignTransM sync.Mutex -// album represents data about a record album. -type album struct { - ID string `json:"id"` - Neighb []int `json:"price"` -} - -// albums slice to seed record album data. -var albums = []album{ - {ID: "1", Neighb: []int{2, 3, 4}}, - {ID: "2", Neighb: []int{1, 5, 6}}, - {ID: "3", Neighb: []int{1, 6, 7}}, - {ID: "4", Neighb: []int{1, 7}}, - {ID: "5", Neighb: []int{2, 6}}, - {ID: "6", Neighb: []int{2, 3, 5}}, - {ID: "7", Neighb: []int{3, 4}}, -} - func getRequest(urlTxt string) { resp, err := http.Get(urlTxt) printErr(err) @@ -59,10 +39,7 @@ func getRequest(urlTxt string) { } func initReq(c *gin.Context) { - nbIdServ, err := strconv.Atoi(idServ) - printErr(err) - - msgId = rand.Intn(100) + nbIdServ + msgId = rand.Intn(100) + data.ID transmitter = -1 fmt.Println("\n Start of new research ") for _, x := range storage { @@ -71,50 +48,44 @@ func initReq(c *gin.Context) { break } } - for i := 0; i < len(albums); i++ { - if albums[i].ID == idServ { - for j := 0; j < len(albums[i].Neighb); j++ { - go getRequest("http://localhost:" + strconv.Itoa(basePort+albums[i].Neighb[j]) + "/req/" + idServ + "/" + c.Param("tlv") + "/" + strconv.Itoa(msgId) + "/" + c.Param("ressource")) - } - } + for j := 0; j < len(data.Neighbors); j++ { + go getRequest("http://" + data.Neighbors[j].Address + "/req/" + strconv.Itoa(data.ID) + "/" + c.Param("ttl") + "/" + strconv.Itoa(msgId) + "/" + c.Param("ressource")) } } +//Only treat the first call func receiveReq(c *gin.Context) { - idMsgInt, err := strconv.Atoi(c.Param("msgId")) + msgIdInt, err := strconv.Atoi(c.Param("msgId")) printErr(err) assignTransM.Lock() - if msgId != idMsgInt { - msgId = idMsgInt + if msgId != msgIdInt { + msgId = msgIdInt assignTransM.Unlock() transmitterId, err := strconv.Atoi(c.Param("transmitter")) printErr(err) - transmitter = transmitterId + transmitter = getIndexById(transmitterId) - tlv, err := strconv.Atoi(c.Param("tlv")) + ttl, err := strconv.Atoi(c.Param("ttl")) printErr(err) + //Send to Transmitter if exist on Node for _, x := range storage { if x == c.Param("ressource") { - go getRequest("http://localhost:" + strconv.Itoa(basePort+transmitter) + "/foundReq/" + idServ + "/" + c.Param("ressource")) + go getRequest("http://" + data.Neighbors[transmitter].Address + "/foundReq/" + strconv.Itoa(data.ID) + "/" + c.Param("ressource")) break } } - tlv = tlv - 1 - if tlv != 0 { - for i := 0; i < len(albums); i++ { - //Open Neighb reg of this node - if albums[i].ID == idServ { - for j := 0; j < len(albums[i].Neighb); j++ { - if transmitter != albums[i].Neighb[j] { - getRequest("http://localhost:" + strconv.Itoa(basePort+albums[i].Neighb[j]) + "/req/" + idServ + "/" + strconv.Itoa(tlv) + "/" + strconv.Itoa(msgId) + "/" + c.Param("ressource")) - } - } + ttl = ttl - 1 + if ttl != 0 { + for j := 0; j < len(data.Neighbors); j++ { + if transmitter != j { + go getRequest("http://" + data.Neighbors[j].Address + "/req/" + strconv.Itoa(data.ID) + "/" + strconv.Itoa(ttl) + "/" + strconv.Itoa(msgId) + "/" + c.Param("ressource")) } } + } } else { assignTransM.Unlock() @@ -124,14 +95,23 @@ func receiveReq(c *gin.Context) { //Called by child when ressource is find func foundReq(c *gin.Context) { - finderNb, err := strconv.Atoi(c.Param("finder")) - printErr(err) - portFinder := strconv.Itoa(basePort + finderNb) if transmitter == -1 { - fmt.Println("\n Instance of " + c.Param("ressource") + " found in " + portFinder) + fmt.Println("\n Instance of " + c.Param("ressource") + " found on port " + c.Param("finder")) } else { - getRequest("http://localhost:" + strconv.Itoa(basePort+transmitter) + "/foundReq/" + c.Param("finder") + "/" + c.Param("ressource")) + getRequest("http://" + data.Neighbors[transmitter].Address + "/foundReq/" + c.Param("finder") + "/" + c.Param("ressource")) + } +} + +//Return the index of neighbour port in local db +func getIndexById(idNode int) int { + for i := 0; i < len(data.Neighbors); i++ { + if idNode == data.Neighbors[i].ID { + return i + } } + fmt.Println("ID cannot be found in Neighbour Database, this shouldnt show up") + os.Exit(1) + return 0 } func printErr(err error) { @@ -143,27 +123,25 @@ func printErr(err error) { func main() { - neighborsFile := os.Args[1] - idServ = os.Args[2] - buf, err := ioutil.ReadFile(neighborsFile) + //Reading Yaml + neighboursFile := os.Args[1] + buf, err := os.ReadFile(neighboursFile) err = yaml.Unmarshal(buf, &data) printErr(err) - addressCur = data.Address - /* - nbIdServ, err := strconv.Atoi(idServ) - files, err := ioutil.ReadDir("Storage" + idServ + "/") - printErr(err) + //Filling Storage + files, err := ioutil.ReadDir("Storage" + strconv.Itoa(data.ID) + "/") + printErr(err) - for _, file := range files { - storage = append(storage, file.Name()) - } + for _, file := range files { + storage = append(storage, file.Name()) + } + + router := gin.Default() + router.GET("/initReq/:ttl/:ressource", initReq) + router.GET("/req/:transmitter/:ttl/:msgId/:ressource", receiveReq) + router.GET("/foundReq/:finder/:ressource", foundReq) - router := gin.Default() - router.GET("/initReq/:tlv/:ressource", initReq) - router.GET("/req/:transmitter/:tlv/:msgId/:ressource", receiveReq) - router.GET("/foundReq/:finder/:ressource", foundReq) + router.Run(data.Address) - router.Run("localhost:" + strconv.Itoa(basePort+nbIdServ)) - */ } -- GitLab