# 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!