0% found this document useful (0 votes)
38 views32 pages

Major Project Final

Uploaded by

Lucky Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views32 pages

Major Project Final

Uploaded by

Lucky Rajput
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Decentralised Image Storage Platform

A Major Project

Submitted in partial fulfilment of the requirement for the award of Degree of Bachelor
of Technology in Computer Science and Engineering-AIML Submitted to:

RAJIV GANDHI PRODYOGIKI VISHWAVIDYALAYA, BHOPAL (M.P.)

Submitted by:
Niharika Gupta
Shivam Patidar
Lucky Raja

Under the Supervision of:


Ms. Vasudha Sharma

IPS ACADEMY, INDORE


INSTITUTE OF ENGINEERING & SCIENCE
(A UGC Autonomous Institute Affiliated to RGPV)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING -AIML
SESSION: 2023-24
IPS Academy, Indore Institute of
Engineering and Science
(A UGC Autonomous Institute Affiliated to RGPV)

Department of Computer Science and Engineering -AIML


2024-25

Minor Project entitled

“Decentralised Image Storage Platform”

For the partial fulfilment for the award of the Bachelor of Technology (Computer
Science and Engineering -AIML) Degree by Rajiv Gandhi Proudyogiki
Vishwavidhyalaya, Bhopal.

Guided by: - Submitted by: -


Ms. Vasudha Sharma Niharika Gupta (0808CS121029)
Shivam Patidar (0808CS121051)
Lucky Raja (0808CS121028)
IPS Academy, Indore Institute of
Engineering and Science
(A UGC Autonomous Institute Affiliated to RGPV)

Department of Computer Science and Engineering -AIML


2024-25

CERTIFICATE
This is to certify that Minor Project entitled

“Decentralised Image Storage Platform”


has been successfully completed by the following
students
Niharika gupta, Shivam Patidar, Lucky Raja
in partial fulfillment for the award of the Bachelor of Technology (Computer Science and
Engineering -AIML) Degree by Rajiv Gandhi Proudyogiki Vishwavidhyalaya, Bhopal during the
academic year 2024-25 under our guidance.

Ms. Yogita Barse Mr.Ved Kumar Gupta Dr. Neeraj Shrivastava


Guide (Asst. Prof.) Branch Coordinator HOD

Dr. Archana Keerti Chowdhary


Principal
Acknowledgement

I would like to express my heartfelt thanks to my guide, Ms Vasudha Sharma CSE -AIML, for her
guidance, support, and encouragement during the course of my study for B.Tech (CSE-AIML) at
IPS Academy, Institute of Engineering & Science, Indore. Without her endless effort, knowledge,
patience, and answers to my numerous questions, this Project would have never been possible. It
has been great honor and pleasure for me to do Project under her supervision.
My gratitude will not be complete without mention of Dr. Archana Keerti Chowdhary, Principal,
IPS Academy, Institute of Engineering & Science, Dr. Neeraj Shrivastava, HOD, IPS
Academy, Institute of Engineering & Science and Mr. Ved Kumar Gupta, Branch
Coordinator, CSE-AIML, IPS Academy, Institute of Engineering & Science for the
encouragement and giving me the opportunity for this project work.
I also thank my friends who have spread their valuable time for discussion/suggestion on the critical
aspects of this report. I want to acknowledge the contribution of my parents and my family
members, for their constant motivation and inspiration.
Finally, I thank the almighty God who has been my guardian and a source of strength and hope in
this period.

Niharika Gupta (0808C1211029)


Shivam Patidar (0808C1211051)
Lucky Raja (0808C1211028)
CONTENTS

CHAPTER 1: INTRODUCTION
1.1 Overview
1.2 Literature Survey

CHAPTER 2: PROBLEM IDENTIFICATION & SCOPE


2.1 Problem Domain
2.2 Solution Domain
2.3 Need & Scope

CHAPTER 3: SOFTWARE ENGINEERING APPROACH


3.1 Software model used
3.1.1 Description
3.1.2 Reason for use
3.2 Software Platform Specification

CHAPTER 4: DESIGNS
4.1 Use Case Diagram

CHAPTER 5: IMPLEMENTATION PHASE


5.1 Language Used & its Characteristics
5.2 Modules Detail
5.3 GUI (Snapshots)

CHAPTER 6: TESTING METHOD


6.1Testing Method
6.2 Test Cases

CHAPTER 7: CONCLUSIONS

