![Screenshot 2024-06-28 at 2 50 04 PM](https://private-user-images.githubusercontent.com/63789652/344288610-4b52789a-276b-4eea-be2f-611c3f580291.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwOTg4ODYsIm5iZiI6MTczOTA5ODU4NiwicGF0aCI6Ii82Mzc4OTY1Mi8zNDQyODg2MTAtNGI1Mjc4OWEtMjc2Yi00ZWVhLWJlMmYtNjExYzNmNTgwMjkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDEwNTYyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlZGY0ZjU0ZWViNjFhMWNjOTc1YzBiY2M4N2IxMjIxZTdkNjQ0MzMyNzZhMDgwMzE0ZGNjODJmODE2Y2Q4ZmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QDlGCNSfUHvAnLI8vp9n7vX98J3KxWTukocjTSjSqFo)
This project focuses on creating a proof-of-concept system for secure data storage and retrieval in a distributed environment. The system involves key components such as Data Owner, Database Service Provider, Query Client, Malicious Client, Ethereum Blockchain, Cassandra, and Merkle Tree to demonstrate integrity verification using a local Merkle Hash Tree.
-
Data Owner (DO):
- Responsible for preparing key-value data and constructing a local Merkle Hash Tree (MHT) over the data.
- Implements a class
DataOwner
with methodsprepare_data(data)
andbuild_mht(data)
.
-
Database Service Provider (SP):
- Operates as a server hosting a Cassandra database for storing data received from the Data Owner.
- Implements a class
DatabaseServiceProvider
with methodsstore_data(data)
andreceive_data(data)
.
-
Query Client (C):
- Issues key-value queries to the Database Service Provider and supports query issuance and result verification using the MHT.
- Implements a class
QueryClient
with methodsissue_query(key)
andverify_query_result(key, result, mht_root)
.
-
Malicious Client (MC):
- Acts as an adversary to tamper with data stored in the Cassandra database.
- Implements a class
MaliciousClient
with the methodtamper_data(data)
.
-
Ethereum Blockchain:
- Utilized for additional security and verification purposes in the distributed system.
-
Cassandra:
- Database technology used by the Database Service Provider for storing sensitive data.
-
Merkle Tree:
- Employed for detecting data tampering and ensuring data integrity in distributed systems.
data_owner.py
: Contains the DataOwner class for preparing data and building the Merkle Hash Tree.database_service_provider.py
: Includes the DatabaseServiceProvider class for storing and receiving data in Cassandra.query_client.py
: Implements the QueryClient class for issuing queries and verifying results using the MHT.malicious_client.py
: Defines the MaliciousClient class for tampering with data in Cassandra.README.md
: Project documentation providing an overview, components, and usage instructions.
- Clone the repository to your local machine.
- Run the necessary Python scripts for each component:
python data_owner.py
python database_service_provider.py
python query_client.py
python malicious_client.py
- Follow the prompts and instructions provided by each script to simulate the system's functionality.
The Cloud Computing Project showcases a secure data storage and retrieval system with integrity verification mechanisms using Merkle Hash Trees, Ethereum Blockchain, and Cassandra. This project aims to demonstrate the importance of data integrity in distributed environments and the role of various components in ensuring secure data transactions.
For any inquiries or feedback, please contact:
- Bhavana Devulapally
- Shusrita Venugopal
- Neha Navarkar
Thank you for exploring our project!