Inspiration

With the growing demand for secure, scalable, and censorship-resistant file storage systems, we were inspired by the resilience of blockchain networks like Bitcoin and Ethereum. We asked ourselves: What if we could apply similar decentralized principles to large data files? Existing solutions either compromise on speed, cost, or centralization. So, we built DSNBytes – a decentralized storage network (DSN) that splits large files into chunks, distributes them across peer nodes, and uses a blockchain-like ledger for verification and retrieval.

What it does

DSNBytes enables users to:

Upload large files and automatically split them into encrypted chunks. Distribute these chunks across a decentralized peer-to-peer network. Maintain a tamper-proof ledger (inspired by blockchain) that tracks chunk hashes, ownership, and distribution. Enable users to retrieve and reconstruct the original file securely, even if some peers go offline. Ensure data integrity using Merkle trees and cryptographic hashing. Think of it as combining the robustness of IPFS, the ledger transparency of Bitcoin, and the modularity of BitTorrent – all in one.

How we built it

We built DSNBytes using the following stack: Frontend: React.js + Tailwind CSS for a smooth, intuitive file upload and retrieval UI. Backend (core logic): Node.js and Express for the API layer. Chunking Algorithm: Files are broken into fixed-size blocks (configurable), each hashed using SHA-256. Merkle Tree Construction: Each file’s chunks form a Merkle tree; the root is stored in our ledger. Custom Blockchain Simulation: We created a lightweight chain-like structure to log chunk transactions (storage, retrieval, deletion). Storage Layer: Peer-to-peer (P2P) simulation using WebRTC and localStorage/FileSystem APIs for demo purposes. Encryption: AES-256 for chunk-level encryption, with metadata encrypted using RSA.

Challenges we ran into

Peer-to-peer communication: Achieving reliable, real-time transfer between nodes using WebRTC was tricky, especially with NAT traversal. Chunk integrity validation: We had to design a Merkle-tree solution that was lightweight but robust. Simulating a decentralized environment: Without deploying to a live distributed network, simulating node behavior locally required creative architectural thinking. Balancing speed vs. decentralization: Too much fragmentation slows down retrieval; too little risks redundancy and availability.

Accomplishments that we're proud of

Built a working prototype in under 48 hours that can upload, split, distribute, and retrieve files using our custom DSN system. Designed and implemented our own Merkle tree and mini-blockchain ledger from scratch. Demonstrated true file reconstruction from fragmented nodes, even with partial data loss — proving fault tolerance. Implemented chunk-level encryption and signature validation, boosting both security and data provenance.

What we learned

The importance of Merkle trees and how they're used in systems like Git and Bitcoin. How to design efficient hashing and chunking systems to maintain data consistency across distributed nodes. Hands-on experience with WebRTC and peer discovery. Trade-offs between replication, speed, and decentralization in distributed networks. Why decentralization is not just a buzzword — but a real solution to censorship, resilience, and trust.

What's next for DSNBytes

Deploy on real P2P network using IPFS or libp2p as the underlying transport. Incentivize node storage with a token mechanism (think Filecoin-lite). Build a mobile-friendly client for decentralized file access. Add support for versioning and delta updates (like Git for files). Open-source the project and invite developers to join the DSNBytes network.

Share this project:

Updates