mirror of
https://github.com/logos-messaging/pm.git
synced 2026-01-10 10:03:08 +00:00
2025 H2 Roadmap and FURPS
Roadmap draft for 2025 H2. Uses new format https://github.com/waku-org/pm/pull/299
This commit is contained in:
parent
8bc19820f2
commit
c05355493a
79
FURPS.md
Normal file
79
FURPS.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Waku FURPS
|
||||
|
||||
- 🏗️: New planned property, yet to be delivered.
|
||||
- (Vac-DST): Simulations to verify this property
|
||||
- (Vac-QA): Additional test coverage by Vac-QA to verify this property
|
||||
|
||||
## Core
|
||||
|
||||
### Light Push
|
||||
|
||||
#### Functionality
|
||||
|
||||
1. Enables light nodes to push messages to service nodes for relay to the network.
|
||||
2. Requests service nodes to publish messages to WAKU2-RELAY pubsub-topics.
|
||||
3. Provides confirmation that a message has been received by at least one node.
|
||||
4. 🏗️ Supports comprehensive error codes for various failure scenarios.
|
||||
|
||||
#### Usability
|
||||
|
||||
1. Implements simple async request/response pattern.
|
||||
2. Uses standard Waku Message format.
|
||||
3. Only requires an established libp2p connection.
|
||||
4. 🏗️ Provides descriptive error messages in responses.
|
||||
|
||||
#### Reliability
|
||||
|
||||
1. Implements retransmission on failure with exponential backoff.
|
||||
2. Implements DoS protection through request rate limitation.
|
||||
3. 🏗️ Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).
|
||||
4. 🏗️ 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances)
|
||||
|
||||
#### Performance
|
||||
|
||||
1. Only one network round trip is required for operation; including both configuration and message transmission.
|
||||
2. Minimizes protocol overhead for efficient resource usage.
|
||||
|
||||
#### Supportability
|
||||
|
||||
1. nwaku as service node
|
||||
2. js-waku as edge node
|
||||
|
||||
### Store
|
||||
|
||||
#### Functionality
|
||||
|
||||
1. Provides historical message retrieval from the Waku network, enabling nodes to query for messages they missed while offline.
|
||||
2. Supports multiple query types: time-based, content-topic filtered, and message hash lookups.
|
||||
3. Enables message presence verification without retrieving full message content.
|
||||
4. Supports pagination for efficient retrieval of large message sets, and resuming retrieval after disconnection.
|
||||
5. Supports comprehensive error codes for various failure scenarios.
|
||||
6. 🏗️ Industry practices are applied to PostgreSQL setup to reach appropriate performance
|
||||
|
||||
### Usability
|
||||
|
||||
1. Implements simple async request/response pattern.
|
||||
2. Uses standard Waku Message format.
|
||||
3. Only requires an established libp2p connection.
|
||||
4. Provides descriptive error messages in responses.
|
||||
5. Supports query filtering to retrieve only relevant messages by content topic.
|
||||
|
||||
#### Reliability
|
||||
|
||||
1. Implements DoS protection through request rate limitation.
|
||||
2. (limitation) No guarantees in terms of message presence or retention duration
|
||||
|
||||
#### Performance
|
||||
|
||||
1. Only one network round trip is required for operation; including both configuration and message retrieval.
|
||||
2. Implements pagination to manage resource usage on both client and server.
|
||||
3. Allows presence queries to verify message existence without transferring full content.
|
||||
4. Targets query response times under 2 seconds for typical requests.
|
||||
5. 🏗️ Hash query of less than 10 hashes are served under 400ms; for a database less than 250 GB size and average message size under 500KiB **(Vac-DST)**.
|
||||
6. 🏗️ Time range queries of less than 24 hours, with less than 10 content topics, are served under 400 ms; for a database less than 250 GB size and average message size under 500KiB **(Vac-DST)**.
|
||||
|
||||
#### Supportability
|
||||
|
||||
1. nwaku support as service node.
|
||||
2. Uses PostgreSQL as database engine.
|
||||
3. Browser support (js-waku) as client.
|
||||
68
ROADMAP.md
68
ROADMAP.md
@ -1 +1,67 @@
|
||||
Roadmap and milestones can be found on the [Logos roadmap](https://roadmap.logos.co/waku/).
|
||||
Roadmap and milestones can be found on the [Logos roadmap](https://roadmap.logos.co/waku/).
|
||||
|
||||
## Draft Milestones
|
||||
|
||||
Testing out new format, final roadmap to be pushed in Logos roadmap.
|
||||
|
||||
### Peer-To-Peer Reliability
|
||||
|
||||
Last remains of *Direct Message Reliability* milestone.
|
||||
|
||||
Once delivered, the the reliability of the Waku protocols will be maximised when used with decentralised light push and filter service nodes;
|
||||
in mostly offline or frequently disconnected environments (mobile, laptop).
|
||||
|
||||
This may include some bandwidth overhead that can later be optimized when rolling out enhanced end-to-end reliability strategies.
|
||||
This includes a high reliance on centralized store nodes.
|
||||
|
||||
User experience is catered for, in terms of delay of message retrieval and retention,
|
||||
which is why store performance is also review and maximized for the current circumstances.
|
||||
Limited effort will be spent on store performance as its relevance is expected to reduce mid-long term.
|
||||
|
||||
**Deliverables**:
|
||||
|
||||
#### Define and Implement Light Push Error codes in nwaku.
|
||||
|
||||
**Owner**: nwaku
|
||||
|
||||
**Feature**: Light Push
|
||||
|
||||
**FURPS**:
|
||||
- F4: Supports comprehensive error codes for various failure scenarios.
|
||||
- U4: Provides descriptive error messages in responses.
|
||||
- R3: Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).
|
||||
- R4: 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances)
|
||||
|
||||
For S1: nwaku as service node
|
||||
Includes spec delivery
|
||||
|
||||
#### Implement Light Push Error codes in The Browser
|
||||
|
||||
**Owner**: js-waku
|
||||
|
||||
**Feature**: Light Push
|
||||
|
||||
**FURPS**:
|
||||
- F4: Supports comprehensive error codes for various failure scenarios.
|
||||
- U4: Provides descriptive error messages in responses.
|
||||
- R3: Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).
|
||||
|
||||
For S2: js-waku as edge node
|
||||
Spec delivery not included.
|
||||
|
||||
#### PostgreSQL Optimisation Phase 1
|
||||
|
||||
**Owner**: nwaku
|
||||
|
||||
**Feature**: Store
|
||||
|
||||
**FURPS**:
|
||||
- F6: Industry practices are applied to PostgreSQL setup to reach appropriate performance
|
||||
- P5:️ Hash query of less than 10 hashes are served under 400ms; for a database less than 250 GB size and average message size under 500KiB **(Vac-DST)**.
|
||||
- P6:️ Time range queries of less than 24 hours, with less than 10 content topics, are served under 400 ms; for a database less than 250 GB size and average message size under 500KiB **(Vac-DST)**.
|
||||
|
||||
For S1: nwaku support as service node.
|
||||
|
||||
#### P2P Reliability Implementation in the Browser
|
||||
|
||||
TBD
|
||||
Loading…
x
Reference in New Issue
Block a user