@@ -16,23 +16,26 @@ The exercise involves the following steps, [main file](./sock.py):
...
@@ -16,23 +16,26 @@ The exercise involves the following steps, [main file](./sock.py):
- Each node reads its neighbors file.
- Each node reads its neighbors file.
- Each node starts a server socket to listen for incoming connections
- Each node starts a server socket to listen for incoming connections
2. Message Exchange:
2. Message Exchange:
- During the first *x* iterations, each node sends a message of type REQUEST_WEIGHT to all its neighbors.
- Each node sends a message of type "REQUEST_WEIGHT" to all its neighbors.
- Upon receiving a message of type REQUEST_WEIGHT, a node responds by sending back a message of type WEIGHTS to the requesting node.
- Upon receiving a message of type REQUEST_WEIGHT, a node responds by sending back a message of type "W
- The algorithm runs for a total of *N* iterations
- Each node logs its activities and messages.
- Each node logs its activities and messages
## Neighbors Configuration
## Neighbors Configuration
The [neighbors configuration](./neighbors/) is a directory that contains the neighbors files for all the nodes. Ensure that you have a corresponding number of neighbor files in the neighbors directory, named neighbors0.txt, neighbors1.txt, etc.
The [neighbors configuration](./neighbors/) is a directory that contains the neighbors files for all the nodes. Ensure that you have a corresponding number of neighbor files in the neighbors directory, named neighbors0.txt, neighbors1.txt, etc.
## Dockerfile
## Dockerfile
Once your code is developed, it is time to build the container image, [DockerFile](./Dockerfile)
To build the container image, [DockerFile](./Dockerfile)
docker build -t <image_name> .
Where <image_name> is the name you have chosen for your image.
## Local Deployment
## Local Deployment
For local deployment, you can use the [script](./generate-docker-compose.py) to generate a Docker Compose file. This script takes the number of nodes in your network as an argument and generates the Docker Compose configuration. To generate the Docker Compose file, run the [script](./generate-docker-compose.py) with the desired number of nodes:
You can use the [script](./generate-docker-compose.py) to generate a Docker Compose file. This script takes the number of nodes in your network as an argument and generates the Docker Compose configuration. To generate the Docker Compose file, run the [script](./generate-docker-compose.py) with the desired number of nodes:
python generate_docker_compose.py <num_nodes>
python generate_docker_compose.py <num_nodes>
Replace <num_nodes>with the number of nodes in your network.
Where <num_nodes>is the number of nodes in your network.
Replace the varibale `image` (line 3) with your previouly built container image.
Replace the varibale `image` (line 3) with your previouly built container image.