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_api
directory - Run
bazel build :pybind_kv_so
to 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/root
directory, no parameter needed