CHAPTER 8: LIMITATIONS & FUTURE ENHANCEMENTS


1.1 Overview

Decentralized cloud storage represents a significant evolution in the way data is stored and accessed.
Traditional storage solutions rely on centralized systems where data is managed by a single entity,
such as Google Drive, Amazon Web Services, or Dropbox. While these systems are efficient and
user-friendly, they come with inherent risks, including single points of failure, data breaches, and
unauthorized access. For instance, a data breach in 2017 exposed the personal data of over 145
million Americans due to vulnerabilities in Equifax's centralized system.
Decentralized storage, in contrast, operates on a distributed network where data is encrypted,
divided into smaller chunks, and stored across multiple nodes. Each node is an independent
participant in a peer-to-peer (P2P) network. The advent of blockchain technology has further
enhanced decentralized storage by introducing features like tamper-proof records, transparency, and
automated agreements through smart contracts.
Blockchain technology, first introduced by Satoshi Nakamoto in 2008 with Bitcoin, has found
applications beyond cryptocurrency. Its ability to provide a distributed ledger ensures that data
stored within a blockchain-based system is secure, immutable, and accessible only to authorized
users. This approach eliminates the need for intermediaries, offering cost-effective and reliable
solutions.
For example, the InterPlanetary File System (IPFS) uses content-addressable storage, ensuring that
data retrieval is efficient and secure. Similarly, Storj and Sia leverage blockchain to create a
marketplace for decentralized cloud storage, where users can rent out unused storage space.
1.2 Literature Survey

The adoption of decentralized storage has been influenced by extensive research in blockchain
technology, cryptography, and distributed systems. A review of relevant literature reveals a growing
interest in using decentralized solutions for secure data management.
One of the foundational works in this domain is Satoshi Nakamoto's whitepaper on Bitcoin, which
introduced the concept of blockchain. Nakamoto highlighted the use of a distributed ledger to
eliminate the need for centralized financial institutions. This concept laid the groundwork for
applying blockchain in data storage.
In 2014, Juan Benet introduced IPFS, a peer-to-peer hypermedia protocol designed to make the web
faster, safer, and more open. IPFS uses content-addressable storage and cryptographic hashes to
ensure data integrity. Benet's work demonstrated the feasibility of a decentralized file system that
could replace traditional HTTP-based web storage.
Shawn Wilkinson, in 2016, proposed Storj, a decentralized cloud storage network that uses
blockchain for file integrity and smart contracts for transactions. Wilkinson's approach introduced
end-to-end encryption and data redundancy, ensuring that user data remains private and recoverable
even if some nodes fail.
Another significant contribution came from Yan Zhu in 2019, who proposed a blockchain-based
decentralized storage scheme. Zhu's model emphasized secure data sharing and retrieval using
smart contracts, highlighting the potential of blockchain to enhance trust in decentralized systems.
While these studies showcase the potential of decentralized storage, they also highlight several
challenges. For instance, ensuring data availability and retrieval efficiency in a P2P network
requires robust algorithms. Additionally, the scalability of blockchain-based systems remains a
concern due to the computational resources required for consensus mechanisms.
This chapter will delve deeper into these studies, analyzing their methodologies, findings, and
implications for the proposed system.
2.1 Problem Domain

