A Blockchain-based data sharing platform for monitoring data license accountability and compliance.
The architecture of LUCE is shown below.
Users:
LUCE Data Exchange Interface:
LUCE Data Exchange modules:
Storage:
Clone the repository:
git clone https://github.com/MaastrichtU-IDS/DecentralizedHealthcareBackend
cd DecentralizedHealthcareBackend
To launch LUCE, run:
docker compose up
Each component of the LUCE stack is deployed in a different docker container, defined in docker-compose.yml
User login and access to the contract is managed by a python Django API
Code in the backend
folder. Django settings in backend/src/luce/lucehome/settings.py
React-native (expo) JavaScript webapp for users to upload and search for contracts. It uses the Django API
Code in the frontend
folder
Snarkjs-based server for generating Zero-Knowledge Proofs (ZKPs).
Code in the zkp_service
folder
LUCE use PostgresQL to keep user information, you can configure it in Django project settings
Ganache is used to deploy an Ethereum blockchain network for LUCE, available through HTTP
You can access with LUCE API, or with app
Once logged in, you can get a token which is necessary for later operation
For more details, please refer to Understanding the Login Related Process
For how to maintain the documentation, please refer to: Documentation mantaince
For how to develop in LUCE, please refer to: LUCE development tips
Install development dependencies:
pip install hatch uv
npm install -g expo-cli
Compile requirements.txt
from pyproject.toml
:
uv pip compile pyproject.toml -o requirements.txt
docker compose -f docker-compose.dev.yml up
cd backend
hatch run dev
cd frontend
npm install
npm run start
brownie.exceptions.ContractNotFound: No contract deployed at 0xDa574613C62f6DB9FFE8dCC5a8b079Ba37e29390
,please go to
luce_vm/brownie
, removebuild/deployment
folder in the brownie directory, and then runbrownie compile
{
"error": {
"code": 400,
"message": "validation error",
"status": "ERROR",
"details": "luce registry was not deployed"
},
"data": {}
}
please deploy a LUCERegistry contract in admin/deployRegistry/
endpoint.