Skip to content

Commit a1d2902

Browse files
committed
Update readme
1 parent cc492f1 commit a1d2902

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,49 @@
1111
`conda install cryptography`
1212

1313
2. Start the coordinator, followed by fs, and then finally the client
14+
15+
## Running
16+
17+
1. Start the coordinator process:
18+
19+
`python coordinator.py`
20+
21+
2. Start the file servers:
22+
23+
By default, we use ports starting from 7000 for ease. You can supply a new port as a command line argument. If not supplied, new FS will linearly probe from 7000 and work till the next 10 ports. If more FS are needed, refer the current limitations section.
24+
25+
`python fs.py 7000`
26+
27+
`python fs.py 7001`
28+
29+
`python fs.py 7002`
30+
31+
3. Start the client processes:
32+
33+
We can have upto 10 clients (refer current limitations). The clients are ordered by command line arguments to effectively use the saved demo keys.
34+
35+
`python client.py`
36+
37+
or
38+
39+
`python client.py 0`
40+
41+
`python client.py 1`
42+
43+
4. Send commands:
44+
45+
Folders are automatically created with a prefix `fs_`. Just add files into these folders and explore through the client processes. Make sure you have enough permissions to do the same.
46+
47+
## Current Limitations
48+
49+
1. Limited keys
50+
51+
Each FS and client needs to be registered with the coordinator to implement the Needham–Schroeder protocol. I have saved 10 keys for each for the time being. More can be created by letting the FS and client append to these files. However, for the purpose of demonstration, 10 is a very good limit. The coordinator uses modular arithmetic to read these keys and assign them to connecting processes.
52+
53+
2. No write operations
54+
55+
This project started as an innovative project for the course CO407 (Distributed Systems), and that did not require any write RPC operations. The only write instruction it does is copy an existing file into a new one. To avoid feature creep before grading of the project, more instructions were not included. However, more write instructions can be considered for future releases.
56+
57+
3. No copying across file servers
58+
59+
This is another feature not required for submission as an innovative project for CO407. It can be included in future releases.

0 commit comments

Comments
 (0)