A decentralized personal cloud based on ResilientDB blockchain and IPFS cluster
- Decentralized Architecture: Our system avoids the need for a central server. All messages are transmitted through ResilientDB blockchain and IPFS cluster.
- Data storage: Metadata are stored in ResilientDB blockchain i.e. file structure, file hash etc. Files are stored in IPFS cluster.
- Security: All the data stored in ResilientDB and in IPFS are encrypted by Fernet
- A running IPFS entry point(Please follow Link to deploy IPFS Desktop on Ubuntu or Link deploy IPFS through Docker)
- Ubuntu 22.04 LTS
- Python 3.10
- bazel 5.0 or 7.0
sudo apt install bazel-5.0.0 - Python packages:
- pycryptodome
pip isntall pycryptodome - pybind11
pip install pybind11 - cryptography
pip install cryptography - ipfshttpclient
pip install ipfshttpclient==0.8.0a2(Please ignore the warning message of the daemon version) - psutil
pip install psutil
- pycryptodome
- cd to
kv-service_python_apidirectory - Run
bazel build :pybind_kv_soto build ResilientDB kv-service Python API - Start client
python start_client.py
cd: Change to target directorycd [target directory name]ls: Will list all contents under this directorymkdir: Create a new directory under your current directorymkdir [new directory name]rm: Delete a directoryrm [target directory name]upload: Upload single/multiple file(s)upload [file/directory path](If the path is a directory, system will scan and upload every file, even those files in nested directories)download: Download single/multiple file(s)download [file/directory name] [(optional)Path to save file(s)](If the second parameter is not specified, file(s) will download into downloads directory under ResDrive directory)back: Go back to previous directory, no parameter neededshare: UNDER DEVELOPINGdetail: Show file detaildetail [file name]root: GO back to/rootdirectory, no parameter needed