*: generate clusterid

Generate clusterID based on hash(sorted(MemberIDs), discoveryURL)
Yes, makes sense, sorry for the noise.
Happy for it to include the members for now.