Decentralized file storage system.
A powerful smart contract that allows for decentralized file storage on the Ethereum blockchain. A user can interact with the front end and upload files to IPFS using Pinatas API. Generate CIDs and store metadata conveniently across a network of nodes with the click of a button. Allows for toggle view access to any specific Ethereum address, granting them or revoking access rights to your files. Think of this as a decentralized Google Drive, web3 style.
Technologies Used:
- JavaScript
- Ethers.js
- React.js
- Solidity
- Hardhat
- IPFS
To run this program you will need the following:
- Metamask account (save your private key inside of a dotenv file). https://metamask.io/
- Pinata account (save your API and Secret Key inside of a dotenv file). https://www.pinata.cloud/
- Clone this repo to your local device and CD into that folder.
- Run:
npm installfrom the main directory. - CD into the "client" folder and run:
npm install - CD back to the main directory and create a dotenv file (see example) input all of the parameters.
- Compile the smart contract from the main directory:
npx hardhat compile - Deploy smart contract on Ethereum Goerli testnet and run this command:
npx hardhat run scrips/deploy.js --network goerli - CD back to the "client" folder and run:
npm run startApp will launch from a new browser window.
Try running some of the following optional tasks:
npx hardhat help
npx hardhat test
REPORT_GAS=true npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.js