This project is a decentralized file storage system built on the blockchain. It allows users to upload and manage files in a decentralized and secure manner using the Ethereum blockchain. The project is divided into three main components: the blockchain smart contracts, the React client, and the Python server.
Before running this project, make sure you have the following software installed:
Truffle: A development framework for Ethereum smart contracts.
Node.js: A JavaScript runtime environment.
Ganache: A personal Ethereum blockchain for local development.
Start Ganache with the following configurations:
Network ID: 5777
RPC Server: http://127.0.0.1:7545
Navigate to the "blockchain" folder and run the following commands:
This will compile and deploy the smart contracts to the local Ganache blockchain. After migration, copy the "Storage.json" file from "blockchain/build/contracts" to "client/src/artifacts/" and replace the existing "Storage.json" file.
Navigate to the "client" folder and run the following command:
This will install the required dependencies for the React client.
In the "client" folder, run the following command to start the React client on "http://localhost:3000/":
Navigate to the "server" folder and create a virtual environment with the following command:
Activate the virtual environment with the following command:
Install the dependencies for the Python server with the following command:
In the "server" folder, run the following command to start the Python server:
Now you can access the React client in your web browser at "http://localhost:3000/" and use it to upload and manage files in the decentralized file storage system.
If you need to have more nodes for testing, you can use Vagrant to set up additional virtual machines with Ganache instances.
This project is licensed under the MIT License.