Categorygithub.com/akhilk2802/distributed-file-storage
repositorypackage
0.0.0-20250210021008-f70173176122
Repository: https://github.com/akhilk2802/distributed-file-storage.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Distributed File Storage

šŸ“Œ Overview

This project is a distributed file storage system built to explore distributed systems concepts. It implements a custom-built Peer-to-Peer (P2P) library for efficient network communication and decentralized file management. The system supports data replication for fault tolerance and provides essential file operations such as GET, READ, and WRITE.

Currently, it is a work in progress, with planned enhancements and additional features being actively developed.


šŸš€ Features

šŸ”¹ Custom P2P Library

  • Implements peer-to-peer communication for decentralized storage.
  • Manages peer discovery, network communication, and data consistency.

šŸ”¹ Data Replication

  • Ensures data availability and fault tolerance by replicating files across multiple nodes.
  • Reduces the risk of data loss due to node failures.

šŸ”¹ Core File Operations

1ļøāƒ£ GET Method

  • Retrieves metadata or status information about files in the distributed system.

2ļøāƒ£ READ Method

  • Reads the contents of a specific file from the distributed storage.

3ļøāƒ£ WRITE Method

  • Writes data to a specific file while ensuring data consistency and replication.

Folder Structure

.
ā”œā”€ā”€ Makefile
ā”œā”€ā”€ README.md
ā”œā”€ā”€ bin
│   └── fs
ā”œā”€ā”€ go.mod
ā”œā”€ā”€ go.sum
ā”œā”€ā”€ main.go
ā”œā”€ā”€ p2p
│   ā”œā”€ā”€ encoding.go
│   ā”œā”€ā”€ handshake.go
│   ā”œā”€ā”€ message.go
│   ā”œā”€ā”€ tcp_transport.go
│   ā”œā”€ā”€ tcp_transport_test.go
│   └── transport.go
ā”œā”€ā”€ package-lock.json
ā”œā”€ā”€ package.json
ā”œā”€ā”€ server.go
ā”œā”€ā”€ store.go
└── store_test.go

šŸ”§ Future Enhancements

  • Sharding support for improved scalability.
  • Consensus mechanism for ensuring data integrity.
  • Dynamic node management for auto-scaling and resilience.
  • Security improvements including encryption and authentication.

šŸš€ Distributed File Storage - A Peer-to-Peer Approach to Scalable Storage!