Implement the network of dining cryptographers problem with 3 cryptographers in the GO Programming language. You must adhere to the following requirements:
-
Every cryptographer is its own process.
-
Every coin is its own process
-
The restaurant owner is its own process
-
A table observer (yet another process) that sees the external events.
-
Your code
-
Take the events that the table observer sees, and show that they satisfy the anonymity requirement.
-
Allow cryptographer 0 to see all 3 coins. Write a routine for him to determine who pays, and show that your code works by asking one cryptographer to pay.
-
http://cpansearch.perl.org/src/SHEVEK/Crypt-Dining-1.01/lib/Crypt/Dining.pm has a Pearl implementation, but it does not answer the turn-in parts of 2 and 3.
-
Dining Philosophers have been implemented in GO at http://f.souza.cc/2011/10/go-solution-for-dining-philosophers.html.
-
The GO programming language has an excellent online tutorial at http://golang.org, and lots of references.
-
Presentation: https://docs.google.com/presentation/d/1GntpaTXxO7v-u6xC6Sia2kuoIMUGsJih9BamSHPj1qA/edit?usp=sharing
-
Report: https://docs.google.com/document/d/1htn1ZCYJIxkSddsJuXxN2BF59a2-XK1VdKB_Ra9SLxI/edit?usp=sharing
-
Diagrams: https://drive.google.com/file/d/0BzKKQaf6n1hHOUk3bXdrUEFtR28/view?usp=sharing