Implementation of CHORD in go with some simulations
| .vscode | ||
| _measurements | ||
| cmd | ||
| internal | ||
| .gitignore | ||
| analyze-data-log.py | ||
| go.mod | ||
| go.sum | ||
| log_n10_m7_files1000.csv | ||
| output_n10_m7.txt | ||
| README.md | ||
INFM CHORD Implementation
Run the main simulation: go run ./cmd/simulator (big key size, 1.000 nodes, 10.000 files, with fingers)
Other simulations:
./cmd/simulator2: Medium-sized, randomly generated network with fingers, small key size and random data (good stress-test regarding crashes)./cmd/simulator3: Uses a non-random example from the lectures slides (DHTs slide 37), good for testing finger table generation./cmd/simulator4: Uses another non-random example./cmd/simulator_measurements: Simulator copied from./cmd/simulatorwith adjustements for performance measurements (requirements M1-M12)
Analyze the data log CSV file
The ./cmd/simulator_measurements program outputs a data-log.csv which can be analyzed with the python script analyze-data-log.py. This will calculate the mean and standard deviance for the columns "StoreHopCount" and "RetrieveHopCount" using Pandas.
Todos
- RPCIntegrate function
- Fix bug in RPCIntegrate, where Anchor node must have CHORD Key 0 for the function to work correctly
- RPCFind and RPCRetrieve
- Finger tables
- Stabilize function
- CSV Logger
- Validation requirements
- Measurements