mirror of
https://github.com/vacp2p/rfc-index.git
synced 2026-01-09 22:08:07 -05:00
516 lines
47 KiB
HTML
516 lines
47 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en" class="ayu" dir="ltr">
|
|
<head>
|
|
<!-- Book generated using mdBook -->
|
|
<meta charset="UTF-8">
|
|
<title>1/COSS - Vac RFC</title>
|
|
|
|
|
|
<!-- Custom HTML head -->
|
|
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#ffffff">
|
|
|
|
<link rel="icon" href="../../favicon.svg">
|
|
<link rel="shortcut icon" href="../../favicon.png">
|
|
<link rel="stylesheet" href="../../css/variables.css">
|
|
<link rel="stylesheet" href="../../css/general.css">
|
|
<link rel="stylesheet" href="../../css/chrome.css">
|
|
<link rel="stylesheet" href="../../css/print.css" media="print">
|
|
|
|
<!-- Fonts -->
|
|
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
|
|
<link rel="stylesheet" href="../../fonts/fonts.css">
|
|
|
|
<!-- Highlight.js Stylesheets -->
|
|
<link rel="stylesheet" href="../../highlight.css">
|
|
<link rel="stylesheet" href="../../tomorrow-night.css">
|
|
<link rel="stylesheet" href="../../ayu-highlight.css">
|
|
|
|
<!-- Custom theme stylesheets -->
|
|
<link rel="stylesheet" href="../../custom.css">
|
|
|
|
</head>
|
|
<body class="sidebar-visible no-js">
|
|
<div id="body-container">
|
|
<!-- Provide site root to javascript -->
|
|
<script>
|
|
var path_to_root = "../../";
|
|
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "ayu";
|
|
</script>
|
|
|
|
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
|
<script>
|
|
try {
|
|
var theme = localStorage.getItem('mdbook-theme');
|
|
var sidebar = localStorage.getItem('mdbook-sidebar');
|
|
|
|
if (theme.startsWith('"') && theme.endsWith('"')) {
|
|
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
|
}
|
|
|
|
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
|
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
|
}
|
|
} catch (e) { }
|
|
</script>
|
|
|
|
<!-- Set the theme before any content is loaded, prevents flash -->
|
|
<script>
|
|
var theme;
|
|
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
|
if (theme === null || theme === undefined) { theme = default_theme; }
|
|
var html = document.querySelector('html');
|
|
html.classList.remove('ayu')
|
|
html.classList.add(theme);
|
|
var body = document.querySelector('body');
|
|
body.classList.remove('no-js')
|
|
body.classList.add('js');
|
|
</script>
|
|
|
|
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
|
|
|
|
<!-- Hide / unhide sidebar before it is displayed -->
|
|
<script>
|
|
var body = document.querySelector('body');
|
|
var sidebar = null;
|
|
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
|
|
if (document.body.clientWidth >= 1080) {
|
|
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
|
sidebar = sidebar || 'visible';
|
|
} else {
|
|
sidebar = 'hidden';
|
|
}
|
|
sidebar_toggle.checked = sidebar === 'visible';
|
|
body.classList.remove('sidebar-visible');
|
|
body.classList.add("sidebar-" + sidebar);
|
|
</script>
|
|
|
|
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
|
<div class="sidebar-scrollbox">
|
|
<ol class="chapter"><li class="chapter-item expanded affix "><a href="../../index.html">Introduction</a></li><li class="chapter-item expanded "><a href="../../vac/index.html"><strong aria-hidden="true">1.</strong> Vac</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../vac/1/coss.html" class="active"><strong aria-hidden="true">1.1.</strong> 1/COSS</a></li><li class="chapter-item expanded "><a href="../../vac/2/mvds.html"><strong aria-hidden="true">1.2.</strong> 2/MVDS</a></li><li class="chapter-item expanded "><a href="../../vac/3/remote-log.html"><strong aria-hidden="true">1.3.</strong> 3/Remote Log</a></li><li class="chapter-item expanded "><a href="../../vac/4/mvds-meta.html"><strong aria-hidden="true">1.4.</strong> 4/MVDS Meta</a></li><li class="chapter-item expanded "><a href="../../vac/25/libp2p-dns-discovery.html"><strong aria-hidden="true">1.5.</strong> 25/Libp2p DNS Discovery</a></li><li class="chapter-item expanded "><a href="../../vac/32/rln-v1.html"><strong aria-hidden="true">1.6.</strong> 32/RLN-V1</a></li><li class="chapter-item expanded "><a href="../../vac/raw/index.html"><strong aria-hidden="true">1.7.</strong> Raw</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../vac/raw/consensus-hashgraphlike.html"><strong aria-hidden="true">1.7.1.</strong> Consensus Hashgraphlike</a></li><li class="chapter-item expanded "><a href="../../vac/raw/decentralized-messaging-ethereum.html"><strong aria-hidden="true">1.7.2.</strong> Decentralized Messaging Ethereum</a></li><li class="chapter-item expanded "><a href="../../vac/raw/eth-mls-offchain.html"><strong aria-hidden="true">1.7.3.</strong> ETH MLS Offchain</a></li><li class="chapter-item expanded "><a href="../../vac/raw/eth-mls-onchain.html"><strong aria-hidden="true">1.7.4.</strong> ETH MLS Onchain</a></li><li class="chapter-item expanded "><a href="../../vac/raw/deleted/eth-secpm.html"><strong aria-hidden="true">1.7.5.</strong> ETH SecPM</a></li><li class="chapter-item expanded "><a href="../../vac/raw/gossipsub-tor-push.html"><strong aria-hidden="true">1.7.6.</strong> Gossipsub Tor Push</a></li><li class="chapter-item expanded "><a href="../../vac/raw/logos-capability-discovery.html"><strong aria-hidden="true">1.7.7.</strong> Logos Capability Discovery</a></li><li class="chapter-item expanded "><a href="../../vac/raw/mix.html"><strong aria-hidden="true">1.7.8.</strong> Mix</a></li><li class="chapter-item expanded "><a href="../../vac/raw/noise-x3dh-double-ratchet.html"><strong aria-hidden="true">1.7.9.</strong> Noise X3DH Double Ratchet</a></li><li class="chapter-item expanded "><a href="../../vac/raw/rln-interep-spec.html"><strong aria-hidden="true">1.7.10.</strong> RLN Interep Spec</a></li><li class="chapter-item expanded "><a href="../../vac/raw/rln-stealth-commitments.html"><strong aria-hidden="true">1.7.11.</strong> RLN Stealth Commitments</a></li><li class="chapter-item expanded "><a href="../../vac/raw/rln-v2.html"><strong aria-hidden="true">1.7.12.</strong> RLN-V2</a></li><li class="chapter-item expanded "><a href="../../vac/raw/sds.html"><strong aria-hidden="true">1.7.13.</strong> SDS</a></li></ol></li><li class="chapter-item expanded "><a href="../../vac/template.html"><strong aria-hidden="true">1.8.</strong> Template</a></li></ol></li><li class="chapter-item expanded "><a href="../../waku/index.html"><strong aria-hidden="true">2.</strong> Waku</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/standards/core/index.html"><strong aria-hidden="true">2.1.</strong> Standards - Core</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/standards/core/10/waku2.html"><strong aria-hidden="true">2.1.1.</strong> 10/Waku2</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/11/relay.html"><strong aria-hidden="true">2.1.2.</strong> 11/Relay</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/12/filter.html"><strong aria-hidden="true">2.1.3.</strong> 12/Filter</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/13/store.html"><strong aria-hidden="true">2.1.4.</strong> 13/Store</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/14/message.html"><strong aria-hidden="true">2.1.5.</strong> 14/Message</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/15/bridge.html"><strong aria-hidden="true">2.1.6.</strong> 15/Bridge</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/17/rln-relay.html"><strong aria-hidden="true">2.1.7.</strong> 17/RLN Relay</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/19/lightpush.html"><strong aria-hidden="true">2.1.8.</strong> 19/Lightpush</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/31/enr.html"><strong aria-hidden="true">2.1.9.</strong> 31/ENR</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/33/discv5.html"><strong aria-hidden="true">2.1.10.</strong> 33/Discv5</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/34/peer-exchange.html"><strong aria-hidden="true">2.1.11.</strong> 34/Peer Exchange</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/36/bindings-api.html"><strong aria-hidden="true">2.1.12.</strong> 36/Bindings API</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/64/network.html"><strong aria-hidden="true">2.1.13.</strong> 64/Network</a></li><li class="chapter-item expanded "><a href="../../waku/standards/core/66/metadata.html"><strong aria-hidden="true">2.1.14.</strong> 66/Metadata</a></li></ol></li><li class="chapter-item expanded "><a href="../../waku/standards/application/index.html"><strong aria-hidden="true">2.2.</strong> Standards - Application</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/standards/application/20/toy-eth-pm.html"><strong aria-hidden="true">2.2.1.</strong> 20/Toy ETH PM</a></li><li class="chapter-item expanded "><a href="../../waku/standards/application/26/payload.html"><strong aria-hidden="true">2.2.2.</strong> 26/Payload</a></li><li class="chapter-item expanded "><a href="../../waku/standards/application/53/x3dh.html"><strong aria-hidden="true">2.2.3.</strong> 53/X3DH</a></li><li class="chapter-item expanded "><a href="../../waku/standards/application/54/x3dh-sessions.html"><strong aria-hidden="true">2.2.4.</strong> 54/X3DH Sessions</a></li></ol></li><li class="chapter-item expanded "><a href="../../waku/standards/legacy/index.html"><strong aria-hidden="true">2.3.</strong> Standards - Legacy</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/standards/legacy/6/waku1.html"><strong aria-hidden="true">2.3.1.</strong> 6/Waku1</a></li><li class="chapter-item expanded "><a href="../../waku/standards/legacy/7/data.html"><strong aria-hidden="true">2.3.2.</strong> 7/Data</a></li><li class="chapter-item expanded "><a href="../../waku/standards/legacy/8/mail.html"><strong aria-hidden="true">2.3.3.</strong> 8/Mail</a></li><li class="chapter-item expanded "><a href="../../waku/standards/legacy/9/rpc.html"><strong aria-hidden="true">2.3.4.</strong> 9/RPC</a></li></ol></li><li class="chapter-item expanded "><a href="../../waku/informational/index.html"><strong aria-hidden="true">2.4.</strong> Informational</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/informational/22/toy-chat.html"><strong aria-hidden="true">2.4.1.</strong> 22/Toy Chat</a></li><li class="chapter-item expanded "><a href="../../waku/informational/23/topics.html"><strong aria-hidden="true">2.4.2.</strong> 23/Topics</a></li><li class="chapter-item expanded "><a href="../../waku/informational/27/peers.html"><strong aria-hidden="true">2.4.3.</strong> 27/Peers</a></li><li class="chapter-item expanded "><a href="../../waku/informational/29/config.html"><strong aria-hidden="true">2.4.4.</strong> 29/Config</a></li><li class="chapter-item expanded "><a href="../../waku/informational/30/adaptive-nodes.html"><strong aria-hidden="true">2.4.5.</strong> 30/Adaptive Nodes</a></li></ol></li><li class="chapter-item expanded "><a href="../../waku/deprecated/index.html"><strong aria-hidden="true">2.5.</strong> Deprecated</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../waku/deprecated/5/waku0.html"><strong aria-hidden="true">2.5.1.</strong> 5/Waku0</a></li><li class="chapter-item expanded "><a href="../../waku/deprecated/16/rpc.html"><strong aria-hidden="true">2.5.2.</strong> 16/RPC</a></li><li class="chapter-item expanded "><a href="../../waku/deprecated/18/swap.html"><strong aria-hidden="true">2.5.3.</strong> 18/Swap</a></li><li class="chapter-item expanded "><a href="../../waku/deprecated/fault-tolerant-store.html"><strong aria-hidden="true">2.5.4.</strong> Fault Tolerant Store</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="../../nomos/index.html"><strong aria-hidden="true">3.</strong> Nomos</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../nomos/raw/index.html"><strong aria-hidden="true">3.1.</strong> Raw</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../nomos/raw/nomosda-encoding.html"><strong aria-hidden="true">3.1.1.</strong> NomosDA Encoding</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/nomosda-network.html"><strong aria-hidden="true">3.1.2.</strong> NomosDA Network</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/p2p-hardware-requirements.html"><strong aria-hidden="true">3.1.3.</strong> P2P Hardware Requirements</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/p2p-nat-solution.html"><strong aria-hidden="true">3.1.4.</strong> P2P NAT Solution</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/p2p-network-bootstrapping.html"><strong aria-hidden="true">3.1.5.</strong> P2P Network Bootstrapping</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/p2p-network.html"><strong aria-hidden="true">3.1.6.</strong> P2P Network</a></li><li class="chapter-item expanded "><a href="../../nomos/raw/sdp.html"><strong aria-hidden="true">3.1.7.</strong> SDP</a></li></ol></li><li class="chapter-item expanded "><a href="../../nomos/deprecated/index.html"><strong aria-hidden="true">3.2.</strong> Deprecated</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../nomos/deprecated/claro.html"><strong aria-hidden="true">3.2.1.</strong> Claro</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="../../codex/index.html"><strong aria-hidden="true">4.</strong> Codex</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../codex/raw/index.html"><strong aria-hidden="true">4.1.</strong> Raw</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../codex/raw/codex-block-exchange.html"><strong aria-hidden="true">4.1.1.</strong> Block Exchange</a></li><li class="chapter-item expanded "><a href="../../codex/raw/codex-marketplace.html"><strong aria-hidden="true">4.1.2.</strong> Marketplace</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="../../status/index.html"><strong aria-hidden="true">5.</strong> Status</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../status/24/curation.html"><strong aria-hidden="true">5.1.</strong> 24/Curation</a></li><li class="chapter-item expanded "><a href="../../status/28/featuring.html"><strong aria-hidden="true">5.2.</strong> 28/Featuring</a></li><li class="chapter-item expanded "><a href="../../status/55/1to1-chat.html"><strong aria-hidden="true">5.3.</strong> 55/1-to-1 Chat</a></li><li class="chapter-item expanded "><a href="../../status/56/communities.html"><strong aria-hidden="true">5.4.</strong> 56/Communities</a></li><li class="chapter-item expanded "><a href="../../status/61/community-history-service.html"><strong aria-hidden="true">5.5.</strong> 61/Community History Service</a></li><li class="chapter-item expanded "><a href="../../status/62/payloads.html"><strong aria-hidden="true">5.6.</strong> 62/Payloads</a></li><li class="chapter-item expanded "><a href="../../status/63/keycard-usage.html"><strong aria-hidden="true">5.7.</strong> 63/Keycard Usage</a></li><li class="chapter-item expanded "><a href="../../status/65/account-address.html"><strong aria-hidden="true">5.8.</strong> 65/Account Address</a></li><li class="chapter-item expanded "><a href="../../status/71/push-notification-server.html"><strong aria-hidden="true">5.9.</strong> 71/Push Notification Server</a></li><li class="chapter-item expanded "><a href="../../status/raw/index.html"><strong aria-hidden="true">5.10.</strong> Raw</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../status/raw/simple-scaling.html"><strong aria-hidden="true">5.10.1.</strong> Simple Scaling</a></li><li class="chapter-item expanded "><a href="../../status/raw/status-app-protocols.html"><strong aria-hidden="true">5.10.2.</strong> Status App Protocols</a></li><li class="chapter-item expanded "><a href="../../status/raw/status-mvds.html"><strong aria-hidden="true">5.10.3.</strong> Status MVDS</a></li><li class="chapter-item expanded "><a href="../../status/raw/url-data.html"><strong aria-hidden="true">5.10.4.</strong> URL Data</a></li><li class="chapter-item expanded "><a href="../../status/raw/url-scheme.html"><strong aria-hidden="true">5.10.5.</strong> URL Scheme</a></li></ol></li><li class="chapter-item expanded "><a href="../../status/deprecated/index.html"><strong aria-hidden="true">5.11.</strong> Deprecated</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="../../status/deprecated/3rd-party.html"><strong aria-hidden="true">5.11.1.</strong> 3rd Party</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/account.html"><strong aria-hidden="true">5.11.2.</strong> Account</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/client.html"><strong aria-hidden="true">5.11.3.</strong> Client</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/dapp-browser-API-usage.html"><strong aria-hidden="true">5.11.4.</strong> Dapp Browser API Usage</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/eips.html"><strong aria-hidden="true">5.11.5.</strong> EIPs</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/ethereum-usage.html"><strong aria-hidden="true">5.11.6.</strong> Ethereum Usage</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/group-chat.html"><strong aria-hidden="true">5.11.7.</strong> Group Chat</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/IPFS-gateway-for-sticker-Pack.html"><strong aria-hidden="true">5.11.8.</strong> IPFS Gateway for Sticker Pack</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/keycard-usage-for-wallet-and-chat-keys.html"><strong aria-hidden="true">5.11.9.</strong> Keycard Usage for Wallet and Chat Keys</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/notifications.html"><strong aria-hidden="true">5.11.10.</strong> Notifications</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/payloads.html"><strong aria-hidden="true">5.11.11.</strong> Payloads</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/push-notification-server.html"><strong aria-hidden="true">5.11.12.</strong> Push Notification Server</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/secure-transport.html"><strong aria-hidden="true">5.11.13.</strong> Secure Transport</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/waku-mailserver.html"><strong aria-hidden="true">5.11.14.</strong> Waku Mailserver</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/waku-usage.html"><strong aria-hidden="true">5.11.15.</strong> Waku Usage</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/whisper-mailserver.html"><strong aria-hidden="true">5.11.16.</strong> Whisper Mailserver</a></li><li class="chapter-item expanded "><a href="../../status/deprecated/whisper-usage.html"><strong aria-hidden="true">5.11.17.</strong> Whisper Usage</a></li></ol></li></ol></li></ol>
|
|
</div>
|
|
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
|
|
<div class="sidebar-resize-indicator"></div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Track and set sidebar scroll position -->
|
|
<script>
|
|
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
|
|
sidebarScrollbox.addEventListener('click', function(e) {
|
|
if (e.target.tagName === 'A') {
|
|
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
|
|
}
|
|
}, { passive: true });
|
|
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
|
|
sessionStorage.removeItem('sidebar-scroll');
|
|
if (sidebarScrollTop) {
|
|
// preserve sidebar scroll position when navigating via links within sidebar
|
|
sidebarScrollbox.scrollTop = sidebarScrollTop;
|
|
} else {
|
|
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
|
|
var activeSection = document.querySelector('#sidebar .active');
|
|
if (activeSection) {
|
|
activeSection.scrollIntoView({ block: 'center' });
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<div id="page-wrapper" class="page-wrapper">
|
|
|
|
<div class="page">
|
|
<div id="menu-bar-hover-placeholder"></div>
|
|
<div id="menu-bar" class="menu-bar sticky">
|
|
<div class="left-buttons">
|
|
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
|
<i class="fa fa-bars"></i>
|
|
</label>
|
|
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
|
<i class="fa fa-paint-brush"></i>
|
|
</button>
|
|
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
|
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
|
</ul>
|
|
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
|
<i class="fa fa-search"></i>
|
|
</button>
|
|
</div>
|
|
|
|
<h1 class="menu-title">Vac RFC</h1>
|
|
|
|
<div class="right-buttons">
|
|
<a href="../../print.html" title="Print this book" aria-label="Print this book">
|
|
<i id="print-button" class="fa fa-print"></i>
|
|
</a>
|
|
<a href="https://github.com/vacp2p/rfc-index" title="Git repository" aria-label="Git repository">
|
|
<i id="git-repository-button" class="fa fa-github"></i>
|
|
</a>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id="search-wrapper" class="hidden">
|
|
<form id="searchbar-outer" class="searchbar-outer">
|
|
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
|
</form>
|
|
<div id="searchresults-outer" class="searchresults-outer hidden">
|
|
<div id="searchresults-header" class="searchresults-header"></div>
|
|
<ul id="searchresults">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
|
<script>
|
|
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
|
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
|
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
|
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
|
});
|
|
</script>
|
|
|
|
<div id="content" class="content">
|
|
<main>
|
|
<h1 id="1coss"><a class="header" href="#1coss">1/COSS</a></h1>
|
|
<div class="rfc-meta">
|
|
<table>
|
|
<tr><th>Name</th><td>Consensus-Oriented Specification System</td></tr>
|
|
<tr><th>Slug</th><td>1</td></tr>
|
|
<tr><th>Status</th><td>draft</td></tr>
|
|
<tr><th>Category</th><td>Best Current Practice</td></tr>
|
|
<tr><th>Editor</th><td>Daniel Kaiser <danielkaiser@status.im></td></tr>
|
|
<tr><th>Contributors</th><td>Oskar Thoren <oskarth@titanproxy.com><br>Pieter Hintjens <ph@imatix.com><br>André Rebentisch <andre@openstandards.de><br>Alberto Barrionuevo <abarrio@opentia.es><br>Chris Puttick <chris.puttick@thehumanjourney.net><br>Yurii Rashkovskii <yrashk@gmail.com><br>Jimmy Debe <jimmy@status.im></td></tr>
|
|
</table>
|
|
</div>
|
|
<!-- timeline:start -->
|
|
<h2 id="timeline"><a class="header" href="#timeline">Timeline</a></h2>
|
|
<ul>
|
|
<li><strong>2025-12-22</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/b1a578393edf8487ccc97a5f25b25af9bf41efb3/docs/vac/1/coss.md"><code>b1a5783</code></a> — Chore/mdbook updates (#237)</li>
|
|
<li><strong>2025-12-18</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/d03e699084774ebecef9c6d4662498907c5e2080/docs/vac/1/coss.md"><code>d03e699</code></a> — ci: add mdBook configuration (#233)</li>
|
|
<li><strong>2025-11-04</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/dd397adc594c121ce3e10b7e81b5c2ed4818c0a6/vac/1/coss.md"><code>dd397ad</code></a> — Update Coss Date (#206)</li>
|
|
<li><strong>2024-10-09</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/d5e0072498858c5d699ec091c41ae8961badcaee/vac/1/coss.md"><code>d5e0072</code></a> — cosmetic: fix external links in 1/COSS (#100)</li>
|
|
<li><strong>2024-09-13</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/3ab314d87d4525ff1296bf3d9ec634d570777b91/vac/1/coss.md"><code>3ab314d</code></a> — Fix Files for Linting (#94)</li>
|
|
<li><strong>2024-08-09</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/ed2c68f0722a88ec5781741e07bafc3920d1796a/vac/1/coss.md"><code>ed2c68f</code></a> — 1/COSS: New RFC Process (#4)</li>
|
|
<li><strong>2024-02-01</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/3eaccf93b593026f05c8bfc2dc3a9f5657398cd3/vac/1/coss.md"><code>3eaccf9</code></a> — Update and rename COSS.md to coss.md</li>
|
|
<li><strong>2024-01-30</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/990d940d92e3bbbfa41b1b57fbcbbea05d41834d/vac/1/COSS.md"><code>990d940</code></a> — Rename COSS.md to COSS.md</li>
|
|
<li><strong>2024-01-27</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/649507410e07e0d0a08f3122a625c86a12e38de0/vac/01/COSS.md"><code>6495074</code></a> — Rename vac/rfcs/01/README.md to vac/01/COSS.md</li>
|
|
<li><strong>2024-01-25</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/bab16a8463d343392f45defb79b6dddbe68eb636/vac/rfcs/01/README.md"><code>bab16a8</code></a> — Rename README.md to README.md</li>
|
|
<li><strong>2024-01-25</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/a9162f28df681781e9bc94b94e2b3a6425cf4428/vac/rfc/01/README.md"><code>a9162f2</code></a> — Create README.md</li>
|
|
</ul>
|
|
<!-- timeline:end -->
|
|
<p>This document describes a consensus-oriented specification system (COSS)
|
|
for building interoperable technical specifications.
|
|
COSS is based on a lightweight editorial process that
|
|
seeks to engage the widest possible range of interested parties and
|
|
move rapidly to consensus through working code.</p>
|
|
<p>This specification is based on <a href="https://github.com/unprotocols/rfc/blob/master/2/README.md">Unprotocols 2/COSS</a>,
|
|
used by the <a href="https://rfc.zeromq.org/">ZeromMQ</a> project.
|
|
It is equivalent except for some areas:</p>
|
|
<ul>
|
|
<li>recommending the use of a permissive licenses,
|
|
such as CC0 (with the exception of this document);</li>
|
|
<li>miscellaneous metadata, editor, and format/link updates;</li>
|
|
<li>more inheritance from the <a href="https://www.rfc-editor.org/rfc/rfc2026.txt">IETF Standards Process</a>,
|
|
e.g. using RFC categories: Standards Track, Informational, and Best Common Practice;</li>
|
|
<li>standards track specifications SHOULD
|
|
follow a specific structure that both streamlines editing,
|
|
and helps implementers to quickly comprehend the specification</li>
|
|
<li>specifications MUST feature a header providing specific meta information</li>
|
|
<li>raw specifications will not be assigned numbers</li>
|
|
<li>section explaining the <a href="https://free.technology/">IFT</a>
|
|
Request For Comments specification process managed by the Vac service department</li>
|
|
</ul>
|
|
<h2 id="license"><a class="header" href="#license">License</a></h2>
|
|
<p>Copyright (c) 2008-26 the Editor and Contributors.</p>
|
|
<p>This Specification is free software;
|
|
you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation;
|
|
either version 3 of the License, or (at your option) any later version.</p>
|
|
<p>This specification is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY;
|
|
without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the GNU General Public License for more details.</p>
|
|
<p>You should have received a copy of the GNU General Public License
|
|
along with this program;
|
|
if not, see <a href="http://www.gnu.org/licenses">gnu.org</a>.</p>
|
|
<h2 id="change-process"><a class="header" href="#change-process">Change Process</a></h2>
|
|
<p>This document is governed by the <a href="./coss.html">1/COSS</a> (COSS).</p>
|
|
<h2 id="language"><a class="header" href="#language">Language</a></h2>
|
|
<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
|
|
"SHOULD NOT", "RECOMMENDED", "MAY", and
|
|
"OPTIONAL" in this document are to be interpreted as described in
|
|
<a href="http://tools.ietf.org/html/rfc2119">RFC 2119</a>.</p>
|
|
<h2 id="goals"><a class="header" href="#goals">Goals</a></h2>
|
|
<p>The primary goal of COSS is to facilitate the process of writing, proving, and
|
|
improving new technical specifications.
|
|
A "technical specification" defines a protocol, a process, an API, a use of language,
|
|
a methodology, or any other aspect of a technical environment that
|
|
can usefully be documented for the purposes of technical or social interoperability.</p>
|
|
<p>COSS is intended to above all be economical and rapid,
|
|
so that it is useful to small teams with little time to spend on more formal processes.</p>
|
|
<p>Principles:</p>
|
|
<ul>
|
|
<li>We aim for rough consensus and running code; <a href="https://www.ietf.org/about/participate/tao/">inspired by the IETF Tao</a>.</li>
|
|
<li>Specifications are small pieces, made by small teams.</li>
|
|
<li>Specifications should have a clearly responsible editor.</li>
|
|
<li>The process should be visible, objective, and accessible to anyone.</li>
|
|
<li>The process should clearly separate experiments from solutions.</li>
|
|
<li>The process should allow deprecation of old specifications.</li>
|
|
</ul>
|
|
<p>Specifications should take minutes to explain, hours to design, days to write,
|
|
weeks to prove, months to become mature, and years to replace.
|
|
Specifications have no special status except that accorded by the community.</p>
|
|
<h2 id="architecture"><a class="header" href="#architecture">Architecture</a></h2>
|
|
<p>COSS is designed around fast, easy to use communications tools.
|
|
Primarily, COSS uses a wiki model for editing and publishing specifications texts.</p>
|
|
<ul>
|
|
<li>The <em>domain</em> is the conservancy for a set of specifications.</li>
|
|
<li>The <em>domain</em> is implemented as an Internet domain.</li>
|
|
<li>Each specification is a document together with references and attached resources.</li>
|
|
<li>A <em>sub-domain</em> is a initiative under a specific domain.</li>
|
|
</ul>
|
|
<p>Individuals can become members of the <em>domain</em>
|
|
by completing the necessary legal clearance.
|
|
The copyright, patent, and trademark policies of the domain must be clarified
|
|
in an Intellectual Property policy that applies to the domain.</p>
|
|
<p>Specifications exist as multiple pages, one page per version,
|
|
(discussed below in "Branching and Merging"),
|
|
which should be assigned URIs that MAY include an number identifier.</p>
|
|
<p>Thus, we refer to new specifications by specifying its domain,
|
|
its sub-domain and short name.
|
|
The syntax for a new specification reference is:</p>
|
|
<pre><code><domain>/<sub-domain>/<shortname>
|
|
</code></pre>
|
|
<p>For example, this specification should be <strong>rfc.vac.dev/vac/COSS</strong>,
|
|
if the status were <strong>raw</strong>.</p>
|
|
<p>A number will be assigned to the specification when obtaining <strong>draft</strong> status.
|
|
New versions of the same specification will be assigned a new number.
|
|
The syntax for a specification reference is:</p>
|
|
<pre><code><domain>/<sub-domain>/<number>/<shortname>
|
|
</code></pre>
|
|
<p>For example, this specification is <strong>rfc.vac.dev/vac/1/COSS</strong>.
|
|
The short form <strong>1/COSS</strong> may be used when referring to the specification
|
|
from other specifications in the same domain.</p>
|
|
<p>Specifications (excluding raw specifications)
|
|
carries a different number including branches.</p>
|
|
<h2 id="coss-lifecycle"><a class="header" href="#coss-lifecycle">COSS Lifecycle</a></h2>
|
|
<p>Every specification has an independent lifecycle that
|
|
documents clearly its current status.
|
|
For a specification to receive a lifecycle status,
|
|
a new specification SHOULD be presented by the team of the sub-domain.
|
|
After discussion amongst the contributors has reached a rough consensus,
|
|
as described in <a href="https://www.rfc-editor.org/rfc/rfc7282.html">RFC7282</a>,
|
|
the specification MAY begin the process to upgrade it's status.</p>
|
|
<p>A specification has five possible states that reflect its maturity and
|
|
contractual weight:</p>
|
|
<p><img src="./images/lifecycle.png" alt="Lifecycle diagram" /></p>
|
|
<h3 id="raw-specifications"><a class="header" href="#raw-specifications">Raw Specifications</a></h3>
|
|
<p>All new specifications are <strong>raw</strong> specifications.
|
|
Changes to raw specifications can be unilateral and arbitrary.
|
|
A sub-domain MAY use the <strong>raw</strong> status for new specifications
|
|
that live under their domain.
|
|
Raw specifications have no contractual weight.</p>
|
|
<h3 id="draft-specifications"><a class="header" href="#draft-specifications">Draft Specifications</a></h3>
|
|
<p>When raw specifications can be demonstrated,
|
|
they become <strong>draft</strong> specifications and are assigned numbers.
|
|
Changes to draft specifications should be done in consultation with users.
|
|
Draft specifications are contracts between the editors and implementers.</p>
|
|
<h3 id="stable-specifications"><a class="header" href="#stable-specifications">Stable Specifications</a></h3>
|
|
<p>When draft specifications are used by third parties, they become <strong>stable</strong> specifications.
|
|
Changes to stable specifications should be restricted to cosmetic ones,
|
|
errata and clarifications.
|
|
Stable specifications are contracts between editors, implementers, and end-users.</p>
|
|
<h3 id="deprecated-specifications"><a class="header" href="#deprecated-specifications">Deprecated Specifications</a></h3>
|
|
<p>When stable specifications are replaced by newer draft specifications,
|
|
they become <strong>deprecated</strong> specifications.
|
|
Deprecated specifications should not be changed except
|
|
to indicate their replacements, if any.
|
|
Deprecated specifications are contracts between editors, implementers and end-users.</p>
|
|
<h3 id="retired-specifications"><a class="header" href="#retired-specifications">Retired Specifications</a></h3>
|
|
<p>When deprecated specifications are no longer used in products,
|
|
they become <strong>retired</strong> specifications.
|
|
Retired specifications are part of the historical record.
|
|
They should not be changed except to indicate their replacements, if any.
|
|
Retired specifications have no contractual weight.</p>
|
|
<h3 id="deleted-specifications"><a class="header" href="#deleted-specifications">Deleted Specifications</a></h3>
|
|
<p>Deleted specifications are those that have not reached maturity (stable) and
|
|
were discarded.
|
|
They should not be used and are only kept for their historical value.
|
|
Only Raw and Draft specifications can be deleted.</p>
|
|
<h2 id="editorial-control"><a class="header" href="#editorial-control">Editorial control</a></h2>
|
|
<p>A specification MUST have a single responsible editor,
|
|
the only person who SHALL change the status of the specification
|
|
through the lifecycle stages.</p>
|
|
<p>A specification MAY also have additional contributors who contribute changes to it.
|
|
It is RECOMMENDED to use a process similar to <a href="https://github.com/unprotocols/rfc/blob/master/1/README.md">C4 process</a>
|
|
to maximize the scale and diversity of contributions.</p>
|
|
<p>Unlike the original C4 process however,
|
|
it is RECOMMENDED to use CC0 as a more permissive license alternative.
|
|
We SHOULD NOT use GPL or GPL-like license.
|
|
One exception is this specification, as this was the original license for this specification.</p>
|
|
<p>The editor is responsible for accurately maintaining the state of specifications,
|
|
for retiring different versions that may live in other places and
|
|
for handling all comments on the specification.</p>
|
|
<h2 id="branching-and-merging"><a class="header" href="#branching-and-merging">Branching and Merging</a></h2>
|
|
<p>Any member of the domain MAY branch a specification at any point.
|
|
This is done by copying the existing text, and
|
|
creating a new specification with the same name and content, but a new number.
|
|
Since <strong>raw</strong> specifications are not assigned a number,
|
|
branching by any member of a sub-domain MAY differentiate specifications
|
|
based on date, contributors, or
|
|
version number within the document.
|
|
The ability to branch a specification is necessary in these circumstances:</p>
|
|
<ul>
|
|
<li>To change the responsible editor for a specification,
|
|
with or without the cooperation of the current responsible editor.</li>
|
|
<li>To rejuvenate a specification that is stable but needs functional changes.
|
|
This is the proper way to make a new version of a specification
|
|
that is in stable or deprecated status.</li>
|
|
<li>To resolve disputes between different technical opinions.</li>
|
|
</ul>
|
|
<p>The responsible editor of a branched specification is the person who makes the branch.</p>
|
|
<p>Branches, including added contributions, are derived works and
|
|
thus licensed under the same terms as the original specification.
|
|
This means that contributors are guaranteed the right to merge changes made in branches
|
|
back into their original specifications.</p>
|
|
<p>Technically speaking, a branch is a <em>different</em> specification,
|
|
even if it carries the same name.
|
|
Branches have no special status except that accorded by the community.</p>
|
|
<h2 id="conflict-resolution"><a class="header" href="#conflict-resolution">Conflict resolution</a></h2>
|
|
<p>COSS resolves natural conflicts between teams and
|
|
vendors by allowing anyone to define a new specification.
|
|
There is no editorial control process except
|
|
that practised by the editor of a new specification.
|
|
The administrators of a domain (moderators)
|
|
may choose to interfere in editorial conflicts,
|
|
and may suspend or ban individuals for behaviour they consider inappropriate.</p>
|
|
<h2 id="specification-structure"><a class="header" href="#specification-structure">Specification Structure</a></h2>
|
|
<h3 id="meta-information"><a class="header" href="#meta-information">Meta Information</a></h3>
|
|
<p>Specifications MUST contain the following metadata.
|
|
It is RECOMMENDED that specification metadata is specified as a YAML header
|
|
(where possible).
|
|
This will enable programmatic access to specification metadata.</p>
|
|
<div class="table-wrapper"><table><thead><tr><th>Key</th><th>Value</th><th>Type</th><th>Example</th></tr></thead><tbody>
|
|
<tr><td><strong>shortname</strong></td><td>short name</td><td>string</td><td>1/COSS</td></tr>
|
|
<tr><td><strong>title</strong></td><td>full name</td><td>string</td><td>Consensus-Oriented Specification System</td></tr>
|
|
<tr><td><strong>status</strong></td><td>status</td><td>string</td><td>draft</td></tr>
|
|
<tr><td><strong>category</strong></td><td>category</td><td>string</td><td>Best Current Practice</td></tr>
|
|
<tr><td><strong>tags</strong></td><td>0 or several tags</td><td>list</td><td>waku-application, waku-core-protocol</td></tr>
|
|
<tr><td><strong>editor</strong></td><td>editor name/email</td><td>string</td><td>Oskar Thoren <a href="mailto:oskarth@titanproxy.com">oskarth@titanproxy.com</a></td></tr>
|
|
<tr><td><strong>contributors</strong></td><td>contributors</td><td>list</td><td>- Pieter Hintjens <a href="mailto:ph@imatix.com">ph@imatix.com</a> - André Rebentisch <a href="mailto:andre@openstandards.de">andre@openstandards.de</a> - Alberto Barrionuevo <a href="mailto:abarrio@opentia.es">abarrio@opentia.es</a> - Chris Puttick <a href="mailto:chris.puttick@thehumanjourney.net">chris.puttick@thehumanjourney.net</a> - Yurii Rashkovskii <a href="mailto:yrashk@gmail.com">yrashk@gmail.com</a></td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<h3 id="iftvac-rfc-process"><a class="header" href="#iftvac-rfc-process">IFT/Vac RFC Process</a></h3>
|
|
<blockquote>
|
|
<p>[!Note]
|
|
This section is introduced to allow contributors to understand the IFT
|
|
(Institute of Free Technology) Vac RFC specification process.
|
|
Other organizations may make changes to this section according to their needs.</p>
|
|
</blockquote>
|
|
<p>Vac is a department under the IFT organization that provides RFC (Request For Comments)
|
|
specification services.
|
|
This service works to help facilitate the RFC process, assuring standards are followed.
|
|
Contributors within the service SHOULD assist a <em>sub-domain</em> in creating a new specification,
|
|
editing a specification, and
|
|
promoting the status of a specification along with other tasks.
|
|
Once a specification reaches some level of maturity by rough consensus,
|
|
the specification SHOULD enter the <a href="https://rfc.vac.dev/">Vac RFC</a> process.
|
|
Similar to the IETF working group adoption described in <a href="https://www.rfc-editor.org/rfc/rfc6174.html">RFC6174</a>,
|
|
the Vac RFC process SHOULD facilitate all updates to the specification.</p>
|
|
<p>Specifications are introduced by projects,
|
|
under a specific <em>domain</em>, with the intention of becoming technically mature documents.
|
|
The IFT domain currently houses the following projects:</p>
|
|
<ul>
|
|
<li><a href="https://status.app/">Status</a></li>
|
|
<li><a href="https://waku.org/">Waku</a></li>
|
|
<li><a href="https://codex.storage/">Codex</a></li>
|
|
<li><a href="https://nimbus.team/">Nimbus</a></li>
|
|
<li><a href="https://nomos.tech/">Nomos</a></li>
|
|
</ul>
|
|
<p>When a specification is promoted to <em>draft</em> status,
|
|
the number that is assigned MAY be incremental
|
|
or by the <em>sub-domain</em> and the Vac RFC process.
|
|
Standards track specifications MUST be based on the
|
|
<a href="../template.html">Vac RFC template</a> before obtaining a new status.
|
|
All changes, comments, and contributions SHOULD be documented.</p>
|
|
<h2 id="conventions"><a class="header" href="#conventions">Conventions</a></h2>
|
|
<p>Where possible editors and contributors are encouraged to:</p>
|
|
<ul>
|
|
<li>Refer to and build on existing work when possible, especially IETF specifications.</li>
|
|
<li>Contribute to existing specifications rather than reinvent their own.</li>
|
|
<li>Use collaborative branching and merging as a tool for experimentation.</li>
|
|
<li>Use Semantic Line Breaks: <a href="https://sembr.org/">sembr</a>.</li>
|
|
</ul>
|
|
<h2 id="appendix-a-color-coding"><a class="header" href="#appendix-a-color-coding">Appendix A. Color Coding</a></h2>
|
|
<p>It is RECOMMENDED to use color coding to indicate specification's status.
|
|
Color coded specifications SHOULD use the following color scheme:</p>
|
|
<ul>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/raw.svg" alt="raw" /></li>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/draft.svg" alt="draft" /></li>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/stable.svg" alt="stable" /></li>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/deprecated.svg" alt="deprecated" /></li>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/retired.svg" alt="retired" /></li>
|
|
<li><img src="https://raw.githubusercontent.com/unprotocols/rfc/master/2/deleted.svg" alt="deleted" /></li>
|
|
</ul>
|
|
|
|
</main>
|
|
|
|
<nav class="nav-wrapper" aria-label="Page navigation">
|
|
<!-- Mobile navigation buttons -->
|
|
<a rel="prev" href="../../vac/index.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
<a rel="next prefetch" href="../../vac/2/mvds.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
|
|
<div style="clear: both"></div>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
|
<a rel="prev" href="../../vac/index.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
<a rel="next prefetch" href="../../vac/2/mvds.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
window.playground_copyable = true;
|
|
</script>
|
|
|
|
|
|
<script src="../../elasticlunr.min.js"></script>
|
|
<script src="../../mark.min.js"></script>
|
|
<script src="../../searcher.js"></script>
|
|
|
|
<script src="../../clipboard.min.js"></script>
|
|
<script src="../../highlight.js"></script>
|
|
<script src="../../book.js"></script>
|
|
|
|
<!-- Custom JS scripts -->
|
|
<script src="../../scripts/rfc-index.js"></script>
|
|
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|