Update documentation

This commit is contained in:
status-im-auto 2023-09-26 15:26:01 +00:00
parent de38b6fc6e
commit ac04b48391
72 changed files with 161 additions and 266 deletions

View File

@ -14,7 +14,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/categories/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/docs/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -1979,14 +1979,16 @@ nodes, and applications. Nodes # Nodes are the individual software units using 1
Relay nodes # Relay nodes MUST follow 17/WAKU2-RLN-RELAY to route messages to other nodes in the network for any of the pubsub topics defined as the Waku Network shards. Relay nodes MAY choose to subscribe to any of these shards, but MUST be subscribed to at least one defined shard. Each relay node SHOULD be subscribed to as many shards as it has resources to support. If a relay node supports an encapsulating application, it SHOULD be subscribed to all the shards servicing that application. If resource restrictions prevent a relay node from servicing all shards used by the encapsulating application, it MAY choose to support some shards as a non-relay node.
Bootstrapping and discovery # Nodes MAY use any method to bootstrap connection to the network, but it is RECOMMENDED that each node retrieves a list of bootstrap peers to connect to using EIP-1459 DNS-based discovery. Relay nodes SHOULD use 33/WAKU2-DISCV5 to continually discover other peers in the network. Each relay node MUST encode its supported shards into its discoverable ENR as described in 51/WAKU2-RELAY-SHARDING. The ENR MUST be updated if the set of supported shards change. A node MAY choose to ignore discovered peers that do not support any of the shards in its own subscribed set.
Default services # For each supported shard, each relay node SHOULD enable and support the following protocols as a service node:
12/WAKU2-FILTER to allow resource-restricted peers to subscribe to messages matching a specific content filter. 13/WAKU2-STORE to allow other peers to request historical messages from this node. The store SHOULD be configured to retain at least 12 hours of messages per supported shard. 19/WAKU2-LIGHTPUSH to allow resource-restricted peers to request publishing a message to the network on their behalf. 34/WAKU2-PEER-EXCHANGE to allow resource-restricted peers to discover more peers in a resource efficient way. Non-relay nodes # Nodes MAY opt out of relay functionality on any network shard and instead request services from relay nodes as clients using any of the defined service protocols:
12/WAKU2-FILTER to subscribe to messages matching a specific content filter. 13/WAKU2-STORE to request historical messages matching a specific content filter. 19/WAKU2-LIGHTPUSH to request publishing a message to the network. 34/WAKU2-PEER-EXCHANGE to discover more peers in a resource efficient way. Applications # Applications are the higher-layer projects or platforms that make use of the generalized messaging capability of the network. In other words, an application defines a payload used in the various 10/WAKU2 protocols. Any participant in an application SHOULD make use of an underlying node in order to communicate on the network. Applications SHOULD make use of an autosharding API to allow the underlying node to automatically select the target shard on the Waku Network. See the section on autosharding for more.
12/WAKU2-FILTER to allow resource-restricted peers to subscribe to messages matching a specific content filter. 13/WAKU2-STORE to allow other peers to request historical messages from this node. 19/WAKU2-LIGHTPUSH to allow resource-restricted peers to request publishing a message to the network on their behalf. 34/WAKU2-PEER-EXCHANGE to allow resource-restricted peers to discover more peers in a resource efficient way. Store service nodes # Each relay node SHOULD support 13/WAKU2-STORE as a store service node, for each supported shard. The store SHOULD be configured to retain at least 12 hours of messages per supported shard. Store service nodes SHOULD only store messages with a valid rate_limit_proof attribute.
Non-relay nodes # Nodes MAY opt out of relay functionality on any network shard and instead request services from relay nodes as clients using any of the defined service protocols:
12/WAKU2-FILTER to subscribe to messages matching a specific content filter. 13/WAKU2-STORE to request historical messages matching a specific content filter. 19/WAKU2-LIGHTPUSH to request publishing a message to the network. 34/WAKU2-PEER-EXCHANGE to discover more peers in a resource efficient way. Store client nodes # Nodes MAY request historical messages from 13/WAKU2-STORE service nodes as store clients. A store client SHOULD discard any messages retrieved from a store service node that do not contain a valid rate_limit_proof attribute. The client MAY consider service nodes returning messages without a valid rate_limit_proof attribute as untrustworthy. The mechanism by which this may happen is currently underdefined.
Applications # Applications are the higher-layer projects or platforms that make use of the generalized messaging capability of the network. In other words, an application defines a payload used in the various 10/WAKU2 protocols. Any participant in an application SHOULD make use of an underlying node in order to communicate on the network. Applications SHOULD make use of an autosharding API to allow the underlying node to automatically select the target shard on the Waku Network. See the section on autosharding for more.
RLN rate-limiting # The 17/WAKU2-RLN-RELAY network uses 32/RLN-V1 proofs to ensure that a pre-agreed rate limit is not exceeded by any publisher. While the network is under capacity, individual relayers MAY choose to freely route messages without RLN proofs up to a discretionary bandwidth limit after which messages without proofs MUST be discarded. This bandwidth limit SHOULD be enforced using bandwidth validation mechanism separate from RLN rate-limiting. This implies that quality of service and reliability is significantly lower for messages without proofs and at times of high network utilization these messages may not be relayed at all.
RLN Parameters # For the Waku Network, the epoch is set to 1 second and the maximum number of messages published per epoch is limited to 1 per publisher. The max_epoch_gap is set to 20 seconds, meaning that validators MUST reject messages with an epoch more than 20 seconds into the past or future compared to the validator\u0026rsquo;s own clock. All nodes, validators and publishers, SHOULD use Network Time Protocol (NTP) to synchronize their own clocks, thereby ensuring valid timestamps for proof generation and validation.
Memberships # Each publisher to the Waku Network SHOULD register an RLN membership with one of the RLN storage contracts moderated in the Sepolia registry contract with address 0xF1935b338321013f11068abCafC548A7B0db732C. Initial memberships are registered in the Sepolia RLN storage contract with address 0x58322513A35a8f747AF5A385bA14C2AbE602AA59. RLN membership setup and registration MUST follow 17/WAKU-RLN-RELAY, with the staked_fund set to 0. In other words, the Waku Network does not use RLN staking.
RLN Proofs # Each RLN member MUST generate and attach an RLN proof to every published message as described in 17/WAKU-RLN-RELAY. Slashing is not implemented for the Waku Network. Instead, validators will penalise peers forwarding messages exceeding the rate limit as specified for the rate-limiting validation mechanism. This incentivizes all nodes to validate RLN proofs and reject messages violating rate limits in order to continue participating in the network.
Network traffic # All payload on the Waku Network MUST be encapsulated in a 14/WAKU2-MESSAGE with rate limit proof extensions defined for 17/WAKU2-RLN-RELAY. Each message on the Waku Network SHOULD be validated by each relayer, according to the rules discussed under message validation.
Message Attributes # The mandatory payload attribute MUST contain the message data payload as crafted by the application. The mandatory content_topic attribute MUST specify a string identifier that can be used for content-based filtering. This is also crafted by the application. See Autosharding for more on the content topic format. The optional meta attribute MAY be omitted. If present this will form part of the message uniqueness vector described in 14/WAKU2-MESSAGE. The optional version attribute SHOULD be set to 0. It MUST be interpreted as 0 if not present. The mandatory timestamp attribute MUST contain the Unix epoch time at which the message was generated by the application. The value MUST be in nanoseconds. It MAY contain a fudge factor of up to 1 seconds in either direction to improve resistance to timing attacks. The optional ephemeral attribute MUST be set to true if the message should not be persisted by the Waku Network. The optional rate_limit_proof attribute SHOULD be populated with the RLN proof as set out in RLN Proofs. Messages with this field unpopulated MAY be discarded from the network by relayers. Message Size # Any Waku Message published to the network MUST NOT exceed an absolute maximum size of 150 kilobytes, attributes included. The average size of Waku Messages publised by each publisher SHOULD NOT exceed 4 kilobytes.
Message Attributes # The mandatory payload attribute MUST contain the message data payload as crafted by the application. The mandatory content_topic attribute MUST specify a string identifier that can be used for content-based filtering. This is also crafted by the application. See Autosharding for more on the content topic format. The optional meta attribute MAY be omitted. If present this will form part of the message uniqueness vector described in 14/WAKU2-MESSAGE. The optional version attribute SHOULD be set to 0. It MUST be interpreted as 0 if not present. The mandatory timestamp attribute MUST contain the Unix epoch time at which the message was generated by the application. The value MUST be in nanoseconds. It MAY contain a fudge factor of up to 1 seconds in either direction to improve resistance to timing attacks. The optional ephemeral attribute MUST be set to true if the message should not be persisted by the Waku Network. The optional rate_limit_proof attribute SHOULD be populated with the RLN proof as set out in RLN Proofs. Messages with this field unpopulated MAY be discarded from the network by relayers. This field MUST be populated if the message should be persisted by the Waku Network. Message Size # Any Waku Message published to the network MUST NOT exceed an absolute maximum size of 150 kilobytes, attributes included. The average size of Waku Messages publised by each publisher SHOULD NOT exceed 4 kilobytes.
Message Validation # Relay nodes MUST apply gossipsub v1.1 validation to each relayed message and SHOULD apply all of the rules set out in the section below to determine the validity of a message. Validation has one of three outcomes, repeated here from the gossipsub specification for ease of reference:
Accept - the message is considered valid and it MUST be delivered and forwarded to the network. Reject - the message is considered invalid, MUST be rejected and SHOULD trigger a gossipsub scoring penalty against the transmitting peer. Ignore - the message SHOULD NOT be delivered and forwarded to the network, but this MUST NOT trigger a gossipsub scoring penalty against the transmitting peer. The following validation rules are defined:
Decoding failure # If a message fails to decode as a valid 14/WAKU2-MESSAGE. the relay node MUST reject the message. This SHOULD trigger a penalty against the transmitting peer.

View File

@ -1 +1 @@
"use strict";(function(){const e=document.querySelector("#book-search-input"),t=document.querySelector("#book-search-results");if(!e)return;e.addEventListener("focus",n),e.addEventListener("keyup",s),document.addEventListener("keypress",i);function i(t){if(e===document.activeElement)return;const n=String.fromCharCode(t.charCode);if(!a(n))return;e.focus(),t.preventDefault()}function a(t){const n=e.getAttribute("data-hotkeys")||"";return n.indexOf(t)>=0}function n(){e.removeEventListener("focus",n),e.required=!0,o("/flexsearch.min.js"),o("/en.search-data.min.661ce2eb4a1222f006003541621ba2822f1db3a9280b7421e8b9b17482f2fa97.js",function(){e.required=!1,s()})}function s(){for(;t.firstChild;)t.removeChild(t.firstChild);if(!e.value)return;const n=window.bookSearchIndex.search(e.value,10);n.forEach(function(e){const n=r("<li><a href></a><small></small></li>"),s=n.querySelector("a"),o=n.querySelector("small");s.href=e.href,s.textContent=e.title,o.textContent=e.section,t.appendChild(n)})}function o(e,t){const n=document.createElement("script");n.defer=!0,n.async=!1,n.src=e,n.onload=t,document.head.appendChild(n)}function r(e){const t=document.createElement("div");return t.innerHTML=e,t.firstChild}})()
"use strict";(function(){const e=document.querySelector("#book-search-input"),t=document.querySelector("#book-search-results");if(!e)return;e.addEventListener("focus",n),e.addEventListener("keyup",s),document.addEventListener("keypress",i);function i(t){if(e===document.activeElement)return;const n=String.fromCharCode(t.charCode);if(!a(n))return;e.focus(),t.preventDefault()}function a(t){const n=e.getAttribute("data-hotkeys")||"";return n.indexOf(t)>=0}function n(){e.removeEventListener("focus",n),e.required=!0,o("/flexsearch.min.js"),o("/en.search-data.min.705d6bb234a54da0c327b2ac210788777b5d3cdfc5232ec4c30a358f1b065014.js",function(){e.required=!1,s()})}function s(){for(;t.firstChild;)t.removeChild(t.firstChild);if(!e.value)return;const n=window.bookSearchIndex.search(e.value,10);n.forEach(function(e){const n=r("<li><a href></a><small></small></li>"),s=n.querySelector("a"),o=n.querySelector("small");s.href=e.href,s.textContent=e.title,o.textContent=e.section,t.appendChild(n)})}function o(e,t){const n=document.createElement("script");n.defer=!0,n.async=!1,n.src=e,n.onload=t,document.head.appendChild(n)}function r(e){const t=document.createElement("div");return t.innerHTML=e,t.firstChild}})()

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -21,7 +21,7 @@ recommending the use of a permissive licenses, such as CC0 (with the exception o
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -5,15 +5,13 @@
<meta name="generator" content="Hugo 0.106.0">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="previous versions: 00
WakuFilter is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of WakuRelay specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.
Content filtering # Protocol identifiers:
filter-subscribe: /vac/waku/filter-subscribe/2.0.0-beta1 filter-push: /vac/waku/filter-push/2.0.0-beta1 Content filtering is a way to do message-based filtering. Currently the only content filter being applied is on contentTopic.">
<meta name="description" content="WakuFilter is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of WakuRelay specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.
Content filtering # Protocol identifier*: /vac/waku/filter/2.0.0-beta1
Content filtering is a way to do message-based filtering. Currently the only content filter being applied is on contentTopic.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="12/WAKU2-FILTER" />
<meta property="og:description" content="previous versions: 00
WakuFilter is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of WakuRelay specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.
Content filtering # Protocol identifiers:
filter-subscribe: /vac/waku/filter-subscribe/2.0.0-beta1 filter-push: /vac/waku/filter-push/2.0.0-beta1 Content filtering is a way to do message-based filtering. Currently the only content filter being applied is on contentTopic." />
<meta property="og:description" content="WakuFilter is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of WakuRelay specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.
Content filtering # Protocol identifier*: /vac/waku/filter/2.0.0-beta1
Content filtering is a way to do message-based filtering. Currently the only content filter being applied is on contentTopic." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://rfc.vac.dev/spec/12/" /><meta property="article:section" content="docs" />
@ -23,7 +21,7 @@ filter-subscribe: /vac/waku/filter-subscribe/2.0.0-beta1 filter-push: /vac/waku/
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@ -194,18 +192,9 @@ https://github.com/alex-shpak/hugo-book
</li>
<li><a href="#adversarial-model">Adversarial Model</a>
<ul>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<li><a href="#protobuf">Protobuf</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
<li></li>
</ul>
</li>
</ul>
@ -278,18 +267,12 @@ https://github.com/alex-shpak/hugo-book
</li>
</ul><p>previous versions: <a href="/spec/12/previous-versions/00/">00</a></p>
<hr>
<p><code>WakuFilter</code> is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of <code>WakuRelay</code> specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.</p>
</ul><p><code>WakuFilter</code> is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of <code>WakuRelay</code> specifically designed for bandwidth restricted devices. This is due to the fact that light nodes subscribe to full-nodes and only receive the messages they desire.</p>
<h1 id="content-filtering">
Content filtering
<a class="anchor" href="#content-filtering">#</a>
</h1>
<p><strong>Protocol identifiers</strong>:</p>
<ul>
<li><em>filter-subscribe</em>: <code>/vac/waku/filter-subscribe/2.0.0-beta1</code></li>
<li><em>filter-push</em>: <code>/vac/waku/filter-push/2.0.0-beta1</code></li>
</ul>
<p><strong>Protocol identifier</strong>*: <code>/vac/waku/filter/2.0.0-beta1</code></p>
<p>Content filtering is a way to do <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern#Message_filtering">message-based
filtering</a>.
Currently the only content filter being applied is on <code>contentTopic</code>. This
@ -338,168 +321,71 @@ frequent polling.</p>
Protobuf
<a class="anchor" href="#protobuf">#</a>
</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-protobuf" data-lang="protobuf"><span style="display:flex;"><span>syntax <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;proto3&#34;</span>;<span style="color:#960050;background-color:#1e0010">
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-protobuf" data-lang="protobuf"><span style="display:flex;"><span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">FilterRequest</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">bool</span> subscribe <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">string</span> topic <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">repeated</span> ContentFilter contentFilters <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#75715e">// 12/WAKU2-FILTER rfc: https://rfc.vac.dev/spec/12/
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#f92672">package</span> waku<span style="color:#f92672">.</span>filter.v2;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#75715e">// Protocol identifier: /vac/waku/filter-subscribe/2.0.0-beta1
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">FilterSubscribeRequest</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">enum</span> FilterSubscribeType {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> SUBSCRIBER_PING <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> SUBSCRIBE <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> UNSUBSCRIBE <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> UNSUBSCRIBE_ALL <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">message</span> <span style="color:#a6e22e">ContentFilter</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">string</span> contentTopic <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> }<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">string</span> request_id <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> FilterSubscribeType filter_subscribe_type <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#75715e">// Filter criteria
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">optional</span> <span style="color:#66d9ef">string</span> pubsub_topic <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">repeated</span> <span style="color:#66d9ef">string</span> content_topics <span style="color:#f92672">=</span> <span style="color:#ae81ff">11</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">FilterSubscribeResponse</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">string</span> request_id <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">uint32</span> status_code <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">optional</span> <span style="color:#66d9ef">string</span> status_desc <span style="color:#f92672">=</span> <span style="color:#ae81ff">11</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">MessagePush</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">repeated</span> WakuMessage messages <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#75715e">// Protocol identifier: /vac/waku/filter-push/2.0.0-beta1
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">MessagePush</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> WakuMessage waku_message <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">optional</span> <span style="color:#66d9ef">string</span> pubsub_topic <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#66d9ef">message</span> <span style="color:#a6e22e">FilterRPC</span> {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#66d9ef">string</span> requestId <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> FilterRequest request <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> MessagePush push <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>;<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></span></span></code></pre></div><h2 id="filter-subscribe">
Filter-Subscribe
<a class="anchor" href="#filter-subscribe">#</a>
</h2>
<p>A filter service node MUST support the <em>filter-subscribe</em> protocol
to allow filter clients to subscribe, modify, refresh and unsubscribe a desired set of filter criteria.
The combination of different filter criteria for a specific filter client node is termed a &ldquo;subscription&rdquo;.
A filter client is interested in receiving messages matching the filter criteria in its registered subscriptions.</p>
<p>Since a filter service node is consuming resources to provide this service,
it MAY account for usage and adapt its service provision to certain clients.
An incentive mechanism is currently planned but underspecified.</p>
<h3 id="filter-subscribe-request">
Filter Subscribe Request
<a class="anchor" href="#filter-subscribe-request">#</a>
</h3>
<p>A client node MUST send all filter requests in a <code>FilterSubscribeRequest</code> message.
This request MUST contain a <code>request_id</code>.
The <code>request_id</code> MUST be a uniquely generated string.
Each request MUST include a <code>filter_subscribe_type</code>, indicating the type of request.</p>
<h3 id="filter-subscribe-response">
Filter Subscribe Response
<a class="anchor" href="#filter-subscribe-response">#</a>
</h3>
<p>In return to any <code>FilterSubscribeRequest</code>,
a filter service node SHOULD respond with a <code>FilterSubscribeResponse</code> with a <code>requestId</code> matching that of the request.
This response MUST contain a <code>status_code</code> indicating if the request was successful or not.
Successful status codes are in the <code>2xx</code> range.
Client nodes SHOULD consider all other status codes as error codes and assume that the requested operation had failed.
In addition, the filter service node MAY choose to provide a more detailed status description in the <code>status_desc</code> field.</p>
<h3 id="filter-matching">
Filter matching
<a class="anchor" href="#filter-matching">#</a>
</h3>
<p>In the description of each request type below,
the term &ldquo;filter criteria&rdquo; refers to the combination of <code>pubsub_topic</code> and a set of <code>content_topics</code>.
The request MAY include filter criteria, conditional to the selected <code>filter_subscribe_type</code>.
If the request contains filter criteria,
it MUST contain a <code>pubsub_topic</code>
and the <code>content_topics</code> set MUST NOT be empty.
A <code>WakuMessage</code> matches filter criteria when its <code>content_topic</code> is in the <code>content_topics</code> set
and it was published on a matching <code>pubsub_topic</code>.</p>
<h3 id="filter-subscribe-types">
Filter Subscribe Types
<a class="anchor" href="#filter-subscribe-types">#</a>
</h3>
<p>The following filter subscribe types are defined:</p>
<h4 id="subscriber_ping">
SUBSCRIBER_PING
<a class="anchor" href="#subscriber_ping">#</a>
</span></span></span></code></pre></div><h4 id="filterrpc">
FilterRPC
<a class="anchor" href="#filterrpc">#</a>
</h4>
<p>A filter client that sends a <code>FilterSubscribeRequest</code> with <code>filter_subscribe_type</code> set to <code>SUBSCRIBER_PING</code>
requests that the service node SHOULD indicate if it has any active subscriptions for this client.
The filter client SHOULD exclude any filter criteria from the request.
The filter service node SHOULD respond with a success code if it has any active subscriptions for this client
or an error code if not.
The filter service node SHOULD ignore any filter criteria in the request.</p>
<h4 id="subscribe">
SUBSCRIBE
<a class="anchor" href="#subscribe">#</a>
<p>A node MUST send all Filter messages (<code>FilterRequest</code>, <code>MessagePush</code>) wrapped inside a
<code>FilterRPC</code> this allows the node handler to determine how to handle a message as the Waku
Filter protocol is not a request response based protocol but instead a push based system.</p>
<p>The <code>requestId</code> MUST be a uniquely generated string. When a <code>MessagePush</code> is sent
the <code>requestId</code> MUST match the <code>requestId</code> of the subscribing <code>FilterRequest</code> whose filters
matched the message causing it to be pushed.</p>
<h4 id="filterrequest">
FilterRequest
<a class="anchor" href="#filterrequest">#</a>
</h4>
<p>A filter client that sends a <code>FilterSubscribeRequest</code> with <code>filter_subscribe_type</code> set to <code>SUBSCRIBE</code>
requests that the service node SHOULD push messages matching this filter to the client.
The filter client MUST include the desired filter criteria in the request.
A client MAY use this request type to <em>modify</em> an existing subscription
by providing <em>additional</em> filter criteria in a new request.
A client MAY use this request type to <em>refresh</em> an existing subscription
by providing <em>the same</em> filter criteria in a new request.
The filter service node SHOULD respond with a success code if it successfully honored this request
or an error code if not.
The filter service node SHOULD respond with an error code and discard the request
if the subscribe request does not contain valid filter criteria,
i.e. both a <code>pubsub_topic</code> <em>and</em> a non-empty <code>content_topics</code> set.</p>
<h4 id="unsubscribe">
UNSUBSCRIBE
<a class="anchor" href="#unsubscribe">#</a>
<p>A <code>FilterRequest</code> contains an optional topic, zero or more content filters and
a boolean signifying whether to subscribe or unsubscribe to the given filters.
True signifies &lsquo;subscribe&rsquo; and false signifies &lsquo;unsubscribe&rsquo;.</p>
<p>A node that sends the RPC with a filter request and <code>subscribe</code> set to &rsquo;true&rsquo;
requests that the filter node SHOULD notify the light requesting node of messages
matching this filter.</p>
<p>A node that sends the RPC with a filter request and <code>subscribe</code> set to &lsquo;false&rsquo;
requests that the filter node SHOULD stop notifying the light requesting node
of messages matching this filter if it is currently doing so.</p>
<p>The filter matches when content filter and, optionally, a topic is matched.
Content filter is matched when a <code>WakuMessage</code> <code>contentTopic</code> field is the same.</p>
<p>A filter node SHOULD honor this request, though it MAY choose not to do so. If
it chooses not to do so it MAY tell the light why. The mechanism for doing this
is currently not specified. For notifying the light node a filter node sends a
MessagePush message.</p>
<p>Since such a filter node is doing extra work for a light node, it MAY also
account for usage and be selective in how much service it provides. This
mechanism is currently planned but underspecified.</p>
<h4 id="messagepush">
MessagePush
<a class="anchor" href="#messagepush">#</a>
</h4>
<p>A filter client that sends a <code>FilterSubscribeRequest</code> with <code>filter_subscribe_type</code> set to <code>UNSUBSCRIBE</code>
requests that the service node SHOULD <em>stop</em> pushing messages matching this filter to the client.
The filter client MUST include the filter criteria it desires to unsubscribe from in the request.
A client MAY use this request type to <em>modify</em> an existing subscription
by providing <em>a subset of</em> the original filter criteria to unsubscribe from in a new request.
The filter service node SHOULD respond with a success code if it successfully honored this request
or an error code if not.
The filter service node SHOULD respond with an error code and discard the request
if the unsubscribe request does not contain valid filter criteria,
i.e. both a <code>pubsub_topic</code> <em>and</em> a non-empty <code>content_topics</code> set.</p>
<h4 id="unsubscribe_all">
UNSUBSCRIBE_ALL
<a class="anchor" href="#unsubscribe_all">#</a>
</h4>
<p>A filter client that sends a <code>FilterSubscribeRequest</code> with <code>filter_subscribe_type</code> set to <code>UNSUBSCRIBE_ALL</code>
requests that the service node SHOULD <em>stop</em> pushing messages matching <em>any</em> filter to the client.
The filter client SHOULD exclude any filter criteria from the request.
The filter service node SHOULD remove any existing subscriptions for this client.
It SHOULD respond with a success code if it successfully honored this request
or an error code if not.</p>
<h2 id="filter-push">
Filter-Push
<a class="anchor" href="#filter-push">#</a>
</h2>
<p>A filter client node MUST support the <em>filter-push</em> protocol
to allow filter service nodes to push messages matching registered subscriptions to this client.</p>
<p>A filter service node SHOULD push all messages
matching the filter criteria in a registered subscription
to the subscribed filter client.
These <a href="./waku-message.md"><code>WakuMessage</code>s</a> are likely to come from <a href="https://rfc.vac.dev/spec/11/"><code>11/WAKU2-RELAY</code></a>,
but there MAY be other sources or protocols where this comes from.
This is up to the consumer of the protocol.</p>
<p>If a message push fails,
the filter service node MAY consider the client node to be unreachable.
If a specific filter client node is not reachable from the service node for a period of time,
the filter service node MAY choose to stop pushing messages to the client and remove its subscription.
This period is up to the service node implementation.
We consider <code>1 minute</code> to be a reasonable default.</p>
<h3 id="message-push">
Message Push
<a class="anchor" href="#message-push">#</a>
</h3>
<p>Each message MUST be pushed in a <code>MessagePush</code> message.
Each <code>MessagePush</code> MUST contain one (and only one) <code>waku_message</code>.
If this message was received on a specific <code>pubsub_topic</code>,
it SHOULD be included in the <code>MessagePush</code>.
A filter client SHOULD NOT respond to a <code>MessagePush</code>.
Since the filter protocol does not include caching or fault-tolerance,
this is a best effort push service with no bundling
or guaranteed retransmission of messages.
A filter client SHOULD verify that each <code>MessagePush</code> it receives
originated from a service node where the client has an active subscription
and that it matches filter criteria belonging to that subscription.</p>
<p>A filter node that has received a filter request SHOULD push all messages that
match this filter to a light node. These <a href="./waku-message.md"><code>WakuMessage</code>&rsquo;s</a> are likely to come from the
<code>relay</code> protocol and be kept at the Node, but there MAY be other sources or
protocols where this comes from. This is up to the consumer of the protocol.</p>
<p>A filter node MUST NOT send a push message for messages that have not been
requested via a FilterRequest.</p>
<p>If a specific light node isn&rsquo;t connected to a filter node for some specific
period of time (e.g. a TTL), then the filter node MAY choose to not push these
messages to the node. This period is up to the consumer of the protocol and node
implementation, though a reasonable default is one minute.</p>
<hr>
<h1 id="future-work">
Future Work
@ -604,18 +490,9 @@ Note that the current structure of filter requests i.e., <code>FilterRPC</code>
</li>
<li><a href="#adversarial-model">Adversarial Model</a>
<ul>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<li><a href="#protobuf">Protobuf</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
<li></li>
</ul>
</li>
</ul>

View File

@ -21,7 +21,7 @@ Design Requirements # Nodes willing to provide storage service using 13/WAKU2-ST
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ The present document specifies the Waku v2 message format, a way to encapsulate
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Publishing such packet will require the creation of a new Message with a new Wak
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Wire Protocol # Transport # Nodes SHOULD expose an accessible JSON-RPC API. The
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Motivation # In open and anonymous p2p messaging networks, one big problem is sp
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Motivation # The Waku network makes up a service network, and some nodes provide
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Payloads # syntax = &#34;proto3&#34;; message PushRequest { string pubsub_topic
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Definitions # Term Description Peer The other nodes that a node is connected to.
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ The main purpose of this specification is to demonstrate how Waku v2 can be used
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -25,7 +25,7 @@ Design # The chat protocol enables sending and receiving messages in a chat room
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ pubsub topics, used for routing Content topics, used for content-based filtering
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Smart contract # Voting should be finalized on chain so that the finished vote i
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ This specification is largely based on EIP-1459, with the only deviation being t
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Large sections of the specification originate from EIP-627: Whisper spec as well
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Peer management is a closely related concept and refers to the set of actions a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Rules of featuring: - Given community can&rsquo;t be featured twice in a row. -
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Waku v2 relay messaging is specified in 11/WAKU2-RELAY, a minor extension of the
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Definitions # Term Definition CAS Content-addressed storage. Stores data that ca
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Possible limitations # Connectivity: Not publicly connectable vs static IP and D
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ EIP-778 specifies a number of pre-defined keys." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Motivation # RLN guarantees a messaging rate is enforced cryptographically while
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Background and Motivation # It may not be feasible on resource restricted device
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Specifically, it adds support to the ChaChaPoly cipher for symmetric authenticat
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Design requirements # The API should be generic enough, so:" />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Preliminaries # We assume that two users, e." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Format # We introduce the metadata message which is used to convey information a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Since, in this scenario, the devices would be close to each other, authenticatio
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Based on the insight that symmetric message propagation makes deanonymization ea
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Discussing and introducing countermeasures to specific attacks in specific model
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Note: Gossipsub Tor Push does not have a dedicated protocol identifier. It uses
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -23,7 +23,7 @@ Note: Waku Tor Push does not have a dedicated protocol identifier. It uses the s
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Interep ties in web2 identities with reputation, and sorts the users into groups
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Motivation # Waku was created to incrementally improve in areas that Whisper is
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Background and Motivation # Unstructured P2P networks are more robust and resili
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ The index ranges are as follows: index 0 represents the global shards, indices 1
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Motivation # Nodes on a network may want to communicate with each other in a sec
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Session Establishment # A node identifies a peer by their installation-id which
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Terminology # Participant: A participant is a user that is able to send and rece
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Smaller group chats, on the other hand, are out of scope for this document and c
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Note: (Parts of) this RFC will be deprecated in the future as we continue resear
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Motivation # The main goal of this RFC is to generalize 32/RLN-V1 and expand its
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Motivation # Waku was created to incrementally improve in areas that Whisper is
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -17,7 +17,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Motivation # The Status Keycard is a hardware wallet that can be used to store a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -19,7 +19,7 @@ Theory / Semantics # Routing protocol # The Waku Network is built on the 17/WAKU
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@ -342,10 +342,18 @@ A node MAY choose to ignore discovered peers that do not support any of the shar
each relay node SHOULD enable and support the following protocols as a service node:</p>
<ol>
<li><a href="https://rfc.vac.dev/spec/12/">12/WAKU2-FILTER</a> to allow resource-restricted peers to subscribe to messages matching a specific content filter.</li>
<li><a href="https://rfc.vac.dev/spec/13/">13/WAKU2-STORE</a> to allow other peers to request historical messages from this node. The store SHOULD be configured to retain at least <code>12</code> hours of messages per supported shard.</li>
<li><a href="https://rfc.vac.dev/spec/13/">13/WAKU2-STORE</a> to allow other peers to request historical messages from this node.</li>
<li><a href="https://rfc.vac.dev/spec/19/">19/WAKU2-LIGHTPUSH</a> to allow resource-restricted peers to request publishing a message to the network on their behalf.</li>
<li><a href="https://rfc.vac.dev/spec/34/">34/WAKU2-PEER-EXCHANGE</a> to allow resource-restricted peers to discover more peers in a resource efficient way.</li>
</ol>
<h4 id="store-service-nodes">
Store service nodes
<a class="anchor" href="#store-service-nodes">#</a>
</h4>
<p>Each relay node SHOULD support <a href="https://rfc.vac.dev/spec/13/">13/WAKU2-STORE</a> as a store service node,
for each supported shard.
The store SHOULD be configured to retain at least <code>12</code> hours of messages per supported shard.
Store service nodes SHOULD only store messages with a valid <a href="#message-attributes"><code>rate_limit_proof</code></a> attribute.</p>
<h4 id="non-relay-nodes">
Non-relay nodes
<a class="anchor" href="#non-relay-nodes">#</a>
@ -359,6 +367,14 @@ using any of the defined service protocols:</p>
<li><a href="https://rfc.vac.dev/spec/19/">19/WAKU2-LIGHTPUSH</a> to request publishing a message to the network.</li>
<li><a href="https://rfc.vac.dev/spec/34/">34/WAKU2-PEER-EXCHANGE</a> to discover more peers in a resource efficient way.</li>
</ol>
<h4 id="store-client-nodes">
Store client nodes
<a class="anchor" href="#store-client-nodes">#</a>
</h4>
<p>Nodes MAY request historical messages from <a href="https://rfc.vac.dev/spec/13/">13/WAKU2-STORE</a> service nodes as store clients.
A store client SHOULD discard any messages retrieved from a store service node that do not contain a valid <a href="#message-attributes"><code>rate_limit_proof</code></a> attribute.
The client MAY consider service nodes returning messages without a valid <a href="#message-attributes"><code>rate_limit_proof</code></a> attribute as untrustworthy.
The mechanism by which this may happen is currently underdefined.</p>
<h3 id="applications">
Applications
<a class="anchor" href="#applications">#</a>
@ -434,7 +450,7 @@ according to the rules discussed under <a href="#message-validation">message val
<li>The optional <code>version</code> attribute SHOULD be set to <code>0</code>. It MUST be interpreted as <code>0</code> if not present.</li>
<li>The mandatory <code>timestamp</code> attribute MUST contain the Unix epoch time at which the message was generated by the application. The value MUST be in nanoseconds. It MAY contain a fudge factor of up to 1 seconds in either direction to improve resistance to timing attacks.</li>
<li>The optional <code>ephemeral</code> attribute MUST be set to <code>true</code> if the message should not be persisted by the Waku Network.</li>
<li>The optional <code>rate_limit_proof</code> attribute SHOULD be populated with the RLN proof as set out in <a href="#rln-proofs">RLN Proofs</a>. Messages with this field unpopulated MAY be discarded from the network by relayers.</li>
<li>The optional <code>rate_limit_proof</code> attribute SHOULD be populated with the RLN proof as set out in <a href="#rln-proofs">RLN Proofs</a>. Messages with this field unpopulated MAY be discarded from the network by relayers. This field MUST be populated if the message should be persisted by the Waku Network.</li>
</ul>
<h3 id="message-size">
Message Size

View File

@ -23,7 +23,7 @@ flags auxiliary field payload padding signature In case of symmetric encryption,
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ A mailserver SHOULD store envelopes for all topics to be generally useful for an
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Wire Protocol # Transport # Nodes SHOULD expose a JSON RPC API that can be acces
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -25,7 +25,7 @@ waku/core-protocol for Waku protocol definitions (e.g. store, relay, light push)
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/an-optional-list-of-tags-not-standard/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/logos/consensus/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/rln/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku-application/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku-core-protocol/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku-core/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku/anonymity/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku/application/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -15,7 +15,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.e935e20bd0d469378cb482f0958edf258c731a4f895dccd55799c6fbc8043f23.css" integrity="sha256-6TXiC9DUaTeMtILwlY7fJYxzGk&#43;JXczVV5nG&#43;8gEPyM=">
<script defer src="/en.search.min.f4f594e7e343e38ffa6ecd18b101d7523500ebcf0c7eb2a9b25dceabf3865173.js" integrity="sha256-9PWU5&#43;ND44/6bs0YsQHXUjUA688MfrKpsl3Oq/OGUXM="></script>
<script defer src="/en.search.min.5ae14046c81918d2a9c50127aabc329f4f345e6c256f04e9ae05f6d48759463d.js" integrity="sha256-WuFARsgZGNKpxQEnqrwyn080XmwlbwTprgX21IdZRj0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/tags/waku/core-protocol/index.xml" title="Vac RFC" />
<!--
Made with Book Theme