A framework for building, testing, and deploying programs on the Logos Execution Zone (LEZ).
Lezard is a framework that provides helpers to spin up a local sequencer, deploy RISC Zero guest programs, send transactions, and verify on-chain state.
Early development — Lezard is in its initial phase. For now, it's best to keep
lssa,lezard, and your projects in the same parent directory. In the future Lezard will be a standalone framework that pulls its dependencies from crates.io / git.
- Rust — install the latest from rustup.rs
- Docker — required by
cargo risczero buildto compile guest programs for RISC-V - RISC Zero — follow the installation guide
# Create a working directory
mkdir lez-dev && cd lez-dev
# Clone the repos
git clone git@github.com:logos-blockchain/lssa.git
git clone git@github.com:gravityblast/lezard.git
# Scaffold a new project
./lezard/create-project.sh my-project
cd my-project
# Build the test guest programs
make build
# Run tests
make testAfter running create-project.sh, your project looks like this:
my-project/
├── Cargo.toml # Depends on lezard framework
├── Makefile # build / test targets
├── programs/ # Guest programs (compiled to RISC-V)
│ ├── Cargo.toml
│ └── src/bin/
│ ├── double.rs # Example: doubles guest program
│ └── ...
└── tests/ # Integration tests
└── double_test.rs # Deploys and test double.rs
Guest programs live in programs/src/bin/. Each .rs file becomes a separate RISC-V ELF binary.
Tests live in tests/. They use the lezard library to start a local sequencer, deploy programs, send transactions, and assert on-chain state.
Contributions are welcome! Feel free to open issues and pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -am 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
MIT or Apache-2.0
