Use consistent identifier for keeping track of known, advertised and unresolved network service hashes
Be more flexible with peer id format (allow string-based identifiers too)
Decouple Web Socket URL endpoints from hardcoded structures
Update tests to reflect code changes