Skip to content
Snippets Groups Projects
Commit 2bf48e4f authored by ping's avatar ping
Browse files

Add README.md

parent daa4401c
No related branches found
No related tags found
No related merge requests found
# Lab 2 : Distributed Systems
Le but de ce laboratoire est d'implémenter l'aglorithme **Gnutella**. Nous avons du développer avec le langage **GO** et avec des sockets.
## Utilisation
Notre application prend en paramètre un fichier *.yaml* au même format que pour le Lab 1.
### Local
En local, il faut utiliser des ports à la place des adresses dans le fichier *.yaml*.
```
git clone https://gitedu.hesge.ch/ilias.nhairi/sys_dist_lab2.git
cd sys_dist_lab2
go run server.go fichier.yaml
```
### Deploiment sur AWS
Pour déployer sur AWS, nous avons créé un script **launch.sh** qui permet d'installer les dépendences, de clone le projet ainsi que de lancer le server.
**ATTENTION, tous les scripts sont sur la branch deployment**
Avant de lancer le script launch.sh, il faut modifier les adresses ip. Vu que ce n'est pas un tp de cloud, elles sont en brut dans les scripts. Il faut donc modifier le tableau d'adresses dans le fichier **launch.sh**. Ainsi que tous les fichiers **installX.sh**, pour remplacer les adresses en brut aux adresses des nouvelles VM.
Nous avons généré une pair de cle RSA sans mot de passe, et nous avons utilisé la clef public comme moyen d'authentification sur les VM de ce labo.
Une fois, que les adresses ont correctement été remplacées et que la clef publique a été ajouté pour s'authentifier sur les VMs. Il lancer le script **launch.sh**
```
./aws/launch.sh
```
### Client
Nous avons developpé un client qui permet d'intérroger un noeud du système pour faire une recherche. **ATTENTION** le client est différent pour l'utilisation Local et Deploiment sur AWS.
```
# local
go run client.go 3000 guigui.mp4
# Deploiment sur AWS
go run client.go 54.152.107.19 guigui.mp4
```
Le noeud sur lequel nous avons fait notre requête nous répond de cette façon :
```
arch ~/Documents/HEPIA/sys_dist/sys_dist_lab2 (deployment)$ go run client.go 54.152.107.19 ok.txt
{"Id":"QiclnTRaeA3QDNkCIJXzSfetOur2x2xsVtO7otRIagE=","Filename":"ok.txt","Found":["54.85.93.127"]}
arch ~/Documents/HEPIA/sys_dist/sys_dist_lab2 (deployment)$ go run client.go 54.152.107.19 guigui.mp4
{"Id":"PfNqpxVfvQ+VSaEapmIQOhE90dlw4F26kcBC29TssZ8=","Filename":"guigui.mp4","Found":["54.152.107.19","54.85.93.127","52.207.247.83","184.72.207.132","54.152.139.5","54.224.181.40"]}
arch ~/Documents/HEPIA/sys_dist/sys_dist_lab2 (deployment)$ go run client.go 54.152.107.19 ilil.py
{"Id":"mAM8xcNsvl47V8eN/xPM0pVQvN+JvEfVkTQxXitrik8=","Filename":"ilil.py","Found":["54.224.181.40"]}
```
## Authors
Ilias N'hairi
Guillaume Pin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment