Sign inSign up

normie69k/meshvault-backend

By normie69k

•Updated 25 days ago

MeshVault is a fully decentralized peer-to-peer storage network built natively for Android.

Image
Networking
Security
0

472

normie69k/meshvault-backend repository overview

⁠🌐 Project Overview: MeshVault

MeshVault is a fully decentralized, peer-to-peer (P2P) storage network built natively for Android. It is designed to transform everyday smartphones into a highly secure, interconnected cloud storage grid.

Instead of relying on centralized servers (like Google Drive or AWS) to hold files, MeshVault encrypts a user's data, shatters it into mathematical fragments, and distributes those fragments across other mobile devices. It allows users to reclaim their data privacy and monetize the empty, unused storage space sitting idle on their phones.


⁠✨ Core Architecture & Topologies

The defining feature of MeshVault is its 3-Tier Routing Protocol, which allows the network to adapt to any environment, from the global internet to a completely offline disaster zone:

  1. The Global Cluster (Public): * Devices register with a central tracking server (built with Ktor).
    • Users can upload files across the internet to random public nodes.
    • Powered by a Credit Economy: Host nodes earn credits for storing data, and consumers spend credits to upload.
  2. The Local Wi-Fi Mesh (Offline): * Uses Android's Network Service Discovery (NSD) to find peers on the same local network.
    • Works 100% offline without any internet connection or central server routing. Ideal for remote teams or off-grid file sharing.
  3. Strict Private Vaults (Zero-Trust): * Users can pair specific devices using QR codes and cryptographic shared secrets.
    • The Host node enters Stealth Mode—becoming completely invisible to network scanners and the global tracker. It only accepts encrypted chunks from trusted friends or family.

⁠🛡️ Security & Reliability Mechanisms
  • Client-Side Encryption: All files are encrypted with military-grade AES-256 using the Android Keystore before they are sharded. The host storing the data cannot read it.
  • Reed-Solomon Sharding: Files are split into Data Shards + Parity Shards. If a consumer distributes 10 shards across the network, they might only need to retrieve 7 to perfectly reconstruct the file. This ensures data survives even if several host phones turn off or delete the app.
  • Granular Host Controls: Hosts have complete control over their hardware. They can set strict Storage Quotas (with live UI monitors), enforce Battery Guards (auto-shutdown at 20%), and restrict node activity to Wi-Fi Only to save cellular data.

⁠🛠️ The Tech Stack

The Android Client (The Nodes)

  • Language: 100% Kotlin.
  • UI/UX: Jetpack Compose with Material 3 design principles, featuring real-time dashboards, interactive progress bars, and bottom navigation.
  • Networking: Ktor Client for HTTP/REST and WebSockets; Android NSD for local peer discovery.
  • Background Work: Android Foreground Services with persistent Coroutine Scopes (ensuring the P2P server and uploads survive UI navigation).
  • Tools: ML Kit (for lightning-fast QR pairing), Android Keystore (for secure key generation).

The Master Tracker (The Backend)

  • Framework: Ktor Server (Kotlin).
  • Database: JetBrains Exposed (SQL) using SQLite/PostgreSQL.
  • Authentication: JWT (JSON Web Tokens) combined with ECDSA Challenge-Response signature verification (preventing replay attacks).
  • Deployment: Fully Dockerized multi-stage build, ready for instant cloud deployment via docker-compose.

⁠🎯 The Ultimate Value Proposition

MeshVault bridges the gap between Web3 decentralized concepts and practical mobile engineering. It doesn't require massive, expensive server farms like Filecoin. It leverages the billions of gigabytes of wasted storage already sitting in people's pockets to create a resilient, censorship-resistant, and entirely private cloud.

Tag summary

Content type

Image

Digest

sha256:cb8cb7795…

Size

99.1 MB

Last updated

25 days ago

docker pull normie69k/meshvault-backend