mirror of
https://github.com/vacp2p/rfc-index.git
synced 2026-01-09 15:48:03 -05:00
618 lines
49 KiB
HTML
618 lines
49 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en" class="ayu" dir="ltr">
|
|
<head>
|
|
<!-- Book generated using mdBook -->
|
|
<meta charset="UTF-8">
|
|
<title>9/RPC - 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"><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" class="active"><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="9waku-rpc"><a class="header" href="#9waku-rpc">9/WAKU-RPC</a></h1>
|
|
<div class="table-wrapper"><table><thead><tr><th>Field</th><th>Value</th></tr></thead><tbody>
|
|
<tr><td>Name</td><td>Waku RPC API</td></tr>
|
|
<tr><td>Slug</td><td>9</td></tr>
|
|
<tr><td>Status</td><td>stable</td></tr>
|
|
<tr><td>Editor</td><td>Andrea Maria Piana <a href="mailto:andreap@status.im">andreap@status.im</a></td></tr>
|
|
<tr><td>Contributors</td><td>Dean Eigenmann <a href="mailto:dean@status.im">dean@status.im</a>, Oskar Thorén <a href="mailto:oskarth@titanproxy.com">oskarth@titanproxy.com</a></td></tr>
|
|
</tbody></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/0f1855edcf68ef982c4ce478b67d660809aa9830/docs/waku/standards/legacy/9/rpc.md"><code>0f1855e</code></a> — Chore/fix headers (#239)</li>
|
|
<li><strong>2025-12-22</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/b1a578393edf8487ccc97a5f25b25af9bf41efb3/docs/waku/standards/legacy/9/rpc.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/waku/standards/legacy/9/rpc.md"><code>d03e699</code></a> — ci: add mdBook configuration (#233)</li>
|
|
<li><strong>2024-09-13</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/3ab314d87d4525ff1296bf3d9ec634d570777b91/waku/standards/legacy/9/rpc.md"><code>3ab314d</code></a> — Fix Files for Linting (#94)</li>
|
|
<li><strong>2024-03-21</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/2eaa7949c4abe7d14e2b9560e8c045bf2e937c9a/waku/standards/legacy/9/rpc.md"><code>2eaa794</code></a> — Broken Links + Change Editors (#26)</li>
|
|
<li><strong>2024-02-12</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/5eb393f47c2d7c7b10f024e07a20e2b6647a14bc/waku/standards/legacy/9/rpc.md"><code>5eb393f</code></a> — Rename waku/legacy/9/rpc.md to waku/standards/legacy/9/rpc.md</li>
|
|
<li><strong>2024-02-12</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/9617146a6a5ddaa676ef6d5ee47bf073c2b86f9f/waku/legacy/9/rpc.md"><code>9617146</code></a> — Rename waku/standards/core/waku_legacy/9/waku2-rpc.md to waku/legacy/9/rpc.md</li>
|
|
<li><strong>2024-02-12</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/75705cd142342c905961c55da5914513599b2a7b/waku/standards/core/waku_legacy/9/waku2-rpc.md"><code>75705cd</code></a> — Rename waku/standards/core/9/waku2-rpc.md to waku/standards/core/waku_legacy/9/waku2-rpc.md</li>
|
|
<li><strong>2024-02-01</strong> — <a href="https://github.com/vacp2p/rfc-index/blob/e808e36eb7f011c6f15fb2f73f9520b5cc7dbff1/waku/standards/core/9/waku2-rpc.md"><code>e808e36</code></a> — Create waku2-rpc.md</li>
|
|
</ul>
|
|
<!-- timeline:end -->
|
|
<p>This specification describes the RPC API that Waku nodes MAY adhere to.
|
|
The unified API allows clients to easily
|
|
be able to connect to any node implementation.
|
|
The API described is privileged as a node stores the keys of clients.</p>
|
|
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
|
|
<p>This API is based off the <a href="https://github.com/ethereum/go-ethereum/wiki/Whisper-v6-RPC-API">Whisper V6 RPC API</a>.</p>
|
|
<h2 id="wire-protocol"><a class="header" href="#wire-protocol">Wire Protocol</a></h2>
|
|
<h3 id="transport"><a class="header" href="#transport">Transport</a></h3>
|
|
<p>Nodes SHOULD expose a <a href="https://www.jsonrpc.org/specification">JSON RPC</a> API
|
|
that can be accessed.
|
|
The JSON RPC version SHOULD be <code>2.0</code>.
|
|
Below is an example request:</p>
|
|
<pre><code class="language-json">{
|
|
"jsonrpc":"2.0",
|
|
"method":"waku_version",
|
|
"params":[],
|
|
"id":1
|
|
}
|
|
</code></pre>
|
|
<h4 id="fields"><a class="header" href="#fields">Fields</a></h4>
|
|
<div class="table-wrapper"><table><thead><tr><th>Field</th><th>Description</th></tr></thead><tbody>
|
|
<tr><td><code>jsonrpc</code></td><td>Contains the used JSON RPC version (<code>Default: 2.0</code>)</td></tr>
|
|
<tr><td><code>method</code></td><td>Contains the JSON RPC method that is being called</td></tr>
|
|
<tr><td><code>params</code></td><td>An array of parameters for the request</td></tr>
|
|
<tr><td><code>id</code></td><td>The request ID</td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<h3 id="objects"><a class="header" href="#objects">Objects</a></h3>
|
|
<p>In this section you will find objects used throughout the JSON RPC API.</p>
|
|
<h4 id="message"><a class="header" href="#message">Message</a></h4>
|
|
<p>The message object represents a Waku message.
|
|
Below you will find the description of the attributes contained in the message object.
|
|
A message is the decrypted payload and
|
|
padding of an <a href="../7/data.html">envelope</a> along with all of its metadata and
|
|
other extra information such as the hash.</p>
|
|
<div class="table-wrapper"><table><thead><tr><th style="text-align: right">Field</th><th style="text-align: center">Type</th><th>Description</th></tr></thead><tbody>
|
|
<tr><td style="text-align: right"><code>sig</code></td><td style="text-align: center">string</td><td>Public Key that signed this message</td></tr>
|
|
<tr><td style="text-align: right"><code>recipientPublicKey</code></td><td style="text-align: center">string</td><td>The recipients public key</td></tr>
|
|
<tr><td style="text-align: right"><code>ttl</code></td><td style="text-align: center">number</td><td>Time-to-live in seconds</td></tr>
|
|
<tr><td style="text-align: right"><code>timestamp</code></td><td style="text-align: center">number</td><td>Unix timestamp of the message generation</td></tr>
|
|
<tr><td style="text-align: right"><code>topic</code></td><td style="text-align: center">string</td><td>4 bytes, the message topic</td></tr>
|
|
<tr><td style="text-align: right"><code>payload</code></td><td style="text-align: center">string</td><td>Decrypted payload</td></tr>
|
|
<tr><td style="text-align: right"><code>padding</code></td><td style="text-align: center">string</td><td>Optional padding, byte array of arbitrary length</td></tr>
|
|
<tr><td style="text-align: right"><code>pow</code></td><td style="text-align: center">number</td><td>The proof of work value</td></tr>
|
|
<tr><td style="text-align: right"><code>hash</code></td><td style="text-align: center">string</td><td>Hash of the enveloped message</td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<h4 id="filter"><a class="header" href="#filter">Filter</a></h4>
|
|
<p>The filter object represents filters that can be applied to retrieve messages.
|
|
Below you will find the description of the attributes contained in the filter object.</p>
|
|
<div class="table-wrapper"><table><thead><tr><th style="text-align: right">Field</th><th style="text-align: center">Type</th><th>Description</th></tr></thead><tbody>
|
|
<tr><td style="text-align: right"><code>symKeyID</code></td><td style="text-align: center">string</td><td>ID of the symmetric key for message decryption</td></tr>
|
|
<tr><td style="text-align: right"><code>privateKeyID</code></td><td style="text-align: center">string</td><td>ID of private (asymmetric) key for message decryption</td></tr>
|
|
<tr><td style="text-align: right"><code>sig</code></td><td style="text-align: center">string</td><td>Public key of the signature</td></tr>
|
|
<tr><td style="text-align: right"><code>minPow</code></td><td style="text-align: center">number</td><td>Minimal PoW requirement for incoming messages</td></tr>
|
|
<tr><td style="text-align: right"><code>topics</code></td><td style="text-align: center">array</td><td>Array of possible topics, this can also contain partial topics</td></tr>
|
|
<tr><td style="text-align: right"><code>allowP2P</code></td><td style="text-align: center">boolean</td><td>Indicates if this filter allows processing of direct peer-to-peer messages</td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<p>All fields are optional, however <code>symKeyID</code> or <code>privateKeyID</code> must be present,
|
|
it cannot be both.
|
|
Additionally, the <code>topics</code> field is only optional when an asymmetric key is used.</p>
|
|
<h3 id="methods"><a class="header" href="#methods">Methods</a></h3>
|
|
<h4 id="waku_version"><a class="header" href="#waku_version"><code>waku_version</code></a></h4>
|
|
<p>The <code>waku_version</code> method returns the current version number.</p>
|
|
<h5 id="parameters"><a class="header" href="#parameters">Parameters</a></h5>
|
|
<p>none</p>
|
|
<h5 id="response"><a class="header" href="#response">Response</a></h5>
|
|
<ul>
|
|
<li><strong>string</strong> - The version number.</li>
|
|
</ul>
|
|
<h4 id="waku_info"><a class="header" href="#waku_info"><code>waku_info</code></a></h4>
|
|
<p>The <code>waku_info</code> method returns information about a Waku node.</p>
|
|
<p>Parameters</p>
|
|
<p>none</p>
|
|
<p>Response</p>
|
|
<p>The response is an <code>Object</code> containing the following fields:</p>
|
|
<ul>
|
|
<li><strong><code>minPow</code> [number]</strong> - The current PoW requirement.</li>
|
|
<li><strong><code>maxEnvelopeSize</code> [float]</strong> - The current maximum envelope size in bytes.</li>
|
|
<li><strong><code>memory</code> [number]</strong> - The memory size of the floating messages in bytes.</li>
|
|
<li><strong><code>envelopes</code> [number]</strong> - The number of floating envelopes.</li>
|
|
</ul>
|
|
<h4 id="waku_setmaxenvelopesize"><a class="header" href="#waku_setmaxenvelopesize"><code>waku_setMaxEnvelopeSize</code></a></h4>
|
|
<p>Sets the maximum envelope size allowed by this node.
|
|
Any envelopes larger than this size both incoming and outgoing will be rejected.
|
|
The envelope size can never exceed the underlying envelope size of <code>10mb</code>.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>number</strong> - The message size in bytes.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_setminpow"><a class="header" href="#waku_setminpow"><code>waku_setMinPoW</code></a></h4>
|
|
<p>Sets the minimal PoW required by this node.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>number</strong> - The new PoW requirement.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_marktrustedpeer"><a class="header" href="#waku_marktrustedpeer"><code>waku_markTrustedPeer</code></a></h4>
|
|
<p>Marks a specific peer as trusted allowing it to send expired messages.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - <code>enode</code> of the peer.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_newkeypair"><a class="header" href="#waku_newkeypair"><code>waku_newKeyPair</code></a></h4>
|
|
<p>Generates a keypair used for message encryption and decryption.</p>
|
|
<p>Parameters</p>
|
|
<p>none</p>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> -
|
|
Key ID on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_addprivatekey"><a class="header" href="#waku_addprivatekey"><code>waku_addPrivateKey</code></a></h4>
|
|
<p>Stores a key and returns its ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - Private key as hex bytes.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - Key ID on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_deletekeypair"><a class="header" href="#waku_deletekeypair"><code>waku_deleteKeyPair</code></a></h4>
|
|
<p>Deletes a specific key if it exists.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key pair.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> - <code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_haskeypair"><a class="header" href="#waku_haskeypair"><code>waku_hasKeyPair</code></a></h4>
|
|
<p>Checks if the node has a private key of a key pair matching the given ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key pair.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> or
|
|
<code>false</code> or an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_getpublickey"><a class="header" href="#waku_getpublickey"><code>waku_getPublicKey</code></a></h4>
|
|
<p>Returns the public key for an ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The public key or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_getprivatekey"><a class="header" href="#waku_getprivatekey"><code>waku_getPrivateKey</code></a></h4>
|
|
<p>Returns the private key for an ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The private key or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_newsymkey"><a class="header" href="#waku_newsymkey"><code>waku_newSymKey</code></a></h4>
|
|
<p>Generates a random symmetric key and stores it under an ID.
|
|
This key can be used to encrypt and
|
|
decrypt messages where the key is known to both parties.</p>
|
|
<p>Parameters</p>
|
|
<p>none</p>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The key ID or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_addsymkey"><a class="header" href="#waku_addsymkey"><code>waku_addSymKey</code></a></h4>
|
|
<p>Stores the key and returns its ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The raw key for symmetric encryption hex encoded.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The key ID or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_generatesymkeyfrompassword"><a class="header" href="#waku_generatesymkeyfrompassword"><code>waku_generateSymKeyFromPassword</code></a></h4>
|
|
<p>Generates the key from a password and stores it.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The password.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The key ID or an <a href="https://www.jsonrpc.org/specification#error_object">error</a>
|
|
on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_hassymkey"><a class="header" href="#waku_hassymkey"><code>waku_hasSymKey</code></a></h4>
|
|
<p>Returns whether there is a key associated with the ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> - <code>true</code> or <code>false</code> or an <a href="https://www.jsonrpc.org/specification#error_object">error</a>
|
|
on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_getsymkey"><a class="header" href="#waku_getsymkey"><code>waku_getSymKey</code></a></h4>
|
|
<p>Returns the symmetric key associated with an ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - Raw key on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> of failure.</li>
|
|
</ul>
|
|
<h4 id="waku_deletesymkey"><a class="header" href="#waku_deletesymkey"><code>waku_deleteSymKey</code></a></h4>
|
|
<p>Deletes the key associated with an ID.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the Key.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> or <code>false</code> or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_subscribe"><a class="header" href="#waku_subscribe"><code>waku_subscribe</code></a></h4>
|
|
<p>Creates and
|
|
registers a new subscription to receive notifications for inbound Waku messages.</p>
|
|
<p>Parameters</p>
|
|
<p>The parameters for this request is an array containing the following fields:</p>
|
|
<ol>
|
|
<li><strong>string</strong> - The ID of the function call,
|
|
in case of Waku this must contain the value "messages".</li>
|
|
<li><strong>object</strong> - The <a href="#filter">message filter</a>.</li>
|
|
</ol>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the subscription or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<p>Notifications</p>
|
|
<p>Notifications received by the client contain a <a href="#message">message</a> matching the filter.
|
|
Below is an example notification:</p>
|
|
<pre><code class="language-json">{
|
|
"jsonrpc": "2.0",
|
|
"method": "waku_subscription",
|
|
"params": {
|
|
"subscription": "02c1f5c953804acee3b68eda6c0afe3f1b4e0bec73c7445e10d45da333616412",
|
|
"result": {
|
|
"sig": "0x0498ac1951b9078a0549c93c3f6088ec7c790032b17580dc3c0c9e900899a48d89eaa27471e3071d2de6a1f48716ecad8b88ee022f4321a7c29b6ffcbee65624ff",
|
|
"recipientPublicKey": null,
|
|
"ttl": 10,
|
|
"timestamp": 1498577270,
|
|
"topic": "0xffaadd11",
|
|
"payload": "0xffffffdddddd1122",
|
|
"padding": "0x35d017b66b124dd4c67623ed0e3f23ba68e3428aa500f77aceb0dbf4b63f69ccfc7ae11e39671d7c94f1ed170193aa3e327158dffdd7abb888b3a3cc48f718773dc0a9dcf1a3680d00fe17ecd4e8d5db31eb9a3c8e6e329d181ecb6ab29eb7a2d9889b49201d9923e6fd99f03807b730780a58924870f541a8a97c87533b1362646e5f573dc48382ef1e70fa19788613c9d2334df3b613f6e024cd7aadc67f681fda6b7a84efdea40cb907371cd3735f9326d02854",
|
|
"pow": 0.6714754098360656,
|
|
"hash": "0x17f8066f0540210cf67ef400a8a55bcb32a494a47f91a0d26611c5c1d66f8c57"
|
|
}
|
|
}
|
|
}
|
|
</code></pre>
|
|
<h4 id="waku_unsubscribe"><a class="header" href="#waku_unsubscribe"><code>waku_unsubscribe</code></a></h4>
|
|
<p>Cancels and removes an existing subscription.
|
|
The node MUST stop sending the client notifications.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The subscription ID.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> - <code>true</code> or <code>false</code></li>
|
|
</ul>
|
|
<h4 id="waku_newmessagefilter"><a class="header" href="#waku_newmessagefilter"><code>waku_newMessageFilter</code></a></h4>
|
|
<p>Creates a new message filter within the node.
|
|
This filter can be used to poll for new messages that match the criteria.</p>
|
|
<p>Parameters</p>
|
|
<p>The request must contain a <a href="#filter">message filter</a> as its parameter.</p>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>string</strong> - The ID of the filter.</li>
|
|
</ul>
|
|
<h4 id="waku_deletemessagefilter"><a class="header" href="#waku_deletemessagefilter"><code>waku_deleteMessageFilter</code></a></h4>
|
|
<p>Removes a message filter from the node.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the filter created with <a href="#waku_newmessagefilter"><code>waku_newMessageFilter</code></a>.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> - <code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h4 id="waku_getfiltermessages"><a class="header" href="#waku_getfiltermessages"><code>waku_getFilterMessages</code></a></h4>
|
|
<p>Retrieves messages that match a filter criteria and
|
|
were received after the last time this function was called.</p>
|
|
<p>Parameters</p>
|
|
<ul>
|
|
<li><strong>string</strong> - ID of the filter created with <a href="#waku_newmessagefilter"><code>waku_newMessageFilter</code></a>.</li>
|
|
</ul>
|
|
<p>Response</p>
|
|
<p>The response contains an array of <a href="#message">messages</a> or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</p>
|
|
<h4 id="waku_post"><a class="header" href="#waku_post"><code>waku_post</code></a></h4>
|
|
<p>The <code>waku_post</code> method creates a waku envelope and propagates it to the network.</p>
|
|
<p>Parameters</p>
|
|
<p>The parameters is an <code>Object</code> containing the following fields:</p>
|
|
<ul>
|
|
<li><strong><code>symKeyID</code> [string]</strong> <code>optional</code> - The ID of the symmetric key used for encryption</li>
|
|
<li><strong><code>pubKey</code> [string]</strong> <code>optional</code> - The public key for message encryption.</li>
|
|
<li><strong><code>sig</code> [string]</strong> <code>optional</code> - The ID of the signing key.</li>
|
|
<li><strong><code>ttl</code> [number]</strong> - The time-to-live in seconds.</li>
|
|
<li><strong><code>topic</code> [string]</strong> - 4 bytes message topic.</li>
|
|
<li><strong><code>payload</code> [string]</strong> - The payload to be encrypted.</li>
|
|
<li><strong><code>padding</code> [string]</strong> <code>optional</code> - The padding, a byte array of arbitrary length.</li>
|
|
<li><strong><code>powTime</code> [number]</strong> - Maximum time in seconds to be spent on the proof of work.</li>
|
|
<li><strong><code>powTarget</code> [number]</strong> - Minimal PoW target required for this message.</li>
|
|
<li><strong><code>targetPeer</code> [string]</strong> <code>optional</code> - The optional peer ID for peer-to-peer messages.</li>
|
|
</ul>
|
|
<p><em>Either the <strong><code>symKeyID</code></strong> or the <strong><code>pubKey</code></strong> need to be present.
|
|
It can not be both.</em></p>
|
|
<p>Response</p>
|
|
<ul>
|
|
<li><strong>bool</strong> -
|
|
<code>true</code> on success or
|
|
an <a href="https://www.jsonrpc.org/specification#error_object">error</a> on failure.</li>
|
|
</ul>
|
|
<h2 id="changelog"><a class="header" href="#changelog">Changelog</a></h2>
|
|
<div class="table-wrapper"><table><thead><tr><th style="text-align: center">Version</th><th>Comment</th></tr></thead><tbody>
|
|
<tr><td style="text-align: center"><a href="https://github.com/vacp2p/specs/commit/bc7e75ebb2e45d2cbf6ab27352c113e666df37c8">1.0.0</a></td><td>Initial release.</td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<h2 id="copyright"><a class="header" href="#copyright">Copyright</a></h2>
|
|
<p>Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>.</p>
|
|
|
|
</main>
|
|
|
|
<nav class="nav-wrapper" aria-label="Page navigation">
|
|
<!-- Mobile navigation buttons -->
|
|
<a rel="prev" href="../../../../waku/standards/legacy/8/mail.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="../../../../waku/informational/index.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="../../../../waku/standards/legacy/8/mail.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="../../../../waku/informational/index.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>
|