Update documentation

This commit is contained in:
status-im-auto 2023-04-17 08:25:48 +00:00
parent bf355d04e6
commit c6c8abf108
82 changed files with 252 additions and 9428 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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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

@ -488,8 +488,7 @@ Session Establishment # A node identifies a peer by their installation-id which
<guid>https://rfc.vac.dev/spec/55/</guid>
<description>Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -</description>
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages.</description>
</item>
<item>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1555,7 +1555,7 @@ Account recovery # Account recovery is the same as adding a new device, and it M
Partitioned devices # In some cases (i.e. account recovery when no other pairing device is available, device not paired), it is possible that a device will receive a message that is not targeted to its own installation-id. In this case an empty message containing bundle information MUST be sent back, which will notify the receiving end not to include the device in any further communication.
Security Considerations # Inherits all security considerations from 53/WAKU2-X3DH. Recommendations # The value of n SHOULD be configured by the app-protocol. The default value SHOULD be 3, since a larger number of devices will result in a larger bundle size, which may not be desirable in a peer-to-peer network. Copyright # Copyright and related rights waived via CC0.
References # 53/WAKU2-X3DH Signal\u0026rsquo;s Sesame Algorithm 5/SECURE-TRANSPORT `}),e.add({id:44,href:"/spec/55/",title:"55/STATUS-1TO1-CHAT",section:"Docs",content:` Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages. Group chat: A chat where multiple select participants can join and read messages. Group admin: A participant that is able to add/remove participants from a group chat. Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -
53/WAKU2-X3DH 35/WAKU2-NOISE This protocol can provide end-to-end encryption to give peers a strong degree of privacy and security. Public chat messages are publicly readable by anyone since there\u0026rsquo;s no permission model for who is participating in a public chat.
Flow # Negotiation of a 1:1 chat # There are two phases in the initial negotiation of a 1:1 chat:
@ -1564,8 +1564,26 @@ Post Negotiation # After the peers have shared their public key material, a 1:1
Session management # The 1:1 chat is made robust by having sessions between peers. It is handled by the key-exchange protocol used. For example,
53/WAKU2-X3DH, the session management is described in 54/WAKU2-X3DH-SESSIONS
35/WAKU2-NOISE, the session management is described in 37/WAKU2-NOISE-SESSIONS
Negotiation of a 1:1 chat amongst multiple participants (group chat) # A small, private group chat can be constructed by having multiple participants negotiate a 1:1 chat amongst each other. Each participant MUST maintain a session with all other participants in the group chat. This allows for a group chat to be created with a small number of participants.
However, this method does not scale as the number of participants increases, for the following reasons -
The number of messages sent over the network increases with the number of participants. Handling the X3DH key exchange for each participant is computationally expensive. The above issues are addressed in 56/STATUS-COMMUNITIES, with other trade-offs.
Flow # The following flow describes how a group chat is created and maintained.
Membership Update Flow # Membership updates have the following wire format:
message MembershipUpdateMessage { // The chat id of the private group chat // derived in the following way: // chat_id = hex(chat_creator_public_key) + \u0026#34;-\u0026#34; + random_uuid // This chat_id MUST be validated by all participants string chat_id = 1; // A list of events for this group chat, first 65 bytes are the signature, then is a // protobuf encoded MembershipUpdateEvent repeated bytes events = 2; oneof chat_entity { // An optional chat message ChatMessage message = 3; // An optional reaction to a message EmojiReaction emoji_reaction = 4; } } where MembershipUpdateEvent is defined as follows:
message MembershipUpdateEvent { // Lamport timestamp of the event uint64 clock = 1; // Optional list of public keys of the targets of the action repeated string members = 2; // Name of the chat for the CHAT_CREATED/NAME_CHANGED event types string name = 3; // The type of the event EventType type = 4; // Color of the chat for the CHAT_CREATED/COLOR_CHANGED event types string color = 5; // Chat image bytes image = 6; enum EventType { UNKNOWN = 0; CHAT_CREATED = 1; // See [CHAT_CREATED](#chat-created) NAME_CHANGED = 2; // See [NAME_CHANGED](#name-changed) MEMBERS_ADDED = 3; // See [MEMBERS_ADDED](#members-added) MEMBER_JOINED = 4; // See [MEMBER_JOINED](#member-joined) MEMBER_REMOVED = 5; // See [MEMBER_REMOVED](#member-removed) ADMINS_ADDED = 6; // See [ADMINS_ADDED](#admins-added) ADMIN_REMOVED = 7; // See [ADMIN_REMOVED](#admin-removed) COLOR_CHANGED = 8; // See [COLOR_CHANGED](#color-changed) IMAGE_CHANGED = 9; // See [IMAGE_CHANGED](#image-changed) } } Note that the definitions for ChatMessage and EmojiReaction can be found in chat_message.proto and emoji_reaction.proto.
Chat Created # When creating a group chat, this is the first event that MUST be sent. Any event with a clock value lower than this MUST be discarded. Upon receiving this event a client MUST validate the chat_id provided with the update and create a chat with identified by chat_id.
By default, the creator of the group chat is the only group admin.
Name Changed # To change the name of the group chat, group admins MUST use a NAME_CHANGED event. Upon receiving this event a client MUST validate the chat_id provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored. If the event is valid the chat name SHOULD be changed according to the provided message.
Members Added # To add members to the chat, group admins MUST use a MEMBERS_ADDED event. Upon receiving this event a participant MUST validate the chat_id provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored. If the event is valid, a participant MUST update the list of members of the chat who have not joined, adding the members received.
Member Joined # To signal the intent to start receiving messages from a given chat, new participants MUST use a MEMBER_JOINED event. Upon receiving this event a participant MUST validate the chat_id provided with the updates. If the event is valid a participant MUST add the new participant to the list of participants stored locally. Any message sent to the group chat MUST now include the new participant.
Member Removed # There are two ways in which a member MAY be removed from a group chat:
A member MAY leave the chat by sending a MEMBER_REMOVED event, with the members field containing their own public key. An admin MAY remove a member by sending a MEMBER_REMOVED event, with the members field containing the public key of the member to be removed. Each participant MUST validate the chat_id provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored. If the event is valid, a participant MUST update the local list of members accordingly.
Admins Added # To promote participants to group admin, group admins MUST use an ADMINS_ADDED event. Upon receiving this event, a participant MUST validate the chat_id provided with the updates, MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored. If the event is valid, a participant MUST update the list of admins of the chat accordingly.
Admin Removed # Group admins MUST NOT be able to remove other group admins. An admin MAY remove themselves by sending an ADMIN_REMOVED event, with the members field containing their own public key. Each participant MUST validate the chat_id provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored. If the event is valid, a participant MUST update the list of admins of the chat accordingly.
Color Changed # To change the text color of the group chat name, group admins MUST use a COLOR_CHANGED event.
Image Changed # To change the display image of the group chat, group admins MUST use an IMAGE_CHANGED event.
Security Considerations # Inherits the security considerations of the key-exchange mechanism used, e.g., 53/WAKU2-X3DH or 35/WAKU2-NOISE Copyright # Copyright and related rights waived via CC0.
References # 2/ACCOUNT 53/WAKU2-X3DH 35/WAKU2-NOISE 10/WAKU2 `}),e.add({id:45,href:"/spec/56/",title:"56/STATUS-COMMUNITIES",section:"Docs",content:` Abstract # This document describes the design of Status Communities over Waku v2, allowing for multiple users to communicate in a group chat. This is a key feature for the Status messaging app.
References # 2/ACCOUNT 53/WAKU2-X3DH 35/WAKU2-NOISE 10/WAKU2 7/GROUP-CHAT `}),e.add({id:45,href:"/spec/56/",title:"56/STATUS-COMMUNITIES",section:"Docs",content:` Abstract # This document describes the design of Status Communities over Waku v2, allowing for multiple users to communicate in a group chat. This is a key feature for the Status messaging app.
Background and Motivation # The purpose of Status communities, as specified in this document, is allowing for large group chats. Communities can have further substructure, e.g. specific channels.
Smaller group chats, on the other hand, are out of scope for this document and can be built over 55/STATUS-1TO1-CHAT. We refer to these smaller group chats simply as \u0026ldquo;group chats\u0026rdquo;, to differentiate them from Communities.
For group chats based on 55/STATUS-1TO1-CHAT, the key exchange mechanism MUST be X3DH, as described in 53/WAKU2-X3DH.

File diff suppressed because one or more lines are too long

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.8a1e308e05ef03c79e8c2f78a81d35eb298793da42d51213b13f121ed4d5bbc9.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.d7c85814c4d610853796bb88e233161ef674cc7654eb6625280306c4cfa084b5.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

@ -1 +0,0 @@
"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.bc54823b6ce1c543f43b92db71bd866018f21a24d2998835d9159c738d1d2b08.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

@ -1 +0,0 @@
"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.1deffbf8c4f797754715353d44c02e5a1a18120b6e3b2726d0d14a2853e4a8bd.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

@ -1 +0,0 @@
"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.838df3ca8467335a52d41d9c4c544f711a902c5a5553f18ab5f5292cd7669c96.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

@ -1 +0,0 @@
"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.5393046f46cb16675feae7d4bd34aece3e73ff79055f638a6c27d70c501eda59.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

@ -1 +0,0 @@
"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.fab26b254cf0f59aa8e791a5dcb9140dd4baa470a3068ee9a431a698e9fbbef9.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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<link rel="alternate" type="application/rss+xml" href="https://rfc.vac.dev/index.xml" title="Vac RFC" />
<!--
Made with Book Theme

View File

@ -488,8 +488,7 @@ Session Establishment # A node identifies a peer by their installation-id which
<guid>https://rfc.vac.dev/spec/55/</guid>
<description>Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -</description>
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages.</description>
</item>
<item>

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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -21,7 +21,7 @@ Content filtering is a way to do message-based filtering. Currently the only con
<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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

View File

@ -6,12 +6,10 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -">
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages.">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="55/STATUS-1TO1-CHAT" />
<meta property="og:description" content="Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -" />
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://rfc.vac.dev/spec/55/" /><meta property="article:section" content="docs" />
@ -21,7 +19,7 @@ Specification # Overview # This protocol MAY use any key-exchange mechanism prev
<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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@ -184,6 +182,11 @@ https://github.com/alex-shpak/hugo-book
<li><a href="#session-management">Session management</a></li>
</ul>
</li>
<li><a href="#negotiation-of-a-11-chat-amongst-multiple-participants-group-chat">Negotiation of a 1:1 chat amongst multiple participants (group chat)</a>
<ul>
<li><a href="#flow-1">Flow</a></li>
</ul>
</li>
</ul>
</nav>
@ -247,6 +250,18 @@ https://github.com/alex-shpak/hugo-book
</h1>
<p>This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol.
This protocol can be used to send messages to a single recipient.</p>
<h1 id="terminology">
Terminology
<a class="anchor" href="#terminology">#</a>
</h1>
<ul>
<li><strong>Participant</strong>: A participant is a user that is able to send and receive messages.</li>
<li><strong>1-to-1 chat</strong>: A chat between two participants.</li>
<li><strong>Public chat</strong>: A chat where any participant can join and read messages.</li>
<li><strong>Private chat</strong>: A chat where only invited participants can join and read messages.</li>
<li><strong>Group chat</strong>: A chat where multiple select participants can join and read messages.</li>
<li><strong>Group admin</strong>: A participant that is able to add/remove participants from a group chat.</li>
</ul>
<h1 id="background">
Background
<a class="anchor" href="#background">#</a>
@ -301,6 +316,141 @@ It is handled by the key-exchange protocol used. For example,</p>
<p><a href="/spec/35/">35/WAKU2-NOISE</a>, the session management is described in <a href="/spec/37/">37/WAKU2-NOISE-SESSIONS</a></p>
</li>
</ol>
<h2 id="negotiation-of-a-11-chat-amongst-multiple-participants-group-chat">
Negotiation of a 1:1 chat amongst multiple participants (group chat)
<a class="anchor" href="#negotiation-of-a-11-chat-amongst-multiple-participants-group-chat">#</a>
</h2>
<p>A small, private group chat can be constructed by having multiple participants negotiate a 1:1 chat amongst each other.
Each participant MUST maintain a session with all other participants in the group chat.
This allows for a group chat to be created with a small number of participants.</p>
<p>However, this method does not scale as the number of participants increases, for the following reasons -</p>
<ol>
<li>The number of messages sent over the network increases with the number of participants.</li>
<li>Handling the X3DH key exchange for each participant is computationally expensive.</li>
</ol>
<p>The above issues are addressed in <a href="/spec/56/">56/STATUS-COMMUNITIES</a>, with other trade-offs.</p>
<h3 id="flow-1">
Flow
<a class="anchor" href="#flow-1">#</a>
</h3>
<p>The following flow describes how a group chat is created and maintained.</p>
<h4 id="membership-update-flow">
Membership Update Flow
<a class="anchor" href="#membership-update-flow">#</a>
</h4>
<p>Membership updates have the following wire format:</p>
<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">MembershipUpdateMessage</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">// The chat id of the private group chat
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#75715e">// derived in the following way:
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#75715e">// chat_id = hex(chat_creator_public_key) + &#34;-&#34; + random_uuid
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#75715e">// This chat_id MUST be validated by all participants
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">string</span> chat_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:#75715e">// A list of events for this group chat, first 65 bytes are the signature, then is a
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#75715e">// protobuf encoded MembershipUpdateEvent
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">repeated</span> <span style="color:#66d9ef">bytes</span> events <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">oneof</span> chat_entity {<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">// An optional chat message
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> ChatMessage <span style="color:#66d9ef">message</span> <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:#75715e">// An optional reaction to a message
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> EmojiReaction emoji_reaction <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</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 style="color:#960050;background-color:#1e0010">
</span></span></span></code></pre></div><p>where <code>MembershipUpdateEvent</code> is defined as follows:</p>
<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">MembershipUpdateEvent</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">// Lamport timestamp of the event
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">uint64</span> clock <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:#75715e">// Optional list of public keys of the targets of the action
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">repeated</span> <span style="color:#66d9ef">string</span> members <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:#75715e">// Name of the chat for the CHAT_CREATED/NAME_CHANGED event types
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">string</span> name <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:#75715e">// The type of the event
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> EventType type <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</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">// Color of the chat for the CHAT_CREATED/COLOR_CHANGED event types
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">string</span> color <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</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">// Chat image
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> <span style="color:#66d9ef">bytes</span> image <span style="color:#f92672">=</span> <span style="color:#ae81ff">6</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">enum</span> EventType {<span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010"></span> UNKNOWN <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> CHAT_CREATED <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>; <span style="color:#75715e">// See [CHAT_CREATED](#chat-created)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> NAME_CHANGED <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>; <span style="color:#75715e">// See [NAME_CHANGED](#name-changed)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> MEMBERS_ADDED <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>; <span style="color:#75715e">// See [MEMBERS_ADDED](#members-added)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> MEMBER_JOINED <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>; <span style="color:#75715e">// See [MEMBER_JOINED](#member-joined)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> MEMBER_REMOVED <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>; <span style="color:#75715e">// See [MEMBER_REMOVED](#member-removed)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> ADMINS_ADDED <span style="color:#f92672">=</span> <span style="color:#ae81ff">6</span>; <span style="color:#75715e">// See [ADMINS_ADDED](#admins-added)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> ADMIN_REMOVED <span style="color:#f92672">=</span> <span style="color:#ae81ff">7</span>; <span style="color:#75715e">// See [ADMIN_REMOVED](#admin-removed)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> COLOR_CHANGED <span style="color:#f92672">=</span> <span style="color:#ae81ff">8</span>; <span style="color:#75715e">// See [COLOR_CHANGED](#color-changed)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span> IMAGE_CHANGED <span style="color:#f92672">=</span> <span style="color:#ae81ff">9</span>; <span style="color:#75715e">// See [IMAGE_CHANGED](#image-changed)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></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><!-- raw HTML omitted -->
<p>Note that the definitions for <code>ChatMessage</code> and <code>EmojiReaction</code> can be found in <a href="https://github.com/status-im/status-go/blob/5fd9e93e9c298ed087e6716d857a3951dbfb3c1e/protocol/protobuf/chat_message.proto#L1">chat_message.proto</a> and <a href="https://github.com/status-im/status-go/blob/5fd9e93e9c298ed087e6716d857a3951dbfb3c1e/protocol/protobuf/emoji_reaction.proto">emoji_reaction.proto</a>.</p>
<h5 id="chat-created">
Chat Created
<a class="anchor" href="#chat-created">#</a>
</h5>
<p>When creating a group chat, this is the first event that MUST be sent.
Any event with a clock value lower than this MUST be discarded.
Upon receiving this event a client MUST validate the <code>chat_id</code> provided with the update and create a chat with identified by <code>chat_id</code>.</p>
<p>By default, the creator of the group chat is the only group admin.</p>
<h5 id="name-changed">
Name Changed
<a class="anchor" href="#name-changed">#</a>
</h5>
<p>To change the name of the group chat, group admins MUST use a <code>NAME_CHANGED</code> event.
Upon receiving this event a client MUST validate the <code>chat_id</code> provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored.
If the event is valid the chat name SHOULD be changed according to the provided message.</p>
<h5 id="members-added">
Members Added
<a class="anchor" href="#members-added">#</a>
</h5>
<p>To add members to the chat, group admins MUST use a <code>MEMBERS_ADDED</code> event.
Upon receiving this event a participant MUST validate the <code>chat_id</code> provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored.
If the event is valid, a participant MUST update the list of members of the chat who have not joined, adding the members received.</p>
<h5 id="member-joined">
Member Joined
<a class="anchor" href="#member-joined">#</a>
</h5>
<p>To signal the intent to start receiving messages from a given chat, new participants MUST use a <code>MEMBER_JOINED</code> event.
Upon receiving this event a participant MUST validate the <code>chat_id</code> provided with the updates.
If the event is valid a participant MUST add the new participant to the list of participants stored locally.
Any message sent to the group chat MUST now include the new participant.</p>
<h5 id="member-removed">
Member Removed
<a class="anchor" href="#member-removed">#</a>
</h5>
<p>There are two ways in which a member MAY be removed from a group chat:</p>
<ul>
<li>A member MAY leave the chat by sending a <code>MEMBER_REMOVED</code> event, with the <code>members</code> field containing their own public key.</li>
<li>An admin MAY remove a member by sending a <code>MEMBER_REMOVED</code> event, with the <code>members</code> field containing the public key of the member to be removed.</li>
</ul>
<p>Each participant MUST validate the <code>chat_id</code> provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored.
If the event is valid, a participant MUST update the local list of members accordingly.</p>
<h5 id="admins-added">
Admins Added
<a class="anchor" href="#admins-added">#</a>
</h5>
<p>To promote participants to group admin, group admins MUST use an <code>ADMINS_ADDED</code> event.
Upon receiving this event, a participant MUST validate the <code>chat_id</code> provided with the updates, MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored.
If the event is valid, a participant MUST update the list of admins of the chat accordingly.</p>
<h5 id="admin-removed">
Admin Removed
<a class="anchor" href="#admin-removed">#</a>
</h5>
<p>Group admins MUST NOT be able to remove other group admins.
An admin MAY remove themselves by sending an <code>ADMIN_REMOVED</code> event, with the <code>members</code> field containing their own public key.
Each participant MUST validate the <code>chat_id</code> provided with the updates and MUST ensure the author of the event is an admin of the chat, otherwise the event MUST be ignored.
If the event is valid, a participant MUST update the list of admins of the chat accordingly.</p>
<h5 id="color-changed">
Color Changed
<a class="anchor" href="#color-changed">#</a>
</h5>
<p>To change the text color of the group chat name, group admins MUST use a <code>COLOR_CHANGED</code> event.</p>
<h5 id="image-changed">
Image Changed
<a class="anchor" href="#image-changed">#</a>
</h5>
<p>To change the display image of the group chat, group admins MUST use an <code>IMAGE_CHANGED</code> event.</p>
<h1 id="security-considerations">
Security Considerations
<a class="anchor" href="#security-considerations">#</a>
@ -322,6 +472,7 @@ It is handled by the key-exchange protocol used. For example,</p>
<li><a href="/spec/53/">53/WAKU2-X3DH</a></li>
<li><a href="/spec/35/">35/WAKU2-NOISE</a></li>
<li><a href="/spec/10/">10/WAKU2</a></li>
<li><a href="https://specs.status.im/draft/7">7/GROUP-CHAT</a></li>
</ol>
</article>
@ -367,6 +518,11 @@ It is handled by the key-exchange protocol used. For example,</p>
<li><a href="#session-management">Session management</a></li>
</ul>
</li>
<li><a href="#negotiation-of-a-11-chat-amongst-multiple-participants-group-chat">Negotiation of a 1:1 chat amongst multiple participants (group chat)</a>
<ul>
<li><a href="#flow-1">Flow</a></li>
</ul>
</li>
</ul>
</nav>

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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book

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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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
@ -417,8 +417,7 @@ Session Establishment # A node identifies a peer by their installation-id which
<p>Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages.
<a href="/spec/55/">...</a>
</p>

View File

@ -82,8 +82,7 @@ Session Establishment # A node identifies a peer by their installation-id which
<guid>https://rfc.vac.dev/spec/55/</guid>
<description>Abstract # This specification describes how the Status 1-to-1 chat protocol is implemented on top of the Waku v2 protocol. This protocol can be used to send messages to a single recipient.
Background # This document describes how 2 peers communicate with each other to send messages in a 1-to-1 chat, with privacy and authenticity guarantees.
Specification # Overview # This protocol MAY use any key-exchange mechanism previously discussed -</description>
Terminology # Participant: A participant is a user that is able to send and receive messages. 1-to-1 chat: A chat between two participants. Public chat: A chat where any participant can join and read messages. Private chat: A chat where only invited participants can join and read messages.</description>
</item>
<item>

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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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.d155bdcce811a62aabff33a71acbf51cd25d01df2dd3381e81b0fc5fb8c0bff9.js" integrity="sha256-0VW9zOgRpiqr/zOnGsv1HNJdAd8t0zgegbD8X7jAv/k="></script>
<script defer src="/en.search.min.6c850667c4402a32dafd5e17531337dad3c49720ac8c3a8c62f49e96c5b524bd.js" integrity="sha256-bIUGZ8RAKjLa/V4XUxM32tPElyCsjDqMYvSelsW1JL0="></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