Skip to content

PatilHrushikesh/DistributedFileSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Go-P2P-Store: A Distributed File Storage System

This repository contains the source code for a peer-to-peer (P2P) file storage system developed in Go. It leverages low-level TCP connections to create a decentralized network where users can store and retrieve files securely and efficiently.

Project Goals

The primary goal was to design a system that is:

  • Resilient: No single point of failure. The network remains operational even if some peers go offline.
  • Secure: Data privacy and integrity are paramount, ensured through strong encryption.
  • Performant: File retrieval is optimized for speed and low network overhead.

Key Features & Implementation Details

Peer-to-Peer Networking (Go & TCP)

  • Built a robust P2P network from the ground up using Go's standard networking libraries.
  • Peers communicate directly over TCP for seamless and reliable data replication.

Automatic Replication & Local Caching

  • Files are automatically replicated across a configurable number of peers to ensure data durability.
  • A local caching mechanism is implemented to store frequently accessed files, drastically reducing retrieval times for subsequent requests.

Secure by Design

  • Encrypted Storage: All file chunks are encrypted before being written to disk on any peer.
  • Secure Transmission: Data is encrypted during transit between peers to prevent eavesdropping.

Efficient Data Retrieval

  • Designed and implemented an intelligent data request strategy that fetches file chunks from the most optimal peers, enhancing performance and minimizing latency.

About

Developed a secure, high-performance P2P file storage system in Go featuring automatic data replication over TCP, latency-reducing local caching, and end-to-end encryption.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors