mirror of
https://github.com/logos-messaging/pm.git
synced 2026-01-03 06:33:11 +00:00
3.3 KiB
3.3 KiB
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
- Enables light nodes to push messages to service nodes for relay to the network.
- Requests service nodes to publish messages to WAKU2-RELAY pubsub-topics.
- Provides confirmation that a message has been received by at least one node.
- 🏗️ Supports comprehensive error codes for various failure scenarios.
Usability
- Implements simple async request/response pattern.
- Uses standard Waku Message format.
- Only requires an established libp2p connection.
- 🏗️ Provides descriptive error messages in responses.
Reliability
- Implements retransmission on failure with exponential backoff.
- Implements DoS protection through request rate limitation.
- 🏗️ Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure).
- 🏗️ 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances)
Performance
- Only one network round trip is required for operation; including both configuration and message transmission.
- Minimizes protocol overhead for efficient resource usage.
Supportability
- Linux amd64 CLI as service node
- Browser as client
Store
Functionality
- Provides historical message retrieval from the Waku network, enabling nodes to query for messages they missed while offline.
- Supports multiple query types: time-based, content-topic filtered, and message hash lookups.
- Enables message presence verification without retrieving full message content.
- Supports pagination for efficient retrieval of large message sets, and resuming retrieval after disconnection.
- Supports comprehensive error codes for various failure scenarios.
- 🏗️ Industry practices are applied to PostgreSQL setup to reach appropriate performance
Usability
- Implements simple async request/response pattern.
- Uses standard Waku Message format.
- Only requires an established libp2p connection.
- Provides descriptive error messages in responses.
- Supports query filtering to retrieve only relevant messages by content topic.
Reliability
- Implements DoS protection through request rate limitation.
- (limitation) No guarantees in terms of message presence or retention duration.
- Store node always provide a response; thanks to DoS protection.
Performance
- Only one network round trip is required for operation; including both configuration and message retrieval.
- Implements pagination to manage resource usage on both client and server.
- Allows presence queries to verify message existence without transferring full content.
- Targets query response times under 2 seconds for typical requests.
- 🏗️ 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).
- 🏗️ 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
- Linux amd64 CLI as service node
- PostgreSQL as database engine.
- Browser support as client.