docs.waku.org/assets/js/22dd74f7.fd39ce99.js
2025-10-27 23:35:15 +00:00

1 line
24 KiB
JavaScript

"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"build":[{"type":"link","label":"Home","href":"/"},{"type":"category","label":"JavaScript SDK","collapsed":false,"items":[{"type":"link","label":"Send and Receive Messages in a Reliable Channel","href":"/build/javascript/reliable-channels","docId":"build/javascript/reliable-channels","unlisted":false},{"type":"link","label":"Send and Receive Messages Using Light Push and Filter","href":"/build/javascript/light-send-receive","docId":"build/javascript/light-send-receive","unlisted":false},{"type":"link","label":"Retrieve Messages Using Store Protocol","href":"/build/javascript/store-retrieve-messages","docId":"build/javascript/store-retrieve-messages","unlisted":false},{"type":"link","label":"Encrypt, Decrypt, and Sign Your Messages","href":"/build/javascript/message-encryption","docId":"build/javascript/message-encryption","unlisted":false},{"type":"link","label":"Build React DApps Using @waku/react","href":"/build/javascript/use-waku-react","docId":"build/javascript/use-waku-react","unlisted":false},{"type":"link","label":"Scaffold DApps Using @waku/create-app","href":"/build/javascript/use-waku-create-app","docId":"build/javascript/use-waku-create-app","unlisted":false},{"type":"link","label":"Set Up a Local Development Environment","href":"/build/javascript/local-dev-env","docId":"build/javascript/local-dev-env","unlisted":false},{"type":"link","label":"Bootstrap Nodes and Discover Peers","href":"/build/javascript/configure-discovery","docId":"build/javascript/configure-discovery","unlisted":false},{"type":"link","label":"Run @waku/sdk in a NodeJS Application","href":"/build/javascript/run-waku-nodejs","docId":"build/javascript/run-waku-nodejs","unlisted":false},{"type":"link","label":"Debug Your Waku DApp and WebSocket","href":"/build/javascript/debug-waku-dapp","docId":"build/javascript/debug-waku-dapp","unlisted":false},{"type":"link","label":"Manage Your Filter Subscriptions","href":"/build/javascript/manage-filter","docId":"build/javascript/manage-filter","unlisted":false},{"type":"link","label":"Frequently Asked Questions","href":"/build/javascript/faq","docId":"build/javascript/faq","unlisted":false},{"type":"html","value":"<a href=\\"https://examples.waku.org\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\" class=\\"menu__link external-link\\">@waku/sdk Examples<svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 16 16\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path fill-rule=\\"evenodd\\" clip-rule=\\"evenodd\\" d=\\"M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z\\" fill=\\"white\\"/></svg>"},{"type":"html","value":"<a href=\\"https://js.waku.org\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\" class=\\"menu__link external-link\\">API Reference<svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 16 16\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path fill-rule=\\"evenodd\\" clip-rule=\\"evenodd\\" d=\\"M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z\\" fill=\\"white\\"/></svg>"}],"collapsible":true,"href":"/build/javascript/"}],"runNode":[{"type":"link","label":"Home","href":"/"},{"type":"category","label":"Run a Waku Node","collapsed":false,"items":[{"type":"link","label":"Run Nwaku with Docker Compose","href":"/run-node/run-docker-compose","docId":"run-node/run-docker-compose","unlisted":false},{"type":"link","label":"Run Nwaku in a Docker Container","href":"/run-node/run-docker","docId":"run-node/run-docker","unlisted":false},{"type":"link","label":"Build Nwaku from Source","href":"/run-node/build-source","docId":"run-node/build-source","unlisted":false},{"type":"link","label":"Configure Peer Discovery","href":"/run-node/configure-discovery","docId":"run-node/configure-discovery","unlisted":false},{"type":"link","label":"Find Your Node Address","href":"/run-node/find-node-address","docId":"run-node/find-node-address","unlisted":false},{"type":"link","label":"Node Configuration Methods","href":"/run-node/config-methods","docId":"run-node/config-methods","unlisted":false},{"type":"link","label":"Node Configuration Options","href":"/run-node/config-options","docId":"run-node/config-options","unlisted":false},{"type":"link","label":"Node Configuration Examples","href":"/run-node/configure-nwaku","docId":"run-node/configure-nwaku","unlisted":false},{"type":"link","label":"Frequently Asked Questions","href":"/run-node/faq","docId":"run-node/faq","unlisted":false},{"type":"link","label":"Upgrade Instructions","href":"/run-node/upgrade-instructions","docId":"run-node/upgrade-instructions","unlisted":false},{"type":"html","value":"<a href=\\"https://waku-org.github.io/waku-rest-api/\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\" class=\\"menu__link external-link\\">REST API Reference<svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 16 16\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path fill-rule=\\"evenodd\\" clip-rule=\\"evenodd\\" d=\\"M11.1918 4H3.42848V2.85715H13.1428V12.5714H11.9999V4.80813L3.83254 12.9755L3.02441 12.1674L11.1918 4Z\\" fill=\\"white\\"/></svg>"}],"collapsible":true,"href":"/run-node/"}],"learn":[{"type":"link","label":"Home","href":"/"},{"type":"link","label":"The Waku Network","href":"/learn/","docId":"learn/index","unlisted":false},{"type":"category","label":"Concepts","collapsed":false,"items":[{"type":"link","label":"Protocols","href":"/learn/concepts/protocols","docId":"learn/concepts/protocols","unlisted":false},{"type":"link","label":"Content Topics","href":"/learn/concepts/content-topics","docId":"learn/concepts/content-topics","unlisted":false},{"type":"link","label":"Network Domains","href":"/learn/concepts/network-domains","docId":"learn/concepts/network-domains","unlisted":false},{"type":"link","label":"Transports","href":"/learn/concepts/transports","docId":"learn/concepts/transports","unlisted":false},{"type":"category","label":"Peer Discovery","items":[{"type":"link","label":"Static Peers","href":"/learn/concepts/static-peers","docId":"learn/concepts/static-peers","unlisted":false},{"type":"link","label":"DNS Discovery","href":"/learn/concepts/dns-discovery","docId":"learn/concepts/dns-discovery","unlisted":false},{"type":"link","label":"Discv5","href":"/learn/concepts/discv5","docId":"learn/concepts/discv5","unlisted":false},{"type":"link","label":"Peer Exchange","href":"/learn/concepts/peer-exchange","docId":"learn/concepts/peer-exchange","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/learn/concepts/peer-discovery"}],"collapsible":true},{"type":"link","label":"Security Features","href":"/learn/security-features","docId":"learn/security-features","unlisted":false},{"type":"category","label":"Research","items":[{"type":"category","label":"Benchmarks","collapsed":false,"items":[{"type":"link","label":"PostgreSQL","href":"/learn/research/benchmarks/postgres-adoption","docId":"learn/research/benchmarks/postgres-adoption","unlisted":false},{"type":"link","label":"Performance Benchmarks and Test Reports","href":"/learn/research/benchmarks/test-results-summary","docId":"learn/research/benchmarks/test-results-summary","unlisted":false}],"collapsible":true},{"type":"category","label":"Research and Studies","collapsed":false,"items":[{"type":"link","label":"Capped Bandwidth in Waku","href":"/learn/research/research-and-studies/capped-bandwidth","docId":"learn/research/research-and-studies/capped-bandwidth","unlisted":false},{"type":"link","label":"Incentivisation","href":"/learn/research/research-and-studies/incentivisation","docId":"learn/research/research-and-studies/incentivisation","unlisted":false},{"type":"link","label":"Maximum Bandwidth for Global Adoption","href":"/learn/research/research-and-studies/maximum-bandwidth","docId":"learn/research/research-and-studies/maximum-bandwidth","unlisted":false},{"type":"link","label":"Message Propagation Times With Waku-RLN","href":"/learn/research/research-and-studies/message-propagation","docId":"learn/research/research-and-studies/message-propagation","unlisted":false},{"type":"link","label":"RLN Key Benchmarks","href":"/learn/research/research-and-studies/rln-key-benchmarks","docId":"learn/research/research-and-studies/rln-key-benchmarks","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/learn/research/"},{"type":"link","label":"Comparing Waku and libp2p","href":"/learn/waku-vs-libp2p","docId":"learn/waku-vs-libp2p","unlisted":false},{"type":"link","label":"Glossary","href":"/learn/glossary","docId":"learn/glossary","unlisted":false},{"type":"link","label":"Frequently Asked Questions","href":"/learn/faq","docId":"learn/faq","unlisted":false}]},"docs":{"build/javascript/configure-discovery":{"id":"build/javascript/configure-discovery","title":"Bootstrap Nodes and Discover Peers","description":"This guide provides detailed steps to bootstrap your your node using Static Peers and discover peers in the Waku Network using DNS Discovery.","sidebar":"build"},"build/javascript/debug-waku-dapp":{"id":"build/javascript/debug-waku-dapp","title":"Debug Your Waku DApp and WebSocket","description":"This guide provides detailed steps to enable and use debug logs to troubleshoot your Waku DApp, whether in a NodeJS or browser environment and check your WebSocket connections in nwaku.","sidebar":"build"},"build/javascript/faq":{"id":"build/javascript/faq","title":"JavaScript SDK FAQ","description":"You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started.","sidebar":"build"},"build/javascript/index":{"id":"build/javascript/index","title":"JavaScript Waku SDK","description":"Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.","sidebar":"build"},"build/javascript/light-send-receive":{"id":"build/javascript/light-send-receive","title":"Send and Receive Messages Using Light Push and Filter","description":"This guide provides detailed steps to start using the @waku/sdk package by setting up a Light Node to send messages using the Light Push protocol, and receive messages using the Filter protocol. Have a look at the installation guide for steps on adding @waku/sdk to your project.","sidebar":"build"},"build/javascript/local-dev-env":{"id":"build/javascript/local-dev-env","title":"Set Up a Local Development Environment","description":"The most reliable way to ensure your js-waku application will work in realistic conditions is to spin up a local nwaku fleet and test against it.","sidebar":"build"},"build/javascript/manage-filter":{"id":"build/javascript/manage-filter","title":"Manage Your Filter Subscriptions","description":"This guide provides detailed steps to manage Filter subscriptions and handle node disconnections in your application. Have a look at the Send and Receive Messages Using Light Push and Filter guide for using the Light Push and Filter protocols.","sidebar":"build"},"build/javascript/message-encryption":{"id":"build/javascript/message-encryption","title":"Encrypt, Decrypt, and Sign Your Messages","description":"This guide provides detailed steps to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages using Waku message payload encryption methods.","sidebar":"build"},"build/javascript/reliable-channels":{"id":"build/javascript/reliable-channels","title":"Send and Receive Messages in a Reliable Channel","description":"Learn how to send and receive messages with a convenient SDK that provide various reliable functionalities out-of-the-box.","sidebar":"build"},"build/javascript/run-waku-nodejs":{"id":"build/javascript/run-waku-nodejs","title":"Run @waku/sdk in a NodeJS Application","description":"While the @waku/sdk package is primarily designed for browser environments, you can use it in a NodeJS application. However, there are certain limitations and considerations to keep in mind. This guide provides a comprehensive overview of using @waku/sdk in NodeJS.","sidebar":"build"},"build/javascript/store-retrieve-messages":{"id":"build/javascript/store-retrieve-messages","title":"Retrieve Messages Using Store Protocol","description":"This guide provides detailed steps to create a Light Node for retrieving and filtering historical messages using the Store protocol.","sidebar":"build"},"build/javascript/use-waku-create-app":{"id":"build/javascript/use-waku-create-app","title":"Scaffold DApps Using @waku/create-app","description":"This guide provides detailed steps to bootstrap your next @waku/sdk project from various example templates using the @waku/create-app package.","sidebar":"build"},"build/javascript/use-waku-react":{"id":"build/javascript/use-waku-react","title":"Build React DApps Using @waku/react","description":"Currently, the JavaScript Waku SDK (@waku/sdk) is NOT compatible with React Native. We plan to add support for React Native in the future.","sidebar":"build"},"landing":{"id":"landing","title":"Introduction to Waku","description":"Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy."},"learn/concepts/content-topics":{"id":"learn/concepts/content-topics","title":"Content Topics","description":"Content Topics are metadata strings set by developers on outgoing messages to facilitate protocol-level features like selectively processing incoming messages (Relay or Filter) and retrieving historical messages (Store) that meet specific filtering criteria. Have a look at the WAKU2-TOPICS specification to learn more.","sidebar":"learn"},"learn/concepts/discv5":{"id":"learn/concepts/discv5","title":"Discv5","description":"Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more.","sidebar":"learn"},"learn/concepts/dns-discovery":{"id":"learn/concepts/dns-discovery","title":"DNS Discovery","description":"Built upon the foundation of EIP-1459: Node Discovery via DNS, DNS Discovery allows the retrieval of an ENR tree from the TXT field of a domain name. This innovative approach enables the storage of essential node connection details, including IP, port, and multiaddr.","sidebar":"learn"},"learn/concepts/network-domains":{"id":"learn/concepts/network-domains","title":"Network Domains","description":"Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation.","sidebar":"learn"},"learn/concepts/peer-discovery":{"id":"learn/concepts/peer-discovery","title":"Peer Discovery","description":"When initialising a Waku node, it must connect with other peers to enable message sending, receiving, and retrieval. To achieve this, a discovery mechanism is employed to locate other peers in the network. This process is known as bootstrapping.","sidebar":"learn"},"learn/concepts/peer-exchange":{"id":"learn/concepts/peer-exchange","title":"Peer Exchange","description":"The primary objective of this protocol is to facilitate peer connectivity for resource-limited devices without relying on Discv5. The peer exchange protocol enables light nodes to request peers from other nodes within the network.","sidebar":"learn"},"learn/concepts/protocols":{"id":"learn/concepts/protocols","title":"Protocols","description":"Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:","sidebar":"learn"},"learn/concepts/static-peers":{"id":"learn/concepts/static-peers","title":"Static Peers","description":"Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or run a node.","sidebar":"learn"},"learn/concepts/transports":{"id":"learn/concepts/transports","title":"Transports","description":"Transports help move data packets across a network by establishing connections between peers. They define the rules and protocols to ensure efficient network transmission, routing, and data delivery.","sidebar":"learn"},"learn/faq":{"id":"learn/faq","title":"Waku FAQ","description":"Check out the Getting Started guide to explore our numerous SDKs and learn how to run a Waku node.","sidebar":"learn"},"learn/glossary":{"id":"learn/glossary","title":"Glossary","description":"Definitions and usage of the terminology used in the Waku ecosystem.","sidebar":"learn"},"learn/index":{"id":"learn/index","title":"The Waku Network","description":"The Waku Network is a shared p2p messaging network that is open-access, useful for generalized messaging, privacy-preserving, scalable and accessible even to resource-restricted devices. Some of the most prominent features include:","sidebar":"learn"},"learn/research/benchmarks/postgres-adoption":{"id":"learn/research/benchmarks/postgres-adoption","title":"PostgreSQL","description":"Document that describes why Nim-Waku started to use Postgres and shows some benchmark and comparison results.","sidebar":"learn"},"learn/research/benchmarks/test-results-summary":{"id":"learn/research/benchmarks/test-results-summary","title":"Performance Benchmarks and Test Reports","description":"Introduction","sidebar":"learn"},"learn/research/index":{"id":"learn/research/index","title":"Research","description":"Experimental features","sidebar":"learn"},"learn/research/research-and-studies/capped-bandwidth":{"id":"learn/research/research-and-studies/capped-bandwidth","title":"Capped Bandwidth in Waku","description":"This post explains i) why The Waku Network requires a capped bandwidth per shard and ii) how to achieve it by rate limiting with RLN v2.","sidebar":"learn"},"learn/research/research-and-studies/incentivisation":{"id":"learn/research/research-and-studies/incentivisation","title":"Incentivisation","description":"Waku is a family of decentralised communication protocols. The Waku Network (TWN) consists of independent nodes running Waku protocols. TWN needs incentivisation (shortened to i13n) to ensure proper node behaviour.","sidebar":"learn"},"learn/research/research-and-studies/maximum-bandwidth":{"id":"learn/research/research-and-studies/maximum-bandwidth","title":"Maximum Bandwidth for Global Adoption","description":"TLDR//github.com/waku-org/research/issues/22 to specify how this maximum will be enforced.","sidebar":"learn"},"learn/research/research-and-studies/message-propagation":{"id":"learn/research/research-and-studies/message-propagation","title":"Message Propagation Times With Waku-RLN","description":"TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it\'s affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters.","sidebar":"learn"},"learn/research/research-and-studies/rln-key-benchmarks":{"id":"learn/research/research-and-studies/rln-key-benchmarks","title":"RLN Key Benchmarks","description":"Introduction","sidebar":"learn"},"learn/security-features":{"id":"learn/security-features","title":"Security Features","description":"Waku\'s protocol layers offer different services and security considerations, shaping the overall security of Waku. We document the security models in the RFCs of the protocols, aiming to provide transparent and open-source references. This empowers Waku users to understand each protocol\'s security guarantees and limitations.","sidebar":"learn"},"learn/waku-vs-libp2p":{"id":"learn/waku-vs-libp2p","title":"Comparing Waku and libp2p","description":"Since Waku is built on top of libp2p, they share a lot of concepts and terminologies between them. However, there are key differences between them that are worth noting.","sidebar":"learn"},"privacy-policy":{"id":"privacy-policy","title":"Privacy Policy","description":"Last updated: 9 February 2024"},"rules-of-engagement":{"id":"rules-of-engagement","title":"Rules of Engagement","description":"Waku is a nascent technology and the Waku community is still growing. Hence, the Waku team is keen to work closely with projects to help leverage Waku technology to drive the success of their own applications."},"run-node/build-source":{"id":"run-node/build-source","title":"Build Nwaku from Source","description":"This guide provides detailed steps to build a nwaku node from the source code to access the latest development version or a specific commit or release of nwaku. For your convenience, you may want to download a pre-compiled binary instead.","sidebar":"runNode"},"run-node/config-methods":{"id":"run-node/config-methods","title":"Node Configuration Methods","description":"Waku nodes can be configured using a combination of the following methods:","sidebar":"runNode"},"run-node/config-options":{"id":"run-node/config-options","title":"Node Configuration Options","description":"Here are the available node configuration options, along with their default values and descriptions:","sidebar":"runNode"},"run-node/configure-discovery":{"id":"run-node/configure-discovery","title":"Configure Peer Discovery","description":"This guide provides detailed steps to configure a nwaku node to discover and connect with peers in the Waku Network.","sidebar":"runNode"},"run-node/configure-nwaku":{"id":"run-node/configure-nwaku","title":"Node Configuration Examples","description":"This guide provides detailed steps to configure a nwaku node for different use cases.","sidebar":"runNode"},"run-node/faq":{"id":"run-node/faq","title":"Nwaku FAQ","description":"Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source.","sidebar":"runNode"},"run-node/find-node-address":{"id":"run-node/find-node-address","title":"Find Your Node Address","description":"When starting the node, nwaku will display all the public listening and discovery addresses at the INFO log level.","sidebar":"runNode"},"run-node/index":{"id":"run-node/index","title":"Run a Waku Node","description":"Nwaku is a lightweight and robust Nim client for running a Waku node, equipped with tools to monitor and maintain a running node. Nwaku is highly configurable, enabling operators to select the protocols they want to support based on their needs, motivations, and available resources.","sidebar":"runNode"},"run-node/run-docker":{"id":"run-node/run-docker","title":"Run Nwaku in a Docker Container","description":"This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.","sidebar":"runNode"},"run-node/run-docker-compose":{"id":"run-node/run-docker-compose","title":"Run Nwaku with Docker Compose","description":"nwaku-compose is a ready-to-use Docker Compose setup that configures the following automatically:","sidebar":"runNode"},"run-node/upgrade-instructions":{"id":"run-node/upgrade-instructions","title":"Upgrade Instructions","description":"If you are currently using Nwaku, running an old version and want to upgrade your node, please follow the below migration instructions for each target release newer than your current running version in ascending order.","sidebar":"runNode"},"security":{"id":"security","title":"Security","description":"We take security seriously at Waku and across the Institute of Free Technology and its affiliates."},"terms":{"id":"terms","title":"Terms of Use","description":"Last updated: 14 February 2024"}}}}')}}]);