Implementation of CHORD in go with some simulations
This repository has been archived on 2025-12-03. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
2024-06-11 20:49:28 +02:00
.vscode Implemented find and integrated, some smaller adjustements 2024-04-23 22:58:54 +02:00
_measurements New measurements for fixed fingers 2024-06-11 20:49:28 +02:00
cmd Started fixing stuff 2024-06-11 19:08:09 +02:00
internal Fixed fingers! They work now, lol 2024-06-11 20:26:28 +02:00
.gitignore Some changes: 2024-05-09 15:08:48 +02:00
analyze-data-log.py Fixed fingers! They work now, lol 2024-06-11 20:26:28 +02:00
go.mod Initial commit 2024-04-23 09:49:37 +02:00
go.sum Works now for all anchor keys 2024-05-05 19:31:27 +02:00
log_n10_m7_files1000.csv Added validation files 2024-05-05 22:41:28 +02:00
output_n10_m7.txt Added validation files 2024-05-05 22:41:28 +02:00
README.md Started fixing stuff 2024-06-11 19:08:09 +02:00

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/simulator with 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