Skip to content
Mahyar Karimi edited this page Jun 7, 2022 · 4 revisions

Welcome to the Koloocheh wiki!

Koloocheh is a peer-to-peer file sharing system, inspired by Gnutella, as well as Napster's centralized architecture.

Koloocheh consists of a central master, and multiple peers. Our master manages connections among peers, and each peer hosts multiple files.

Communications between any two components of our network take place via gRPC, an RPC framework developed by Google. RPC calls and structures are defined in protocol buffers. You can read further on the details of gRPC here: https://grpc.io/docs/what-is-grpc/introduction/.

Both peer and master component are designed with a multi-threaded architecture, running multiple daemon threads (read more on daemon threads here: https://docs.python.org/3/library/threading.html#threading.Thread).

Downloading a file in this network is performed by a flooding search for a node containing this file, followed by a request to get this file from the owner node. We show that flooding a request can be controlled, using indexing and properties of random graphs.

Clone this wiki locally