Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Implement E2E Reliability PoC in an example application #1146

Closed
3 tasks done
shash256 opened this issue Jul 1, 2024 · 2 comments · Fixed by #1153, #1220 or #1178
Closed
3 tasks done

feat: Implement E2E Reliability PoC in an example application #1146

shash256 opened this issue Jul 1, 2024 · 2 comments · Fixed by #1153, #1220 or #1178
Assignees

Comments

@shash256
Copy link
Contributor

shash256 commented Jul 1, 2024

Problem

Lack of an end-to-end reliability mechanism in Status chat, which can lead to message loss and inconsistent message ordering in large group chats or under poor network condition

Suggested solution

Implement a Proof of Concept (PoC) for an end-to-end reliability mechanism based on lamport timestamp, ACKs and bloom filters, as an enhancement to the chat2 example application. This solution, based on @jm-clius's proposal, will use bloom filters to track message acknowledgments and ensure reliable message delivery without significant overhead. Please note that this POC is a step towards integration with status-go and this work is NOT intended to be merged to go-waku at this point.

Alternatives considered

  • Research Alternatives:
    Vector clocks: While effective for smaller groups, they don't scale well for large communities.
    Merkle trees: Provide strong consistency but require more complex synchronization processes.
  • Implementation Alternatives:
    Standalone repo: Would be complex a lot of Waku related stuff needs to be imported. chat2_reliability, as an enhancement to chat2 is the fastest and straightforward path to test this idea

Acceptance criteria

  • Implement or re-use any existing bloom filter package
  • Define a new payload and create chat2_reliability to work with the new payload
  • Test and validate this approach, document any learnings prior to status-go integration

Epic

@fryorcraken fryorcraken added this to Waku Jul 1, 2024
@shash256 shash256 self-assigned this Jul 1, 2024
@shash256 shash256 moved this to In Progress in Waku Jul 1, 2024
@shash256 shash256 changed the title feat: Implement Bloom Filter PoC for E2E Reliability feat: Implement E2E Reliability PoC in an example application Jul 1, 2024
@shash256 shash256 linked a pull request Dec 17, 2024 that will close this issue
@shash256 shash256 moved this from In Progress to Done in Waku Dec 17, 2024
@chaitanyaprem
Copy link
Collaborator

@shash256 , i guess we close this since we have tested the example app and already moved to nim implementation

@jm-clius
Copy link

Agreed. @shash256 I've closed the issue. If for some reason we need to re-open, feel free to go ahead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment