Programming Assignment 2: Ring Total: 30 points (5) Submitted HW2Ring.mac compiles (5) Discussion of protocol handling (or not handling) of arbitrary socket failures -- answering questions on hw page. (5) Testing in model checker with provided driver and error-less parameter file succeeds. (5) Testing in model checker with provided driver and "failnodes" parameter file succeeds. (4) Submitted code should not print additional messages during the modelchecking search. (6) Visual inspection of code sees: - Definition of messages for stabilization, including sending peerlist. - Definition of timers for stabilization and joining. - Implementation of the join protocol. - Implementation of the stabilization protocol. - Added property to test size of successor list. - Structure of code same as skeleton. Succeeding in the model checker can be defined for this homework as running the model checker with the line: MAX_PATHS = 200000 In the parameter file. Also, you only need to test your protocol with 6 nodes (num_nodes=6) instead of the 10 in the parameter file. This change is being made to reduce the testing time necessary prior to being assured your submission works. If your submission works for 500000 and 10 nodes, as originally stated, this will be work an extra 2 points each on the testing cases for a total possible 34 out of 30.