Create README.md
This commit is contained in:
1 parent
c0f1b4303a
commit
9d92ec45e8
1 file changed
+63
@@ -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.
|
||||
Reference in new issue
Block a user