public SocialUser AddFriend(string address, string cert, string uid,
string ip) {
if(_friends.ContainsKey(address)) {
throw new Exception("Address already exists");
}
Address addr = AddressParser.Parse(address);
string new_ip = _marad.AddIPMapping(ip, addr);
SocialUser user = new SocialUser(cert, new_ip, null);
Bso.CertificateHandler.AddCACertificate(user.X509);
_managed_co.Set(addr);
_friends = _friends.InsertIntoNew(address, user);
return user;
}