Implementation of Gnutella protocol with ensuring consistency in Java (Academic Project)