Propagate sock errors.
peer HAS to be a serverPeer
set challenge to true
and log the code for convenience sake during development
Correctly change state once the secret is successful.
Use correct error domain.