The exponential growth of data in recent years has placed unprecedented demands on storage
systems. Centralized storage solutions, while prevalent, have shown significant limitations in terms
of scalability, security, and cost.
Scalability Issues Centralized systems rely on data centers to store and manage information. As data
volumes increase, these systems struggle to scale without significant investment in infrastructure.
Moreover, centralized systems face bottlenecks due to limited bandwidth, leading to slower data
retrieval times.
Security Concerns One of the most critical issues with centralized storage is its vulnerability to
cyberattacks. Data breaches are a frequent occurrence, with attackers exploiting weak points in
centralized servers. For instance, the 2019 Capital One breach exposed sensitive information of
over 100 million customers due to a misconfigured firewall.
Single Point of Failure Centralized systems are prone to downtime caused by technical failures,
natural disasters, or malicious attacks. When a single server or data center goes offline, users lose
access to their data. This dependency on a central entity creates a risk of operational disruption.
Lack of Transparency Centralized storage providers often have full control over user data, raising
concerns about privacy and unauthorized data usage. Users must trust that providers are not
exploiting their data for commercial or other purposes.
High Costs the costs associated with centralized storage are another major drawback. Providers
charge for storage space, bandwidth, and additional features like data backup and encryption. These
costs can become prohibitive for small businesses and individuals.
Addressing these challenges requires a paradigm shift in the way data is stored and managed.
Decentralized storage offers a promising solution by leveraging distributed networks and
blockchain technology. The next section will explore how these technologies address the limitations
of centralized systems.
2.2 Solution Domain
Decentralized cloud storage provides a revolutionary approach to addressing the limitations of
centralized systems by harnessing the power of distributed networks and blockchain technology. In
a decentralized setup, data is broken into smaller, encrypted chunks and distributed across multiple
nodes in a peer-to-peer (P2P) network. This ensures that no single entity has control over the entire
dataset, significantly reducing vulnerabilities and improving overall resilience.
Key Components of the Solution Distributed File Storage Decentralized storage leverages P2P
networks, where each node contributes storage space and serves as part of the larger system.
Protocols like IPFS use content-addressable storage, ensuring that data can be retrieved based on
its unique cryptographic hash rather than its location. This reduces the dependency on centralized
servers and ensures data redundancy.
Data Encryption Before data is uploaded, it is encrypted using advanced cryptographic techniques
such as AES (Advanced Encryption Standard). The encrypted data is then split into smaller shards,
ensuring that even if a shard is compromised, it cannot be used to reconstruct the original file
without the encryption key.
Smart Contracts Blockchain-based smart contracts automate agreements between clients (data
owners) and nodes (storage providers). These contracts outline the terms of storage, such as
duration, cost, and conditions for data retrieval. The transparency of smart contracts eliminates
disputes and builds trust.
Tokenized Economy Many decentralized storage systems operate on a tokenized model, where
users pay for storage services using crypto currencies or tokens.

For example, Storj uses its native token, STORJ, to facilitate transactions between clients and
nodes.
Benefits of the Proposed Solution
Enhanced Security
Decentralized storage eliminates single points of failure, ensuring data integrity and reducing the
risk of breaches. The use of encryption and distributed storage further enhances security.
Cost Efficiency
By utilizing underutilized storage on personal devices and servers, decentralized systems reduce
costs for both providers and users. The absence of intermediaries further reduces overheads.
Scalability
Decentralized systems are inherently scalable. As more nodes join the network, the storage
capacity and resilience of the system increase proportionally.
Privacy and Ownership
Users retain full control over their data, as it is stored in encrypted form and distributed across the
network. This ensures that even storage providers cannot access the content of the files.
The proposed system leverages these components to address the challenges of centralized storage
effectively. In the following sections, we will explore the technical and engineering approaches
used to implement this solution.
2.2 Solution Domain
Decentralized cloud storage provides a revolutionary approach to addressing the limitations of
centralized systems by harnessing the power of distributed networks and blockchain technology.
In a decentralized setup, data is broken into smaller, encrypted chunks and distributed across
multiple nodes in a

peer-to-peer (P2P) network. This ensures that no single entity has control over the entire dataset,
significantly reducing vulnerabilities and improving overall resilience.
Key Components of the Solution
Distributed File Storage
Decentralized storage leverages P2P networks, where each node contributes storage space and
serves as part of the larger system. Protocols like IPFS use content-addressable storage, ensuring
that data can be retrieved based on its unique cryptographic hash rather than its location. This
reduces the dependency on centralized servers and ensures data redundancy.
Data Encryption
Before data is uploaded, it is encrypted using advanced cryptographic techniques such as AES
(Advanced Encryption Standard). The encrypted data is then split into smaller shards, ensuring
that even if a shard is compromised, it cannot be used to reconstruct the original file without the
encryption key.
Smart Contracts
Blockchain-based smart contracts automate agreements between clients (data owners) and nodes
(storage providers). These contracts outline the terms of storage, such as duration, cost, and
conditions for data retrieval. The transparency of smart contracts eliminates disputes and builds
trust.
Tokenized Economy
Many decentralized storage systems operate on a tokenized model, where users pay for storage
services using cryptocurrencies or tokens.
For example, Storj uses its native token, STORJ, to facilitate transactions between clients and
nodes.
Benefits of the Proposed Solution
Enhanced Security
Decentralized storage eliminates single points of failure, ensuring data integrity and reducing the
risk of breaches. The use of encryption and distributed storage further enhances security.
Cost Efficiency
By utilizing underutilized storage on personal devices and servers, decentralized systems reduce
costs for both providers and users. The absence of intermediaries further reduces overheads.
Scalability
Decentralized systems are inherently scalable. As more nodes join the network, the storage
capacity and resilience of the system increase proportionally.
Privacy and Ownership
Users retain full control over their data, as it is stored in encrypted form and distributed across the
network. This ensures that even storage providers cannot access the content of the files.

