The paper is available online: https://arxiv.org/abs/2202.11646
The technical prototype of LUCE is accessible via LuceVM.
LuceVM is a self-contained virtual machine to facilitate web3 development. It encapsulates a Python-Django-Ethereum development stack and allows us to compile, deploy and interact with Ethereum Smart Contracts in a seamless manner. It was created primarily to facilitate the development of the LUCE technical prototype but can be used to support other blockchain-focused research as well.
This repository explains how to set-up LuceVM to access the LUCE Prototype.
Try the webhosted version:
- LUCE Web UI: https://luce.137.120.31.102.nip.io
- LUCE blockchain access: https://ganache.luce.137.120.31.102.nip.io
Build
docker build -t vjaiman/luce .
Run
docker run -it -p 8000:8000 -p 8888:8888 vjaiman/luce
Run with docker-compose, the ganache DB and postgres DB will be stored in a data
folder in the same directory as the docker-compose.yml
file. You will need also to uncomment the ports in the docker-compose.yml
docker-compose up -d
You can easily change the path to the storage folder by copying
.env.sample
to.env
and change the storage path variable.
Access on http://localhost:8000 and connect with one of the demo account:
- [email protected] | provider
- [email protected] | requester
The final section of the README is for if you want to run the package in development, and get involved by making a code contribution.
Clone the repository:
git clone https://github.com/vemonet/luce
cd luce
Install Hatch, this will automatically handle virtual environments and make sure all dependencies are installed when you run a script in the project:
pip install --upgrade hatch
Install the dependencies in a local virtual environment:
hatch -v env create
Make sure the existing tests still work by running pytest
. Note that any pull requests to the fairworkflows repository on github will automatically trigger running of the test suite;
hatch run test
To display all print()
:
hatch run test -s
The code will be automatically formatted when you commit your changes using pre-commit
. But you can also run the script to format the code yourself:
hatch run fmt
Check the code for errors, and if it is in accordance with the PEP8 style guide, by running flake8
and mypy
:
hatch run check
In case you are facing issues with dependencies not updating properly you can easily reset the virtual environment with:
hatch env prune
LUCE uses their own python scripts in utils/web3_scripts.py
with web3
and solc
to compile and publish 1 utils/data/luce.sol
smart contract
DHB uses brownie to compile and publish many different smart contracts (luce registry, dataset, consent, plonk verifier for zkp)