mirror of
https://github.com/logos-messaging/nim-chat-poc.git
synced 2026-07-19 23:09:32 +00:00
Chat-side integration of the LEZ-backed RLN mix protocol:
- src/chat/delivery/waku_client.nim: mount waku_mix with onchain
RLN spam protection wired to logos_core_client fetchers; gate
the first publish on (a) gifter status confirmation, (b)
cushion of 2 poll intervals after confirmation, and (c) proof
root stability in the local valid_roots window; wrap mix
lightpush in withTimeout so vanished SURB replies surface as
Err instead of pinning the send coroutine.
- src/chat/client.nim: surface sendBytes errors via asyncSpawn
wrapped try/except instead of discarding the future (was
hiding every mix-publish failure).
- chat-side gifter client invocation (RLN membership service
wire format, EIP-191 ethereum-allowlist auth).
- Background membership status watcher that reconciles the
optimistic leaf returned by the gifter against the chain's
authoritative leaf via the status RPC.
Simulation harness (simulations/mix_lez_chat/):
- Spin up sequencer + run_setup + 4 mix nodes (one of which
runs the gifter service) + chat sender + chat receiver.
- SIM_NETWORK={local,testnet}, SIM_SLIM for testnet (reuses
shipped config_account + cached payment_account), Docker
image + GHCR for cross-platform testing.
- Strict mix-pool readiness gate, kademlia + RLN root activity
checks, gifter EIP-191 auth fixture, slim-mode submodule
minimization.
- TREE_ID_HEX pinned to the canonical testnet deployment.
Submodule bumps:
- vendor/nwaku to 8e6ba04 (LEZ-backed RLN mix + 2-phase gifter).
- vendor/logos-lez-rln to 950f287 (SPEL RLN program + mix sim
infrastructure + canonical testnet deploy).
Docs:
- RUN_SLIM_TESTNET.md: slim sim recipe.
- cleanup/MODE_A_GIFTER_SLOT_BUG.md: per-signer nonce collision
postmortem driving the queue+worker fix.
99 lines
1.3 KiB
Plaintext
99 lines
1.3 KiB
Plaintext
/waku_vibe_template
|
|
/waku_vibe_template.dSYM
|
|
/logos_chat
|
|
*.dSYM
|
|
nimble.develop
|
|
nimble.paths
|
|
|
|
/nimcache
|
|
|
|
# Executables shall be put in an ignored build/ directory
|
|
/build
|
|
/rust-bundle/target
|
|
|
|
# Nimble packages
|
|
/vendor/.nimble
|
|
|
|
# Generated Files
|
|
*.generated.nim
|
|
|
|
# ntags/ctags output
|
|
/tags
|
|
|
|
# a symlink that can't be added to the repo because of Windows
|
|
/logos_chat.nims
|
|
|
|
# Ignore dynamic, static libs and libtool archive files
|
|
*.so
|
|
*.dylib
|
|
*.a
|
|
*.la
|
|
*.exe
|
|
*.dll
|
|
|
|
.DS_Store
|
|
|
|
# Ignore simulation generated metrics files
|
|
/metrics/prometheus
|
|
/metrics/waku-sim-all-nodes-grafana-dashboard.json
|
|
|
|
# Simulation runtime state (logs, keystores, configs generated per run)
|
|
/simulations/**/.sim_state/
|
|
|
|
*.log
|
|
/package-lock.json
|
|
/package.json
|
|
node_modules/
|
|
/.update.timestamp
|
|
|
|
# Ignore Jetbrains IDE files
|
|
.idea/
|
|
|
|
# ignore vscode files
|
|
.vscode/
|
|
|
|
# RLN / keystore
|
|
rlnKeystore.json
|
|
*.tar.gz
|
|
|
|
# Nimbus Build System
|
|
nimbus-build-system.paths
|
|
|
|
# sqlite db
|
|
*.db
|
|
*.db-shm
|
|
*.db-wal
|
|
*.sqlite3
|
|
*.sqlite3-shm
|
|
*.sqlite3-wal
|
|
|
|
/examples/nodejs/build/
|
|
/examples/rust/target/
|
|
|
|
|
|
# Coverage
|
|
coverage_html_report/
|
|
*.info
|
|
|
|
# Wildcard
|
|
*.ignore.*
|
|
|
|
# Ignore all possible node runner directories
|
|
**/keystore/
|
|
**/rln_tree/
|
|
**/certs/
|
|
|
|
# simple qt example
|
|
.qmake.stash
|
|
main-qt
|
|
waku_handler.moc.cpp
|
|
|
|
# Nix build result
|
|
result
|
|
|
|
# App data
|
|
.registry/
|
|
.savedkeys/
|
|
|
|
AGENTS.md
|