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

[Deliverable] Store v3-beta - Message Hashes #131

Closed
4 tasks done
chair28980 opened this issue Feb 5, 2024 · 4 comments
Closed
4 tasks done

[Deliverable] Store v3-beta - Message Hashes #131

chair28980 opened this issue Feb 5, 2024 · 4 comments
Assignees
Labels
Deliverable Tracks a Deliverable

Comments

@chair28980
Copy link
Contributor

chair28980 commented Feb 5, 2024

Project: https://github.com/orgs/waku-org/projects/16/views/1

Epics

Research Milestone

Output

Spec published here: https://github.com/waku-org/specs/blob/master/standards/core/store.md
Reference implementation: waku-org/nwaku#2431
and released in https://github.com/waku-org/nwaku/releases/tag/v0.28.0

Summary

  • Goal: After this upgrade, the network will provide distributed and synchronised store services.
  • Deliverables: (2), (3)
  • Research tracks: Message Reliability
  • Estimated date of completion: 2024Q2

An improved version of the Store protocol, marking a crucial increment towards a synchronisation protocol:

  • introduces the concept of deterministic message hashes to index messages
  • considers the Store as a key-value store
  • allows for querying a list of keys (message hashes) from the Store
  • allows for querying for the full message content (values) of a set of keys from the Store
  • keeps all previous value-based filtering (e.g. content topic, timestamp) in place

The proposed PR to simplify the Store protocol and use message
hashes as index/cursor, can be used as a starting point.

Store v3 - store synchronisation

  • Goal: Upgrade the Store service capability in the network from a collection of local, unsynchronised,
    semi-centralised (trusted) service nodes to a decentralised service capability in the network with inter-node synchronisation.
  • Deliverables: (2), (3)
  • Research tracks: Message Reliability
  • Estimated date of completion: 2024Q2

Building on Store v3-beta, this version of Store includes basic synchronisation between nodes.
This will probably include:

  • a protocol/heuristic to resume store services after an offline period
  • a protocol/heuristic to periodically compare local key-value store with other nodes and find missing keys
  • a protocol/heuristic to periodically download the messages (values) for missing keys from other store nodes

Note that this can either be

  • (i) designing a new synchronisation protocol built into the Store protocol
  • (ii) adapting existing synchronisation building blocks (e.g. a Prolly Tree library) into Store, or
  • (iii) simply swapping the key-value store itself to a synchronised backend, such as GossipLog

IMO (iii) should be pursued as the preferred option, as far as possible.

@chair28980 chair28980 added Deliverable Tracks a Deliverable needs scoping labels Feb 5, 2024
@fryorcraken fryorcraken added this to Waku Feb 5, 2024
@chair28980 chair28980 moved this to In Progress in Waku Mar 19, 2024
@chair28980 chair28980 added this to the Store v3-beta - Message Hashes milestone May 14, 2024
@chair28980 chair28980 changed the title [Milestone] Store v3-beta - Message Hashes [Deliverable] Store v3-beta - Message Hashes May 27, 2024
@chair28980 chair28980 modified the milestones: Store v3-beta - Message Hashes, Store Service Upgrade Jun 5, 2024
@fryorcraken
Copy link
Contributor

Store v3-beta message hashes

I believe the cursor bug led to some delay in integrating in client side.

What's our estimated completion date for the epics including some dogfooding
@Ivansete-status @weboko @richard-ramos (across all clients?)

Store v3 - store synchronisation

I believe this is deployed, Is it enabled? I am guessing best to have "count store message" to properly dogfood and confirm working?
Any other work missing? How much hardening has happened?
@jm-clius @Ivansete-status

@richard-ramos
Copy link
Member

From the point of view of go-waku and status-go nothing pending to be done except merging this PR status-im/status-go#5123, which has been open for a while and rebased from time to time against latest changes from master branch in both go-waku and status-go. @Ivansete-status and I dogfooded this on status.staging last week using this desktop PR status-im/status-desktop#15615

Once shards.test fleet is upgraded to v0.31 the status-go PR can be merged

@fryorcraken
Copy link
Contributor

Delivered

@github-project-automation github-project-automation bot moved this from In Progress to Done in Waku Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Deliverable Tracks a Deliverable
Projects
Status: Done
Development

No branches or pull requests

4 participants