This project contains implementations in Noir and corresponding Python generators that allow proving the validity of the Bitcoin block header chain and the possibility of using the corresponding output as the input of a transaction.
The typical workflow is as follows:
- Python generators create configuration files.
- Noir code in the
app/
directory is compiled and executed. - Proofs are generated and verified using the
bb
tool. - All outputs are stored in the
target/
directory.
Important
All commands must be run from the root directory of the repository.
After running any script, you need to install the Python dependencies.
To do that, create a virtual environment and install the dependencies from requirements.txt
using the following commands:
python3 -m venv ./generators/venv
source ./generators/venv/bin/activate
pip install -r requirements.txt
To create the blocks proof, edit config and run this command:
./scripts/blocks.sh
To create any spending proof, edit config and run:
python3 -m generators.general.main
This project is licensed under the MIT License.