Create README.md

This commit is contained in:
Aryan Singh committed 2026-09-27 22:46:24 -05:00
1 parent c0f1b4303a
commit 9d92ec45e8
1 file changed
+63
+63
View File
@@ -0,0 +1,63 @@
# MP2 Distributed Group Membership
## Files
- `peer.py` - membership daemon
- `scripts/cmd.sh` - start/kill/control VMs
- `scripts/view.sh` - tmux membership dashboard
- `scripts/pretty_membership.py` - dashboard formatter
## Running a node
Set `MACHINE_INDEX` to the VM's index, then run:
```bash
MACHINE_INDEX=1 python3 peer.py
```
## Starting the demo
Start the dashboard. `tmux` is required:
```bash
./scripts/view.sh
```
From another terminal, start the VMs:
```bash
./scripts/cmd.sh start 1
./scripts/cmd.sh start 2 3 4 5
./scripts/cmd.sh start 6 7 8 9 10
```
## Commands
The following commands are available in the peer prompt:
```text
list_mem
list_self
leave
display_suspects
switch suspect
switch nosuspect
display_protocol
set_drop_rate <percent>
```
## Demo/testing helpers
Run these from the `MP2` directory:
```bash
./scripts/cmd.sh kill 4 8
./scripts/cmd.sh start 4 8
./scripts/cmd.sh cmd all "switch suspect"
./scripts/cmd.sh cmd all "set_drop_rate 10"
./scripts/cmd.sh status
./scripts/cmd.sh log
```
## Introducer
`VM1` / `172.22.156.3`
## Notes
- Gossip is default mode.
- Artificial drops are applied at receivers.
- Rejoining processes receive a new timestamp in their node ID.