Update documentation

This commit is contained in:
status-im-auto 2023-05-10 13:40:53 +00:00
parent fb163fc77f
commit 17cd8fcd5d
54 changed files with 2692 additions and 1814 deletions

View File

@ -169,7 +169,11 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#vac-rfcs">Vac RFCs</a></li>
</ul>
</nav>
@ -243,7 +247,11 @@ communication.
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#vac-rfcs">Vac RFCs</a></li>
</ul>
</nav>

View File

@ -176,32 +176,36 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#license">License</a></li>
<li><a href="#change-process">Change Process</a></li>
<li><a href="#language">Language</a></li>
<li><a href="#goals">Goals</a></li>
<li><a href="#architecture">Architecture</a></li>
<li><a href="#coss-lifecycle">COSS Lifecycle</a>
<li>
<ul>
<li><a href="#raw-specifications">Raw Specifications</a></li>
<li><a href="#draft-specifications">Draft Specifications</a></li>
<li><a href="#stable-specifications">Stable Specifications</a></li>
<li><a href="#deprecated-specifications">Deprecated Specifications</a></li>
<li><a href="#retired-specifications">Retired Specifications</a></li>
<li><a href="#deleted-specifications">Deleted Specifications</a></li>
<li><a href="#license">License</a></li>
<li><a href="#change-process">Change Process</a></li>
<li><a href="#language">Language</a></li>
<li><a href="#goals">Goals</a></li>
<li><a href="#architecture">Architecture</a></li>
<li><a href="#coss-lifecycle">COSS Lifecycle</a>
<ul>
<li><a href="#raw-specifications">Raw Specifications</a></li>
<li><a href="#draft-specifications">Draft Specifications</a></li>
<li><a href="#stable-specifications">Stable Specifications</a></li>
<li><a href="#deprecated-specifications">Deprecated Specifications</a></li>
<li><a href="#retired-specifications">Retired Specifications</a></li>
<li><a href="#deleted-specifications">Deleted Specifications</a></li>
</ul>
</li>
<li><a href="#editorial-control">Editorial control</a></li>
<li><a href="#branching-and-merging">Branching and Merging</a></li>
<li><a href="#conflict-resolution">Conflict resolution</a></li>
<li><a href="#specification-structure">Specification Structure</a>
<ul>
<li><a href="#meta-information">Meta Information</a></li>
<li><a href="#specification-template">Specification Template</a></li>
</ul>
</li>
<li><a href="#conventions">Conventions</a></li>
<li><a href="#appendix-a-color-coding">Appendix A. Color Coding</a></li>
</ul>
</li>
<li><a href="#editorial-control">Editorial control</a></li>
<li><a href="#branching-and-merging">Branching and Merging</a></li>
<li><a href="#conflict-resolution">Conflict resolution</a></li>
<li><a href="#specification-structure">Specification Structure</a>
<ul>
<li><a href="#meta-information">Meta Information</a></li>
<li><a href="#specification-template">Specification Template</a></li>
</ul>
</li>
<li><a href="#conventions">Conventions</a></li>
<li><a href="#appendix-a-color-coding">Appendix A. Color Coding</a></li>
</ul>
</nav>
@ -561,32 +565,36 @@ This will enable programmatic access to specification metadata.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#license">License</a></li>
<li><a href="#change-process">Change Process</a></li>
<li><a href="#language">Language</a></li>
<li><a href="#goals">Goals</a></li>
<li><a href="#architecture">Architecture</a></li>
<li><a href="#coss-lifecycle">COSS Lifecycle</a>
<li>
<ul>
<li><a href="#raw-specifications">Raw Specifications</a></li>
<li><a href="#draft-specifications">Draft Specifications</a></li>
<li><a href="#stable-specifications">Stable Specifications</a></li>
<li><a href="#deprecated-specifications">Deprecated Specifications</a></li>
<li><a href="#retired-specifications">Retired Specifications</a></li>
<li><a href="#deleted-specifications">Deleted Specifications</a></li>
<li><a href="#license">License</a></li>
<li><a href="#change-process">Change Process</a></li>
<li><a href="#language">Language</a></li>
<li><a href="#goals">Goals</a></li>
<li><a href="#architecture">Architecture</a></li>
<li><a href="#coss-lifecycle">COSS Lifecycle</a>
<ul>
<li><a href="#raw-specifications">Raw Specifications</a></li>
<li><a href="#draft-specifications">Draft Specifications</a></li>
<li><a href="#stable-specifications">Stable Specifications</a></li>
<li><a href="#deprecated-specifications">Deprecated Specifications</a></li>
<li><a href="#retired-specifications">Retired Specifications</a></li>
<li><a href="#deleted-specifications">Deleted Specifications</a></li>
</ul>
</li>
<li><a href="#editorial-control">Editorial control</a></li>
<li><a href="#branching-and-merging">Branching and Merging</a></li>
<li><a href="#conflict-resolution">Conflict resolution</a></li>
<li><a href="#specification-structure">Specification Structure</a>
<ul>
<li><a href="#meta-information">Meta Information</a></li>
<li><a href="#specification-template">Specification Template</a></li>
</ul>
</li>
<li><a href="#conventions">Conventions</a></li>
<li><a href="#appendix-a-color-coding">Appendix A. Color Coding</a></li>
</ul>
</li>
<li><a href="#editorial-control">Editorial control</a></li>
<li><a href="#branching-and-merging">Branching and Merging</a></li>
<li><a href="#conflict-resolution">Conflict resolution</a></li>
<li><a href="#specification-structure">Specification Structure</a>
<ul>
<li><a href="#meta-information">Meta Information</a></li>
<li><a href="#specification-template">Specification Template</a></li>
</ul>
</li>
<li><a href="#conventions">Conventions</a></li>
<li><a href="#appendix-a-color-coding">Appendix A. Color Coding</a></li>
</ul>
</nav>

View File

