Functionality
- Provides historical message retrieval from the relay 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
- Provides a retention policy mechanism that allows keeping the disk occupation constant.
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.
- 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.
- 95th percentile of hash queries are served in less than 10ms of less than 10 hashes; for a database less than 250 GB size and average message size under 500KiB (Vac-DST).
- 90th percentile of time range queries are served in less than 10ms; if the query is less than 1 hour, using up to 10 content topics, for a database less than 250 GB size and average message size under 500KiB (Vac-DST).
See dashboards
Supportability
- Linux amd64 CLI as service node
- PostgreSQL as database engine.
- Browser support as client.