-
Notifications
You must be signed in to change notification settings - Fork 0
soumyadeep2007/constantine
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# constantine An implementation of the Byzantine Chain Replication protocol ## PLATFORM 1. DistAlgo 1.0.9 2. Python 3.6.2 3. Windows 10 Education 4. Ubuntu 16.0.4 on VirtualBox with vagrant ## INSTRUCTIONS 1. To run the system, navigate to the src directory and type in the following command: python -m da --message-buffer-size {size_in_bytes} --logfile --logfilename {log_file_path_with_name} olympus.da {test-case-path} Example: python -m da --message-buffer-size 1000000 -F output --logfile --logfilename ../log/testcase1 olympus.da ../test_cases/test_operation_change_fwd_request_t1_single_client.csv Please note: Enter a significantly large buffer size in bytes, like the size in the example above to avoid running into buffer constraints. ## CONTRIBUTIONS 1. Client, Olympus, logs, documentation - Soumyadeep 2. Replica, config files, testing - Tushar ## BUGS AND LIMITATIONS 1. For result validation simplicity in the client, we have assumed that the keys used for each client's workload is segregated on a per client basis. 2. Test for: test_operation_change_fwd_request_t2_multi_client.csv is failing intermittently ## WORKLOAD GENERATION The workload is being generated from a file containing some random request strings with each string having the following format: "operation_name(args)" ## MAIN FILES src/olympus.da src/client.da src/replica.da - Contains replica, head and tail. src/commons.py - Contains common functions required across Replica, Olympus and Client. src/log_messages.py - Contains the log messages used in the system. src/random_tasks.py - Contains randomized workload as specified above. It can be modified if the user so desires. ## CODE SIZE 1. LOC (including spaces and comments) = i) Algorithm code ~ 1510 (~72%) ii) Trigger and maintenance code ~ 420 (~20%) iii) Log statements ~ 170 (~8%) iv) Total = 2100 2. Mechanism to obtain the LOC = Added counts in IDE and used Find to get the counts of logs ## LANGUAGE_FEATURE USAGE 1. List comprehensions = 3 2. Dictionary comprehensions = 2 ## OTHER COMMENTS 1. Tried to use inheritance in DistAlgo with Replica as a base and Head and Tail as subclasses, but encountered problems with the language.
About
An implementation of the Byzantine Chain Replication protocol
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published