-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
54 lines (44 loc) · 2.16 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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.