mirror of
https://github.com/logos-co/logos-rln-modules.git
synced 2026-08-27 13:01:15 +00:00
chore/initial-import
The lez module testnet tests resolved deployments/ relative to the crate, a path that stopped existing at extraction. They now take the checkout from LEZ_RLN_CHECKOUT with the same sibling default as the membership e2e script, and the README documents what the repo actually needs: nix (+ attic secrets for CI), git/network for the staged sources, rust for bare-cargo loops, and a logos-lez-rln checkout for the chain-facing tests only.
logos-rln-modules
The Logos RLN module stack: rate-limiting-nullifier membership for Logos applications, backed by the on-chain RLN registry deployed from logos-lez-rln.
logos-lez-rln-module/—liblogos_lez_rln_module, the RLN registry provider: chain reads (roots, merkle proofs, membership state, registry bounds), the Register transaction, and the faucet funding flow. See its README.logos-rln-module/—liblogos_rln_module, the membership management module (RLN-MEMBERSHIP-MANAGEMENT spec): credential generation + keystore, registration lifecycle, proof generation and verification. Talks to the registry only through the lez-rln module's wire.logos-rln-membership-ui/— the membership UI (QML) driving the two modules from Logos Basecamp.
Prerequisites
- Nix with flakes enabled — the only hard requirement; every build
(modules,
.lgxbundles, UI tests, codegen) runs through the flakes. First builds compile zerokit and the Qt module glue, so the Logos attic cache helps a lot; CI gets it vialogos-co/setup-nix-cache-action, which needs theATTIC_TOKEN_CI/ATTIC_TOKEN_PUBLICrepo secrets. - git + network on first build — the staging scripts clone the pinned
logos-rust-sdk(cached under~/.cache/logos-rln-modules/), and cargo fetchesrln-layoutsfrom the pinned logos-lez-rln rev. - Rust (stable) — only for bare-cargo dev loops (
cargo testin a module'srust-lib/) after staging; the nix builds bring their own pinned toolchain. - A logos-lez-rln checkout — only for the chain-facing tests: the
module-stack e2e (
logos-rln-module/tests/e2e_register_testnet.sh) and the lez module's live-registry tests (LEZ_RLN_TESTNET_TESTS=1) read deployment descriptors from<checkout>/deployments/. Both takeLEZ_RLN_CHECKOUTand default to../logos-lez-rlnnext to this repo. The e2e additionally expectsjq,python3,tar,curl,openssl, andrsyncon the host. - Platforms — darwin-arm64, linux-amd64, linux-arm64 (the variant set the release workflow publishes).
Build
Each module is its own flake; the root flake aggregates the two Rust modules:
nix build .#logos-lez-rln-module-lgx
nix build .#logos-rln-module-lgx
nix run .#inspect-rln-module # or .#inspect-lez-rln-module
The Rust modules build from gitignored staged sources — refresh with
logos-lez-rln-module/stage-sources.sh and
nix run ./logos-rln-module#generate (both clone-and-go; see each
module's README). Release bundles + package catalog: tools/publish.sh.
License
Dual-licensed under MIT or Apache 2.0, at your option.
Description
Logos Core modules for Rate-Limiting Nullifiers: membership registration, proof generation/verification, tracking rate-limits, etc
807 KiB
Languages
Rust
66.3%
QML
23.3%
JavaScript
7.1%
Nix
1.3%
Shell
0.9%
Other
1.1%