@ -171,54 +171,60 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-goals">Motivation and goals</a></li>
<li><a href="#network-interaction-domains">Network interaction domains</a>
<ul>
<li><a href="#protocols-and-identifiers">Protocols and identifiers</a></li>
<li><a href="#use-of-libp2p-and-protobuf">Use of libp2p and protobuf</a></li>
<li><a href="#gossip-domain">Gossip domain</a></li>
<li><a href="#direct-use-of-libp2p-protocols">Direct use of libp2p protocols</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li><a href="#discovery-domain">Discovery domain</a></li>
<li><a href="#requestreply-domain">Request/Reply domain</a></li>
<li><a href="#overview-of-protocol-interaction">Overview of protocol interaction</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-goals">Motivation and goals</a></li>
<li><a href="#network-interaction-domains">Network interaction domains</a>
<ul>
<li><a href="#protocols-and-identifiers">Protocols and identifiers</a></li>
<li><a href="#use-of-libp2p-and-protobuf">Use of libp2p and protobuf</a></li>
<li><a href="#gossip-domain">Gossip domain</a></li>
<li><a href="#direct-use-of-libp2p-protocols">Direct use of libp2p protocols</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#appendix-a-upgradability-and-compatibility">Appendix A: Upgradability and Compatibility</a>
<li><a href="#transports">Transports</a>
<ul>
<li><a href="#compatibility-with-waku-v1">Compatibility with Waku v1</a></li>
<li>
<ul>
<li><a href="#discovery-domain">Discovery domain</a></li>
<li><a href="#requestreply-domain">Request/Reply domain</a></li>
<li><a href="#overview-of-protocol-interaction">Overview of protocol interaction</a></li>
</ul>
</li>
<li><a href="#appendix-a-upgradability-and-compatibility">Appendix A: Upgradability and Compatibility</a>
<ul>
<li><a href="#compatibility-with-waku-v1">Compatibility with Waku v1</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#primary-adversarial-model">Primary Adversarial Model</a></li>
<li><a href="#security-features">Security Features</a>
<li><a href="#appendix-b-security">Appendix B: Security</a>
<ul>
<li><a href="#pseudonymity">Pseudonymity</a></li>
<li><a href="#anonymity--unlinkability">Anonymity / Unlinkability</a></li>
<li><a href="#spam-protection">Spam protection</a></li>
<li><a href="#data-confidentiality-integrity-and-authenticity">Data confidentiality, Integrity, and Authenticity</a></li>
<li><a href="#primary-adversarial-model">Primary Adversarial Model</a></li>
<li><a href="#security-features">Security Features</a>
<ul>
<li><a href="#pseudonymity">Pseudonymity</a></li>
<li><a href="#anonymity--unlinkability">Anonymity / Unlinkability</a></li>
<li><a href="#spam-protection">Spam protection</a></li>
<li><a href="#data-confidentiality-integrity-and-authenticity">Data confidentiality, Integrity, and Authenticity</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#appendix-c-implementation-notes">Appendix C: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
</ul>
</li>
<li><a href="#appendix-d-future-work">Appendix D: Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#appendix-c-implementation-notes">Appendix C: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
</ul>
</li>
<li><a href="#appendix-d-future-work">Appendix D: Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -903,54 +909,60 @@ See <a href="/spec/18">18/WAKU2-SWAP</a> for more details on this piece of work.
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-goals">Motivation and goals</a></li>
<li><a href="#network-interaction-domains">Network interaction domains</a>
<ul>
<li><a href="#protocols-and-identifiers">Protocols and identifiers</a></li>
<li><a href="#use-of-libp2p-and-protobuf">Use of libp2p and protobuf</a></li>
<li><a href="#gossip-domain">Gossip domain</a></li>
<li><a href="#direct-use-of-libp2p-protocols">Direct use of libp2p protocols</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li><a href="#discovery-domain">Discovery domain</a></li>
<li><a href="#requestreply-domain">Request/Reply domain</a></li>
<li><a href="#overview-of-protocol-interaction">Overview of protocol interaction</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-goals">Motivation and goals</a></li>
<li><a href="#network-interaction-domains">Network interaction domains</a>
<ul>
<li><a href="#protocols-and-identifiers">Protocols and identifiers</a></li>
<li><a href="#use-of-libp2p-and-protobuf">Use of libp2p and protobuf</a></li>
<li><a href="#gossip-domain">Gossip domain</a></li>
<li><a href="#direct-use-of-libp2p-protocols">Direct use of libp2p protocols</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#appendix-a-upgradability-and-compatibility">Appendix A: Upgradability and Compatibility</a>
<li><a href="#transports">Transports</a>
<ul>
<li><a href="#compatibility-with-waku-v1">Compatibility with Waku v1</a></li>
<li>
<ul>
<li><a href="#discovery-domain">Discovery domain</a></li>
<li><a href="#requestreply-domain">Request/Reply domain</a></li>
<li><a href="#overview-of-protocol-interaction">Overview of protocol interaction</a></li>
</ul>
</li>
<li><a href="#appendix-a-upgradability-and-compatibility">Appendix A: Upgradability and Compatibility</a>
<ul>
<li><a href="#compatibility-with-waku-v1">Compatibility with Waku v1</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#primary-adversarial-model">Primary Adversarial Model</a></li>
<li><a href="#security-features">Security Features</a>
<li><a href="#appendix-b-security">Appendix B: Security</a>
<ul>
<li><a href="#pseudonymity">Pseudonymity</a></li>
<li><a href="#anonymity--unlinkability">Anonymity / Unlinkability</a></li>
<li><a href="#spam-protection">Spam protection</a></li>
<li><a href="#data-confidentiality-integrity-and-authenticity">Data confidentiality, Integrity, and Authenticity</a></li>
<li><a href="#primary-adversarial-model">Primary Adversarial Model</a></li>
<li><a href="#security-features">Security Features</a>
<ul>
<li><a href="#pseudonymity">Pseudonymity</a></li>
<li><a href="#anonymity--unlinkability">Anonymity / Unlinkability</a></li>
<li><a href="#spam-protection">Spam protection</a></li>
<li><a href="#data-confidentiality-integrity-and-authenticity">Data confidentiality, Integrity, and Authenticity</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#appendix-c-implementation-notes">Appendix C: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
</ul>
</li>
<li><a href="#appendix-d-future-work">Appendix D: Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#appendix-c-implementation-notes">Appendix C: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
</ul>
</li>
<li><a href="#appendix-d-future-work">Appendix D: Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -172,14 +172,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#protobuf-definitions">Protobuf definitions</a></li>
<li><a href="#message-fields">Message fields</a></li>
<li><a href="#subopts-fields">SubOpts fields</a></li>
<li><a href="#signature-policy">Signature Policy</a></li>
<li><a href="#security-requirements">Security Requirements</a>
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
<li><a href="#adversarial-model">Adversarial Model</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#protobuf-definitions">Protobuf definitions</a></li>
<li><a href="#message-fields">Message fields</a></li>
<li><a href="#subopts-fields">SubOpts fields</a></li>
<li><a href="#signature-policy">Signature Policy</a></li>
</ul>
</li>
<li><a href="#security-analysis">Security Analysis</a></li>
<li><a href="#future-work">Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -498,14 +508,24 @@ In a group signature scheme, a member of a group can anonymously sign a message
<nav id="TableOfContents">
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#protobuf-definitions">Protobuf definitions</a></li>
<li><a href="#message-fields">Message fields</a></li>
<li><a href="#subopts-fields">SubOpts fields</a></li>
<li><a href="#signature-policy">Signature Policy</a></li>
<li><a href="#security-requirements">Security Requirements</a>
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
<li><a href="#adversarial-model">Adversarial Model</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#protobuf-definitions">Protobuf definitions</a></li>
<li><a href="#message-fields">Message fields</a></li>
<li><a href="#subopts-fields">SubOpts fields</a></li>
<li><a href="#signature-policy">Signature Policy</a></li>
</ul>
</li>
<li><a href="#security-analysis">Security Analysis</a></li>
<li><a href="#future-work">Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -178,38 +178,49 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#rationale">Rationale</a></li>
</ul>
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<li><a href="#content-filtering">Content filtering</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
<li><a href="#rationale">Rationale</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#security-consideration">Security Consideration</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<li><a href="#adversarial-model">Adversarial Model</a>
<ul>
<li><a href="#next">Next</a></li>
<li><a href="#200-beta2">2.0.0-beta2</a></li>
<li><a href="#200-beta1">2.0.0-beta1</a></li>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-work">Future Work</a></li>
<li><a href="#changelog">Changelog</a>
<ul>
<li>
<ul>
<li><a href="#next">Next</a></li>
<li><a href="#200-beta2">2.0.0-beta2</a></li>
<li><a href="#200-beta1">2.0.0-beta1</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -577,38 +588,49 @@ Note that the current structure of filter requests i.e., <code>FilterRPC</code>
<nav id="TableOfContents">
<ul>
<li><a href="#rationale">Rationale</a></li>
</ul>
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<li><a href="#content-filtering">Content filtering</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
<li><a href="#rationale">Rationale</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#security-consideration">Security Consideration</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<li><a href="#adversarial-model">Adversarial Model</a>
<ul>
<li><a href="#next">Next</a></li>
<li><a href="#200-beta2">2.0.0-beta2</a></li>
<li><a href="#200-beta1">2.0.0-beta1</a></li>
<li><a href="#protobuf">Protobuf</a></li>
<li><a href="#filter-subscribe">Filter-Subscribe</a>
<ul>
<li><a href="#filter-subscribe-request">Filter Subscribe Request</a></li>
<li><a href="#filter-subscribe-response">Filter Subscribe Response</a></li>
<li><a href="#filter-matching">Filter matching</a></li>
<li><a href="#filter-subscribe-types">Filter Subscribe Types</a></li>
</ul>
</li>
<li><a href="#filter-push">Filter-Push</a>
<ul>
<li><a href="#message-push">Message Push</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-work">Future Work</a></li>
<li><a href="#changelog">Changelog</a>
<ul>
<li>
<ul>
<li><a href="#next">Next</a></li>
<li><a href="#200-beta2">2.0.0-beta2</a></li>
<li><a href="#200-beta1">2.0.0-beta1</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,19 +176,29 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#payloads">Payloads</a>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#security-consideration">Security Consideration</a>
<ul>
<li><a href="#index">Index</a></li>
<li><a href="#paginginfo">PagingInfo</a></li>
<li><a href="#contentfilter">ContentFilter</a></li>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#historyresponse">HistoryResponse</a></li>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
<li><a href="#adversarial-model">Adversarial Model</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#index">Index</a></li>
<li><a href="#paginginfo">PagingInfo</a></li>
<li><a href="#contentfilter">ContentFilter</a></li>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#historyresponse">HistoryResponse</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-work">Future Work</a></li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -506,19 +516,29 @@ This proves accuracy within a range of minutes (e.g., in Bitcoin blockchain) or
<nav id="TableOfContents">
<ul>
<li><a href="#terminology">Terminology</a></li>
</ul>
<ul>
<li><a href="#payloads">Payloads</a>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#security-consideration">Security Consideration</a>
<ul>
<li><a href="#index">Index</a></li>
<li><a href="#paginginfo">PagingInfo</a></li>
<li><a href="#contentfilter">ContentFilter</a></li>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#historyresponse">HistoryResponse</a></li>
<li><a href="#terminology">Terminology</a></li>
</ul>
</li>
<li><a href="#adversarial-model">Adversarial Model</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#index">Index</a></li>
<li><a href="#paginginfo">PagingInfo</a></li>
<li><a href="#contentfilter">ContentFilter</a></li>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#historyresponse">HistoryResponse</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-work">Future Work</a></li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -174,19 +174,31 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#waku-message">Waku Message</a></li>
<li><a href="#message-attributes">Message Attributes</a></li>
</ul>
<ul>
<li><a href="#test-vectors">Test vectors</a></li>
</ul>
<ul>
<li><a href="#confidentiality-integrity-and-authenticity">Confidentiality, integrity, and authenticity</a></li>
<li><a href="#reliability-of-the-timestamp-attribute">Reliability of the <code>timestamp</code> attribute</a></li>
<li><a href="#reliability-of-the-ephemeral-attribute">Reliability of the <code>ephemeral</code> attribute</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#semantics">Semantics</a>
<ul>
<li><a href="#waku-message">Waku Message</a></li>
<li><a href="#message-attributes">Message Attributes</a></li>
</ul>
</li>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#payload-encryption">Payload encryption</a></li>
<li><a href="#whisperwaku-v1-envelope-compatibility">Whisper/Waku v1 envelope compatibility</a></li>
<li><a href="#deterministic-message-hashing">Deterministic message hashing</a>
<ul>
<li><a href="#test-vectors">Test vectors</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#confidentiality-integrity-and-authenticity">Confidentiality, integrity, and authenticity</a></li>
<li><a href="#reliability-of-the-timestamp-attribute">Reliability of the <code>timestamp</code> attribute</a></li>
<li><a href="#reliability-of-the-ephemeral-attribute">Reliability of the <code>ephemeral</code> attribute</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -476,19 +488,31 @@ A malicious actor can tamper with the value of a Waku messages <code>ephemera
<nav id="TableOfContents">
<ul>
<li><a href="#waku-message">Waku Message</a></li>
<li><a href="#message-attributes">Message Attributes</a></li>
</ul>
<ul>
<li><a href="#test-vectors">Test vectors</a></li>
</ul>
<ul>
<li><a href="#confidentiality-integrity-and-authenticity">Confidentiality, integrity, and authenticity</a></li>
<li><a href="#reliability-of-the-timestamp-attribute">Reliability of the <code>timestamp</code> attribute</a></li>
<li><a href="#reliability-of-the-ephemeral-attribute">Reliability of the <code>ephemeral</code> attribute</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#semantics">Semantics</a>
<ul>
<li><a href="#waku-message">Waku Message</a></li>
<li><a href="#message-attributes">Message Attributes</a></li>
</ul>
</li>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#payload-encryption">Payload encryption</a></li>
<li><a href="#whisperwaku-v1-envelope-compatibility">Whisper/Waku v1 envelope compatibility</a></li>
<li><a href="#deterministic-message-hashing">Deterministic message hashing</a>
<ul>
<li><a href="#test-vectors">Test vectors</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#confidentiality-integrity-and-authenticity">Confidentiality, integrity, and authenticity</a></li>
<li><a href="#reliability-of-the-timestamp-attribute">Reliability of the <code>timestamp</code> attribute</a></li>
<li><a href="#reliability-of-the-ephemeral-attribute">Reliability of the <code>ephemeral</code> attribute</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -178,11 +178,16 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li>
<li><a href="#bridge">Bridge</a>
<ul>
<li><a href="#security-considerations">Security Considerations</a></li>
<li>
<ul>
<li><a href="#security-considerations">Security Considerations</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -313,11 +318,16 @@ track messages with a seen filter so that no amplification can be achieved here.
<nav id="TableOfContents">
<ul>
<li>
<li><a href="#bridge">Bridge</a>
<ul>
<li><a href="#security-considerations">Security Considerations</a></li>
<li>
<ul>
<li><a href="#security-considerations">Security Considerations</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,72 +176,80 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#transport">Transport</a>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#fields">Fields</a></li>
<li><a href="#transport">Transport</a>
<ul>
<li><a href="#fields">Fields</a></li>
</ul>
</li>
<li><a href="#types">Types</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
</ul>
</li>
<li><a href="#method-naming">Method naming</a></li>
<li><a href="#debug-api">Debug API</a>
<ul>
<li><a href="#types-1">Types</a></li>
<li><a href="#get_waku_v2_debug_v1_info"><code>get_waku_v2_debug_v1_info</code></a></li>
<li><a href="#get_waku_v2_debug_v1_version"><code>get_waku_v2_debug_v1_version</code></a></li>
</ul>
</li>
<li><a href="#relay-api">Relay API</a>
<ul>
<li><a href="#post_waku_v2_relay_v1_message"><code>post_waku_v2_relay_v1_message</code></a></li>
<li><a href="#post_waku_v2_relay_v1_subscriptions"><code>post_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#delete_waku_v2_relay_v1_subscriptions"><code>delete_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#get_waku_v2_relay_v1_messages"><code>get_waku_v2_relay_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#relay-private-api">Relay Private API</a>
<ul>
<li><a href="#types-2">Types</a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_key"><code>get_waku_v2_private_v1_symmetric_key</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_keypair"><code>get_waku_v2_private_v1_asymmetric_keypair</code></a></li>
<li><a href="#post_waku_v2_private_v1_symmetric_message"><code>post_waku_v2_private_v1_symmetric_message</code></a></li>
<li><a href="#post_waku_v2_private_v1_asymmetric_message"><code>post_waku_v2_private_v1_asymmetric_message</code></a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_messages"><code>get_waku_v2_private_v1_symmetric_messages</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_messages"><code>get_waku_v2_private_v1_asymmetric_messages</code></a></li>
</ul>
</li>
<li><a href="#store-api">Store API</a>
<ul>
<li><a href="#types-3">Types</a></li>
<li><a href="#get_waku_v2_store_v1_messages"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#filter-api">Filter API</a>
<ul>
<li><a href="#types-4">Types</a></li>
<li><a href="#post_waku_v2_filter_v1_subscription"><code>post_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#delete_waku_v2_filter_v1_subscription"><code>delete_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#get_waku_v2_filter_v1_messages"><code>get_waku_v2_filter_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#admin-api">Admin API</a>
<ul>
<li><a href="#types-5">Types</a></li>
<li><a href="#get_waku_v2_admin_v1_peers"><code>get_waku_v2_admin_v1_peers</code></a></li>
<li><a href="#post_waku_v2_admin_v1_peers"><code>post_waku_v2_admin_v1_peers</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#types">Types</a>
<li><a href="#example-usage">Example usage</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
</ul>
</li>
<li><a href="#method-naming">Method naming</a></li>
<li><a href="#debug-api">Debug API</a>
<ul>
<li><a href="#types-1">Types</a></li>
<li><a href="#get_waku_v2_debug_v1_info"><code>get_waku_v2_debug_v1_info</code></a></li>
<li><a href="#get_waku_v2_debug_v1_version"><code>get_waku_v2_debug_v1_version</code></a></li>
</ul>
</li>
<li><a href="#relay-api">Relay API</a>
<ul>
<li><a href="#post_waku_v2_relay_v1_message"><code>post_waku_v2_relay_v1_message</code></a></li>
<li><a href="#post_waku_v2_relay_v1_subscriptions"><code>post_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#delete_waku_v2_relay_v1_subscriptions"><code>delete_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#get_waku_v2_relay_v1_messages"><code>get_waku_v2_relay_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#relay-private-api">Relay Private API</a>
<ul>
<li><a href="#types-2">Types</a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_key"><code>get_waku_v2_private_v1_symmetric_key</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_keypair"><code>get_waku_v2_private_v1_asymmetric_keypair</code></a></li>
<li><a href="#post_waku_v2_private_v1_symmetric_message"><code>post_waku_v2_private_v1_symmetric_message</code></a></li>
<li><a href="#post_waku_v2_private_v1_asymmetric_message"><code>post_waku_v2_private_v1_asymmetric_message</code></a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_messages"><code>get_waku_v2_private_v1_symmetric_messages</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_messages"><code>get_waku_v2_private_v1_asymmetric_messages</code></a></li>
</ul>
</li>
<li><a href="#store-api">Store API</a>
<ul>
<li><a href="#types-3">Types</a></li>
<li><a href="#get_waku_v2_store_v1_messages"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#filter-api">Filter API</a>
<ul>
<li><a href="#types-4">Types</a></li>
<li><a href="#post_waku_v2_filter_v1_subscription"><code>post_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#delete_waku_v2_filter_v1_subscription"><code>delete_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#get_waku_v2_filter_v1_messages"><code>get_waku_v2_filter_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#admin-api">Admin API</a>
<ul>
<li><a href="#types-5">Types</a></li>
<li><a href="#get_waku_v2_admin_v1_peers"><code>get_waku_v2_admin_v1_peers</code></a></li>
<li><a href="#post_waku_v2_admin_v1_peers"><code>post_waku_v2_admin_v1_peers</code></a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#store-api-1">Store API</a>
<ul>
<li><a href="#get_waku_v2_store_v1_messages-1"><code>get_waku_v2_store_v1_messages</code></a></li>
<li><a href="#store-api-1">Store API</a>
<ul>
<li><a href="#get_waku_v2_store_v1_messages-1"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -1522,72 +1530,80 @@ It is the API client&rsquo;s responsibility to keep track of the keys used for e
<nav id="TableOfContents">
<ul>
<li><a href="#transport">Transport</a>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#fields">Fields</a></li>
<li><a href="#transport">Transport</a>
<ul>
<li><a href="#fields">Fields</a></li>
</ul>
</li>
<li><a href="#types">Types</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
</ul>
</li>
<li><a href="#method-naming">Method naming</a></li>
<li><a href="#debug-api">Debug API</a>
<ul>
<li><a href="#types-1">Types</a></li>
<li><a href="#get_waku_v2_debug_v1_info"><code>get_waku_v2_debug_v1_info</code></a></li>
<li><a href="#get_waku_v2_debug_v1_version"><code>get_waku_v2_debug_v1_version</code></a></li>
</ul>
</li>
<li><a href="#relay-api">Relay API</a>
<ul>
<li><a href="#post_waku_v2_relay_v1_message"><code>post_waku_v2_relay_v1_message</code></a></li>
<li><a href="#post_waku_v2_relay_v1_subscriptions"><code>post_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#delete_waku_v2_relay_v1_subscriptions"><code>delete_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#get_waku_v2_relay_v1_messages"><code>get_waku_v2_relay_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#relay-private-api">Relay Private API</a>
<ul>
<li><a href="#types-2">Types</a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_key"><code>get_waku_v2_private_v1_symmetric_key</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_keypair"><code>get_waku_v2_private_v1_asymmetric_keypair</code></a></li>
<li><a href="#post_waku_v2_private_v1_symmetric_message"><code>post_waku_v2_private_v1_symmetric_message</code></a></li>
<li><a href="#post_waku_v2_private_v1_asymmetric_message"><code>post_waku_v2_private_v1_asymmetric_message</code></a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_messages"><code>get_waku_v2_private_v1_symmetric_messages</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_messages"><code>get_waku_v2_private_v1_asymmetric_messages</code></a></li>
</ul>
</li>
<li><a href="#store-api">Store API</a>
<ul>
<li><a href="#types-3">Types</a></li>
<li><a href="#get_waku_v2_store_v1_messages"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#filter-api">Filter API</a>
<ul>
<li><a href="#types-4">Types</a></li>
<li><a href="#post_waku_v2_filter_v1_subscription"><code>post_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#delete_waku_v2_filter_v1_subscription"><code>delete_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#get_waku_v2_filter_v1_messages"><code>get_waku_v2_filter_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#admin-api">Admin API</a>
<ul>
<li><a href="#types-5">Types</a></li>
<li><a href="#get_waku_v2_admin_v1_peers"><code>get_waku_v2_admin_v1_peers</code></a></li>
<li><a href="#post_waku_v2_admin_v1_peers"><code>post_waku_v2_admin_v1_peers</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#types">Types</a>
<li><a href="#example-usage">Example usage</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
</ul>
</li>
<li><a href="#method-naming">Method naming</a></li>
<li><a href="#debug-api">Debug API</a>
<ul>
<li><a href="#types-1">Types</a></li>
<li><a href="#get_waku_v2_debug_v1_info"><code>get_waku_v2_debug_v1_info</code></a></li>
<li><a href="#get_waku_v2_debug_v1_version"><code>get_waku_v2_debug_v1_version</code></a></li>
</ul>
</li>
<li><a href="#relay-api">Relay API</a>
<ul>
<li><a href="#post_waku_v2_relay_v1_message"><code>post_waku_v2_relay_v1_message</code></a></li>
<li><a href="#post_waku_v2_relay_v1_subscriptions"><code>post_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#delete_waku_v2_relay_v1_subscriptions"><code>delete_waku_v2_relay_v1_subscriptions</code></a></li>
<li><a href="#get_waku_v2_relay_v1_messages"><code>get_waku_v2_relay_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#relay-private-api">Relay Private API</a>
<ul>
<li><a href="#types-2">Types</a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_key"><code>get_waku_v2_private_v1_symmetric_key</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_keypair"><code>get_waku_v2_private_v1_asymmetric_keypair</code></a></li>
<li><a href="#post_waku_v2_private_v1_symmetric_message"><code>post_waku_v2_private_v1_symmetric_message</code></a></li>
<li><a href="#post_waku_v2_private_v1_asymmetric_message"><code>post_waku_v2_private_v1_asymmetric_message</code></a></li>
<li><a href="#get_waku_v2_private_v1_symmetric_messages"><code>get_waku_v2_private_v1_symmetric_messages</code></a></li>
<li><a href="#get_waku_v2_private_v1_asymmetric_messages"><code>get_waku_v2_private_v1_asymmetric_messages</code></a></li>
</ul>
</li>
<li><a href="#store-api">Store API</a>
<ul>
<li><a href="#types-3">Types</a></li>
<li><a href="#get_waku_v2_store_v1_messages"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#filter-api">Filter API</a>
<ul>
<li><a href="#types-4">Types</a></li>
<li><a href="#post_waku_v2_filter_v1_subscription"><code>post_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#delete_waku_v2_filter_v1_subscription"><code>delete_waku_v2_filter_v1_subscription</code></a></li>
<li><a href="#get_waku_v2_filter_v1_messages"><code>get_waku_v2_filter_v1_messages</code></a></li>
</ul>
</li>
<li><a href="#admin-api">Admin API</a>
<ul>
<li><a href="#types-5">Types</a></li>
<li><a href="#get_waku_v2_admin_v1_peers"><code>get_waku_v2_admin_v1_peers</code></a></li>
<li><a href="#post_waku_v2_admin_v1_peers"><code>post_waku_v2_admin_v1_peers</code></a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#store-api-1">Store API</a>
<ul>
<li><a href="#get_waku_v2_store_v1_messages-1"><code>get_waku_v2_store_v1_messages</code></a></li>
<li><a href="#store-api-1">Store API</a>
<ul>
<li><a href="#get_waku_v2_store_v1_messages-1"><code>get_waku_v2_store_v1_messages</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,27 +176,36 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#setup-and-registration">Setup and Registration</a></li>
<li><a href="#publishing">Publishing</a></li>
<li><a href="#group-synchronization">Group Synchronization</a></li>
<li><a href="#routing">Routing</a>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#epoch-validation">Epoch Validation</a></li>
<li><a href="#merkle-root-validation">Merkle Root Validation</a></li>
<li><a href="#proof-verification">Proof Verification</a></li>
<li><a href="#spam-detection">Spam detection</a></li>
<li><a href="#setup-and-registration">Setup and Registration</a></li>
<li><a href="#publishing">Publishing</a></li>
<li><a href="#group-synchronization">Group Synchronization</a></li>
<li><a href="#routing">Routing</a>
<ul>
<li><a href="#epoch-validation">Epoch Validation</a></li>
<li><a href="#merkle-root-validation">Merkle Root Validation</a></li>
<li><a href="#proof-verification">Proof Verification</a></li>
<li><a href="#spam-detection">Spam detection</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
<li><a href="#ratelimitproof">RateLimitProof</a></li>
</ul>
<ul>
<li><a href="#epoch-length">Epoch Length</a></li>
<li><a href="#maximum-epoch-gap">Maximum Epoch Gap</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
<li><a href="#ratelimitproof">RateLimitProof</a></li>
</ul>
</li>
<li><a href="#recommended-system-parameters">Recommended System Parameters</a>
<ul>
<li><a href="#epoch-length">Epoch Length</a></li>
<li><a href="#maximum-epoch-gap">Maximum Epoch Gap</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -561,27 +570,36 @@ This formula represents a lower bound of the number of acceptable roots.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#setup-and-registration">Setup and Registration</a></li>
<li><a href="#publishing">Publishing</a></li>
<li><a href="#group-synchronization">Group Synchronization</a></li>
<li><a href="#routing">Routing</a>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#epoch-validation">Epoch Validation</a></li>
<li><a href="#merkle-root-validation">Merkle Root Validation</a></li>
<li><a href="#proof-verification">Proof Verification</a></li>
<li><a href="#spam-detection">Spam detection</a></li>
<li><a href="#setup-and-registration">Setup and Registration</a></li>
<li><a href="#publishing">Publishing</a></li>
<li><a href="#group-synchronization">Group Synchronization</a></li>
<li><a href="#routing">Routing</a>
<ul>
<li><a href="#epoch-validation">Epoch Validation</a></li>
<li><a href="#merkle-root-validation">Merkle Root Validation</a></li>
<li><a href="#proof-verification">Proof Verification</a></li>
<li><a href="#spam-detection">Spam detection</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
<li><a href="#ratelimitproof">RateLimitProof</a></li>
</ul>
<ul>
<li><a href="#epoch-length">Epoch Length</a></li>
<li><a href="#maximum-epoch-gap">Maximum Epoch Gap</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#wakumessage">WakuMessage</a></li>
<li><a href="#ratelimitproof">RateLimitProof</a></li>
</ul>
</li>
<li><a href="#recommended-system-parameters">Recommended System Parameters</a>
<ul>
<li><a href="#epoch-length">Epoch Length</a></li>
<li><a href="#maximum-epoch-gap">Maximum Epoch Gap</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,16 +176,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#accounting">Accounting</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#protobufs">Protobufs</a></li>
</ul>
<ul>
<li><a href="#soft-phase">Soft phase</a></li>
<li><a href="#mock-phase">Mock phase</a></li>
<li><a href="#hard-phase">Hard phase</a></li>
<li><a href="#references">References</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#game-theory---iterated-prisoners-dilemma--donation-game">Game Theory - Iterated prisoner&rsquo;s dilemma / donation game</a></li>
<li><a href="#swap-protocol-overview">SWAP protocol overview</a>
<ul>
<li><a href="#accounting">Accounting</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#protobufs">Protobufs</a></li>
</ul>
</li>
<li><a href="#incremental-integration-and-roll-out">Incremental integration and roll-out</a>
<ul>
<li><a href="#soft-phase">Soft phase</a></li>
<li><a href="#mock-phase">Mock phase</a></li>
<li><a href="#hard-phase">Hard phase</a></li>
<li><a href="#references">References</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -463,16 +471,24 @@ done with blockchain integration on a public testnet. More details TBD.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#accounting">Accounting</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#protobufs">Protobufs</a></li>
</ul>
<ul>
<li><a href="#soft-phase">Soft phase</a></li>
<li><a href="#mock-phase">Mock phase</a></li>
<li><a href="#hard-phase">Hard phase</a></li>
<li><a href="#references">References</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#game-theory---iterated-prisoners-dilemma--donation-game">Game Theory - Iterated prisoner&rsquo;s dilemma / donation game</a></li>
<li><a href="#swap-protocol-overview">SWAP protocol overview</a>
<ul>
<li><a href="#accounting">Accounting</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#protobufs">Protobufs</a></li>
</ul>
</li>
<li><a href="#incremental-integration-and-roll-out">Incremental integration and roll-out</a>
<ul>
<li><a href="#soft-phase">Soft phase</a></li>
<li><a href="#mock-phase">Mock phase</a></li>
<li><a href="#hard-phase">Hard phase</a></li>
<li><a href="#references">References</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -178,8 +178,15 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#message-relaying">Message Relaying</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#motivation-and-goals">Motivation and Goals</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#message-relaying">Message Relaying</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -320,8 +327,15 @@ This can be done by rate limiting via <a href="https://rfc.vac.dev/spec/17/">17/
<nav id="TableOfContents">
<ul>
<li><a href="#message-relaying">Message Relaying</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#motivation-and-goals">Motivation and Goals</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#message-relaying">Message Relaying</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,24 +176,28 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#secure-transport">Secure Transport</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#secure-transport">Secure Transport</a></li>
<li><a href="#payloads">Payloads</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#state">State</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#retransmission">Retransmission</a></li>
</ul>
</li>
<li><a href="#formal-specification">Formal Specification</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#state">State</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#retransmission">Retransmission</a></li>
</ul>
</li>
<li><a href="#formal-specification">Formal Specification</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>
@ -444,24 +448,28 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#secure-transport">Secure Transport</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#secure-transport">Secure Transport</a></li>
<li><a href="#payloads">Payloads</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#state">State</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#retransmission">Retransmission</a></li>
</ul>
</li>
<li><a href="#formal-specification">Formal Specification</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#state">State</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#retransmission">Retransmission</a></li>
</ul>
</li>
<li><a href="#formal-specification">Formal Specification</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>

View File

