moved specs

This commit is contained in:
decanus 2020-02-20 10:22:13 -05:00
parent 67922a0549
commit 5cbb34cab0
No known key found for this signature in database
GPG Key ID: E95B8C69228FF5B4
8 changed files with 28 additions and 18 deletions

View File

@ -12,17 +12,17 @@ The entire vac protocol is under active development, each specification has its
These protocols define various components of the [vac](https://vac.dev) stack.
- [mvds](./mvds.md) - Data Synchronization protocol for unreliable transports.
- [remote log](./remote-log.md) - Remote replication of local logs.
- [mvds metadata](./mvds-metadata.md) - Metadata field for [MVDS](./mvds.md) messages.
- [mvds](specs/mvds.md) - Data Synchronization protocol for unreliable transports.
- [remote log](specs/remote-log.md) - Remote replication of local logs.
- [mvds metadata](specs/mvds-metadata.md) - Metadata field for [MVDS](specs/mvds.md) messages.
### Waku
Waku is a protocol that substitutes [EIP-627](https://eips.ethereum.org/EIPS/eip-627).
- [waku](./waku/waku.md) - ÐΞVp2p wire protocol, substituting [EIP-627](https://eips.ethereum.org/EIPS/eip-627).
- [envelope data format](./waku/envelope-data-format.md) - [waku](./waku/waku.md) envelope data field specification.
- [mailserver](./waku/mailserver.md) - Mailserver specification for archiving and delivering historical [waku](./waku/waku.md) envelopes on demand.
- [waku](specs/waku/waku.md) - ÐΞVp2p wire protocol, substituting [EIP-627](https://eips.ethereum.org/EIPS/eip-627).
- [envelope data format](specs/waku/envelope-data-format.md) - [waku](specs/waku/waku.md) envelope data field specification.
- [mailserver](specs/waku/mailserver.md) - Mailserver specification for archiving and delivering historical [waku](specs/waku/waku.md) envelopes on demand.
## Style guide

View File

@ -1,4 +1,14 @@
title: "Vac Protocol"
markdown: kramdown
theme: minima
theme: minima
defaults:
-
scope:
path: "specs"
values:
layout: ""
header_pages:
- waku.md

View File

@ -20,7 +20,7 @@
## Abstract
In this specification, we describe a method to construct message history that will aid the consistency guarantees of [MVDS](./mvds.md). Additionally we explain how data sync can be used for more lightweight messages that do not require full synchronization.
In this specification, we describe a method to construct message history that will aid the consistency guarantees of [MVDS](mvds.md). Additionally we explain how data sync can be used for more lightweight messages that do not require full synchronization.
## Motivation
@ -39,7 +39,7 @@ message Metadata {
}
```
Nodes MAY transmit a `Metadata` message by extending the MVDS [message](./mvds.md#payloads) with a `metadata` field.
Nodes MAY transmit a `Metadata` message by extending the MVDS [message](mvds.md#payloads) with a `metadata` field.
```diff
message Message {
@ -54,14 +54,14 @@ message Message {
| Name | Description |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `parents` | list of parent [`message identifier`s](./mvds.md#payloads) for the specific message. |
| `parents` | list of parent [`message identifier`s](mvds.md#payloads) for the specific message. |
| `ephemeral` | indicates whether a message is ephemeral or not. |
## Usage
### `parents`
This field contains a list of parent [`message identifier`s](./mvds.md#payloads) for the specific message. It MUST NOT contain any messages as parent whose `ack` flag was set to `false`. This establishes a directed acyclic graph (DAG)<sup>1</sup> of persistent messages.
This field contains a list of parent [`message identifier`s](mvds.md#payloads) for the specific message. It MUST NOT contain any messages as parent whose `ack` flag was set to `false`. This establishes a directed acyclic graph (DAG)<sup>1</sup> of persistent messages.
Nodes MAY buffer messages until dependencies are satisfied for causal consistency<sup>2</sup>, they MAY also pass the messages straight away for eventual consistency<sup>3</sup>.

View File

@ -111,7 +111,7 @@ Nodes MAY have two modes with which they can send records: `BATCH` and `INTERACT
- All records that require retransmission are added to the payload, given `Send Epoch` has been reached.
<p align="center">
<img src="./assets/mvds/interactive.png" />
<img src="../assets/mvds/interactive.png" />
<br />
Figure 1: Delivery without retransmissions in interactive mode.
</p>
@ -126,7 +126,7 @@ Nodes MAY have two modes with which they can send records: `BATCH` and `INTERACT
<!-- diagram -->
<p align="center">
<img src="./assets/mvds/batch.png" />
<img src="../assets/mvds/batch.png" />
<br />
Figure 2: Delivery without retransmissions in batch mode.
</p>

View File

@ -153,7 +153,7 @@ The *remote log* protobuf is what is stored in the name system.
<!-- diagram -->
<p align="center">
<img src="./assets/remotelog/remote-log.png" />
<img src="../assets/remotelog/remote-log.png" />
<br />
Figure 1: Remote log data synchronization.
</p>
@ -220,7 +220,7 @@ in time.
### Interaction with MVDS
[vac.mvds.Message](./mvds.md#payloads) payloads are the only payloads that MUST be uploaded. Other messages types MAY be uploaded, depending on the implementation.
[vac.mvds.Message](mvds.md#payloads) payloads are the only payloads that MUST be uploaded. Other messages types MAY be uploaded, depending on the implementation.
## Footnotes

View File

@ -15,7 +15,7 @@
## Abstract
In this specification, we describe the [data field used in Waku](./waku.md#abnf-specification) for the encryption, decryption and signing of messages.
In this specification, we describe the [data field used in Waku](waku.md#abnf-specification) for the encryption, decryption and signing of messages.
## Specification

View File

@ -68,7 +68,7 @@ For nodes to communicate, they MUST implement devp2p and run RLPx. They MUST hav
### Gossip based routing
In Whisper, messages are gossiped between peers. Whisper is a form of rumor-mongering protocol that works by flooding to its connected peers based on some factors. Messages are elgible for retransmission until their TTL expires. A node SHOULD relay messages to all connected nodes if an envelope matches their PoW and bloom filter settings. If a node works in light mode, it MAY choose not to forward envelopes. A node MUST NOT send expired envelopes, unless the envelopes are sent as a [mailserver](./mailserver.md) response. A node SHOULD NOT send a message to a peer that it has already sent before.
In Whisper, messages are gossiped between peers. Whisper is a form of rumor-mongering protocol that works by flooding to its connected peers based on some factors. Messages are elgible for retransmission until their TTL expires. A node SHOULD relay messages to all connected nodes if an envelope matches their PoW and bloom filter settings. If a node works in light mode, it MAY choose not to forward envelopes. A node MUST NOT send expired envelopes, unless the envelopes are sent as a [mailserver](mailserver.md) response. A node SHOULD NOT send a message to a peer that it has already sent before.
## Wire Specification
@ -346,7 +346,7 @@ Packet codes `0x7E` and `0x7F` may be used to implement Waku Mail Server and Cli
Waku supports multiple capabilities. These include light node, rate limiting and bridging of traffic. Here we list these capabilities, how they are identified, what properties they have and what invariants they must maintain.
Additionally there is the capability of a mailserver which is documented in its on [specification](./mailserver.md).
Additionally there is the capability of a mailserver which is documented in its on [specification](mailserver.md).
### Light node