The proposed system leverages these components to address the challenges of centralized storage
effectively. In the following sections, we will explore the technical and engineering approaches
used to implement this solution.
2.3 Need & Scope
The need for decentralized cloud storage arises from the growing concerns over data privacy,
security, and cost in centralized systems. With industries increasingly relying on data-driven
operations, the demand for reliable and secure storage solutions has reached new heights.
Why Decentralized Storage is Essential
Data Explosion
By 2025, the global data volume is expected to exceed 175 zettabytes, according to IDC.
Traditional centralized storage systems are ill-equipped to handle this exponential growth without
significant investments in infrastructure. Decentralized storage offers a scalable alternative that
distributes the load across a global network of nodes.
Privacy Concerns
High-profile data breaches and unauthorized data usage by tech giants have led to growing
mistrust among users. Decentralized systems address these concerns by giving users full control
over their data.
Emerging Use Cases
Healthcare: Securely storing and sharing electronic health records among authorized personnel.
Finance: Ensuring tamper-proof record-keeping for financial transactions.
Media & Entertainment: Managing digital rights and distributing content securely.

Scope of the Project


The project aims to design and implement a decentralized storage system using blockchain and
P2P networking. The scope includes:
System Architecture: Designing a distributed file system that integrates with blockchain for data
integrity and tracking.
Encryption and Security: Implementing advanced cryptographic algorithms to ensure data
confidentiality and authenticity.

Smart Contracts: Developing Ethereum-based smart contracts to automate agreements between


clients and nodes.
Scalability Testing: Evaluating the system's performance under varying loads to ensure reliability
and scalability.
This system has the potential to revolutionize industries by providing a secure, cost-effective, and
transparent alternative to traditional storage solutions.
3.1 Software Model Used

3.1.1 Description
The development of the proposed system follows the Scrum methodology, an Agile framework that
emphasizes iterative development, flexibility, and collaboration. Unlike traditional linear approaches
like the Waterfall model, Scrum allows teams to adapt to changing requirements and deliver functional
components incrementally.
Scrum Methodology
1. Sprints
Development is divided into short, time-boxed iterations called sprints, typically lasting 2-4
weeks. Each sprint focuses on delivering a set of functional features, ensuring continuous
progress.
2. Roles
o Product Owner: Defines the project vision and prioritizes features in the backlog.
o Scrum Master: Facilitates the Scrum process, ensuring that the team adheres to Agile
principles.
o Development Team: A cross-functional group responsible for designing, coding, and
testing the system.
3. Artifacts
o Product Backlog: A prioritized list of features and tasks to be completed.
o Sprint Backlog: A subset of the product backlog selected for the current sprint.
o Increment: A potentially shippable product delivered at the end of each sprint.
4. Events
o Sprint Planning: Defines the goals and tasks for the sprint.
o Daily Standup: A brief meeting where team members share updates and discuss
challenges.
o Sprint Review: Demonstrates the completed work to stakeholders.
o Sprint Retrospective: Reflects on the sprint to identify areas for improvement.
3.1.2 Reason for Use
The Scrum methodology was chosen for its adaptability and iterative nature, which aligns with the
dynamic requirements of blockchain-based systems. Unlike traditional models, Scrum accommodates
changes in project scope and encourages continuous feedback from stakeholders, ensuring that the final
product meets user expectations.
4.1 Use Case Diagram:
4.2 Flow chart Diagram:
5.1 Language Used & its Characteristics:

• Programming Languages:

• Solidity: This is the primary language for developing smart contracts that will manage NFT
creation, ownership, transfer, and potentially auctions on the Ethereum blockchain.
• JavaScript: Used for frontend development along with libraries like web3.js to interact with
your smart contracts and blockchain through a web browser.

• Development Tools:

• Text Editor/IDE: Choose a code editor like Visual Studio Code or an Integrated
Development Environment (IDE) with Solidity and JavaScript support (e.g., Remix).
• Smart Contract Compiler: You'll need a Solidity compiler (like Solc) to compile your
smart contract code into bytecode that can be deployed on the Ethereum blockchain.
• Web3.js Library: This library facilitates communication between your frontend application
and the Ethereum blockchain through your chosen node provider (Alchemy in this case).

