docs.waku.org/assets/js/b99d0044.af2c9cb5.js
2024-07-29 04:41:44 +00:00

1 line
7.6 KiB
JavaScript

"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[1201],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),l=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=l(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(r),k=n,h=p["".concat(u,".").concat(k)]||p[k]||d[k]||o;return r?a.createElement(h,i(i({ref:t},c),{},{components:r})):a.createElement(h,i({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=k;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s[p]="string"==typeof e?e:n,i[1]=s;for(var l=2;l<o;l++)i[l]=r[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}k.displayName="MDXCreateElement"},34765:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var a=r(87462),n=(r(67294),r(3905));const o={title:"The Waku Network",hide_table_of_contents:!0},i=void 0,s={unversionedId:"learn/waku-network",id:"learn/waku-network",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:",source:"@site/docs/learn/waku-network.md",sourceDirName:"learn",slug:"/learn/waku-network",permalink:"/learn/waku-network",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/waku-network.md",tags:[],version:"current",lastUpdatedAt:1722006776,formattedLastUpdatedAt:"26 Jul 2024",frontMatter:{title:"The Waku Network",hide_table_of_contents:!0},sidebar:"learn",next:{title:"Protocols",permalink:"/learn/concepts/protocols"}},u={},l=[{value:"Why join the Waku network?",id:"why-join-the-waku-network",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Running a Waku network node",id:"running-a-waku-network-node",level:2}],c={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"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:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"DoS/spam protection with privacy-preserving Rate-Limiting Nullifiers."),(0,n.kt)("li",{parentName:"ol"},"Scalability by sharding traffic into 8 pubsub topics."),(0,n.kt)("li",{parentName:"ol"},"Automatic shard selection based on content topic."),(0,n.kt)("li",{parentName:"ol"},"Services for resource-restricted nodes, including historical message storage and retrieval, filtering, etc.")),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("p",{parentName:"admonition"},"If you want to learn more about the Waku Network, the ",(0,n.kt)("a",{parentName:"p",href:"https://blog.waku.org/2024-waku-network-tech-overview"},"The Waku Network: Technical Overview")," article provides an in-depth look under the hood.")),(0,n.kt)("h2",{id:"why-join-the-waku-network"},"Why join the Waku network?"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Applications or projects can build decentralized communication components on this network, gaining from the fault-tolerance of shared infrastructure, the out-of-the-box censorship resistance of a p2p network and the privacy-preservation of Waku protocols."),(0,n.kt)("li",{parentName:"ol"},"Supporters of public goods and decentralized infrastructure can run their nodes to support the network."),(0,n.kt)("li",{parentName:"ol"},"We are also working on incentivisation vectors to encourage more node operators to provide services to the network.")),(0,n.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Ethereum Sepolia HTTPS endpoint"),", which can be yours or from a third party. Have a look at the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#3-access-a-node-on-the-sepolia-testnet-using-infura"},"Access a Sepolia Node Using Infura")," guide for a free Infura option. This node is used to interact with the ",(0,n.kt)("a",{parentName:"li",href:"https://rfc.vac.dev/waku/standards/core/17/rln-relay/"},"on-chain RLN membership contract"),"."),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("strong",{parentName:"li"},"Wallet with Sepolia Ethereum")," (less than 0.1 Sepolia ETH). Have a look at the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#1-create-a-sepolia-ethereum-account-and-obtain-its-private-key"},"Create a Sepolia Ethereum Wallet")," and ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/waku-org/nwaku/blob/master/docs/tutorial/pre-requisites-of-running-on-chain-spam-protected-chat2.md#2-obtain-sepolia-eth-from-faucet"},"Obtain Sepolia Ethereum from Faucet")," guides to get a Sepolia wallet and fund it with some Sepolia Ethereum. This wallet is required to register ",(0,n.kt)("a",{parentName:"li",href:"https://rfc.vac.dev/waku/standards/core/17/rln-relay/#setup-and-registration"},"RLN membership"),", which is essential for publishing on the network.")),(0,n.kt)("h2",{id:"running-a-waku-network-node"},"Running a Waku network node"),(0,n.kt)("p",null,"Have a look at the ",(0,n.kt)("a",{parentName:"p",href:"/guides/nwaku/run-docker-compose"},"Run Nwaku with Docker Compose")," guide for instructions on running a ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/waku-org/nwaku"},"nwaku")," node in the Waku Network. Use the Sepolia node and wallet you obtained above."),(0,n.kt)("admonition",{type:"info"},(0,n.kt)("p",{parentName:"admonition"},"The public Waku Network replaces the previous experimental shared routing layer based on a default pubsub topic (",(0,n.kt)("inlineCode",{parentName:"p"},"/waku/2/default-waku/proto"),"). If your project currently uses this or any other shared pubsub topics, we encourage you to migrate to the public Waku Network with built-in DoS protection, scalability, and reasonable bandwidth usage.")))}d.isMDXComponent=!0}}]);