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

State synchronization/consensus in waku2 store protocol #80

Open
staheri14 opened this issue Jul 26, 2021 · 0 comments
Open

State synchronization/consensus in waku2 store protocol #80

staheri14 opened this issue Jul 26, 2021 · 0 comments

Comments

@staheri14
Copy link
Contributor

staheri14 commented Jul 26, 2021

Problem

The current state synchronization of the Waku2 store protocol is empowered by the Waku FT-store protocol.

  • Store nodes (while being online) listen to the network and store all the messages of the community.
  • Store nodes are allowed to go offline and then recover the gap in their message history by performing time-based queries from another store node that has been online for that duration.
  • Waku2 FT-store works based on the following assumptions
    • At any time, there is at least one online store node from which the history can be retrieved
    • Nodes (including store nodes and other regular nodes who publish messages) have synchronized clocks with a +-20 seconds error margin
    • There is no network partition, that is all the store nodes will ultimately receive all the messages transmitted in the network

Under the aforementioned assumptions, Waku2 FT-store protocol provides eventual consistency. However, the message state of store nodes may diverge for some points in time due to network delay.

However, we are seeking a better solution to get past the current assumptions and limitations, namely:

  • No reliance on the synchronization of nodes' clocks
  • Enforces replicated message state across store nodes for some configurable intervals
  • Better network partition tolerance

Solution ideas and ongoing efforts

There is ongoing research and development on a more advanced state synchronization protocol. The initial proposal is provided in #73. This proposal has a potential scalability issue and is prone to snowball effect which can eat up a large portion of store nodes bandwidth.
Further solution proposal with better scalability is currently underway (I will link it to this issue when it gets ready).

@oskarth oskarth changed the title State synchronization/consensus in waku2 sore protocol State synchronization/consensus in waku2 store protocol Jul 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant