mirror of
https://github.com/vacp2p/rfc.git
synced 2025-02-19 10:27:48 +00:00
73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
---
|
|
title: Waku
|
|
version: 2.0.0-beta1
|
|
status: Draft
|
|
authors: Oskar Thorén <oskar@status.im>, Dean Eigenmann <dean@status.im>
|
|
---
|
|
|
|
# Table of Contents
|
|
|
|
- [Abstract](#abstract)
|
|
- [Wire Specification](#wire-specification)
|
|
* [Protobuf](#protobuf)
|
|
- [Changelog](#changelog)
|
|
- [Copyright](#copyright)
|
|
|
|
# Abstract
|
|
|
|
`WakuStore` is a protocol to enable querying of messages received through relay protocol and stored by other nodes.
|
|
|
|
**Protocol identifier***: `/vac/waku/store/2.0.0-beta1`
|
|
|
|
# Wire Specification
|
|
|
|
Peers communicate with each other using a request / response API. The messages sent are Protobuf RPC messages.
|
|
|
|
## Protobuf
|
|
|
|
```protobuf
|
|
message HistoryQuery {
|
|
repeated string topics = 2;
|
|
}
|
|
|
|
message HistoryResponse {
|
|
repeated WakuMessage messages = 2;
|
|
}
|
|
|
|
message HistoryRPC {
|
|
string request_id = 1;
|
|
HistoryQuery query = 2;
|
|
HistoryResponse response = 3;
|
|
}
|
|
```
|
|
|
|
##### HistoryRPC
|
|
|
|
A node MUST send all History messages (`HistoryQuery`, `HistoryResponse`) wrapped inside a
|
|
`HistoryRPC`.
|
|
|
|
The `request_id` MUST be a uniquely generated string, the `HistoryResponse` and `HistoryQuery` `request_id` MUST match. The `HistoryResponse` message SHOULD contain any messages found
|
|
whose `topic` can be found in the `HistoryQuery` `topics` array. Any message whose `topic` does not match MUST NOT be included.
|
|
|
|
##### HistoryQuery
|
|
|
|
RPC call to query historical messages.
|
|
|
|
The `topics` field MUST indicate the list of topics to query.
|
|
|
|
##### HistoryResponse
|
|
|
|
RPC call to respond to a HistoryQuery call.
|
|
|
|
The `messages` field MUST contain the messages found, these are [`WakuMessage`] types as defined in the corresponding [specification](./waku-message.md).
|
|
|
|
# Changelog
|
|
|
|
2.0.0-beta1
|
|
Initial draft version. Released [2020-10-06](https://github.com/vacp2p/specs/commit/75b4c39e7945eb71ad3f9a0a62b99cff5dac42cf)
|
|
|
|
# Copyright
|
|
|
|
Copyright and related rights waived via
|
|
[CC0](https://creativecommons.org/publicdomain/zero/1.0/).
|