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

Open
3 tasks
shash256 opened this issue Jul 1, 2024 · 0 comments
Open
3 tasks

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

shash256 opened this issue Jul 1, 2024 · 0 comments
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
@shash256 shash256 self-assigned this 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant