Lightweight. Adaptive. Quantum-Resistant. JAM-native.
- What is JamLiquor?
- Core Principles
- Requirements & Installation
- Getting Started
- Workflows
- Configuration
- Testing & Validation
- Troubleshooting
- Project Status
- Edge Targets
- Cleanroom Policy
- Key References
- Contribute
- License
- Join the Movement
JamLiquor is a purpose-driven, cleanroom JAM Protocol implementation, engineered from scratch in Rust. It is designed to:
- β Conform to JAM's execution model and participate in the JAM ecosystem
- β Run on edge hardware like Milk-V Duo and Raspberry Pi Zero 2 W
- β Support modular innovation, including AI inference and PQ cryptography
JamLiquor is not a fork. It's not a derivative. It is a JAM-native node with radical modularity.
Runs on β€128MB RAM and β€1GHz CPUs. JAM should live at the edge.
No validator elitism. JamLiquor is designed for community-run nodes.
AI inference modules allow the node to adapt in real timeβon-chain and off-chain.
Includes opt-in modules for Dilithium, Kyber, and XMSS.
Minimalist, auditable, and modular. No unnecessary cryptographic gymnastics.
- Rust toolchain
1.75or newer (rustuprecommended) cargoandgit- Linux or macOS host (Windows support via WSL2)
- Optional: cross-compilation toolchains for RISC-V and ARM (see
docs/src/building.md)
git clone https://github.com/jamliqr/jamliquor.git
cd jamliquor
rustup default stable
cargo build --release# Run unit and property tests
cargo test
# Check formatting and lints
cargo fmt -- --check
cargo clippy --all-targets --all-featuresRun the importer prototype against the bundled JAM block fixture:
cargo run --release
# Prints parsed block metadata and state summaryThis loads tests/vectors/codec/data/block.json and outputs:
- Header details (slot, author index, entropy source)
- Ticket counters from
state::State - State transition status
use jamliquor::Importer;
fn main() -> anyhow::Result<()> {
let mut importer = Importer::new();
let block = importer.import_block("tests/vectors/codec/data/block.json")?;
println!("Imported slot {}", block.header.slot);
Ok(())
}See the minimalist entry point in src/main.rs and additional guides in docs/src/README.md.
- Provision a supported edge target (see Edge Targets).
- Install cross targets:
rustup target add riscv64gc-unknown-linux-gnu rustup target add armv7-unknown-linux-gnueabihf
- Cross-compile the importer:
cargo build --release --target riscv64gc-unknown-linux-gnu
- Deploy the binary plus fixture data under
tests/vectors/to the device. - Run the importer offline while networking and authoring modules mature.
- Review roadmap items in
docs/src/MILESTONE.md. - Start the watch-based loop:
cargo watch -x "test --lib" -x "fmt"
- Implement features in
src/importer.rs,src/state.rs, or new modules underextensions/. - Update fixtures in
tests/vectors/to cover new scenarios. - Run
cargo test --all-targetsandcargo bench(optional) before opening a PR.
Additional workflows for AI, PQC, and lightweight profiles live in docs/src/ (e.g., AI.md, PQC.md, EDGE.md).
- Logging: Set
RUST_LOG=<level>when running (env_loggerbackend). - Input paths: Pass alternate block files to
Importer::import_blockor adjust fixtures intests/vectors/. - Environment profiles: Capture board-specific notes in
docs/src/EDGE.md. A consolidatedconfig.tomlwill land alongside future networking modules.
Cleanroom practices and configuration expectations are documented in docs/src/CLEANROOM.md.
- Unit & integration tests:
cargo test --all-targets - Property tests: See
tests/forproptest-based suites. - Benchmarks:
cargo bench --bench core_benchmarks - Coverage: GitHub Actions publishes coverage; locally run
cargo llvm-cov --all-features(requirescargo-llvm-cov). - Cross-compilation checks: Follow
docs/src/building.mdand extend CI when adding new targets.
- Update toolchain:
rustup update - Clear build artifacts:
cargo clean && cargo build - Confirm target toolchains for cross builds (see Requirements & Installation).
- Enable verbose logging:
RUST_LOG=debug cargo run - Verify fixture paths and JSON structure in
tests/vectors/ - Ensure at least 128β―MB RAM on edge devices.
- Networking modules remain experimentalβtrack progress in
docs/src/NETWORK.md. - PQC and AI extensions live under
extensions/; verify feature availability before enabling in production prototypes.
For unresolved issues, open an issue with logs, hardware profile, and reproduction steps.
| Component | Description | Status |
|---|---|---|
importer/ |
JAM-compliant block/state validation | π‘ In Progress |
authorer/ |
SAFROLE-based block production engine | βͺ Planned |
vm/ |
PolkaVM (RISC-V) execution backend | βͺ Planned |
extensions/pqc/ |
PQ-safe signatures (Dilithium) | βͺ Experimental |
extensions/ai/ |
TinyML-based inference at edge | βͺ Experimental |
extensions/lite/ |
128MB RAM profile w/ minimal overhead | βͺ Experimental |
For detailed roadmap, milestones, and technical specifications, see our Milestone Documentation.
- Milk-V Duo (RISC-V, 64MB RAM)
- Pine64 Ox64 (RISC-V)
- Raspberry Pi Zero 2 W (ARM)
- StarFive VisionFive 2 (RISC-V, quad-core)
JamLiquor is built:
- Without reuse of non-auditable JAM source code
- With public commit history and architecture provenance
- To be compatible with JAM Prize auditing
See: docs/cleanroom.md
We welcome contributors with passion for:
- JAM internals and protocol fidelity
- Embedded Rust, RISC-V, and minimal blockchain clients
- Cryptography (PQC, VRFs) and inference (TinyML, Rust ML)
See CONTRIBUTING.md to get started.
Licensed under GPL-3.0. Cleanroom declarations and IP policy documented in Cleanroom Policy
JamLiquor is a JAM client with purpose. Compliant by design. Modular by philosophy. Edge-ready by default.
We don't fork the future. We build it.
π§ͺ Disclaimer: A Dream Under Construction
JamLiquor is a bold claim. It reads like an engineering utopia. Many may see it as naΓ―ve or speculative.
And they're not wrong.
This work is:
π± Experimental
π§ͺ Untested at scale
π§© Composed of speculative modules
But:
All real systems begin as dreams.
JamLiquor is:
π§ A sandbox of ideas and engineering
π Built by iteration: brake, fail, fix, retry
π In need of true believers who can build with us
β Warning
We don't promise it will work tomorrow. But we are building it every day to make it work.
- If it works: the credit belongs to everyone who dared to try.
- If it fails: we'll have learned more than most systems ever attempt.
This is not just software. It's a belief in what's possible.
π€ Welcome to JamLiquor. Let's tinker toward something impossible.