DECENTRALISED GOOGLE DRIVE

DECENTRALISED GOOGLE DRIVE

The Decentralized Google Drive is a groundbreaking project that revolutionizes the way we store, access, and share data. Unlike traditional cloud storage solutions.

DECENTRALISED GOOGLE DRIVE

DECENTRALISED GOOGLE DRIVE

The Decentralized Google Drive is a groundbreaking project that revolutionizes the way we store, access, and share data. Unlike traditional cloud storage solutions.

The problem DECENTRALISED GOOGLE DRIVE solves

The rapid growth of blockchain technology has introduced new possibilities for data storage and management. In this project, we aim to develop a decentralized Google Drive application that tackles the challenges posed by centralized cloud storage services. By leveraging React.js for frontend development, Hardhat for smart contract development, and Ether.js for interacting with the Ethereum blockchain, we can create a solution that prioritizes data control, privacy, security, and efficient file sharing.

Architecture Overview:
Our decentralized Google Drive application architecture comprises three primary components: the frontend, smart contracts, and the Ethereum blockchain. React.js, a widely used JavaScript library, will be employed to build an intuitive and user-friendly frontend interface. Hardhat, an Ethereum development environment, will enable us to develop smart contracts that govern storage and access control logic. Ether.js, a JavaScript library, will facilitate seamless communication with the Ethereum blockchain, allowing interaction with the smart contracts.

1.Decentralized Storage:
Our application will utilize a decentralized storage system, distributing user files across multiple nodes in the network. By eliminating reliance on a central server, the risk of single points of failure is reduced, ensuring enhanced data availability.

  1. Data Control and Privacy:
    Users will have complete control over their data. Employing cryptographic techniques, we will guarantee data privacy and security. Smart contracts will govern access control mechanisms, empowering users to define permissions and selectively share files with others.

  2. Efficient File Sharing:
    Our solution will streamline file sharing, enabling users to share files directly with others without intermediaries. Smart contracts will manage access permissions, facilitating secure and efficient file sharing among authorized users.

Challenges we ran into

While developing the Decentralised Google Drive project, we encountered several challenges that required careful problem-solving and innovative thinking. One specific bug we faced was related to the integration of the Solidity smart contracts with the front-end application built using React.js.

The bug manifested as inconsistent data retrieval from the Ethereum blockchain. Despite successful transactions and data storage on the blockchain, the front-end was not consistently displaying the correct file information. After extensive debugging, we identified the root cause: the asynchronous nature of the blockchain transactions was causing delays in updating the front-end state.

To overcome this bug, we implemented a comprehensive solution. First, we restructured the code to ensure proper handling of asynchronous operations. We utilized promises and async/await functions to synchronize the data retrieval process and guarantee that the front-end displayed the most up-to-date information.

Additionally, we implemented event listeners using Web3.js to detect and react to changes in the blockchain. By subscribing to specific contract events, we could update the front-end in real-time whenever a file was added, modified, or removed from the decentralized storage.

To ensure the stability and robustness of the system, we conducted rigorous testing, including unit tests and integration tests. This helped us identify and resolve any remaining issues or edge cases that could potentially disrupt the functionality of the application.

Overall, by employing diligent debugging, restructuring code, and leveraging event listeners, we successfully overcame the bug related to data consistency between the front-end and the Solidity smart contracts. This experience taught us valuable lessons about the intricacies of integrating blockchain technology with front-end frameworks and reinforced the importance of thorough testing to ensure a smooth user experience.

Discussion