5.2 Modules Detail:

• Smart Contract (Solidity): Manages Image Sharing, ownership, and potentially


auctions.

• Frontend (JavaScript): Provides a user interface for browsing, sharing, Managing, and
interacting with the smart contract.

• Image Storage (IPFS): Stores IMG metadata (details) in a decentralized manner.

User Authentication Module: Integrates with a user authentication system (if needed) to
manage user accounts and profiles. Could leverage existing solutions like Metamask or explore
blockchain-based authentication mechanisms.
5.3 GUI (Snapshots):
6.1Testing Methods:

Unit Testing:
o Focuses on individual components of your smart contract and frontend code. o Ensures each
function operates correctly in isolation with predefined inputs and expected outputs. o Tools:
Solidity testing frameworks (Truffle, Waffle) and JavaScript testing frameworks (Jest, Mocha).
Integration Testing:
Tests how different modules (smart contract, frontend, IPFS) interact with each other.
Simulates user interactions and verifies data flow between components. o Tools: Can leverage unit
testing frameworks and potentially dedicated integration testing tools.
Security Audits:
Performed by professional security firms to identify vulnerabilities in your smart contracts.
Crucial for mitigating potential exploits and protecting user funds. o Tools: Manual code
reviews and automated security analysis tools.
User Acceptance Testing (UAT):
o Involves real users testing the marketplace's functionality and user experience. o
Identifies usability issues and ensures the platform is intuitive and user-friendly. o Tools:
Manual testing by users or usability testing services.
6.2 Test Cases

• Test Case 1: Validate image upload to IPFS.

• Test Case 2: Confirm access control grants/revokes correctly.

• Test Case 3: Check if unauthorized users are blocked.


The project "Decentralized Image Upload and Sharing" successfully demonstrates the integration of
blockchain and decentralized storage technologies to address limitations of traditional centralized
systems. By leveraging IPFS for distributed storage and Ethereum smart contracts for secure access
control, this project ensures data ownership, immutability, and transparency. Users can upload their
images to a decentralized platform where the content is distributed across multiple nodes, eliminating
single points of failure.

The application introduces granular access control, allowing users to grant or revoke permissions,
ensuring only authorized users can view or retrieve their images. The use of a blockchain ledger makes
every transaction immutable, ensuring the integrity of access logs and user rights. This system offers
potential use cases in domains where privacy and data security are critical, such as healthcare, finance,
and intellectual property.

In summary, this project highlights the potential of decentralized systems to transform data
management by providing a user-centric, secure, and scalable alternative to centralized cloud storage. It
paves the way for further advancements in decentralized applications (DApps), offering practical and
impactful solutions for modern challenges in data privacy and security.
Limitations:
Despite its innovative approach, the project has certain limitations that must be addressed to make
it more robust and scalable:
User Accessibility:
Blockchain technology is still relatively unfamiliar to non-technical users. The need for tools like
MetaMask and understanding private keys might create a steep learning curve.

Future Enhancements:
To overcome these limitations and improve the system's functionality, the following enhancement
are proposed:

Integration with Layer 2 Solutions:


To reduce transaction costs, the application can migrate to Layer 2 solutions like Polygon or
Arbitrum, which offer faster and cheaper transactions while maintaining compatibility with
Ethereum.

Permanent Storage Solutions:


Integrating with protocols like Filecoin can ensure permanent data storage, complementing IPFS
with incentivized data retention mechanisms.
Enhanced User Interface:
Simplifying the user interface to reduce reliance on blockchain knowledge (e.g., abstracting
MetaMask interactions) will make the application more user-friendly for non-technical audiences.

Support for Larger Files:


Implement chunking mechanisms to split large files into smaller parts before uploading to IPFS,
enabling the storage and retrieval of larger datasets.
CHAPTER 1: INTRODUCTION
CHAPTER 2: PROBLEM IDENTIFICATION & SCOPE
CHAPTER 3: SOFTWARE ENGINEERING APPROACH
CHAPTER 4: DESIGNS
CHAPTER 5: IMPLEMENTATION PHASE
CHAPTER 6: TESTING METHOD
CHAPTER 7: CONCLUSIONS
CHAPTER 8: LIMITATIONS & FUTURE ENHANCEMENTS

You might also like