Programming Assignment 4: 3 Phase Commit Total: 30 points (5) Submitted code compiles (9) Successful run of the modelchecker with provided params.default. Also tested with zero or more nodes selecting Abort. (7) Successful with one or more cohort failures (params.default.failnodes) (6) Successful with one or more failures - one of them being the coordinator (params.default.coordfail) (3) Visual inspection of code for: - Use of Messages similar to the definition of the protocol - Proper use of state variable recovery during failures - Implementation of proper node failure transitions Successful runs in the modelchecker can be defined as the completion of the modelchecker with the given parameter files. These have been set with MAX_PATHS = 10000 Extra credit: (5) Getting multiple rounds of the protocol to work.