Ekaterina Broslavskaya 8ebeb4d898 FIx waku double message issue (#32)
* Refactor Waku client test to improve node setup and logging

* Refactor Waku integration to use new node setup and improve message handling

* Refactor Waku node setup and message handling with improved configuration

* Refactor main application structure and improve Waku node initialization

- Restructured main application to separate server and Waku node initialization
- Added more detailed logging for Waku node setup and connection process
- Updated Cargo.toml to use underscore naming convention and update Alloy dependency
- Modified Dockerfile to simplify build process
- Improved error handling and task management in main application flow

* Refactor project structure and improve dependency management

- Updated package name in Cargo.toml to use hyphen instead of underscore for consistency.
- Simplified dependency paths for Waku bindings in Cargo.toml files across the project.
- Modified Dockerfile to streamline the build process by removing unnecessary release flags.
- Enhanced README with updated environment variable instructions for better clarity.
- Improved frontend button structure for better user interaction.
- Cleaned up unused code in Waku actor and related tests, enhancing maintainability.

* Update Waku node initialization with auto-subscription notes

- Added comments to clarify that the Waku node is auto-subscribing to the pubsub topic and that explicit subscription is unnecessary due to this behavior.
- Documented the limitation regarding subscription checks in Waku, referencing the related issue for better context.

* Remove unused Go setup from CI workflow and clean up Cargo.toml by commenting out the library section. This streamlines the configuration and focuses on Rust dependencies.

* Add peer address configuration and benchmark setup

- Introduced a new benchmark configuration in Cargo.toml for `group_flow_benchmark`.
- Updated docker-compose.yml to include `PEER_ADDRESSES` environment variable.
- Enhanced README with instructions for setting `PEER_ADDRESSES` for node connections.
- Modified main.rs to parse and utilize peer addresses for Waku node connections, improving network configuration flexibility.

* Update Cargo.toml and Dockerfile for library configuration and build process

- Added a library section in Cargo.toml to specify bench settings.
- Modified Dockerfile to create necessary source files and streamline the build process by removing redundant commands.
- Updated main.rs to improve error handling for peer address configuration.

* Comment out library and benchmark sections in Cargo.toml, update Dockerfile to streamline build process, and disable CI benchmark jobs in workflow configuration.
2025-03-21 16:25:48 +07:00
2024-12-25 15:06:31 +07:00
2025-03-21 16:25:48 +07:00
2025-03-21 16:25:48 +07:00
2024-12-25 15:06:31 +07:00
2024-12-25 15:06:31 +07:00
2024-12-25 15:06:31 +07:00
2025-03-21 16:25:48 +07:00
2025-03-21 16:25:48 +07:00
2024-04-15 17:25:49 +05:30
2025-03-21 16:25:48 +07:00

de-mls

Decentralized MLS PoC using a smart contract for group coordination

Note: The frontend implementation is based on chatr, a real-time chat application built with Rust and SvelteKit

Run Test Waku Node

This node is used to easially connect different instances of the app between each other.

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/1

Run User Instance

Create a .env file in the .env folder for each client containing the following variables:

NAME=client1
BACKEND_PORT=3000
FRONTEND_PORT=4000
NODE_PORT=60000
PEER_ADDRESSES=[/ip4/x.x.x.x/tcp/60000/p2p/xxxx...xxxx]

Run docker compose up for the user instance

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

Run from the frontend directory

PUBLIC_API_URL=http://0.0.0.0:3000 PUBLIC_WEBSOCKET_URL=ws://localhost:3000 npm run dev

Run from the root directory

RUST_BACKTRACE=full RUST_LOG=info NODE_PORT=60001 PEER_ADDRESSES=/ip4/x.x.x.x/tcp/60000/p2p/xxxx...xxxx,/ip4/y.y.y.y/tcp/60000/p2p/yyyy...yyyy cargo run --  --nocapture

Example of ban user

In chat message block run ban command, note that user wallet address should be in the format without 0x

/ban f39555ce6ab55579cfffb922665825e726880af6
Description
No description provided
Readme 2.7 MiB
Languages
Rust 96.9%
CSS 3.1%