Skip to content

Developed decentralized file-sharing application leveraging blockchain, eliminating reliance on central authority while ensuring security, transparency. • Implemented Ethereum smart contracts for decentralized file management, ensuring ownership, access control, and integrity verification.

Notifications You must be signed in to change notification settings

mtouseeb0008/Decentralized_G-drive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decentralized G-Drive Web3.0

In wrapping up, our project for decentralized image sharing is a big step forward. It uses a fancy thing called blockchain to make sure that when you share pictures, it's super safe and private. We focused on keeping your data intact, your pictures secure, and made it easy for everyone to work together. This isn't just about sharing images; it's about a safer, more reliable way for all of us to connect in the digital world.

Table of Contents

Introduction

Welcome to our innovative project, redefining the way we share images through the power of blockchain technology. Our decentralized image upload and sharing platform prioritize security, privacy, and collaboration, offering users a tamper-proof environment for their digital interactions. By focusing on data integrity and user-friendly experiences, we aim to set new standards for secure and authentic image sharing in the digital era.

Installation

Follow the steps below to set up the Decenralized G-Drive3.0 Project on your local machine:

  1. Clone the repository:

    `https://github.com/your-username/Decentralized_G-drive.git`
  2. Install dependencies for the hardhat:

 # Navigate to the root directory
  cd Dgdrive3.0
 # Install hardhat dependencies
  npm install
  1. Compile the smart contract for artifacts:
# Compile Smart Contract
npx hardhat compile
  1. Deploy the Solidity smart contract to an Ethereum testnet or local development environment.
# Deploy Smart Contract
npx hardhat run scripts/deploy.js --network <network-name>
  1. Install dependencies for the React front end:
# Navigate to the React client directory
cd client 
# Install React dependencies
npm install
  1. Run the react application:
# Start React Application
npm start

Configuration

  1. Set up environment variables:

Obtain API keys for Pinata to interact with IPFS. Update the React component (FileUpload.js) with your Pinata API keys.

Usage

Once the setup and configuration are complete, follow these steps to utilize the decentralized image upload and sharing system:

  1. Install Metamask:

    • Ensure Metamask is installed and configured in your browser for Ethereum interactions.
  2. Update Contract Address:

    • After smart contract deployment, make sure to update the contract address in App.js within the React application.
  3. Upload Image before "Get Data":

    • Click "Get Data" only after uploading an image on Pinata. Otherwise, it will throw an error stating "You don't have access".
  4. Accessing Other User Images:

    • Use the "Get Data" button to access other users' images. Input the user's address in the designated box, but remember, you can only access their images if they've granted you access through the smart contract. Otherwise, it will throw an error saying "You don't have access".

These steps will ensure smooth navigation and utilization of the system while maintaining access control and avoiding potential errors.

Technologies-used

  • Ethereum : Ethereum is a decentralized blockchain platform that establishes a peer-to-peer network that securely executes and verifies application code, called smart contracts
  • React.js : Front-end interface for uploading images and managing access.
  • Solidity : Smart contract development for ownership and access control.
  • Pinata : By the help of Pinata we have to upload the image on the IPFS.
  • IPFS : Decentralized storage protocol for hosting uploaded images.
  • Axios : Used as Pinning Service For Pinata
  • Hardhat : Development and Deployment tool
  • MetaMask(wallet) : For User Authentication

After setup all the environment then :

#Over All summary

  • Split the terminal in three parts
    1. npm start
    2. npx hardhat node
    3. npx hardhat run scripts/deploy.js --network

Some Screenshot

#User Login via Metamask

Screenshot (90)

#Dislay Image - Not See the Image Beacuse Pinata have to Closed Public Gateway. You can see the image when you have to click on alt text(see_img).

Screenshot (88)

Before the closing the Public Gateway Look Like this image

#Share Image With Another Account

Screenshot (86)

About

Developed decentralized file-sharing application leveraging blockchain, eliminating reliance on central authority while ensuring security, transparency. • Implemented Ethereum smart contracts for decentralized file management, ensuring ownership, access control, and integrity verification.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages