Certainly! Below is the rewritten project description using natural language processing (NLP) techniques:
This project is designed to facilitate decentralized image upload and sharing on the blockchain. Leveraging Solidity for smart contract development and React for the user interface, it empowers users to securely upload images to IPFS (InterPlanetary File System) and manage access permissions through smart contracts.
- Decentralized Storage: Images are securely uploaded to IPFS, ensuring decentralization and immutability.
- Smart Contract Functionality: Utilizes Solidity smart contracts deployed on the Ethereum blockchain for access control and ownership management.
- Granular Access Control: Users can grant or revoke access to their uploaded images to specific individuals via smart contract interactions.
- Solidity: For smart contract development, enabling ownership and access control functionalities.
- React: Provides a dynamic and intuitive front-end interface for uploading images and managing access permissions.
- IPFS (InterPlanetary File System): Employs IPFS for decentralized storage, ensuring high availability and reliability of uploaded images.
https://github.com/P-Potdar/Chain-Vault.git
cd decentralized-image-upload
npm install
npx hardhat compile
npx hardhat run scripts/deploy.js --network <network-name>
cd client
npm install
npm start
- Obtain API keys from Pinata for interacting with the IPFS.
- Update the React component (FileUpload.js) with your Pinata API keys.
- Install Metamask: Ensure Metamask is installed and configured in your browser for Ethereum interactions.
- Update Contract Address: After deploying the smart contract, update the contract address in
App.js
within the React application. - Upload Image before Retrieving Data: Click "Retrieve Data" only after uploading an image to Pinata. Otherwise, an error will be thrown stating "You don't have access".
- Accessing Other Users' Images: Utilize the "Retrieve Data" button to access images uploaded by other users. Input the user's address in the designated box, remembering that access is granted only if permission has been given through the smart contract. Otherwise, an error will be thrown stating "You don't have access".