add hash function , TODO p2p