mirror of
https://github.com/vacp2p/de-mls.git
synced 2026-01-08 21:17:56 -05:00
de-mls with Waku (#29)
* start building waku for group_chat * replace test * replace test * fix building issue on m2 * continue waku integration * add admin trait * update cfg * update code * replace cli to ws * add docker for each instance * fully working process for joining to the group * update readme * Add Waku and WebSocket actors for message processing and group management - Introduced `WakuActor` for handling message sending and group subscriptions using Waku protocol. - Implemented `Group` actor for managing group creation, member addition/removal, and message processing. - Added `WsActor` for WebSocket communication, enabling user connections and message handling. - Defined message structures for processing and sending messages within the Waku and WebSocket contexts. - Enhanced error handling and logging for message operations. * Refactor Waku and WebSocket integration for improved message handling - Updated `WakuActor` to return a vector of `WakuContentTopic` upon subscription, enhancing group topic management. - Introduced `AppState` struct to centralize application state, including Waku actor reference and content topics. - Refactored main loop to utilize `AppState`, improving message flow between Waku and WebSocket actors. - Enhanced message handling in `WsActor` to support `MessageToPrint`, allowing for structured message sending. - Improved error handling and logging throughout the message processing pipeline. * Refactor Waku message handling and clean up unused code * Refactor and remove unused components from the project - Deleted the `sc_key_store` module and its associated files, streamlining the codebase. - Removed unused Docker and Git configuration files, enhancing project clarity. - Cleaned up `.gitignore` and `.dockerignore` to reflect current project structure. - Updated `Cargo.toml` files to remove references to deleted modules and dependencies. - Refactored Waku and WebSocket actors to improve message handling and group management. - Enhanced error handling and logging throughout the message processing pipeline. - Adjusted frontend input styling for better user experience. * Update CI workflow to use 'main' branch and add support for manual triggers * Enhance Waku integration and documentation - Added instructions for running a test Waku node in the README. - Refactored Waku message handling in `ds_waku.rs` to improve content topic management and error handling. - Updated `Cargo.toml` dependencies for better compatibility and removed unused entries. - Improved error handling in `DeliveryServiceError` for Waku node operations. - Cleaned up CI workflow by commenting out unused test jobs. - Enhanced logging in tests for better traceability of message flows. * Update CI workflow to include Go setup for testing - Added steps to the CI configuration to set up Go version 1.20.x for user tests. - Ensured consistent environment setup across different jobs in the CI pipeline. * Update package versions to 1.0.0 in Cargo.toml files for the main project and 'ds' module * Update README to include note on frontend implementation based on Chatr
This commit is contained in:
committed by
GitHub
parent
49ab2b4aaa
commit
c99eadb302
29
README.md
29
README.md
@@ -1,17 +1,30 @@
|
||||
# de-mls
|
||||
|
||||
Decentralized MLS PoC using a smart contract for group coordination
|
||||
|
||||
## Run Redis Server
|
||||
> Note: The frontend implementation is based on [chatr](https://github.com/0xLaurens/chatr), a real-time chat application built with Rust and SvelteKit
|
||||
|
||||
`docker-compose up`
|
||||
## Run Test Waku Node
|
||||
|
||||
## Install deps
|
||||
```bash
|
||||
docker run -p 8645:8645 -p 60000:60000 wakuorg/nwaku:v0.33.1 --cluster-id=15 --rest --relay --rln-relay=false --pubsub-topic=/waku/2/rs/15/0
|
||||
```
|
||||
|
||||
1. `Foundry`
|
||||
2. `make deps`
|
||||
## Run User Instance
|
||||
|
||||
## Scaffold Environment
|
||||
Create a `.env` file in the `.env` folder for each client containing the following variables:
|
||||
|
||||
1. `make start`: This command will start the docker compose instance, and deploy the smart contract to the local network.
|
||||
```text
|
||||
NAME=client1
|
||||
BACKEND_PORT=3000
|
||||
FRONTEND_PORT=4000
|
||||
NODE_NAME=<waku-node-ip>
|
||||
```
|
||||
|
||||
2. `make stop`: This command will stop the docker compose instance.
|
||||
Run docker compose up for the user instance
|
||||
|
||||
```bash
|
||||
docker-compose --env-file ./.env/client1.env up --build
|
||||
```
|
||||
|
||||
For each client, run the following command to start the frontend on the local host with the port specified in the `.env` file
|
||||
|
||||
Reference in New Issue
Block a user