@ -176,22 +176,32 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#limitations">Limitations</a></li>
</ul>
<ul>
<li><a href="#generate-encryption-keypair">Generate Encryption KeyPair</a></li>
</ul>
<ul>
<li><a href="#sign-encryption-public-key">Sign Encryption Public Key</a></li>
<li><a href="#public-key-message">Public Key Message</a></li>
<li><a href="#consideration-for-a-non-interactiveuncoordinated-protocol">Consideration for a non-interactive/uncoordinated protocol</a>
<li><a href="#goal">Goal</a></li>
<li><a href="#variables">Variables</a></li>
<li><a href="#design-requirements">Design Requirements</a>
<ul>
<li><a href="#retrieve-the-public-key-from-the-blockchain">Retrieve the public key from the blockchain</a></li>
<li><a href="#publishing-the-public-in-long-term-storage">Publishing the public in long term storage</a></li>
<li><a href="#limitations">Limitations</a></li>
</ul>
</li>
<li><a href="#the-protocol">The protocol</a>
<ul>
<li><a href="#generate-encryption-keypair">Generate Encryption KeyPair</a></li>
</ul>
</li>
<li><a href="#broadcast-encryption-public-key">Broadcast Encryption Public Key</a>
<ul>
<li><a href="#sign-encryption-public-key">Sign Encryption Public Key</a></li>
<li><a href="#public-key-message">Public Key Message</a></li>
<li><a href="#consideration-for-a-non-interactiveuncoordinated-protocol">Consideration for a non-interactive/uncoordinated protocol</a>
<ul>
<li><a href="#retrieve-the-public-key-from-the-blockchain">Retrieve the public key from the blockchain</a></li>
<li><a href="#publishing-the-public-in-long-term-storage">Publishing the public in long term storage</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#send-private-message">Send Private Message</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -462,22 +472,32 @@ as per <a href="/spec/26/#asymmetric">26/WAKU-PAYLOAD Asymmetric Encryption spec
<nav id="TableOfContents">
<ul>
<li><a href="#limitations">Limitations</a></li>
</ul>
<ul>
<li><a href="#generate-encryption-keypair">Generate Encryption KeyPair</a></li>
</ul>
<ul>
<li><a href="#sign-encryption-public-key">Sign Encryption Public Key</a></li>
<li><a href="#public-key-message">Public Key Message</a></li>
<li><a href="#consideration-for-a-non-interactiveuncoordinated-protocol">Consideration for a non-interactive/uncoordinated protocol</a>
<li><a href="#goal">Goal</a></li>
<li><a href="#variables">Variables</a></li>
<li><a href="#design-requirements">Design Requirements</a>
<ul>
<li><a href="#retrieve-the-public-key-from-the-blockchain">Retrieve the public key from the blockchain</a></li>
<li><a href="#publishing-the-public-in-long-term-storage">Publishing the public in long term storage</a></li>
<li><a href="#limitations">Limitations</a></li>
</ul>
</li>
<li><a href="#the-protocol">The protocol</a>
<ul>
<li><a href="#generate-encryption-keypair">Generate Encryption KeyPair</a></li>
</ul>
</li>
<li><a href="#broadcast-encryption-public-key">Broadcast Encryption Public Key</a>
<ul>
<li><a href="#sign-encryption-public-key">Sign Encryption Public Key</a></li>
<li><a href="#public-key-message">Public Key Message</a></li>
<li><a href="#consideration-for-a-non-interactiveuncoordinated-protocol">Consideration for a non-interactive/uncoordinated protocol</a>
<ul>
<li><a href="#retrieve-the-public-key-from-the-blockchain">Retrieve the public key from the blockchain</a></li>
<li><a href="#publishing-the-public-in-long-term-storage">Publishing the public in long term storage</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#send-private-message">Send Private Message</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -172,11 +172,18 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#payloads">Payloads</a>
<li><a href="#method-description">Method description</a></li>
<li><a href="#security-consideration">Security Consideration</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#historyquery">HistoryQuery</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -317,11 +324,18 @@ As such, The <code>messages</code> field of the corresponding <a href="/spec/13
<nav id="TableOfContents">
<ul>
<li><a href="#payloads">Payloads</a>
<li><a href="#method-description">Method description</a></li>
<li><a href="#security-consideration">Security Consideration</a></li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#historyquery">HistoryQuery</a></li>
<li><a href="#payloads">Payloads</a>
<ul>
<li><a href="#historyquery">HistoryQuery</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -178,7 +178,13 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#design">Design</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -297,7 +303,13 @@ The messages SHOULD NOT be encrypted.</p>
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#design">Design</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -174,25 +174,31 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#pubsub-topics">Pubsub Topics</a>
<li>
<ul>
<li><a href="#pubsub-topic-format">Pubsub Topic Format</a></li>
<li><a href="#default-pubsub-topic">Default PubSub Topic</a></li>
<li><a href="#application-specific-names">Application Specific Names</a></li>
<li><a href="#named-topic-sharding-example">Named Topic Sharding Example</a></li>
</ul>
</li>
<li><a href="#content-topics">Content Topics</a>
<ul>
<li><a href="#content-topic-format">Content Topic Format</a></li>
<li><a href="#content-topic-naming-recommendations">Content Topic Naming Recommendations</a></li>
</ul>
</li>
<li><a href="#differences-with-waku-v1">Differences with Waku v1</a>
<ul>
<li><a href="#bridging-waku-v1-and-waku-v2">Bridging Waku v1 and Waku v2</a></li>
<li><a href="#pubsub-topics">Pubsub Topics</a>
<ul>
<li><a href="#pubsub-topic-format">Pubsub Topic Format</a></li>
<li><a href="#default-pubsub-topic">Default PubSub Topic</a></li>
<li><a href="#application-specific-names">Application Specific Names</a></li>
<li><a href="#named-topic-sharding-example">Named Topic Sharding Example</a></li>
</ul>
</li>
<li><a href="#content-topics">Content Topics</a>
<ul>
<li><a href="#content-topic-format">Content Topic Format</a></li>
<li><a href="#content-topic-naming-recommendations">Content Topic Naming Recommendations</a></li>
</ul>
</li>
<li><a href="#differences-with-waku-v1">Differences with Waku v1</a>
<ul>
<li><a href="#bridging-waku-v1-and-waku-v2">Bridging Waku v1 and Waku v2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -420,25 +426,31 @@ For example:</p>
<nav id="TableOfContents">
<ul>
<li><a href="#pubsub-topics">Pubsub Topics</a>
<li>
<ul>
<li><a href="#pubsub-topic-format">Pubsub Topic Format</a></li>
<li><a href="#default-pubsub-topic">Default PubSub Topic</a></li>
<li><a href="#application-specific-names">Application Specific Names</a></li>
<li><a href="#named-topic-sharding-example">Named Topic Sharding Example</a></li>
</ul>
</li>
<li><a href="#content-topics">Content Topics</a>
<ul>
<li><a href="#content-topic-format">Content Topic Format</a></li>
<li><a href="#content-topic-naming-recommendations">Content Topic Naming Recommendations</a></li>
</ul>
</li>
<li><a href="#differences-with-waku-v1">Differences with Waku v1</a>
<ul>
<li><a href="#bridging-waku-v1-and-waku-v2">Bridging Waku v1 and Waku v2</a></li>
<li><a href="#pubsub-topics">Pubsub Topics</a>
<ul>
<li><a href="#pubsub-topic-format">Pubsub Topic Format</a></li>
<li><a href="#default-pubsub-topic">Default PubSub Topic</a></li>
<li><a href="#application-specific-names">Application Specific Names</a></li>
<li><a href="#named-topic-sharding-example">Named Topic Sharding Example</a></li>
</ul>
</li>
<li><a href="#content-topics">Content Topics</a>
<ul>
<li><a href="#content-topic-format">Content Topic Format</a></li>
<li><a href="#content-topic-naming-recommendations">Content Topic Naming Recommendations</a></li>
</ul>
</li>
<li><a href="#differences-with-waku-v1">Differences with Waku v1</a>
<ul>
<li><a href="#bridging-waku-v1-and-waku-v2">Bridging Waku v1 and Waku v2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -178,15 +178,22 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#double-voting">Double voting</a></li>
<li><a href="#initializing-vote">Initializing Vote</a></li>
</ul>
<ul>
<li><a href="#sending-votes">Sending votes</a></li>
<li><a href="#aggregating-votes">Aggregating votes</a></li>
<li><a href="#submitting-to-chain">Submitting to chain</a></li>
<li><a href="#finalizing">Finalizing</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#smart-contract">Smart contract</a>
<ul>
<li><a href="#double-voting">Double voting</a></li>
<li><a href="#initializing-vote">Initializing Vote</a></li>
</ul>
</li>
<li><a href="#voting">Voting</a>
<ul>
<li><a href="#sending-votes">Sending votes</a></li>
<li><a href="#aggregating-votes">Aggregating votes</a></li>
<li><a href="#submitting-to-chain">Submitting to chain</a></li>
<li><a href="#finalizing">Finalizing</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -334,15 +341,22 @@ Also directory will be updated according to vote results (community added to dir
<nav id="TableOfContents">
<ul>
<li><a href="#double-voting">Double voting</a></li>
<li><a href="#initializing-vote">Initializing Vote</a></li>
</ul>
<ul>
<li><a href="#sending-votes">Sending votes</a></li>
<li><a href="#aggregating-votes">Aggregating votes</a></li>
<li><a href="#submitting-to-chain">Submitting to chain</a></li>
<li><a href="#finalizing">Finalizing</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#smart-contract">Smart contract</a>
<ul>
<li><a href="#double-voting">Double voting</a></li>
<li><a href="#initializing-vote">Initializing Vote</a></li>
</ul>
</li>
<li><a href="#voting">Voting</a>
<ul>
<li><a href="#sending-votes">Sending votes</a></li>
<li><a href="#aggregating-votes">Aggregating votes</a></li>
<li><a href="#submitting-to-chain">Submitting to chain</a></li>
<li><a href="#finalizing">Finalizing</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -174,14 +174,22 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#root-entry">Root entry</a></li>
<li><a href="#branch-entry">Branch entry</a></li>
<li><a href="#leaf-entries">Leaf entries</a>
<li><a href="#list-encoding">List encoding</a></li>
<li><a href="#entry-types">Entry types</a>
<ul>
<li><a href="#link-entries">Link entries</a></li>
<li><a href="#multiaddr-entries"><code>multiaddr</code> entries</a></li>
<li><a href="#root-entry">Root entry</a></li>
<li><a href="#branch-entry">Branch entry</a></li>
<li><a href="#leaf-entries">Leaf entries</a>
<ul>
<li><a href="#link-entries">Link entries</a></li>
<li><a href="#multiaddr-entries"><code>multiaddr</code> entries</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#client-protocol">Client protocol</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -375,14 +383,22 @@ and verify that the content matches the hash.</li>
<nav id="TableOfContents">
<ul>
<li><a href="#root-entry">Root entry</a></li>
<li><a href="#branch-entry">Branch entry</a></li>
<li><a href="#leaf-entries">Leaf entries</a>
<li><a href="#list-encoding">List encoding</a></li>
<li><a href="#entry-types">Entry types</a>
<ul>
<li><a href="#link-entries">Link entries</a></li>
<li><a href="#multiaddr-entries"><code>multiaddr</code> entries</a></li>
<li><a href="#root-entry">Root entry</a></li>
<li><a href="#branch-entry">Branch entry</a></li>
<li><a href="#leaf-entries">Leaf entries</a>
<ul>
<li><a href="#link-entries">Link entries</a></li>
<li><a href="#multiaddr-entries"><code>multiaddr</code> entries</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#client-protocol">Client protocol</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,19 +176,23 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#cryptographic-primitives">Cryptographic primitives</a></li>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#encryption">Encryption</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#decoding-a-message">Decoding a message</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#cryptographic-primitives">Cryptographic primitives</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#encryption">Encryption</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#decoding-a-message">Decoding a message</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -420,19 +424,23 @@ This is because the type of encryption is not included in the message.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#cryptographic-primitives">Cryptographic primitives</a></li>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#encryption">Encryption</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#decoding-a-message">Decoding a message</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#cryptographic-primitives">Cryptographic primitives</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#encryption">Encryption</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#decoding-a-message">Decoding a message</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,14 +176,21 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#tracked-peer-metadata">Tracked peer metadata</a></li>
<li><a href="#peer-connectivity">Peer connectivity</a></li>
<li><a href="#persistence">Persistence</a></li>
</ul>
<ul>
<li><a href="#reconnecting-peers">Reconnecting peers</a></li>
<li><a href="#connection-keep-alive">Connection keep-alive</a></li>
<li><a href="#peer-store">Peer store</a>
<ul>
<li><a href="#tracked-peer-metadata">Tracked peer metadata</a></li>
<li><a href="#peer-connectivity">Peer connectivity</a></li>
<li><a href="#persistence">Persistence</a></li>
</ul>
</li>
<li><a href="#peer-management">Peer management</a>
<ul>
<li><a href="#reconnecting-peers">Reconnecting peers</a></li>
<li><a href="#connection-keep-alive">Connection keep-alive</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -382,14 +389,21 @@ in response to a TCP connection timeout of <code>10 minutes</code>.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#tracked-peer-metadata">Tracked peer metadata</a></li>
<li><a href="#peer-connectivity">Peer connectivity</a></li>
<li><a href="#persistence">Persistence</a></li>
</ul>
<ul>
<li><a href="#reconnecting-peers">Reconnecting peers</a></li>
<li><a href="#connection-keep-alive">Connection keep-alive</a></li>
<li><a href="#peer-store">Peer store</a>
<ul>
<li><a href="#tracked-peer-metadata">Tracked peer metadata</a></li>
<li><a href="#peer-connectivity">Peer connectivity</a></li>
<li><a href="#persistence">Persistence</a></li>
</ul>
</li>
<li><a href="#peer-management">Peer management</a>
<ul>
<li><a href="#reconnecting-peers">Reconnecting peers</a></li>
<li><a href="#connection-keep-alive">Connection keep-alive</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,7 +174,14 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#voting">Voting</a></li>
<li><a href="#counting-votes">Counting Votes</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -288,7 +295,14 @@ DApp will aggregate all the votes in the last 4 weeks and calculate which commun
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#voting">Voting</a></li>
<li><a href="#counting-votes">Counting Votes</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -172,7 +172,15 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#gossipsub-v10-parameters">GossipSub v1.0 parameters</a></li>
<li><a href="#gossipsub-v11-parameters">GossipSub v1.1 parameters</a></li>
<li><a href="#other-configuration">Other configuration</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -409,7 +417,15 @@ but nevertheless describes constraints that <code>11/WAKU2-RELAY</code> clients
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#gossipsub-v10-parameters">GossipSub v1.0 parameters</a></li>
<li><a href="#gossipsub-v11-parameters">GossipSub v1.1 parameters</a></li>
<li><a href="#other-configuration">Other configuration</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,25 +176,29 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#secure-transport-storage-and-name-system">Secure Transport, storage, and name system</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#secure-transport-storage-and-name-system">Secure Transport, storage, and name system</a></li>
<li><a href="#payloads">Payloads</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#roles">Roles</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#remote-log">Remote log</a></li>
<li><a href="#next-page-semantics">Next page semantics</a></li>
<li><a href="#interaction-with-mvds">Interaction with MVDS</a></li>
</ul>
</li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#roles">Roles</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#remote-log">Remote log</a></li>
<li><a href="#next-page-semantics">Next page semantics</a></li>
<li><a href="#interaction-with-mvds">Interaction with MVDS</a></li>
</ul>
</li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>
@ -484,25 +488,29 @@ in time.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#secure-transport-storage-and-name-system">Secure Transport, storage, and name system</a></li>
<li><a href="#payloads">Payloads</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#secure-transport-storage-and-name-system">Secure Transport, storage, and name system</a></li>
<li><a href="#payloads">Payloads</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#roles">Roles</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#remote-log">Remote log</a></li>
<li><a href="#next-page-semantics">Next page semantics</a></li>
<li><a href="#interaction-with-mvds">Interaction with MVDS</a></li>
</ul>
</li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#synchronization">Synchronization</a>
<ul>
<li><a href="#roles">Roles</a></li>
<li><a href="#flow">Flow</a></li>
<li><a href="#remote-log">Remote log</a></li>
<li><a href="#next-page-semantics">Next page semantics</a></li>
<li><a href="#interaction-with-mvds">Interaction with MVDS</a></li>
</ul>
</li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>

View File

@ -176,17 +176,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#possible-limitations">Possible limitations</a></li>
<li><a href="#accessibility-and-motivation">Accessibility and motivation</a></li>
<li><a href="#adaptive-nodes">Adaptive nodes</a></li>
<li><a href="#planned-incentives">Planned incentives</a></li>
</ul>
<ul>
<li><a href="#topology-and-topics">Topology and topics</a></li>
<li><a href="#legend">Legend</a></li>
<li><a href="#auxiliary-network">Auxiliary network</a></li>
<li><a href="#node-cross-section">Node Cross Section</a></li>
<li><a href="#node-types---a-continuum">Node types - a continuum</a>
<ul>
<li><a href="#possible-limitations">Possible limitations</a></li>
<li><a href="#accessibility-and-motivation">Accessibility and motivation</a></li>
<li><a href="#adaptive-nodes">Adaptive nodes</a></li>
<li><a href="#planned-incentives">Planned incentives</a></li>
</ul>
</li>
<li><a href="#node-protocol-selection">Node protocol selection</a></li>
<li><a href="#waku-network-visualization">Waku network visualization</a>
<ul>
<li><a href="#topology-and-topics">Topology and topics</a></li>
<li><a href="#legend">Legend</a></li>
<li><a href="#auxiliary-network">Auxiliary network</a></li>
<li><a href="#node-cross-section">Node Cross Section</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -355,17 +362,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#possible-limitations">Possible limitations</a></li>
<li><a href="#accessibility-and-motivation">Accessibility and motivation</a></li>
<li><a href="#adaptive-nodes">Adaptive nodes</a></li>
<li><a href="#planned-incentives">Planned incentives</a></li>
</ul>
<ul>
<li><a href="#topology-and-topics">Topology and topics</a></li>
<li><a href="#legend">Legend</a></li>
<li><a href="#auxiliary-network">Auxiliary network</a></li>
<li><a href="#node-cross-section">Node Cross Section</a></li>
<li><a href="#node-types---a-continuum">Node types - a continuum</a>
<ul>
<li><a href="#possible-limitations">Possible limitations</a></li>
<li><a href="#accessibility-and-motivation">Accessibility and motivation</a></li>
<li><a href="#adaptive-nodes">Adaptive nodes</a></li>
<li><a href="#planned-incentives">Planned incentives</a></li>
</ul>
</li>
<li><a href="#node-protocol-selection">Node protocol selection</a></li>
<li><a href="#waku-network-visualization">Waku network visualization</a>
<ul>
<li><a href="#topology-and-topics">Topology and topics</a></li>
<li><a href="#legend">Legend</a></li>
<li><a href="#auxiliary-network">Auxiliary network</a></li>
<li><a href="#node-cross-section">Node Cross Section</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -178,21 +178,30 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#usage-of-multiaddr-format-rationale">Usage of Multiaddr Format Rationale</a></li>
</ul>
<ul>
<li><a href="#usage">Usage</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a>
<ul>
<li><a href="#many-connection-types">Many connection types</a></li>
<li><a href="#raw-tcp-only">Raw TCP only</a></li>
<li><a href="#usage-of-multiaddr-format-rationale">Usage of Multiaddr Format Rationale</a></li>
</ul>
</li>
<li><a href="#limitations">Limitations</a></li>
</ul>
<ul>
<li><a href="#usage-1">Usage</a></li>
<li><a href="#multiaddrs-enr-key"><code>multiaddrs</code> ENR key</a>
<ul>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#many-connection-types">Many connection types</a></li>
<li><a href="#raw-tcp-only">Raw TCP only</a></li>
</ul>
</li>
<li><a href="#limitations">Limitations</a></li>
</ul>
</li>
<li><a href="#waku2-enr-key"><code>waku2</code> ENR key</a>
<ul>
<li><a href="#usage-1">Usage</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -509,21 +518,30 @@ or further interpret the <code>waku2</code> field as required by the application
<nav id="TableOfContents">
<ul>
<li><a href="#usage-of-multiaddr-format-rationale">Usage of Multiaddr Format Rationale</a></li>
</ul>
<ul>
<li><a href="#usage">Usage</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a>
<ul>
<li><a href="#many-connection-types">Many connection types</a></li>
<li><a href="#raw-tcp-only">Raw TCP only</a></li>
<li><a href="#usage-of-multiaddr-format-rationale">Usage of Multiaddr Format Rationale</a></li>
</ul>
</li>
<li><a href="#limitations">Limitations</a></li>
</ul>
<ul>
<li><a href="#usage-1">Usage</a></li>
<li><a href="#multiaddrs-enr-key"><code>multiaddrs</code> ENR key</a>
<ul>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#many-connection-types">Many connection types</a></li>
<li><a href="#raw-tcp-only">Raw TCP only</a></li>
</ul>
</li>
<li><a href="#limitations">Limitations</a></li>
</ul>
</li>
<li><a href="#waku2-enr-key"><code>waku2</code> ENR key</a>
<ul>
<li><a href="#usage-1">Usage</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,55 +174,68 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#registration">Registration</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#implementation-notes">Implementation notes</a></li>
<li><a href="#registration">Registration</a>
<ul>
<li><a href="#implementation-notes">Implementation notes</a></li>
</ul>
</li>
<li><a href="#signaling">Signaling</a>
<ul>
<li><a href="#implementation-notes-1">Implementation notes</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a>
<ul>
<li><a href="#implementation-notes-2">Implementation notes</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#signaling">Signaling</a>
<li><a href="#technical-overview">Technical overview</a>
<ul>
<li><a href="#implementation-notes-1">Implementation notes</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#rln-zk-circuit-specific-terms">RLN ZK-Circuit specific terms</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#system-parameters">System parameters</a></li>
<li><a href="#circuit-parameters">Circuit parameters</a></li>
<li><a href="#hash-function">Hash function</a></li>
<li><a href="#membership-implementation">Membership implementation</a></li>
<li><a href="#slashing-and-shamirs-secret-sharing">Slashing and Shamir&rsquo;s Secret Sharing</a></li>
</ul>
</li>
<li><a href="#identity-credentials-generation">Identity credentials generation</a>
<ul>
<li><a href="#identity_secret"><code>identity_secret</code></a></li>
<li><a href="#identity_secret_hash"><code>identity_secret_hash</code></a></li>
<li><a href="#identity_commitment"><code>identity_commitment</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#implementation-notes-2">Implementation notes</a></li>
<li><a href="#sss-security-assumptions">SSS security assumptions</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#rln-zk-circuit-specific-terms">RLN ZK-Circuit specific terms</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<li><a href="#appendix-b-identity-scheme-choice">Appendix B: Identity scheme choice</a></li>
<li><a href="#appendix-c-auxiliary-tooling">Appendix C: Auxiliary tooling</a></li>
<li><a href="#appendix-d-example-usage">Appendix D: Example usage</a>
<ul>
<li><a href="#system-parameters">System parameters</a></li>
<li><a href="#circuit-parameters">Circuit parameters</a></li>
<li><a href="#hash-function">Hash function</a></li>
<li><a href="#membership-implementation">Membership implementation</a></li>
<li><a href="#slashing-and-shamirs-secret-sharing">Slashing and Shamir&rsquo;s Secret Sharing</a></li>
<li><a href="#creating-a-rln-object">Creating a RLN object</a></li>
<li><a href="#generating-identity-credentials">Generating identity credentials</a></li>
<li><a href="#adding-id-commitment-to-the-rln-merkle-tree">Adding ID commitment to the RLN Merkle tree</a></li>
<li><a href="#setting-epoch-and-signal">Setting epoch and signal</a></li>
<li><a href="#generating-proof-1">Generating proof</a></li>
<li><a href="#verifiying-proof">Verifiying proof</a></li>
</ul>
</li>
<li><a href="#identity-credentials-generation">Identity credentials generation</a>
<ul>
<li><a href="#identity_secret"><code>identity_secret</code></a></li>
<li><a href="#identity_secret_hash"><code>identity_secret_hash</code></a></li>
<li><a href="#identity_commitment"><code>identity_commitment</code></a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#sss-security-assumptions">SSS security assumptions</a></li>
</ul>
<ul>
<li><a href="#creating-a-rln-object">Creating a RLN object</a></li>
<li><a href="#generating-identity-credentials">Generating identity credentials</a></li>
<li><a href="#adding-id-commitment-to-the-rln-merkle-tree">Adding ID commitment to the RLN Merkle tree</a></li>
<li><a href="#setting-epoch-and-signal">Setting epoch and signal</a></li>
<li><a href="#generating-proof-1">Generating proof</a></li>
<li><a href="#verifiying-proof">Verifiying proof</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -1022,55 +1035,68 @@ The examples are written in <a href="https://www.rust-lang.org/">rust</a>.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#registration">Registration</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#implementation-notes">Implementation notes</a></li>
<li><a href="#registration">Registration</a>
<ul>
<li><a href="#implementation-notes">Implementation notes</a></li>
</ul>
</li>
<li><a href="#signaling">Signaling</a>
<ul>
<li><a href="#implementation-notes-1">Implementation notes</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a>
<ul>
<li><a href="#implementation-notes-2">Implementation notes</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#signaling">Signaling</a>
<li><a href="#technical-overview">Technical overview</a>
<ul>
<li><a href="#implementation-notes-1">Implementation notes</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#rln-zk-circuit-specific-terms">RLN ZK-Circuit specific terms</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#system-parameters">System parameters</a></li>
<li><a href="#circuit-parameters">Circuit parameters</a></li>
<li><a href="#hash-function">Hash function</a></li>
<li><a href="#membership-implementation">Membership implementation</a></li>
<li><a href="#slashing-and-shamirs-secret-sharing">Slashing and Shamir&rsquo;s Secret Sharing</a></li>
</ul>
</li>
<li><a href="#identity-credentials-generation">Identity credentials generation</a>
<ul>
<li><a href="#identity_secret"><code>identity_secret</code></a></li>
<li><a href="#identity_secret_hash"><code>identity_secret_hash</code></a></li>
<li><a href="#identity_commitment"><code>identity_commitment</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#implementation-notes-2">Implementation notes</a></li>
<li><a href="#sss-security-assumptions">SSS security assumptions</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#rln-zk-circuit-specific-terms">RLN ZK-Circuit specific terms</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<li><a href="#appendix-b-identity-scheme-choice">Appendix B: Identity scheme choice</a></li>
<li><a href="#appendix-c-auxiliary-tooling">Appendix C: Auxiliary tooling</a></li>
<li><a href="#appendix-d-example-usage">Appendix D: Example usage</a>
<ul>
<li><a href="#system-parameters">System parameters</a></li>
<li><a href="#circuit-parameters">Circuit parameters</a></li>
<li><a href="#hash-function">Hash function</a></li>
<li><a href="#membership-implementation">Membership implementation</a></li>
<li><a href="#slashing-and-shamirs-secret-sharing">Slashing and Shamir&rsquo;s Secret Sharing</a></li>
<li><a href="#creating-a-rln-object">Creating a RLN object</a></li>
<li><a href="#generating-identity-credentials">Generating identity credentials</a></li>
<li><a href="#adding-id-commitment-to-the-rln-merkle-tree">Adding ID commitment to the RLN Merkle tree</a></li>
<li><a href="#setting-epoch-and-signal">Setting epoch and signal</a></li>
<li><a href="#generating-proof-1">Generating proof</a></li>
<li><a href="#verifiying-proof">Verifiying proof</a></li>
</ul>
</li>
<li><a href="#identity-credentials-generation">Identity credentials generation</a>
<ul>
<li><a href="#identity_secret"><code>identity_secret</code></a></li>
<li><a href="#identity_secret_hash"><code>identity_secret_hash</code></a></li>
<li><a href="#identity_commitment"><code>identity_commitment</code></a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#sss-security-assumptions">SSS security assumptions</a></li>
</ul>
<ul>
<li><a href="#creating-a-rln-object">Creating a RLN object</a></li>
<li><a href="#generating-identity-credentials">Generating identity credentials</a></li>
<li><a href="#adding-id-commitment-to-the-rln-merkle-tree">Adding ID commitment to the RLN Merkle tree</a></li>
<li><a href="#setting-epoch-and-signal">Setting epoch and signal</a></li>
<li><a href="#generating-proof-1">Generating proof</a></li>
<li><a href="#verifiying-proof">Verifiying proof</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -172,22 +172,34 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#separate-discovery-network">Separate Discovery Network</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#disclaimer">Disclaimer</a></li>
<li><a href="#background-and-rationale">Background and Rationale</a>
<ul>
<li><a href="#wrt-waku2-relay-network">w.r.t. Waku2 Relay Network</a></li>
<li><a href="#wrt-ethereum-discovery-v5">w.r.t. Ethereum Discovery v5</a></li>
<li><a href="#separate-discovery-network">Separate Discovery Network</a>
<ul>
<li><a href="#wrt-waku2-relay-network">w.r.t. Waku2 Relay Network</a></li>
<li><a href="#wrt-ethereum-discovery-v5">w.r.t. Ethereum Discovery v5</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#waku2-specific-protocol-id">WAKU2-Specific <code>protocol-id</code></a></li>
</ul>
<ul>
<li><a href="#sybil-attack">Sybil attack</a></li>
<li><a href="#eclipse-attack">Eclipse attack</a></li>
<li><a href="#security-implications-of-a-separate-discovery-network">Security Implications of a Separate Discovery Network</a></li>
<li><a href="#semantics">Semantics</a></li>
<li><a href="#wire-format-specification">Wire Format Specification</a>
<ul>
<li><a href="#waku2-specific-protocol-id">WAKU2-Specific <code>protocol-id</code></a></li>
</ul>
</li>
<li><a href="#suggestions-for-implementations">Suggestions for Implementations</a></li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#sybil-attack">Sybil attack</a></li>
<li><a href="#eclipse-attack">Eclipse attack</a></li>
<li><a href="#security-implications-of-a-separate-discovery-network">Security Implications of a Separate Discovery Network</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -419,22 +431,34 @@ The efficiency loss is especially severe with a relatively small number of Waku
<nav id="TableOfContents">
<ul>
<li><a href="#separate-discovery-network">Separate Discovery Network</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#disclaimer">Disclaimer</a></li>
<li><a href="#background-and-rationale">Background and Rationale</a>
<ul>
<li><a href="#wrt-waku2-relay-network">w.r.t. Waku2 Relay Network</a></li>
<li><a href="#wrt-ethereum-discovery-v5">w.r.t. Ethereum Discovery v5</a></li>
<li><a href="#separate-discovery-network">Separate Discovery Network</a>
<ul>
<li><a href="#wrt-waku2-relay-network">w.r.t. Waku2 Relay Network</a></li>
<li><a href="#wrt-ethereum-discovery-v5">w.r.t. Ethereum Discovery v5</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#waku2-specific-protocol-id">WAKU2-Specific <code>protocol-id</code></a></li>
</ul>
<ul>
<li><a href="#sybil-attack">Sybil attack</a></li>
<li><a href="#eclipse-attack">Eclipse attack</a></li>
<li><a href="#security-implications-of-a-separate-discovery-network">Security Implications of a Separate Discovery Network</a></li>
<li><a href="#semantics">Semantics</a></li>
<li><a href="#wire-format-specification">Wire Format Specification</a>
<ul>
<li><a href="#waku2-specific-protocol-id">WAKU2-Specific <code>protocol-id</code></a></li>
</ul>
</li>
<li><a href="#suggestions-for-implementations">Suggestions for Implementations</a></li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#sybil-attack">Sybil attack</a></li>
<li><a href="#eclipse-attack">Eclipse attack</a></li>
<li><a href="#security-implications-of-a-separate-discovery-network">Security Implications of a Separate Discovery Network</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,14 +176,25 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#discovery-interface">Discovery Interface</a></li>
<li><a href="#exchange-peer-cache-size">Exchange Peer Cache Size</a></li>
</ul>
<ul>
<li><a href="#requester">Requester</a></li>
<li><a href="#responder">Responder</a></li>
<li><a href="#further-considerations">Further Considerations</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#theory-and-protocol-semantics">Theory and Protocol Semantics</a></li>
<li><a href="#wire-format-specification">Wire Format Specification</a></li>
<li><a href="#implementation-suggestions">Implementation Suggestions</a>
<ul>
<li><a href="#discovery-interface">Discovery Interface</a></li>
<li><a href="#exchange-peer-cache-size">Exchange Peer Cache Size</a></li>
</ul>
</li>
<li><a href="#securityprivacyanonymity-considerations">Security/Privacy/Anonymity Considerations</a>
<ul>
<li><a href="#requester">Requester</a></li>
<li><a href="#responder">Responder</a></li>
<li><a href="#further-considerations">Further Considerations</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -416,14 +427,25 @@ We will investigate this further in our Waku anonymity analysis.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#discovery-interface">Discovery Interface</a></li>
<li><a href="#exchange-peer-cache-size">Exchange Peer Cache Size</a></li>
</ul>
<ul>
<li><a href="#requester">Requester</a></li>
<li><a href="#responder">Responder</a></li>
<li><a href="#further-considerations">Further Considerations</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#theory-and-protocol-semantics">Theory and Protocol Semantics</a></li>
<li><a href="#wire-format-specification">Wire Format Specification</a></li>
<li><a href="#implementation-suggestions">Implementation Suggestions</a>
<ul>
<li><a href="#discovery-interface">Discovery Interface</a></li>
<li><a href="#exchange-peer-cache-size">Exchange Peer Cache Size</a></li>
</ul>
</li>
<li><a href="#securityprivacyanonymity-considerations">Security/Privacy/Anonymity Considerations</a>
<ul>
<li><a href="#requester">Requester</a></li>
<li><a href="#responder">Responder</a></li>
<li><a href="#further-considerations">Further Considerations</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,32 +176,36 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#supported-cryptographic-protocols">Supported Cryptographic Protocols</a>
<li>
<ul>
<li><a href="#noise-protocols">Noise Protocols</a></li>
<li><a href="#encryption-primitives">Encryption Primitives</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#supported-cryptographic-protocols">Supported Cryptographic Protocols</a>
<ul>
<li><a href="#noise-protocols">Noise Protocols</a></li>
<li><a href="#encryption-primitives">Encryption Primitives</a></li>
</ul>
</li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#protocol-payload-format">Protocol Payload Format</a></li>
<li><a href="#public-keys-serialization">Public Keys Serialization</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#after-handshake">After-handshake</a></li>
<li><a href="#backward-support-for-symmetricasymmetric-encryption">Backward Support for Symmetric/Asymmetric Encryption</a></li>
<li><a href="#appendix-supported-handshakes-description">Appendix: Supported Handshakes Description</a>
<ul>
<li><a href="#the-k1k1-handshake">The <code>K1K1</code> Handshake</a></li>
<li><a href="#the-xk1-handshake">The <code>XK1</code> Handshake</a></li>
<li><a href="#the-xx-and-xxpsk0-handshakes">The <code>XX</code> and <code>XXpsk0</code> Handshakes</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#protocol-payload-format">Protocol Payload Format</a></li>
<li><a href="#public-keys-serialization">Public Keys Serialization</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#after-handshake">After-handshake</a></li>
<li><a href="#backward-support-for-symmetricasymmetric-encryption">Backward Support for Symmetric/Asymmetric Encryption</a></li>
<li><a href="#appendix-supported-handshakes-description">Appendix: Supported Handshakes Description</a>
<ul>
<li><a href="#the-k1k1-handshake">The <code>K1K1</code> Handshake</a></li>
<li><a href="#the-xk1-handshake">The <code>XK1</code> Handshake</a></li>
<li><a href="#the-xx-and-xxpsk0-handshakes">The <code>XX</code> and <code>XXpsk0</code> Handshakes</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -607,32 +611,36 @@ it SHOULD be decoded as the <code>data</code> field in <a href="/spec/26">26/WAK
<nav id="TableOfContents">
<ul>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#supported-cryptographic-protocols">Supported Cryptographic Protocols</a>
<li>
<ul>
<li><a href="#noise-protocols">Noise Protocols</a></li>
<li><a href="#encryption-primitives">Encryption Primitives</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#supported-cryptographic-protocols">Supported Cryptographic Protocols</a>
<ul>
<li><a href="#noise-protocols">Noise Protocols</a></li>
<li><a href="#encryption-primitives">Encryption Primitives</a></li>
</ul>
</li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#protocol-payload-format">Protocol Payload Format</a></li>
<li><a href="#public-keys-serialization">Public Keys Serialization</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#after-handshake">After-handshake</a></li>
<li><a href="#backward-support-for-symmetricasymmetric-encryption">Backward Support for Symmetric/Asymmetric Encryption</a></li>
<li><a href="#appendix-supported-handshakes-description">Appendix: Supported Handshakes Description</a>
<ul>
<li><a href="#the-k1k1-handshake">The <code>K1K1</code> Handshake</a></li>
<li><a href="#the-xk1-handshake">The <code>XK1</code> Handshake</a></li>
<li><a href="#the-xx-and-xxpsk0-handshakes">The <code>XX</code> and <code>XXpsk0</code> Handshakes</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#protocol-payload-format">Protocol Payload Format</a></li>
<li><a href="#public-keys-serialization">Public Keys Serialization</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#after-handshake">After-handshake</a></li>
<li><a href="#backward-support-for-symmetricasymmetric-encryption">Backward Support for Symmetric/Asymmetric Encryption</a></li>
<li><a href="#appendix-supported-handshakes-description">Appendix: Supported Handshakes Description</a>
<ul>
<li><a href="#the-k1k1-handshake">The <code>K1K1</code> Handshake</a></li>
<li><a href="#the-xk1-handshake">The <code>XK1</code> Handshake</a></li>
<li><a href="#the-xx-and-xxpsk0-handshakes">The <code>XX</code> and <code>XXpsk0</code> Handshakes</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -178,96 +178,103 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#general">General</a>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#the-api">The API</a>
<ul>
<li><a href="#jsonresponse-type"><code>JsonResponse</code> type</a></li>
<li><a href="#jsonmessage-type"><code>JsonMessage</code> type</a></li>
<li><a href="#decodedpayload-type"><code>DecodedPayload</code> type</a></li>
<li><a href="#filtersubscription-type"><code>FilterSubscription</code> type</a></li>
<li><a href="#contentfilter-type"><code>ContentFilter</code> type</a></li>
<li><a href="#storequery-type"><code>StoreQuery</code> type</a></li>
<li><a href="#storeresponse-type"><code>StoreResponse</code> type</a></li>
<li><a href="#pagingoptions-type"><code>PagingOptions</code> type</a></li>
<li><a href="#index-type"><code>Index</code> type</a></li>
</ul>
</li>
<li><a href="#events">Events</a>
<ul>
<li><a href="#jsonsignal-type"><code>JsonSignal</code> type</a></li>
<li><a href="#jsonmessageevent-type"><code>JsonMessageEvent</code> type</a></li>
<li><a href="#extern-void-waku_set_event_callbackvoid-cb"><code>extern void waku_set_event_callback(void* cb)</code></a></li>
</ul>
</li>
<li><a href="#node-management">Node management</a>
<ul>
<li><a href="#jsonconfig-type"><code>JsonConfig</code> type</a></li>
<li><a href="#gossipsubparameters-type"><code>GossipsubParameters</code> type</a></li>
<li><a href="#extern-char-waku_newchar-jsonconfig"><code>extern char* waku_new(char* jsonConfig)</code></a></li>
<li><a href="#extern-char-waku_start"><code>extern char* waku_start()</code></a></li>
<li><a href="#extern-char-waku_stop"><code>extern char* waku_stop()</code></a></li>
<li><a href="#extern-char-waku_peerid"><code>extern char* waku_peerid()</code></a></li>
<li><a href="#extern-char-waku_listen_addresses"><code>extern char* waku_listen_addresses()</code></a></li>
</ul>
</li>
<li><a href="#connecting-to-peers">Connecting to peers</a>
<ul>
<li><a href="#extern-char-waku_add_peerchar-address-char-protocolid"><code>extern char* waku_add_peer(char* address, char* protocolId)</code></a></li>
<li><a href="#extern-char-waku_connectchar-address-int-timeoutms"><code>extern char* waku_connect(char* address, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_connect_peeridchar-peerid-int-timeoutms"><code>extern char* waku_connect_peerid(char* peerId, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_disconnectchar-peerid"><code>extern char* waku_disconnect(char* peerId)</code></a></li>
<li><a href="#extern-char-waku_peer_count"><code>extern char* waku_peer_count()</code></a></li>
<li><a href="#extern-char-waku_peers"><code>extern char* waku_peers()</code></a></li>
</ul>
</li>
<li><a href="#waku-relay">Waku Relay</a>
<ul>
<li><a href="#extern-char-waku_content_topicchar-applicationname-unsigned-int-applicationversion-char-contenttopicname-char-encoding"><code>extern char* waku_content_topic(char* applicationName, unsigned int applicationVersion, char* contentTopicName, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_pubsub_topicchar-name-char-encoding"><code>extern char* waku_pubsub_topic(char* name, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_default_pubsub_topic"><code>extern char* waku_default_pubsub_topic()</code></a></li>
<li><a href="#extern-char-waku_relay_publishchar-messagejson-char-pubsubtopic-int-timeoutms"><code>extern char* waku_relay_publish(char* messageJson, char* pubsubTopic, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_enough_peerschar-pubsubtopic"><code>extern char* waku_relay_enough_peers(char* pubsubTopic)</code></a></li>
<li><a href="#extern-char-waku_relay_subscribechar-topic"><code>extern char* waku_relay_subscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_unsubscribechar-topic"><code>extern char* waku_relay_unsubscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_topics"><code>extern char* waku_relay_topics()</code></a></li>
</ul>
</li>
<li><a href="#waku-filter">Waku Filter</a>
<ul>
<li><a href="#extern-char-waku_filter_subscribechar-filterjson-char-peerid-int-timeoutms"><code>extern char* waku_filter_subscribe(char* filterJSON, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_filter_unsubscribechar-filterjson-int-timeoutms"><code>extern char* waku_filter_unsubscribe(char* filterJSON, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-lightpush">Waku Lightpush</a>
<ul>
<li><a href="#extern-char-waku_lightpush_publishchar-messagejson-char-topic-char-peerid-int-timeoutms"><code>extern char* waku_lightpush_publish(char* messageJSON, char* topic, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-peerid-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* peerID, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-peerid-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* peerID, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-store">Waku Store</a>
<ul>
<li><a href="#extern-char-waku_store_querychar-queryjson-char-peerid-int-timeoutms"><code>extern char* waku_store_query(char* queryJSON, char* peerID, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#decrypting-messages">Decrypting messages</a>
<ul>
<li><a href="#extern-char-waku_decode_symmetricchar-messagejson-char-symmetrickey"><code>extern char* waku_decode_symmetric(char* messageJson, char* symmetricKey)</code></a></li>
<li><a href="#extern-char-waku_decode_asymmetricchar-messagejson-char-privatekey"><code>extern char* waku_decode_asymmetric(char* messageJson, char* privateKey)</code></a></li>
</ul>
</li>
<li><a href="#dns-discovery">DNS Discovery</a>
<ul>
<li><a href="#extern-char-waku_dns_discoverychar-url-char-nameserver-int-timeoutms"><code>extern char* waku_dns_discovery(char* url, char* nameserver, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#utils">Utils</a>
<ul>
<li><a href="#extern-char-waku_utils_base64_encodechar-data"><code>extern char* waku_utils_base64_encode(char* data)</code></a></li>
<li><a href="#extern-char-waku_utils_base64_decodechar-data"><code>extern char* waku_utils_base64_decode(char* data)</code></a></li>
<li><a href="#general">General</a>
<ul>
<li><a href="#jsonresponse-type"><code>JsonResponse</code> type</a></li>
<li><a href="#jsonmessage-type"><code>JsonMessage</code> type</a></li>
<li><a href="#decodedpayload-type"><code>DecodedPayload</code> type</a></li>
<li><a href="#filtersubscription-type"><code>FilterSubscription</code> type</a></li>
<li><a href="#contentfilter-type"><code>ContentFilter</code> type</a></li>
<li><a href="#storequery-type"><code>StoreQuery</code> type</a></li>
<li><a href="#storeresponse-type"><code>StoreResponse</code> type</a></li>
<li><a href="#pagingoptions-type"><code>PagingOptions</code> type</a></li>
<li><a href="#index-type"><code>Index</code> type</a></li>
</ul>
</li>
<li><a href="#events">Events</a>
<ul>
<li><a href="#jsonsignal-type"><code>JsonSignal</code> type</a></li>
<li><a href="#jsonmessageevent-type"><code>JsonMessageEvent</code> type</a></li>
<li><a href="#extern-void-waku_set_event_callbackvoid-cb"><code>extern void waku_set_event_callback(void* cb)</code></a></li>
</ul>
</li>
<li><a href="#node-management">Node management</a>
<ul>
<li><a href="#jsonconfig-type"><code>JsonConfig</code> type</a></li>
<li><a href="#gossipsubparameters-type"><code>GossipsubParameters</code> type</a></li>
<li><a href="#extern-char-waku_newchar-jsonconfig"><code>extern char* waku_new(char* jsonConfig)</code></a></li>
<li><a href="#extern-char-waku_start"><code>extern char* waku_start()</code></a></li>
<li><a href="#extern-char-waku_stop"><code>extern char* waku_stop()</code></a></li>
<li><a href="#extern-char-waku_peerid"><code>extern char* waku_peerid()</code></a></li>
<li><a href="#extern-char-waku_listen_addresses"><code>extern char* waku_listen_addresses()</code></a></li>
</ul>
</li>
<li><a href="#connecting-to-peers">Connecting to peers</a>
<ul>
<li><a href="#extern-char-waku_add_peerchar-address-char-protocolid"><code>extern char* waku_add_peer(char* address, char* protocolId)</code></a></li>
<li><a href="#extern-char-waku_connectchar-address-int-timeoutms"><code>extern char* waku_connect(char* address, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_connect_peeridchar-peerid-int-timeoutms"><code>extern char* waku_connect_peerid(char* peerId, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_disconnectchar-peerid"><code>extern char* waku_disconnect(char* peerId)</code></a></li>
<li><a href="#extern-char-waku_peer_count"><code>extern char* waku_peer_count()</code></a></li>
<li><a href="#extern-char-waku_peers"><code>extern char* waku_peers()</code></a></li>
</ul>
</li>
<li><a href="#waku-relay">Waku Relay</a>
<ul>
<li><a href="#extern-char-waku_content_topicchar-applicationname-unsigned-int-applicationversion-char-contenttopicname-char-encoding"><code>extern char* waku_content_topic(char* applicationName, unsigned int applicationVersion, char* contentTopicName, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_pubsub_topicchar-name-char-encoding"><code>extern char* waku_pubsub_topic(char* name, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_default_pubsub_topic"><code>extern char* waku_default_pubsub_topic()</code></a></li>
<li><a href="#extern-char-waku_relay_publishchar-messagejson-char-pubsubtopic-int-timeoutms"><code>extern char* waku_relay_publish(char* messageJson, char* pubsubTopic, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_enough_peerschar-pubsubtopic"><code>extern char* waku_relay_enough_peers(char* pubsubTopic)</code></a></li>
<li><a href="#extern-char-waku_relay_subscribechar-topic"><code>extern char* waku_relay_subscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_unsubscribechar-topic"><code>extern char* waku_relay_unsubscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_topics"><code>extern char* waku_relay_topics()</code></a></li>
</ul>
</li>
<li><a href="#waku-filter">Waku Filter</a>
<ul>
<li><a href="#extern-char-waku_filter_subscribechar-filterjson-char-peerid-int-timeoutms"><code>extern char* waku_filter_subscribe(char* filterJSON, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_filter_unsubscribechar-filterjson-int-timeoutms"><code>extern char* waku_filter_unsubscribe(char* filterJSON, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-lightpush">Waku Lightpush</a>
<ul>
<li><a href="#extern-char-waku_lightpush_publishchar-messagejson-char-topic-char-peerid-int-timeoutms"><code>extern char* waku_lightpush_publish(char* messageJSON, char* topic, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-peerid-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* peerID, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-peerid-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* peerID, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-store">Waku Store</a>
<ul>
<li><a href="#extern-char-waku_store_querychar-queryjson-char-peerid-int-timeoutms"><code>extern char* waku_store_query(char* queryJSON, char* peerID, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#decrypting-messages">Decrypting messages</a>
<ul>
<li><a href="#extern-char-waku_decode_symmetricchar-messagejson-char-symmetrickey"><code>extern char* waku_decode_symmetric(char* messageJson, char* symmetricKey)</code></a></li>
<li><a href="#extern-char-waku_decode_asymmetricchar-messagejson-char-privatekey"><code>extern char* waku_decode_asymmetric(char* messageJson, char* privateKey)</code></a></li>
</ul>
</li>
<li><a href="#dns-discovery">DNS Discovery</a>
<ul>
<li><a href="#extern-char-waku_dns_discoverychar-url-char-nameserver-int-timeoutms"><code>extern char* waku_dns_discovery(char* url, char* nameserver, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#utils">Utils</a>
<ul>
<li><a href="#extern-char-waku_utils_base64_encodechar-data"><code>extern char* waku_utils_base64_encode(char* data)</code></a></li>
<li><a href="#extern-char-waku_utils_base64_decodechar-data"><code>extern char* waku_utils_base64_decode(char* data)</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -1438,96 +1445,103 @@ If the execution is successful, the <code>result</code> field contains the decod
<nav id="TableOfContents">
<ul>
<li><a href="#general">General</a>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#design-requirements">Design requirements</a></li>
<li><a href="#the-api">The API</a>
<ul>
<li><a href="#jsonresponse-type"><code>JsonResponse</code> type</a></li>
<li><a href="#jsonmessage-type"><code>JsonMessage</code> type</a></li>
<li><a href="#decodedpayload-type"><code>DecodedPayload</code> type</a></li>
<li><a href="#filtersubscription-type"><code>FilterSubscription</code> type</a></li>
<li><a href="#contentfilter-type"><code>ContentFilter</code> type</a></li>
<li><a href="#storequery-type"><code>StoreQuery</code> type</a></li>
<li><a href="#storeresponse-type"><code>StoreResponse</code> type</a></li>
<li><a href="#pagingoptions-type"><code>PagingOptions</code> type</a></li>
<li><a href="#index-type"><code>Index</code> type</a></li>
</ul>
</li>
<li><a href="#events">Events</a>
<ul>
<li><a href="#jsonsignal-type"><code>JsonSignal</code> type</a></li>
<li><a href="#jsonmessageevent-type"><code>JsonMessageEvent</code> type</a></li>
<li><a href="#extern-void-waku_set_event_callbackvoid-cb"><code>extern void waku_set_event_callback(void* cb)</code></a></li>
</ul>
</li>
<li><a href="#node-management">Node management</a>
<ul>
<li><a href="#jsonconfig-type"><code>JsonConfig</code> type</a></li>
<li><a href="#gossipsubparameters-type"><code>GossipsubParameters</code> type</a></li>
<li><a href="#extern-char-waku_newchar-jsonconfig"><code>extern char* waku_new(char* jsonConfig)</code></a></li>
<li><a href="#extern-char-waku_start"><code>extern char* waku_start()</code></a></li>
<li><a href="#extern-char-waku_stop"><code>extern char* waku_stop()</code></a></li>
<li><a href="#extern-char-waku_peerid"><code>extern char* waku_peerid()</code></a></li>
<li><a href="#extern-char-waku_listen_addresses"><code>extern char* waku_listen_addresses()</code></a></li>
</ul>
</li>
<li><a href="#connecting-to-peers">Connecting to peers</a>
<ul>
<li><a href="#extern-char-waku_add_peerchar-address-char-protocolid"><code>extern char* waku_add_peer(char* address, char* protocolId)</code></a></li>
<li><a href="#extern-char-waku_connectchar-address-int-timeoutms"><code>extern char* waku_connect(char* address, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_connect_peeridchar-peerid-int-timeoutms"><code>extern char* waku_connect_peerid(char* peerId, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_disconnectchar-peerid"><code>extern char* waku_disconnect(char* peerId)</code></a></li>
<li><a href="#extern-char-waku_peer_count"><code>extern char* waku_peer_count()</code></a></li>
<li><a href="#extern-char-waku_peers"><code>extern char* waku_peers()</code></a></li>
</ul>
</li>
<li><a href="#waku-relay">Waku Relay</a>
<ul>
<li><a href="#extern-char-waku_content_topicchar-applicationname-unsigned-int-applicationversion-char-contenttopicname-char-encoding"><code>extern char* waku_content_topic(char* applicationName, unsigned int applicationVersion, char* contentTopicName, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_pubsub_topicchar-name-char-encoding"><code>extern char* waku_pubsub_topic(char* name, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_default_pubsub_topic"><code>extern char* waku_default_pubsub_topic()</code></a></li>
<li><a href="#extern-char-waku_relay_publishchar-messagejson-char-pubsubtopic-int-timeoutms"><code>extern char* waku_relay_publish(char* messageJson, char* pubsubTopic, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_enough_peerschar-pubsubtopic"><code>extern char* waku_relay_enough_peers(char* pubsubTopic)</code></a></li>
<li><a href="#extern-char-waku_relay_subscribechar-topic"><code>extern char* waku_relay_subscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_unsubscribechar-topic"><code>extern char* waku_relay_unsubscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_topics"><code>extern char* waku_relay_topics()</code></a></li>
</ul>
</li>
<li><a href="#waku-filter">Waku Filter</a>
<ul>
<li><a href="#extern-char-waku_filter_subscribechar-filterjson-char-peerid-int-timeoutms"><code>extern char* waku_filter_subscribe(char* filterJSON, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_filter_unsubscribechar-filterjson-int-timeoutms"><code>extern char* waku_filter_unsubscribe(char* filterJSON, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-lightpush">Waku Lightpush</a>
<ul>
<li><a href="#extern-char-waku_lightpush_publishchar-messagejson-char-topic-char-peerid-int-timeoutms"><code>extern char* waku_lightpush_publish(char* messageJSON, char* topic, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-peerid-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* peerID, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-peerid-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* peerID, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-store">Waku Store</a>
<ul>
<li><a href="#extern-char-waku_store_querychar-queryjson-char-peerid-int-timeoutms"><code>extern char* waku_store_query(char* queryJSON, char* peerID, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#decrypting-messages">Decrypting messages</a>
<ul>
<li><a href="#extern-char-waku_decode_symmetricchar-messagejson-char-symmetrickey"><code>extern char* waku_decode_symmetric(char* messageJson, char* symmetricKey)</code></a></li>
<li><a href="#extern-char-waku_decode_asymmetricchar-messagejson-char-privatekey"><code>extern char* waku_decode_asymmetric(char* messageJson, char* privateKey)</code></a></li>
</ul>
</li>
<li><a href="#dns-discovery">DNS Discovery</a>
<ul>
<li><a href="#extern-char-waku_dns_discoverychar-url-char-nameserver-int-timeoutms"><code>extern char* waku_dns_discovery(char* url, char* nameserver, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#utils">Utils</a>
<ul>
<li><a href="#extern-char-waku_utils_base64_encodechar-data"><code>extern char* waku_utils_base64_encode(char* data)</code></a></li>
<li><a href="#extern-char-waku_utils_base64_decodechar-data"><code>extern char* waku_utils_base64_decode(char* data)</code></a></li>
<li><a href="#general">General</a>
<ul>
<li><a href="#jsonresponse-type"><code>JsonResponse</code> type</a></li>
<li><a href="#jsonmessage-type"><code>JsonMessage</code> type</a></li>
<li><a href="#decodedpayload-type"><code>DecodedPayload</code> type</a></li>
<li><a href="#filtersubscription-type"><code>FilterSubscription</code> type</a></li>
<li><a href="#contentfilter-type"><code>ContentFilter</code> type</a></li>
<li><a href="#storequery-type"><code>StoreQuery</code> type</a></li>
<li><a href="#storeresponse-type"><code>StoreResponse</code> type</a></li>
<li><a href="#pagingoptions-type"><code>PagingOptions</code> type</a></li>
<li><a href="#index-type"><code>Index</code> type</a></li>
</ul>
</li>
<li><a href="#events">Events</a>
<ul>
<li><a href="#jsonsignal-type"><code>JsonSignal</code> type</a></li>
<li><a href="#jsonmessageevent-type"><code>JsonMessageEvent</code> type</a></li>
<li><a href="#extern-void-waku_set_event_callbackvoid-cb"><code>extern void waku_set_event_callback(void* cb)</code></a></li>
</ul>
</li>
<li><a href="#node-management">Node management</a>
<ul>
<li><a href="#jsonconfig-type"><code>JsonConfig</code> type</a></li>
<li><a href="#gossipsubparameters-type"><code>GossipsubParameters</code> type</a></li>
<li><a href="#extern-char-waku_newchar-jsonconfig"><code>extern char* waku_new(char* jsonConfig)</code></a></li>
<li><a href="#extern-char-waku_start"><code>extern char* waku_start()</code></a></li>
<li><a href="#extern-char-waku_stop"><code>extern char* waku_stop()</code></a></li>
<li><a href="#extern-char-waku_peerid"><code>extern char* waku_peerid()</code></a></li>
<li><a href="#extern-char-waku_listen_addresses"><code>extern char* waku_listen_addresses()</code></a></li>
</ul>
</li>
<li><a href="#connecting-to-peers">Connecting to peers</a>
<ul>
<li><a href="#extern-char-waku_add_peerchar-address-char-protocolid"><code>extern char* waku_add_peer(char* address, char* protocolId)</code></a></li>
<li><a href="#extern-char-waku_connectchar-address-int-timeoutms"><code>extern char* waku_connect(char* address, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_connect_peeridchar-peerid-int-timeoutms"><code>extern char* waku_connect_peerid(char* peerId, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_disconnectchar-peerid"><code>extern char* waku_disconnect(char* peerId)</code></a></li>
<li><a href="#extern-char-waku_peer_count"><code>extern char* waku_peer_count()</code></a></li>
<li><a href="#extern-char-waku_peers"><code>extern char* waku_peers()</code></a></li>
</ul>
</li>
<li><a href="#waku-relay">Waku Relay</a>
<ul>
<li><a href="#extern-char-waku_content_topicchar-applicationname-unsigned-int-applicationversion-char-contenttopicname-char-encoding"><code>extern char* waku_content_topic(char* applicationName, unsigned int applicationVersion, char* contentTopicName, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_pubsub_topicchar-name-char-encoding"><code>extern char* waku_pubsub_topic(char* name, char* encoding)</code></a></li>
<li><a href="#extern-char-waku_default_pubsub_topic"><code>extern char* waku_default_pubsub_topic()</code></a></li>
<li><a href="#extern-char-waku_relay_publishchar-messagejson-char-pubsubtopic-int-timeoutms"><code>extern char* waku_relay_publish(char* messageJson, char* pubsubTopic, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_relay_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_relay_enough_peerschar-pubsubtopic"><code>extern char* waku_relay_enough_peers(char* pubsubTopic)</code></a></li>
<li><a href="#extern-char-waku_relay_subscribechar-topic"><code>extern char* waku_relay_subscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_unsubscribechar-topic"><code>extern char* waku_relay_unsubscribe(char* topic)</code></a></li>
<li><a href="#extern-char-waku_relay_topics"><code>extern char* waku_relay_topics()</code></a></li>
</ul>
</li>
<li><a href="#waku-filter">Waku Filter</a>
<ul>
<li><a href="#extern-char-waku_filter_subscribechar-filterjson-char-peerid-int-timeoutms"><code>extern char* waku_filter_subscribe(char* filterJSON, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_filter_unsubscribechar-filterjson-int-timeoutms"><code>extern char* waku_filter_unsubscribe(char* filterJSON, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-lightpush">Waku Lightpush</a>
<ul>
<li><a href="#extern-char-waku_lightpush_publishchar-messagejson-char-topic-char-peerid-int-timeoutms"><code>extern char* waku_lightpush_publish(char* messageJSON, char* topic, char* peerID, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_asymmetricchar-messagejson-char-pubsubtopic-char-peerid-char-publickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_asymmetric(char* messageJson, char* pubsubTopic, char* peerID, char* publicKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
<li><a href="#extern-char-waku_lightpush_publish_enc_symmetricchar-messagejson-char-pubsubtopic-char-peerid-char-symmetrickey-char-optionalsigningkey-int-timeoutms"><code>extern char* waku_lightpush_publish_enc_symmetric(char* messageJson, char* pubsubTopic, char* peerID, char* symmetricKey, char* optionalSigningKey, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#waku-store">Waku Store</a>
<ul>
<li><a href="#extern-char-waku_store_querychar-queryjson-char-peerid-int-timeoutms"><code>extern char* waku_store_query(char* queryJSON, char* peerID, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#decrypting-messages">Decrypting messages</a>
<ul>
<li><a href="#extern-char-waku_decode_symmetricchar-messagejson-char-symmetrickey"><code>extern char* waku_decode_symmetric(char* messageJson, char* symmetricKey)</code></a></li>
<li><a href="#extern-char-waku_decode_asymmetricchar-messagejson-char-privatekey"><code>extern char* waku_decode_asymmetric(char* messageJson, char* privateKey)</code></a></li>
</ul>
</li>
<li><a href="#dns-discovery">DNS Discovery</a>
<ul>
<li><a href="#extern-char-waku_dns_discoverychar-url-char-nameserver-int-timeoutms"><code>extern char* waku_dns_discovery(char* url, char* nameserver, int timeoutMs)</code></a></li>
</ul>
</li>
<li><a href="#utils">Utils</a>
<ul>
<li><a href="#extern-char-waku_utils_base64_encodechar-data"><code>extern char* waku_utils_base64_encode(char* data)</code></a></li>
<li><a href="#extern-char-waku_utils_base64_decodechar-data"><code>extern char* waku_utils_base64_decode(char* data)</code></a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -178,8 +178,16 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#the-n11m-session-management-mechanism">The $N11M$ session management mechanism</a></li>
<li><a href="#the-nm-session-management-mechanism">The $NM$ session management mechanism</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#preliminaries">Preliminaries</a></li>
<li><a href="#session-states">Session states</a></li>
<li><a href="#multi-device-support">Multi-Device support</a>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The $N11M$ session management mechanism</a></li>
<li><a href="#the-nm-session-management-mechanism">The $NM$ session management mechanism</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -384,8 +392,16 @@ the other party SHOULD send a termination message to mark all such Noise session
<nav id="TableOfContents">
<ul>
<li><a href="#the-n11m-session-management-mechanism">The $N11M$ session management mechanism</a></li>
<li><a href="#the-nm-session-management-mechanism">The $NM$ session management mechanism</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#preliminaries">Preliminaries</a></li>
<li><a href="#session-states">Session states</a></li>
<li><a href="#multi-device-support">Multi-Device support</a>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The $N11M$ session management mechanism</a></li>
<li><a href="#the-nm-session-management-mechanism">The $NM$ session management mechanism</a></li>
</ul>
</li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -172,45 +172,56 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#background">Background</a></li>
</ul>
<ul>
<li><a href="#algorithmic-concept">Algorithmic concept</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a>
<ul>
<li><a href="#initial-opinion">Initial opinion</a></li>
<li><a href="#setup-parameters">Setup Parameters</a></li>
<li><a href="#phase-one-query">Phase One: Query</a></li>
<li><a href="#phase-two-computation">Phase Two: Computation</a></li>
<li><a href="#phase-three-computation">Phase Three: Computation</a></li>
<li><a href="#decision">Decision</a></li>
<li><a href="#termination">Termination</a></li>
<li><a href="#background">Background</a></li>
</ul>
</li>
<li><a href="#further-points">Further points</a>
<li><a href="#claro-algorithm-specification">Claro Algorithm Specification</a>
<ul>
<li><a href="#node-receives-information-during-round">Node receives information during round</a></li>
<li><a href="#algorithmic-concept">Algorithmic concept</a>
<ul>
<li><a href="#initial-opinion">Initial opinion</a></li>
<li><a href="#setup-parameters">Setup Parameters</a></li>
<li><a href="#phase-one-query">Phase One: Query</a></li>
<li><a href="#phase-two-computation">Phase Two: Computation</a></li>
<li><a href="#phase-three-computation">Phase Three: Computation</a></li>
<li><a href="#decision">Decision</a></li>
<li><a href="#termination">Termination</a></li>
</ul>
</li>
<li><a href="#further-points">Further points</a>
<ul>
<li><a href="#node-receives-information-during-round">Node receives information during round</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#syntax">Syntax</a></li>
</ul>
<ul>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#security-with-respect-to-various-adversarial-models">Security with respect to various Adversarial Models</a>
<li><a href="#implementation-status">Implementation status</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#local-strategies">Local Strategies</a></li>
<li><a href="#omniscient-adversaries">Omniscient Adversaries</a></li>
<li><a href="#syntax">Syntax</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#security-with-respect-to-various-adversarial-models">Security with respect to various Adversarial Models</a>
<ul>
<li><a href="#local-strategies">Local Strategies</a></li>
<li><a href="#omniscient-adversaries">Omniscient Adversaries</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-directions">Future Directions</a></li>
<li><a href="#informative-references">Informative References</a>
<ul>
<li><a href="#normative-references">Normative References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#normative-references">Normative References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -937,45 +948,56 @@ Move: a Language for Writing DAG Abstractions</p>
<nav id="TableOfContents">
<ul>
<li><a href="#background">Background</a></li>
</ul>
<ul>
<li><a href="#algorithmic-concept">Algorithmic concept</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a>
<ul>
<li><a href="#initial-opinion">Initial opinion</a></li>
<li><a href="#setup-parameters">Setup Parameters</a></li>
<li><a href="#phase-one-query">Phase One: Query</a></li>
<li><a href="#phase-two-computation">Phase Two: Computation</a></li>
<li><a href="#phase-three-computation">Phase Three: Computation</a></li>
<li><a href="#decision">Decision</a></li>
<li><a href="#termination">Termination</a></li>
<li><a href="#background">Background</a></li>
</ul>
</li>
<li><a href="#further-points">Further points</a>
<li><a href="#claro-algorithm-specification">Claro Algorithm Specification</a>
<ul>
<li><a href="#node-receives-information-during-round">Node receives information during round</a></li>
<li><a href="#algorithmic-concept">Algorithmic concept</a>
<ul>
<li><a href="#initial-opinion">Initial opinion</a></li>
<li><a href="#setup-parameters">Setup Parameters</a></li>
<li><a href="#phase-one-query">Phase One: Query</a></li>
<li><a href="#phase-two-computation">Phase Two: Computation</a></li>
<li><a href="#phase-three-computation">Phase Three: Computation</a></li>
<li><a href="#decision">Decision</a></li>
<li><a href="#termination">Termination</a></li>
</ul>
</li>
<li><a href="#further-points">Further points</a>
<ul>
<li><a href="#node-receives-information-during-round">Node receives information during round</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#syntax">Syntax</a></li>
</ul>
<ul>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#security-with-respect-to-various-adversarial-models">Security with respect to various Adversarial Models</a>
<li><a href="#implementation-status">Implementation status</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#local-strategies">Local Strategies</a></li>
<li><a href="#omniscient-adversaries">Omniscient Adversaries</a></li>
<li><a href="#syntax">Syntax</a></li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a>
<ul>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#security-with-respect-to-various-adversarial-models">Security with respect to various Adversarial Models</a>
<ul>
<li><a href="#local-strategies">Local Strategies</a></li>
<li><a href="#omniscient-adversaries">Omniscient Adversaries</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#future-directions">Future Directions</a></li>
<li><a href="#informative-references">Informative References</a>
<ul>
<li><a href="#normative-references">Normative References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#normative-references">Normative References</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,20 +176,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#format">Format</a>
<li>
<ul>
<li><a href="#fields">Fields</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#format">Format</a>
<ul>
<li><a href="#fields">Fields</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#parents"><code>parents</code></a></li>
<li><a href="#ephemeral"><code>ephemeral</code></a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#parents"><code>parents</code></a></li>
<li><a href="#ephemeral"><code>ephemeral</code></a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>
@ -366,20 +370,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#format">Format</a>
<li>
<ul>
<li><a href="#fields">Fields</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#format">Format</a>
<ul>
<li><a href="#fields">Fields</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#parents"><code>parents</code></a></li>
<li><a href="#ephemeral"><code>ephemeral</code></a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a>
<ul>
<li><a href="#parents"><code>parents</code></a></li>
<li><a href="#ephemeral"><code>ephemeral</code></a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>

View File

@ -176,38 +176,50 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#device-pairing">Device Pairing</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background--rationale--motivation">Background / Rationale / Motivation</a></li>
<li><a href="#theory--semantics">Theory / Semantics</a>
<ul>
<li><a href="#employed-cryptographic-primitives">Employed Cryptographic Primitives</a></li>
<li><a href="#the-wakupairing-noise-handshake">The <code>WakuPairing</code> Noise Handshake</a></li>
<li><a href="#protocol-flow">Protocol Flow</a></li>
<li><a href="#the-wakupairing-for-devices-without-a-camera">The <code>WakuPairing</code> for Devices without a Camera</a></li>
<li><a href="#device-pairing">Device Pairing</a>
<ul>
<li><a href="#employed-cryptographic-primitives">Employed Cryptographic Primitives</a></li>
<li><a href="#the-wakupairing-noise-handshake">The <code>WakuPairing</code> Noise Handshake</a></li>
<li><a href="#protocol-flow">Protocol Flow</a></li>
<li><a href="#the-wakupairing-for-devices-without-a-camera">The <code>WakuPairing</code> for Devices without a Camera</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#timebox-qr-exposure">Timebox QR exposure</a></li>
<li><a href="#randomized-rekey">Randomized Rekey</a></li>
<li><a href="#messages-nametag-derivation">Messages Nametag Derivation</a></li>
</ul>
<ul>
<li>
<li><a href="#secure-transfer">Secure Transfer</a></li>
<li><a href="#implementation-suggestions">Implementation Suggestions</a>
<ul>
<li><a href="#assumptions">Assumptions</a></li>
<li><a href="#rationale">Rationale</a></li>
<li><a href="#timebox-qr-exposure">Timebox QR exposure</a></li>
<li><a href="#randomized-rekey">Randomized Rekey</a></li>
<li><a href="#messages-nametag-derivation">Messages Nametag Derivation</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li>
<ul>
<li><a href="#assumptions">Assumptions</a></li>
<li><a href="#rationale">Rationale</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#application-to-noise-sessions">Application to Noise Sessions</a>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The N11M session management mechanism</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a>
<ul>
<li><a href="#normative">Normative</a></li>
<li><a href="#informative">Informative</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The N11M session management mechanism</a></li>
</ul>
<ul>
<li><a href="#normative">Normative</a></li>
<li><a href="#informative">Informative</a></li>
</ul>
</nav>
@ -703,38 +715,50 @@ she must securely transfer a copy of such data from one of her device <code>A</c
<nav id="TableOfContents">
<ul>
<li><a href="#device-pairing">Device Pairing</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background--rationale--motivation">Background / Rationale / Motivation</a></li>
<li><a href="#theory--semantics">Theory / Semantics</a>
<ul>
<li><a href="#employed-cryptographic-primitives">Employed Cryptographic Primitives</a></li>
<li><a href="#the-wakupairing-noise-handshake">The <code>WakuPairing</code> Noise Handshake</a></li>
<li><a href="#protocol-flow">Protocol Flow</a></li>
<li><a href="#the-wakupairing-for-devices-without-a-camera">The <code>WakuPairing</code> for Devices without a Camera</a></li>
<li><a href="#device-pairing">Device Pairing</a>
<ul>
<li><a href="#employed-cryptographic-primitives">Employed Cryptographic Primitives</a></li>
<li><a href="#the-wakupairing-noise-handshake">The <code>WakuPairing</code> Noise Handshake</a></li>
<li><a href="#protocol-flow">Protocol Flow</a></li>
<li><a href="#the-wakupairing-for-devices-without-a-camera">The <code>WakuPairing</code> for Devices without a Camera</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#timebox-qr-exposure">Timebox QR exposure</a></li>
<li><a href="#randomized-rekey">Randomized Rekey</a></li>
<li><a href="#messages-nametag-derivation">Messages Nametag Derivation</a></li>
</ul>
<ul>
<li>
<li><a href="#secure-transfer">Secure Transfer</a></li>
<li><a href="#implementation-suggestions">Implementation Suggestions</a>
<ul>
<li><a href="#assumptions">Assumptions</a></li>
<li><a href="#rationale">Rationale</a></li>
<li><a href="#timebox-qr-exposure">Timebox QR exposure</a></li>
<li><a href="#randomized-rekey">Randomized Rekey</a></li>
<li><a href="#messages-nametag-derivation">Messages Nametag Derivation</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li>
<ul>
<li><a href="#assumptions">Assumptions</a></li>
<li><a href="#rationale">Rationale</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#application-to-noise-sessions">Application to Noise Sessions</a>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The N11M session management mechanism</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a>
<ul>
<li><a href="#normative">Normative</a></li>
<li><a href="#informative">Informative</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#the-n11m-session-management-mechanism">The N11M session management mechanism</a></li>
</ul>
<ul>
<li><a href="#normative">Normative</a></li>
<li><a href="#informative">Informative</a></li>
</ul>
</nav>

View File

@ -174,31 +174,42 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#choosing-the-state">Choosing the State</a></li>
<li><a href="#stem-state">Stem State</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#theory-and-functioning">Theory and Functioning</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#fail-safe">Fail Safe</a></li>
<li><a href="#choosing-the-state">Choosing the State</a></li>
<li><a href="#stem-state">Stem State</a>
<ul>
<li><a href="#fail-safe">Fail Safe</a></li>
</ul>
</li>
<li><a href="#fluff-state">Fluff State</a></li>
</ul>
</li>
<li><a href="#fluff-state">Fluff State</a></li>
</ul>
<ul>
<li><a href="#denial-of-service-black-hole-attack">Denial of Service: Black Hole Attack</a></li>
<li><a href="#anonymity-considerations">Anonymity Considerations</a>
<li><a href="#implementation-notes">Implementation Notes</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#attacker-model-and-anonymity-goals">Attacker Model and Anonymity Goals</a></li>
<li><a href="#non-dandelion-peers">Non-Dandelion Peers</a></li>
</ul>
</li>
<li><a href="#future-analysis">Future Analysis</a>
<ul>
<li><a href="#bound-stem-length">Bound Stem Length</a></li>
<li><a href="#stem-relay-selection">Stem Relay Selection</a></li>
<li><a href="#random-delay-in-fluff-phase">Random Delay in Fluff Phase</a></li>
<li><a href="#stem-flag">Stem Flag</a></li>
<li><a href="#denial-of-service-black-hole-attack">Denial of Service: Black Hole Attack</a></li>
<li><a href="#anonymity-considerations">Anonymity Considerations</a>
<ul>
<li><a href="#attacker-model-and-anonymity-goals">Attacker Model and Anonymity Goals</a></li>
<li><a href="#non-dandelion-peers">Non-Dandelion Peers</a></li>
</ul>
</li>
<li><a href="#future-analysis">Future Analysis</a>
<ul>
<li><a href="#bound-stem-length">Bound Stem Length</a></li>
<li><a href="#stem-relay-selection">Stem Relay Selection</a></li>
<li><a href="#random-delay-in-fluff-phase">Random Delay in Fluff Phase</a></li>
<li><a href="#stem-flag">Stem Flag</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -560,31 +571,42 @@ While this improves anonymity, as discussed above, it also introduces additional
<nav id="TableOfContents">
<ul>
<li><a href="#choosing-the-state">Choosing the State</a></li>
<li><a href="#stem-state">Stem State</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#theory-and-functioning">Theory and Functioning</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#fail-safe">Fail Safe</a></li>
<li><a href="#choosing-the-state">Choosing the State</a></li>
<li><a href="#stem-state">Stem State</a>
<ul>
<li><a href="#fail-safe">Fail Safe</a></li>
</ul>
</li>
<li><a href="#fluff-state">Fluff State</a></li>
</ul>
</li>
<li><a href="#fluff-state">Fluff State</a></li>
</ul>
<ul>
<li><a href="#denial-of-service-black-hole-attack">Denial of Service: Black Hole Attack</a></li>
<li><a href="#anonymity-considerations">Anonymity Considerations</a>
<li><a href="#implementation-notes">Implementation Notes</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#attacker-model-and-anonymity-goals">Attacker Model and Anonymity Goals</a></li>
<li><a href="#non-dandelion-peers">Non-Dandelion Peers</a></li>
</ul>
</li>
<li><a href="#future-analysis">Future Analysis</a>
<ul>
<li><a href="#bound-stem-length">Bound Stem Length</a></li>
<li><a href="#stem-relay-selection">Stem Relay Selection</a></li>
<li><a href="#random-delay-in-fluff-phase">Random Delay in Fluff Phase</a></li>
<li><a href="#stem-flag">Stem Flag</a></li>
<li><a href="#denial-of-service-black-hole-attack">Denial of Service: Black Hole Attack</a></li>
<li><a href="#anonymity-considerations">Anonymity Considerations</a>
<ul>
<li><a href="#attacker-model-and-anonymity-goals">Attacker Model and Anonymity Goals</a></li>
<li><a href="#non-dandelion-peers">Non-Dandelion Peers</a></li>
</ul>
</li>
<li><a href="#future-analysis">Future Analysis</a>
<ul>
<li><a href="#bound-stem-length">Bound Stem Length</a></li>
<li><a href="#stem-relay-selection">Stem Relay Selection</a></li>
<li><a href="#random-delay-in-fluff-phase">Random Delay in Fluff Phase</a></li>
<li><a href="#stem-flag">Stem Flag</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,59 +176,69 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#security">Security</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#anonymity">Anonymity</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-background">Motivation and Background</a></li>
<li><a href="#informal-definitions-security-privacy-and-anonymity">Informal Definitions: Security, Privacy, and Anonymity</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#sender-anonymity">Sender Anonymity</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#anonymity">Anonymity</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#sender-anonymity">Sender Anonymity</a></li>
</ul>
</li>
<li><a href="#anonymity-trilemma">Anonymity Trilemma</a></li>
<li><a href="#censorship-resistance">Censorship Resistance</a></li>
</ul>
</li>
<li><a href="#anonymity-trilemma">Anonymity Trilemma</a></li>
<li><a href="#censorship-resistance">Censorship Resistance</a></li>
</ul>
<ul>
<li><a href="#internal">Internal</a>
<li><a href="#adversarial-models">Adversarial Models</a>
<ul>
<li><a href="#single-node">Single Node</a></li>
<li><a href="#multi-node">Multi Node</a></li>
<li><a href="#scaling-multi-node">Scaling Multi Node</a></li>
<li><a href="#internal">Internal</a>
<ul>
<li><a href="#single-node">Single Node</a></li>
<li><a href="#multi-node">Multi Node</a></li>
<li><a href="#scaling-multi-node">Scaling Multi Node</a></li>
</ul>
</li>
<li><a href="#external">External</a>
<ul>
<li><a href="#local">Local</a></li>
<li><a href="#as">AS</a></li>
<li><a href="#global-on-net">Global (On-Net)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#external">External</a>
<li><a href="#attack-based-threats">Attack-based Threats</a>
<ul>
<li><a href="#local">Local</a></li>
<li><a href="#as">AS</a></li>
<li><a href="#global-on-net">Global (On-Net)</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#prerequisite-get-a-specific-position-in-the-network">Prerequisite: Get a Specific Position in the Network</a></li>
<li><a href="#sender-deanonymization">Sender Deanonymization</a>
<ul>
<li><a href="#replay-attack">Replay Attack</a></li>
<li><a href="#observing-messages">Observing Messages</a></li>
<li><a href="#neighbourhood-surveillance">Neighbourhood Surveillance</a></li>
<li><a href="#controlled-neighbourhood">Controlled Neighbourhood</a></li>
<li><a href="#correlation">Correlation</a></li>
</ul>
</li>
<li><a href="#mass-deanonymization">Mass Deanonymization</a>
<ul>
<li><a href="#graph-learning">Graph Learning</a></li>
<li><a href="#bayesian-analysis">Bayesian Analysis</a></li>
</ul>
</li>
<li><a href="#denial-of-service-dos">Denial of Service (DoS)</a>
<ul>
<li><a href="#flooding">Flooding</a></li>
<li><a href="#black-hole-internal">Black Hole (internal)</a></li>
<li><a href="#traffic-filtering-external">Traffic Filtering (external)</a></li>
<li><a href="#prerequisite-get-a-specific-position-in-the-network">Prerequisite: Get a Specific Position in the Network</a></li>
<li><a href="#sender-deanonymization">Sender Deanonymization</a>
<ul>
<li><a href="#replay-attack">Replay Attack</a></li>
<li><a href="#observing-messages">Observing Messages</a></li>
<li><a href="#neighbourhood-surveillance">Neighbourhood Surveillance</a></li>
<li><a href="#controlled-neighbourhood">Controlled Neighbourhood</a></li>
<li><a href="#correlation">Correlation</a></li>
</ul>
</li>
<li><a href="#mass-deanonymization">Mass Deanonymization</a>
<ul>
<li><a href="#graph-learning">Graph Learning</a></li>
<li><a href="#bayesian-analysis">Bayesian Analysis</a></li>
</ul>
</li>
<li><a href="#denial-of-service-dos">Denial of Service (DoS)</a>
<ul>
<li><a href="#flooding">Flooding</a></li>
<li><a href="#black-hole-internal">Black Hole (internal)</a></li>
<li><a href="#traffic-filtering-external">Traffic Filtering (external)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -641,59 +651,69 @@ the former is internal while the latter is external.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#security">Security</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#anonymity">Anonymity</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation-and-background">Motivation and Background</a></li>
<li><a href="#informal-definitions-security-privacy-and-anonymity">Informal Definitions: Security, Privacy, and Anonymity</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#sender-anonymity">Sender Anonymity</a></li>
<li><a href="#security">Security</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#anonymity">Anonymity</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#sender-anonymity">Sender Anonymity</a></li>
</ul>
</li>
<li><a href="#anonymity-trilemma">Anonymity Trilemma</a></li>
<li><a href="#censorship-resistance">Censorship Resistance</a></li>
</ul>
</li>
<li><a href="#anonymity-trilemma">Anonymity Trilemma</a></li>
<li><a href="#censorship-resistance">Censorship Resistance</a></li>
</ul>
<ul>
<li><a href="#internal">Internal</a>
<li><a href="#adversarial-models">Adversarial Models</a>
<ul>
<li><a href="#single-node">Single Node</a></li>
<li><a href="#multi-node">Multi Node</a></li>
<li><a href="#scaling-multi-node">Scaling Multi Node</a></li>
<li><a href="#internal">Internal</a>
<ul>
<li><a href="#single-node">Single Node</a></li>
<li><a href="#multi-node">Multi Node</a></li>
<li><a href="#scaling-multi-node">Scaling Multi Node</a></li>
</ul>
</li>
<li><a href="#external">External</a>
<ul>
<li><a href="#local">Local</a></li>
<li><a href="#as">AS</a></li>
<li><a href="#global-on-net">Global (On-Net)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#external">External</a>
<li><a href="#attack-based-threats">Attack-based Threats</a>
<ul>
<li><a href="#local">Local</a></li>
<li><a href="#as">AS</a></li>
<li><a href="#global-on-net">Global (On-Net)</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#prerequisite-get-a-specific-position-in-the-network">Prerequisite: Get a Specific Position in the Network</a></li>
<li><a href="#sender-deanonymization">Sender Deanonymization</a>
<ul>
<li><a href="#replay-attack">Replay Attack</a></li>
<li><a href="#observing-messages">Observing Messages</a></li>
<li><a href="#neighbourhood-surveillance">Neighbourhood Surveillance</a></li>
<li><a href="#controlled-neighbourhood">Controlled Neighbourhood</a></li>
<li><a href="#correlation">Correlation</a></li>
</ul>
</li>
<li><a href="#mass-deanonymization">Mass Deanonymization</a>
<ul>
<li><a href="#graph-learning">Graph Learning</a></li>
<li><a href="#bayesian-analysis">Bayesian Analysis</a></li>
</ul>
</li>
<li><a href="#denial-of-service-dos">Denial of Service (DoS)</a>
<ul>
<li><a href="#flooding">Flooding</a></li>
<li><a href="#black-hole-internal">Black Hole (internal)</a></li>
<li><a href="#traffic-filtering-external">Traffic Filtering (external)</a></li>
<li><a href="#prerequisite-get-a-specific-position-in-the-network">Prerequisite: Get a Specific Position in the Network</a></li>
<li><a href="#sender-deanonymization">Sender Deanonymization</a>
<ul>
<li><a href="#replay-attack">Replay Attack</a></li>
<li><a href="#observing-messages">Observing Messages</a></li>
<li><a href="#neighbourhood-surveillance">Neighbourhood Surveillance</a></li>
<li><a href="#controlled-neighbourhood">Controlled Neighbourhood</a></li>
<li><a href="#correlation">Correlation</a></li>
</ul>
</li>
<li><a href="#mass-deanonymization">Mass Deanonymization</a>
<ul>
<li><a href="#graph-learning">Graph Learning</a></li>
<li><a href="#bayesian-analysis">Bayesian Analysis</a></li>
</ul>
</li>
<li><a href="#denial-of-service-dos">Denial of Service (DoS)</a>
<ul>
<li><a href="#flooding">Flooding</a></li>
<li><a href="#black-hole-internal">Black Hole (internal)</a></li>
<li><a href="#traffic-filtering-external">Traffic Filtering (external)</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,27 +176,37 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#receiving-tor-push-messages">Receiving Tor Push Messages</a></li>
<li><a href="#sending-tor-push-messages">Sending Tor Push Messages</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#functional-operation">Functional Operation</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#connection-establishment">Connection Establishment</a></li>
<li><a href="#epochs">Epochs</a></li>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#receiving-tor-push-messages">Receiving Tor Push Messages</a></li>
<li><a href="#sending-tor-push-messages">Sending Tor Push Messages</a>
<ul>
<li><a href="#connection-establishment">Connection Establishment</a></li>
<li><a href="#epochs">Epochs</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#fingerprinting-attacks">Fingerprinting Attacks</a></li>
<li><a href="#dos">DoS</a>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#general-dos-against-tor">General DoS against Tor</a></li>
<li><a href="#targeting-the-guard">Targeting the Guard</a></li>
<li><a href="#targeting-the-gossipsub-network">Targeting the Gossipsub Network</a></li>
<li><a href="#peer-discovery">Peer Discovery</a></li>
<li><a href="#fingerprinting-attacks">Fingerprinting Attacks</a></li>
<li><a href="#dos">DoS</a>
<ul>
<li><a href="#general-dos-against-tor">General DoS against Tor</a></li>
<li><a href="#targeting-the-guard">Targeting the Guard</a></li>
<li><a href="#targeting-the-gossipsub-network">Targeting the Gossipsub Network</a></li>
<li><a href="#peer-discovery">Peer Discovery</a></li>
</ul>
</li>
<li><a href="#roll-out-phase">Roll-out Phase</a></li>
</ul>
</li>
<li><a href="#roll-out-phase">Roll-out Phase</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -453,27 +463,37 @@ For the best protection, these contexts should run on separate physical machines
<nav id="TableOfContents">
<ul>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#receiving-tor-push-messages">Receiving Tor Push Messages</a></li>
<li><a href="#sending-tor-push-messages">Sending Tor Push Messages</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#functional-operation">Functional Operation</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#connection-establishment">Connection Establishment</a></li>
<li><a href="#epochs">Epochs</a></li>
<li><a href="#wire-format">Wire Format</a></li>
<li><a href="#receiving-tor-push-messages">Receiving Tor Push Messages</a></li>
<li><a href="#sending-tor-push-messages">Sending Tor Push Messages</a>
<ul>
<li><a href="#connection-establishment">Connection Establishment</a></li>
<li><a href="#epochs">Epochs</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#fingerprinting-attacks">Fingerprinting Attacks</a></li>
<li><a href="#dos">DoS</a>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#general-dos-against-tor">General DoS against Tor</a></li>
<li><a href="#targeting-the-guard">Targeting the Guard</a></li>
<li><a href="#targeting-the-gossipsub-network">Targeting the Gossipsub Network</a></li>
<li><a href="#peer-discovery">Peer Discovery</a></li>
<li><a href="#fingerprinting-attacks">Fingerprinting Attacks</a></li>
<li><a href="#dos">DoS</a>
<ul>
<li><a href="#general-dos-against-tor">General DoS against Tor</a></li>
<li><a href="#targeting-the-guard">Targeting the Guard</a></li>
<li><a href="#targeting-the-gossipsub-network">Targeting the Gossipsub Network</a></li>
<li><a href="#peer-discovery">Peer Discovery</a></li>
</ul>
</li>
<li><a href="#roll-out-phase">Roll-out Phase</a></li>
</ul>
</li>
<li><a href="#roll-out-phase">Roll-out Phase</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,7 +176,15 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#functional-operation">Functional Operation</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -285,7 +293,15 @@ instead of <a href="https://github.com/libp2p/specs/blob/master/pubsub/gossipsub
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#functional-operation">Functional Operation</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,9 +174,20 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#1-generate-semaphore-credentials">1. Generate Semaphore credentials</a></li>
<li><a href="#2-verify-reputation-and-join-interep-group">2. Verify reputation and join Interep group</a></li>
<li><a href="#3-join-rln-membership-group">3. Join RLN membership group</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#functional-operation">Functional Operation</a>
<ul>
<li><a href="#1-generate-semaphore-credentials">1. Generate Semaphore credentials</a></li>
<li><a href="#2-verify-reputation-and-join-interep-group">2. Verify reputation and join Interep group</a></li>
<li><a href="#3-join-rln-membership-group">3. Join RLN membership group</a></li>
</ul>
</li>
<li><a href="#verification-of-messages">Verification of messages</a></li>
<li><a href="#slashing">Slashing</a></li>
<li><a href="#proof-of-concept">Proof of Concept</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -356,9 +367,20 @@ This is due to the fact that the user can send a identity commitment in the regi
<nav id="TableOfContents">
<ul>
<li><a href="#1-generate-semaphore-credentials">1. Generate Semaphore credentials</a></li>
<li><a href="#2-verify-reputation-and-join-interep-group">2. Verify reputation and join Interep group</a></li>
<li><a href="#3-join-rln-membership-group">3. Join RLN membership group</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#functional-operation">Functional Operation</a>
<ul>
<li><a href="#1-generate-semaphore-credentials">1. Generate Semaphore credentials</a></li>
<li><a href="#2-verify-reputation-and-join-interep-group">2. Verify reputation and join Interep group</a></li>
<li><a href="#3-join-rln-membership-group">3. Join RLN membership group</a></li>
</ul>
</li>
<li><a href="#verification-of-messages">Verification of messages</a></li>
<li><a href="#slashing">Slashing</a></li>
<li><a href="#proof-of-concept">Proof of Concept</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,66 +174,70 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<li>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku0">Differences between shh/6 and waku/0</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku0">Differences between shh/6 and waku/0</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>
@ -954,66 +958,70 @@ confirmations-enabled and rate-limits</li>
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<li>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku0">Differences between shh/6 and waku/0</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku0">Differences between shh/6 and waku/0</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>

View File

@ -176,21 +176,32 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#discovery">Discovery</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#named-sharding">Named Sharding</a></li>
<li><a href="#static-sharding">Static Sharding</a>
<ul>
<li><a href="#index-list">Index List</a></li>
<li><a href="#bit-vector">Bit Vector</a></li>
<li><a href="#discovery">Discovery</a>
<ul>
<li><a href="#index-list">Index List</a></li>
<li><a href="#bit-vector">Bit Vector</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#discovery-1">Discovery</a></li>
</ul>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#default-topic">Default Topic</a></li>
<li><a href="#automatic-sharding">Automatic Sharding</a>
<ul>
<li><a href="#discovery-1">Discovery</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#default-topic">Default Topic</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -581,21 +592,32 @@ See <a href="/spec/10/#anonymity--unlinkability">section on Anonymity/Unlinkabil
<nav id="TableOfContents">
<ul>
<li><a href="#discovery">Discovery</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#named-sharding">Named Sharding</a></li>
<li><a href="#static-sharding">Static Sharding</a>
<ul>
<li><a href="#index-list">Index List</a></li>
<li><a href="#bit-vector">Bit Vector</a></li>
<li><a href="#discovery">Discovery</a>
<ul>
<li><a href="#index-list">Index List</a></li>
<li><a href="#bit-vector">Bit Vector</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><a href="#discovery-1">Discovery</a></li>
</ul>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#default-topic">Default Topic</a></li>
<li><a href="#automatic-sharding">Automatic Sharding</a>
<ul>
<li><a href="#discovery-1">Discovery</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a>
<ul>
<li><a href="#receiver-anonymity">Receiver Anonymity</a></li>
<li><a href="#default-topic">Default Topic</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,7 +174,16 @@ https://github.com/alex-shpak/hugo-book
<aside class="hidden clearfix">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#assingment-process">Assingment Process</a></li>
<li><a href="#list-of-static-shard-indices">List of Static Shard Indices</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -392,7 +401,16 @@ indices <code>49152</code> to <code>65535</code> are reserved.</p>
<div class="book-toc-content">
<nav id="TableOfContents"></nav>
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#assingment-process">Assingment Process</a></li>
<li><a href="#list-of-static-shard-indices">List of Static Shard Indices</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,23 +176,34 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#conventions">Conventions</a></li>
</ul>
<ul>
<li><a href="#end-to-end-encryption">End-to-End Encryption</a></li>
<li><a href="#cryptographic-protocols">Cryptographic Protocols</a></li>
<li><a href="#pre-keys">Pre-keys</a></li>
<li><a href="#flow">Flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#1-initial-key-exchange-flow-x3dh">1. Initial key exchange flow (X3DH)</a></li>
<li><a href="#2-double-ratchet">2. Double Ratchet</a></li>
<li><a href="#3-chain-key-update">3. Chain key update</a></li>
<li><a href="#4-message-key-derivation">4. Message key derivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#conventions">Conventions</a></li>
</ul>
</li>
<li><a href="#specification-1">Specification</a>
<ul>
<li><a href="#end-to-end-encryption">End-to-End Encryption</a></li>
<li><a href="#cryptographic-protocols">Cryptographic Protocols</a></li>
<li><a href="#pre-keys">Pre-keys</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#1-initial-key-exchange-flow-x3dh">1. Initial key exchange flow (X3DH)</a></li>
<li><a href="#2-double-ratchet">2. Double Ratchet</a></li>
<li><a href="#3-chain-key-update">3. Chain key update</a></li>
<li><a href="#4-message-key-derivation">4. Message key derivation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#privacy-considerations">Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -551,23 +562,34 @@ It is not necessary for two parties to be online at the same time to initiate an
<nav id="TableOfContents">
<ul>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#conventions">Conventions</a></li>
</ul>
<ul>
<li><a href="#end-to-end-encryption">End-to-End Encryption</a></li>
<li><a href="#cryptographic-protocols">Cryptographic Protocols</a></li>
<li><a href="#pre-keys">Pre-keys</a></li>
<li><a href="#flow">Flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#1-initial-key-exchange-flow-x3dh">1. Initial key exchange flow (X3DH)</a></li>
<li><a href="#2-double-ratchet">2. Double Ratchet</a></li>
<li><a href="#3-chain-key-update">3. Chain key update</a></li>
<li><a href="#4-message-key-derivation">4. Message key derivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#conventions">Conventions</a></li>
</ul>
</li>
<li><a href="#specification-1">Specification</a>
<ul>
<li><a href="#end-to-end-encryption">End-to-End Encryption</a></li>
<li><a href="#cryptographic-protocols">Cryptographic Protocols</a></li>
<li><a href="#pre-keys">Pre-keys</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#1-initial-key-exchange-flow-x3dh">1. Initial key exchange flow (X3DH)</a></li>
<li><a href="#2-double-ratchet">2. Double Ratchet</a></li>
<li><a href="#3-chain-key-update">3. Chain key update</a></li>
<li><a href="#4-message-key-derivation">4. Message key derivation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#privacy-considerations">Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,19 +176,28 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#discovery-of-pre-key-bundles">Discovery of pre-key bundles</a></li>
<li><a href="#initialization">Initialization</a></li>
<li><a href="#negotiated-topic-to-be-used-for-the-session">Negotiated topic to be used for the session</a></li>
<li><a href="#concurrent-sessions">Concurrent sessions</a></li>
<li><a href="#re-keying">Re-keying</a></li>
<li><a href="#multi-device-support">Multi-device support</a></li>
<li><a href="#pairing">Pairing</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#session-establishment">Session Establishment</a>
<ul>
<li><a href="#sending-messages-to-a-paired-group">Sending messages to a paired group</a></li>
<li><a href="#discovery-of-pre-key-bundles">Discovery of pre-key bundles</a></li>
<li><a href="#initialization">Initialization</a></li>
<li><a href="#negotiated-topic-to-be-used-for-the-session">Negotiated topic to be used for the session</a></li>
<li><a href="#concurrent-sessions">Concurrent sessions</a></li>
<li><a href="#re-keying">Re-keying</a></li>
<li><a href="#multi-device-support">Multi-device support</a></li>
<li><a href="#pairing">Pairing</a>
<ul>
<li><a href="#sending-messages-to-a-paired-group">Sending messages to a paired group</a></li>
</ul>
</li>
<li><a href="#account-recovery">Account recovery</a></li>
<li><a href="#partitioned-devices">Partitioned devices</a></li>
</ul>
</li>
<li><a href="#account-recovery">Account recovery</a></li>
<li><a href="#partitioned-devices">Partitioned devices</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#recommendations">Recommendations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -442,19 +451,28 @@ In this case an empty message containing bundle information MUST be sent back, w
<nav id="TableOfContents">
<ul>
<li><a href="#discovery-of-pre-key-bundles">Discovery of pre-key bundles</a></li>
<li><a href="#initialization">Initialization</a></li>
<li><a href="#negotiated-topic-to-be-used-for-the-session">Negotiated topic to be used for the session</a></li>
<li><a href="#concurrent-sessions">Concurrent sessions</a></li>
<li><a href="#re-keying">Re-keying</a></li>
<li><a href="#multi-device-support">Multi-device support</a></li>
<li><a href="#pairing">Pairing</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#session-establishment">Session Establishment</a>
<ul>
<li><a href="#sending-messages-to-a-paired-group">Sending messages to a paired group</a></li>
<li><a href="#discovery-of-pre-key-bundles">Discovery of pre-key bundles</a></li>
<li><a href="#initialization">Initialization</a></li>
<li><a href="#negotiated-topic-to-be-used-for-the-session">Negotiated topic to be used for the session</a></li>
<li><a href="#concurrent-sessions">Concurrent sessions</a></li>
<li><a href="#re-keying">Re-keying</a></li>
<li><a href="#multi-device-support">Multi-device support</a></li>
<li><a href="#pairing">Pairing</a>
<ul>
<li><a href="#sending-messages-to-a-paired-group">Sending messages to a paired group</a></li>
</ul>
</li>
<li><a href="#account-recovery">Account recovery</a></li>
<li><a href="#partitioned-devices">Partitioned devices</a></li>
</ul>
</li>
<li><a href="#account-recovery">Account recovery</a></li>
<li><a href="#partitioned-devices">Partitioned devices</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#recommendations">Recommendations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,19 +174,29 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#flow">Flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#negotiation-of-a-11-chat">Negotiation of a 1:1 chat</a></li>
<li><a href="#post-negotiation">Post Negotiation</a></li>
<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>
<li><a href="#overview">Overview</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#negotiation-of-a-11-chat">Negotiation of a 1:1 chat</a></li>
<li><a href="#post-negotiation">Post Negotiation</a></li>
<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>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -511,19 +521,29 @@ If the event is valid, a participant MUST update the list of admins of the chat
<nav id="TableOfContents">
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#flow">Flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#background">Background</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#negotiation-of-a-11-chat">Negotiation of a 1:1 chat</a></li>
<li><a href="#post-negotiation">Post Negotiation</a></li>
<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>
<li><a href="#overview">Overview</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#negotiation-of-a-11-chat">Negotiation of a 1:1 chat</a></li>
<li><a href="#post-negotiation">Post Negotiation</a></li>
<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>
</li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -176,27 +176,39 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#cryptographic-primitives">Cryptographic Primitives</a></li>
<li><a href="#wire-format">Wire format</a></li>
<li><a href="#content-topic-usage">Content topic usage</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#design">Design</a>
<ul>
<li><a href="#advertising-a-community">Advertising a Community</a></li>
<li><a href="#community-channelschats">Community channels/chats</a></li>
<li><a href="#community-event-messages">Community event messages</a></li>
<li><a href="#cryptographic-primitives">Cryptographic Primitives</a></li>
<li><a href="#wire-format">Wire format</a></li>
<li><a href="#content-topic-usage">Content topic usage</a>
<ul>
<li><a href="#advertising-a-community">Advertising a Community</a></li>
<li><a href="#community-channelschats">Community channels/chats</a></li>
<li><a href="#community-event-messages">Community event messages</a></li>
</ul>
</li>
<li><a href="#community-management">Community Management</a>
<ul>
<li><a href="#community-creation-flow">Community Creation Flow</a></li>
<li><a href="#community-join-flow-peer-requests-to-join-a-community">Community Join Flow (peer requests to join a Community)</a></li>
<li><a href="#community-join-flow-peer-is-invited-to-join-a-community">Community Join Flow (peer is invited to join a Community)</a></li>
<li><a href="#community-leave-flow">Community Leave Flow</a></li>
<li><a href="#community-ban-flow">Community Ban Flow</a></li>
</ul>
</li>
<li><a href="#waku-protocols">Waku protocols</a></li>
<li><a href="#backups">Backups</a></li>
<li><a href="#clock">Clock</a></li>
</ul>
</li>
<li><a href="#community-management">Community Management</a>
<ul>
<li><a href="#community-creation-flow">Community Creation Flow</a></li>
<li><a href="#community-join-flow-peer-requests-to-join-a-community">Community Join Flow (peer requests to join a Community)</a></li>
<li><a href="#community-join-flow-peer-is-invited-to-join-a-community">Community Join Flow (peer is invited to join a Community)</a></li>
<li><a href="#community-leave-flow">Community Leave Flow</a></li>
<li><a href="#community-ban-flow">Community Ban Flow</a></li>
</ul>
</li>
<li><a href="#waku-protocols">Waku protocols</a></li>
<li><a href="#backups">Backups</a></li>
<li><a href="#clock">Clock</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#future-work">Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -750,27 +762,39 @@ This allows ordering of messages in an asynchronous network where messages may b
<nav id="TableOfContents">
<ul>
<li><a href="#cryptographic-primitives">Cryptographic Primitives</a></li>
<li><a href="#wire-format">Wire format</a></li>
<li><a href="#content-topic-usage">Content topic usage</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#design-requirements">Design Requirements</a></li>
<li><a href="#design">Design</a>
<ul>
<li><a href="#advertising-a-community">Advertising a Community</a></li>
<li><a href="#community-channelschats">Community channels/chats</a></li>
<li><a href="#community-event-messages">Community event messages</a></li>
<li><a href="#cryptographic-primitives">Cryptographic Primitives</a></li>
<li><a href="#wire-format">Wire format</a></li>
<li><a href="#content-topic-usage">Content topic usage</a>
<ul>
<li><a href="#advertising-a-community">Advertising a Community</a></li>
<li><a href="#community-channelschats">Community channels/chats</a></li>
<li><a href="#community-event-messages">Community event messages</a></li>
</ul>
</li>
<li><a href="#community-management">Community Management</a>
<ul>
<li><a href="#community-creation-flow">Community Creation Flow</a></li>
<li><a href="#community-join-flow-peer-requests-to-join-a-community">Community Join Flow (peer requests to join a Community)</a></li>
<li><a href="#community-join-flow-peer-is-invited-to-join-a-community">Community Join Flow (peer is invited to join a Community)</a></li>
<li><a href="#community-leave-flow">Community Leave Flow</a></li>
<li><a href="#community-ban-flow">Community Ban Flow</a></li>
</ul>
</li>
<li><a href="#waku-protocols">Waku protocols</a></li>
<li><a href="#backups">Backups</a></li>
<li><a href="#clock">Clock</a></li>
</ul>
</li>
<li><a href="#community-management">Community Management</a>
<ul>
<li><a href="#community-creation-flow">Community Creation Flow</a></li>
<li><a href="#community-join-flow-peer-requests-to-join-a-community">Community Join Flow (peer requests to join a Community)</a></li>
<li><a href="#community-join-flow-peer-is-invited-to-join-a-community">Community Join Flow (peer is invited to join a Community)</a></li>
<li><a href="#community-leave-flow">Community Leave Flow</a></li>
<li><a href="#community-ban-flow">Community Ban Flow</a></li>
</ul>
</li>
<li><a href="#waku-protocols">Waku protocols</a></li>
<li><a href="#backups">Backups</a></li>
<li><a href="#clock">Clock</a></li>
<li><a href="#security-considerations">Security Considerations</a></li>
<li><a href="#future-work">Future work</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,47 +174,62 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#shard-allocation">Shard Allocation</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#relay-shards">Relay Shards</a>
<ul>
<li><a href="#implementation-suggestion">Implementation Suggestion</a></li>
<li><a href="#shard-allocation">Shard Allocation</a>
<ul>
<li><a href="#implementation-suggestion">Implementation Suggestion</a></li>
</ul>
</li>
<li><a href="#status-communities">Status Communities</a>
<ul>
<li><a href="#static-mapping">Static Mapping</a></li>
<li><a href="#owner-mapping">Owner Mapping</a></li>
</ul>
</li>
<li><a href="#11-chat">1:1 Chat</a></li>
</ul>
</li>
<li><a href="#status-communities">Status Communities</a>
<li><a href="#infrastructure-nodes">Infrastructure Nodes</a>
<ul>
<li><a href="#static-mapping">Static Mapping</a></li>
<li><a href="#owner-mapping">Owner Mapping</a></li>
<li><a href="#statically-mapped-communities">Statically-Mapped Communities</a></li>
<li><a href="#owner-mapped-communities">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-1">1:1 chat</a></li>
</ul>
</li>
<li><a href="#11-chat">1:1 Chat</a></li>
</ul>
<ul>
<li><a href="#statically-mapped-communities">Statically-Mapped Communities</a></li>
<li><a href="#owner-mapped-communities">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-1">1:1 chat</a></li>
</ul>
<ul>
<li><a href="#control-message-shards">Control Message Shards</a></li>
<li><a href="#media-shards">Media Shards</a></li>
<li><a href="#infrastructure-focused-community">Infrastructure-focused Community</a></li>
</ul>
<ul>
<li><a href="#libp2p-rendezvous-and-circuit-relay">Libp2p Rendezvous and Circuit-Relay</a>
<li><a href="#infrastructure-shards">Infrastructure Shards</a>
<ul>
<li><a href="#announcing-shard-participation">Announcing Shard Participation</a></li>
<li><a href="#control-message-shards">Control Message Shards</a></li>
<li><a href="#media-shards">Media Shards</a></li>
<li><a href="#infrastructure-focused-community">Infrastructure-focused Community</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#design-requirements-publisher">Design requirements (publisher)</a></li>
<li><a href="#design-requirements-relay">Design requirements (relay)</a></li>
<li><a href="#required-changes">Required changes</a></li>
<li><a href="#test-vectors">Test vectors</a></li>
<li><a href="#owner-mapped-communities-1">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-2">1:1 Chat</a></li>
<li><a href="#light-protocols">Light Protocols</a></li>
<li><a href="#waku-archive">Waku Archive</a></li>
<li><a href="#discovery">Discovery</a>
<ul>
<li><a href="#libp2p-rendezvous-and-circuit-relay">Libp2p Rendezvous and Circuit-Relay</a>
<ul>
<li><a href="#announcing-shard-participation">Announcing Shard Participation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#dos-protection">DoS Protection</a>
<ul>
<li><a href="#design-requirements-publisher">Design requirements (publisher)</a></li>
<li><a href="#design-requirements-relay">Design requirements (relay)</a></li>
<li><a href="#required-changes">Required changes</a></li>
<li><a href="#test-vectors">Test vectors</a></li>
<li><a href="#owner-mapped-communities-1">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-2">1:1 Chat</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -773,47 +788,62 @@ See <a href="/spec/45">45/WAKU2-ADVERSARIAL-MODELS</a> for information on Waku A
<nav id="TableOfContents">
<ul>
<li><a href="#shard-allocation">Shard Allocation</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background-and-motivation">Background and Motivation</a></li>
<li><a href="#relay-shards">Relay Shards</a>
<ul>
<li><a href="#implementation-suggestion">Implementation Suggestion</a></li>
<li><a href="#shard-allocation">Shard Allocation</a>
<ul>
<li><a href="#implementation-suggestion">Implementation Suggestion</a></li>
</ul>
</li>
<li><a href="#status-communities">Status Communities</a>
<ul>
<li><a href="#static-mapping">Static Mapping</a></li>
<li><a href="#owner-mapping">Owner Mapping</a></li>
</ul>
</li>
<li><a href="#11-chat">1:1 Chat</a></li>
</ul>
</li>
<li><a href="#status-communities">Status Communities</a>
<li><a href="#infrastructure-nodes">Infrastructure Nodes</a>
<ul>
<li><a href="#static-mapping">Static Mapping</a></li>
<li><a href="#owner-mapping">Owner Mapping</a></li>
<li><a href="#statically-mapped-communities">Statically-Mapped Communities</a></li>
<li><a href="#owner-mapped-communities">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-1">1:1 chat</a></li>
</ul>
</li>
<li><a href="#11-chat">1:1 Chat</a></li>
</ul>
<ul>
<li><a href="#statically-mapped-communities">Statically-Mapped Communities</a></li>
<li><a href="#owner-mapped-communities">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-1">1:1 chat</a></li>
</ul>
<ul>
<li><a href="#control-message-shards">Control Message Shards</a></li>
<li><a href="#media-shards">Media Shards</a></li>
<li><a href="#infrastructure-focused-community">Infrastructure-focused Community</a></li>
</ul>
<ul>
<li><a href="#libp2p-rendezvous-and-circuit-relay">Libp2p Rendezvous and Circuit-Relay</a>
<li><a href="#infrastructure-shards">Infrastructure Shards</a>
<ul>
<li><a href="#announcing-shard-participation">Announcing Shard Participation</a></li>
<li><a href="#control-message-shards">Control Message Shards</a></li>
<li><a href="#media-shards">Media Shards</a></li>
<li><a href="#infrastructure-focused-community">Infrastructure-focused Community</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#design-requirements-publisher">Design requirements (publisher)</a></li>
<li><a href="#design-requirements-relay">Design requirements (relay)</a></li>
<li><a href="#required-changes">Required changes</a></li>
<li><a href="#test-vectors">Test vectors</a></li>
<li><a href="#owner-mapped-communities-1">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-2">1:1 Chat</a></li>
<li><a href="#light-protocols">Light Protocols</a></li>
<li><a href="#waku-archive">Waku Archive</a></li>
<li><a href="#discovery">Discovery</a>
<ul>
<li><a href="#libp2p-rendezvous-and-circuit-relay">Libp2p Rendezvous and Circuit-Relay</a>
<ul>
<li><a href="#announcing-shard-participation">Announcing Shard Participation</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#dos-protection">DoS Protection</a>
<ul>
<li><a href="#design-requirements-publisher">Design requirements (publisher)</a></li>
<li><a href="#design-requirements-relay">Design requirements (relay)</a></li>
<li><a href="#required-changes">Required changes</a></li>
<li><a href="#test-vectors">Test vectors</a></li>
<li><a href="#owner-mapped-communities-1">Owner-Mapped Communities</a></li>
<li><a href="#11-chat-2">1:1 Chat</a></li>
</ul>
</li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,26 +174,35 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#important-note">Important note</a></li>
<li><a href="#rln-same-flow">RLN-Same flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#registration">Registration</a></li>
<li><a href="#signalling">Signalling</a></li>
</ul>
</li>
<li><a href="#rln-diff-flow">RLN-Diff flow</a>
<ul>
<li><a href="#registration-1">Registration</a></li>
<li><a href="#signalling-1">Signalling</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#rln-same-circuit">RLN-Same circuit</a></li>
<li><a href="#rln-diff-circuit">RLN-Diff circuit</a></li>
<li><a href="#important-note">Important note</a></li>
<li><a href="#rln-same-flow">RLN-Same flow</a>
<ul>
<li><a href="#registration">Registration</a></li>
<li><a href="#signalling">Signalling</a></li>
</ul>
</li>
<li><a href="#rln-diff-flow">RLN-Diff flow</a>
<ul>
<li><a href="#registration-1">Registration</a></li>
<li><a href="#signalling-1">Signalling</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#rln-same-circuit">RLN-Same circuit</a></li>
<li><a href="#rln-diff-circuit">RLN-Diff circuit</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>
@ -495,26 +504,35 @@ This is proven using range constraints.</p>
<nav id="TableOfContents">
<ul>
<li><a href="#important-note">Important note</a></li>
<li><a href="#rln-same-flow">RLN-Same flow</a>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#flow">Flow</a>
<ul>
<li><a href="#registration">Registration</a></li>
<li><a href="#signalling">Signalling</a></li>
</ul>
</li>
<li><a href="#rln-diff-flow">RLN-Diff flow</a>
<ul>
<li><a href="#registration-1">Registration</a></li>
<li><a href="#signalling-1">Signalling</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#rln-same-circuit">RLN-Same circuit</a></li>
<li><a href="#rln-diff-circuit">RLN-Diff circuit</a></li>
<li><a href="#important-note">Important note</a></li>
<li><a href="#rln-same-flow">RLN-Same flow</a>
<ul>
<li><a href="#registration">Registration</a></li>
<li><a href="#signalling">Signalling</a></li>
</ul>
</li>
<li><a href="#rln-diff-flow">RLN-Diff flow</a>
<ul>
<li><a href="#registration-1">Registration</a></li>
<li><a href="#signalling-1">Signalling</a></li>
</ul>
</li>
<li><a href="#verification-and-slashing">Verification and slashing</a></li>
<li><a href="#zk-circuits-specification">ZK Circuits specification</a>
<ul>
<li><a href="#rln-same-circuit">RLN-Same circuit</a></li>
<li><a href="#rln-diff-circuit">RLN-Diff circuit</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a></li>
</ul>
</nav>

View File

@ -174,70 +174,74 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<li>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#maximum-packet-size">Maximum Packet Size</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#maximum-packet-size">Maximum Packet Size</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#initial-releasehttpsgithubcomvacp2pspecscommitbc7e75ebb2e45d2cbf6ab27352c113e666df37c8"><a href="https://github.com/vacp2p/specs/commit/bc7e75ebb2e45d2cbf6ab27352c113e666df37c8">Initial Release</a></a></li>
<li><a href="#version-11">Version 1.1</a></li>
<li><a href="#version-10">Version 1.0</a></li>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku1">Differences between shh/6 and waku/1</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#initial-releasehttpsgithubcomvacp2pspecscommitbc7e75ebb2e45d2cbf6ab27352c113e666df37c8"><a href="https://github.com/vacp2p/specs/commit/bc7e75ebb2e45d2cbf6ab27352c113e666df37c8">Initial Release</a></a></li>
<li><a href="#version-11">Version 1.1</a></li>
<li><a href="#version-10">Version 1.0</a></li>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku1">Differences between shh/6 and waku/1</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>
@ -1094,70 +1098,74 @@ confirmations-enabled and rate-limits</li>
<nav id="TableOfContents">
<ul>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<li>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#maximum-packet-size">Maximum Packet Size</a></li>
<li><a href="#motivation">Motivation</a></li>
<li><a href="#definitions">Definitions</a></li>
<li><a href="#underlying-transports-and-prerequisites">Underlying Transports and Prerequisites</a>
<ul>
<li><a href="#use-of-devp2p">Use of DevP2P</a></li>
<li><a href="#gossip-based-routing">Gossip based routing</a></li>
<li><a href="#maximum-packet-size">Maximum Packet Size</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#initial-releasehttpsgithubcomvacp2pspecscommitbc7e75ebb2e45d2cbf6ab27352c113e666df37c8"><a href="https://github.com/vacp2p/specs/commit/bc7e75ebb2e45d2cbf6ab27352c113e666df37c8">Initial Release</a></a></li>
<li><a href="#version-11">Version 1.1</a></li>
<li><a href="#version-10">Version 1.0</a></li>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku1">Differences between shh/6 and waku/1</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</li>
<li><a href="#wire-specification">Wire Specification</a>
<ul>
<li><a href="#use-of-rlpx-transport-protocol">Use of RLPx transport protocol</a></li>
<li><a href="#abnf-specification">ABNF specification</a></li>
<li><a href="#packet-codes">Packet Codes</a></li>
<li><a href="#packet-usage">Packet usage</a></li>
<li><a href="#payload-encryption">Payload Encryption</a></li>
<li><a href="#packet-code-rationale">Packet code Rationale</a></li>
</ul>
</li>
<li><a href="#additional-capabilities">Additional capabilities</a>
<ul>
<li><a href="#light-node">Light node</a></li>
<li><a href="#accounting-for-resources-experimental">Accounting for resources (experimental)</a></li>
</ul>
</li>
<li><a href="#upgradability-and-compatibility">Upgradability and Compatibility</a>
<ul>
<li><a href="#general-principles-and-policy">General principles and policy</a></li>
<li><a href="#backwards-compatibility">Backwards Compatibility</a></li>
<li><a href="#waku-whisper-bridging">Waku-Whisper bridging</a></li>
<li><a href="#forward-compatibility">Forward Compatibility</a></li>
</ul>
</li>
<li><a href="#appendix-a-security-considerations">Appendix A: Security considerations</a>
<ul>
<li><a href="#scalability-and-ux">Scalability and UX</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#spam-resistance">Spam resistance</a></li>
<li><a href="#censorship-resistance">Censorship resistance</a></li>
</ul>
</li>
<li><a href="#appendix-b-implementation-notes">Appendix B: Implementation Notes</a>
<ul>
<li><a href="#implementation-matrix">Implementation Matrix</a></li>
<li><a href="#recommendations-for-clients">Recommendations for clients</a></li>
<li><a href="#node-discovery">Node discovery</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#initial-releasehttpsgithubcomvacp2pspecscommitbc7e75ebb2e45d2cbf6ab27352c113e666df37c8"><a href="https://github.com/vacp2p/specs/commit/bc7e75ebb2e45d2cbf6ab27352c113e666df37c8">Initial Release</a></a></li>
<li><a href="#version-11">Version 1.1</a></li>
<li><a href="#version-10">Version 1.0</a></li>
<li><a href="#version-06">Version 0.6</a></li>
<li><a href="#version-05">Version 0.5</a></li>
<li><a href="#version-04">Version 0.4</a></li>
<li><a href="#version-03">Version 0.3</a></li>
<li><a href="#version-02">Version 0.2</a></li>
<li><a href="#version-01">Version 0.1</a></li>
<li><a href="#differences-between-shh6-and-waku1">Differences between shh/6 and waku/1</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#footnotes">Footnotes</a></li>
</ul>
</nav>

View File

@ -178,14 +178,18 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -325,14 +329,18 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#padding">Padding</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#abnf">ABNF</a></li>
<li><a href="#signature">Signature</a></li>
<li><a href="#padding">Padding</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,20 +176,24 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#requesting-historic-envelopes">Requesting Historic Envelopes</a></li>
<li><a href="#receiving-historic-envelopes">Receiving Historic Envelopes</a></li>
<li><a href="#security-considerations">Security considerations</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#requesting-historic-envelopes">Requesting Historic Envelopes</a></li>
<li><a href="#receiving-historic-envelopes">Receiving Historic Envelopes</a></li>
<li><a href="#security-considerations">Security considerations</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#difference-between-wms-01-and-wms-02">Difference between wms 0.1 and wms 0.2</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#difference-between-wms-01-and-wms-02">Difference between wms 0.1 and wms 0.2</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -395,20 +399,24 @@ A similar concern exists for the light nodes and their direct peers which is dis
<nav id="TableOfContents">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#specification">Specification</a>
<li>
<ul>
<li><a href="#requesting-historic-envelopes">Requesting Historic Envelopes</a></li>
<li><a href="#receiving-historic-envelopes">Receiving Historic Envelopes</a></li>
<li><a href="#security-considerations">Security considerations</a></li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#specification">Specification</a>
<ul>
<li><a href="#requesting-historic-envelopes">Requesting Historic Envelopes</a></li>
<li><a href="#receiving-historic-envelopes">Receiving Historic Envelopes</a></li>
<li><a href="#security-considerations">Security considerations</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#difference-between-wms-01-and-wms-02">Difference between wms 0.1 and wms 0.2</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a>
<ul>
<li><a href="#difference-between-wms-01-and-wms-02">Difference between wms 0.1 and wms 0.2</a></li>
</ul>
</li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -176,16 +176,20 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#transport">Transport</a></li>
<li><a href="#objects">Objects</a></li>
<li><a href="#methods">Methods</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#transport">Transport</a></li>
<li><a href="#objects">Objects</a></li>
<li><a href="#methods">Methods</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>
@ -927,16 +931,20 @@ be able to connect to any node implementation. The API described is privileged a
<nav id="TableOfContents">
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<li>
<ul>
<li><a href="#transport">Transport</a></li>
<li><a href="#objects">Objects</a></li>
<li><a href="#methods">Methods</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#wire-protocol">Wire Protocol</a>
<ul>
<li><a href="#transport">Transport</a></li>
<li><a href="#objects">Objects</a></li>
<li><a href="#methods">Methods</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</li>
<li><a href="#changelog">Changelog</a></li>
<li><a href="#copyright">Copyright</a></li>
</ul>
</nav>

View File

@ -180,12 +180,25 @@ https://github.com/alex-shpak/hugo-book
<nav id="TableOfContents">
<ul>
<li><a href="#tags">Tags</a></li>
</ul>
<ul>
<li><a href="#normative">normative</a></li>
<li><a href="#informative">informative</a></li>
<li><a href="#info-remove-this-section">(Info, remove this section)</a>
<ul>
<li><a href="#tags">Tags</a></li>
</ul>
</li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background--rationale--motivation">Background / Rationale / Motivation</a></li>
<li><a href="#theory--semantics">Theory / Semantics</a></li>
<li><a href="#wire-format-specification--syntax">Wire Format Specification / Syntax</a></li>
<li><a href="#implementation-suggestions-optional">Implementation Suggestions (optional)</a></li>
<li><a href="#further-optional-sections">(Further Optional Sections)</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a>
<ul>
<li><a href="#normative">normative</a></li>
<li><a href="#informative">informative</a></li>
</ul>
</li>
</ul>
</nav>
@ -343,12 +356,25 @@ See <a href="https://datatracker.ietf.org/doc/html/rfc3967#section-1.1">RFC3967
<nav id="TableOfContents">
<ul>
<li><a href="#tags">Tags</a></li>
</ul>
<ul>
<li><a href="#normative">normative</a></li>
<li><a href="#informative">informative</a></li>
<li><a href="#info-remove-this-section">(Info, remove this section)</a>
<ul>
<li><a href="#tags">Tags</a></li>
</ul>
</li>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#background--rationale--motivation">Background / Rationale / Motivation</a></li>
<li><a href="#theory--semantics">Theory / Semantics</a></li>
<li><a href="#wire-format-specification--syntax">Wire Format Specification / Syntax</a></li>
<li><a href="#implementation-suggestions-optional">Implementation Suggestions (optional)</a></li>
<li><a href="#further-optional-sections">(Further Optional Sections)</a></li>
<li><a href="#securityprivacy-considerations">Security/Privacy Considerations</a></li>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#references">References</a>
<ul>
<li><a href="#normative">normative</a></li>
<li><a href="#informative">informative</a></li>
</ul>
</li>
</ul>
</nav>