Update documentation

This commit is contained in:
status-im-auto 2025-07-11 08:21:10 +00:00
parent aec770435e
commit 4135c74627
148 changed files with 213 additions and 213 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5447],{53958:(e,o,t)=>{"use strict";var r=t(83639);t.o(r,"AccordionItem")&&t.d(o,{AccordionItem:function(){return r.AccordionItem}})},45173:(e,o,t)=>{"use strict";t.r(o),t.d(o,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=t(87462),a=(t(67294),t(3905)),n=t(53958);const s={title:"Waku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},i=void 0,l={unversionedId:"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.",source:"@site/docs/learn/faq.md",sourceDirName:"learn",slug:"/learn/faq",permalink:"/learn/faq",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/faq.md",tags:[],version:"current",frontMatter:{title:"Waku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},sidebar:"learn",previous:{title:"Glossary",permalink:"/learn/glossary"}},c={},d=[],u={toc:d},m="wrapper";function p(e){let{components:o,...t}=e;return(0,a.kt)(m,(0,r.Z)({},u,t,{components:o,mdxType:"MDXLayout"}),(0,a.kt)(n.AccordionItem,{title:"How can I start building my application using Waku?",mdxType:"AccordionItem"},"Check out the ",(0,a.kt)("a",{href:"/"},"Getting Started")," guide to explore our numerous SDKs and learn how to run a Waku node."),(0,a.kt)(n.AccordionItem,{title:"Does messaging on Waku require a gas fee?",mdxType:"AccordionItem"},"No, sending and receiving messages on Waku involves no gas fee."),(0,a.kt)(n.AccordionItem,{title:"What encryption does Waku use?",mdxType:"AccordionItem"},"Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely."),(0,a.kt)(n.AccordionItem,{title:"Where does Waku store the messages?",mdxType:"AccordionItem"},"Waku's ",(0,a.kt)("a",{href:"/learn/concepts/protocols#store"},"Store protocol")," is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using ",(0,a.kt)("a",{href:"https://codex.storage/"},"Codex")," for long-term storage."),(0,a.kt)(n.AccordionItem,{title:"Can Waku only be used for wallet-to-wallet messaging?",mdxType:"AccordionItem"},"No, Waku is flexible and imposes no specific rules on identifiers."),(0,a.kt)(n.AccordionItem,{title:"How does Waku differ from IPFS?",mdxType:"AccordionItem"},"Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons."),(0,a.kt)(n.AccordionItem,{title:"What are Rate Limiting Nullifiers (RLN)?",mdxType:"AccordionItem"},(0,a.kt)("a",{href:"/learn/concepts/protocols#rln-relay"},"Rate Limiting Nullifier")," is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which ",(0,a.kt)("a",{href:"/learn/concepts/protocols#relay"},"Relay")," nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame."),(0,a.kt)(n.AccordionItem,{title:"How to start a Waku node?",mdxType:"AccordionItem"},"Follow the README instructions at ",(0,a.kt)("a",{href:"https://docs.waku.org/guides/nwaku/run-node"},"nwaku-compose"),"."))}p.isMDXComponent=!0},46102:()=>{}}]);

View File

@ -1 +0,0 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5447],{53958:(e,t,o)=>{"use strict";var a=o(83639);o.o(a,"AccordionItem")&&o.d(t,{AccordionItem:function(){return a.AccordionItem}})},45173:(e,t,o)=>{"use strict";o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var a=o(87462),r=(o(67294),o(3905)),n=o(53958);const s={title:"Waku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},i=void 0,d={unversionedId:"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.",source:"@site/docs/learn/faq.md",sourceDirName:"learn",slug:"/learn/faq",permalink:"/learn/faq",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/faq.md",tags:[],version:"current",lastUpdatedAt:1727750487,formattedLastUpdatedAt:"1 Oct 2024",frontMatter:{title:"Waku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},sidebar:"learn",previous:{title:"Glossary",permalink:"/learn/glossary"}},l={},c=[],u={toc:c},m="wrapper";function p(e){let{components:t,...o}=e;return(0,r.kt)(m,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(n.AccordionItem,{title:"How can I start building my application using Waku?",mdxType:"AccordionItem"},"Check out the ",(0,r.kt)("a",{href:"/"},"Getting Started")," guide to explore our numerous SDKs and learn how to run a Waku node."),(0,r.kt)(n.AccordionItem,{title:"Does messaging on Waku require a gas fee?",mdxType:"AccordionItem"},"No, sending and receiving messages on Waku involves no gas fee."),(0,r.kt)(n.AccordionItem,{title:"What encryption does Waku use?",mdxType:"AccordionItem"},"Waku uses libp2p noise encryption for node-to-node connections. However, no default encryption method is applied to the data sent over the network. This design choice enhances Waku's encryption flexibility, encouraging developers to use custom protocols or Waku message payload encryption methods freely."),(0,r.kt)(n.AccordionItem,{title:"Where does Waku store the messages?",mdxType:"AccordionItem"},"Waku's ",(0,r.kt)("a",{href:"/learn/concepts/protocols#store"},"Store protocol")," is designed to temporarily store messages within the network. However, Waku does not guarantee the message's availability and recommends using ",(0,r.kt)("a",{href:"https://codex.storage/"},"Codex")," for long-term storage."),(0,r.kt)(n.AccordionItem,{title:"Can Waku only be used for wallet-to-wallet messaging?",mdxType:"AccordionItem"},"No, Waku is flexible and imposes no specific rules on identifiers."),(0,r.kt)(n.AccordionItem,{title:"How does Waku differ from IPFS?",mdxType:"AccordionItem"},"Waku focuses on short, ephemeral, real-time messages, while IPFS focuses on large, long-term data storage. Although there's an overlap between the two technologies, Waku does not currently support large data for privacy reasons."),(0,r.kt)(n.AccordionItem,{title:"What are Rate Limiting Nullifiers (RLN)?",mdxType:"AccordionItem"},(0,r.kt)("a",{href:"/learn/concepts/protocols#rln-relay"},"Rate Limiting Nullifier")," is a zero-knowledge (ZK) protocol enabling spam protection in a decentralized network while preserving privacy. Each message must be accompanied by a ZK proof, which ",(0,r.kt)("a",{href:"/learn/concepts/protocols#relay"},"Relay")," nodes verify to ensure the publishers do not send more messages than they are allowed. The ZK proof does not leak any private information about message publishers - it only proves they are members of a set of users allowed to publish a certain number of messages per given time frame."),(0,r.kt)(n.AccordionItem,{title:"How to start a Waku node?",mdxType:"AccordionItem"},"Follow the README instructions at ",(0,r.kt)("a",{href:"https://docs.waku.org/guides/nwaku/run-node"},"nwaku-compose"),"."))}p.isMDXComponent=!0},46102:()=>{}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[7442],{53958:(e,o,n)=>{"use strict";var t=n(83639);n.o(t,"AccordionItem")&&n.d(o,{AccordionItem:function(){return t.AccordionItem}})},26820:(e,o,n)=>{"use strict";n.r(o),n.d(o,{assets:()=>s,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>u,toc:()=>c});var t=n(87462),a=(n(67294),n(3905)),i=n(53958);const r={title:"Nwaku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},d=void 0,u={unversionedId:"guides/nwaku/faq",id:"guides/nwaku/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.",source:"@site/docs/guides/nwaku/faq.md",sourceDirName:"guides/nwaku",slug:"/guides/nwaku/faq",permalink:"/guides/nwaku/faq",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/guides/nwaku/faq.md",tags:[],version:"current",lastUpdatedAt:1709637863,formattedLastUpdatedAt:"5 Mar 2024",frontMatter:{title:"Nwaku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},sidebar:"guides",previous:{title:"Node Configuration Examples",permalink:"/guides/nwaku/configure-nwaku"},next:{title:"Upgrade Instructions",permalink:"/guides/nwaku/upgrade-instructions"}},s={},c=[],k={toc:c},g="wrapper";function h(e){let{components:o,...n}=e;return(0,a.kt)(g,(0,t.Z)({},k,n,{components:o,mdxType:"MDXLayout"}),(0,a.kt)(i.AccordionItem,{title:"How can I run a Waku node?",mdxType:"AccordionItem"},"Check out the ",(0,a.kt)("a",{href:"/guides/nwaku/run-docker-compose"},"Run Nwaku with Docker Compose")," guide to learn the simplest and fastest way to run a node. You can also check the comprehensive ",(0,a.kt)("a",{href:"/guides/nwaku/run-node"},"Run a Nwaku Node")," guide to explore other options like ",(0,a.kt)("a",{href:"/guides/nwaku/run-node#download-the-binary"},"downloading binaries")," and ",(0,a.kt)("a",{href:"/guides/nwaku/build-source"},"building from source"),"."),(0,a.kt)(i.AccordionItem,{title:"What are the system requirements for running a node?",mdxType:"AccordionItem"},"We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient."),(0,a.kt)(i.AccordionItem,{title:"How can I interact with my running nwaku node?",mdxType:"AccordionItem"},"You can interact with a running nwaku node using the ",(0,a.kt)("a",{href:"https://waku-org.github.io/waku-rest-api/"},"REST API interface")," or the ",(0,a.kt)("a",{href:"/guides/js-waku/"},"JavaScript Waku SDK"),"."),(0,a.kt)(i.AccordionItem,{title:"How can I view the logs of a nwaku node running in Docker?",mdxType:"AccordionItem"},'To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"'),(0,a.kt)(i.AccordionItem,{title:"What configuration methods are available for nwaku nodes?",mdxType:"AccordionItem"},"You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the ",(0,a.kt)("a",{href:"/guides/nwaku/config-methods"},"Node Configuration Methods")," guide to understand their usage and priority."),(0,a.kt)(i.AccordionItem,{title:"How can I configure my nwaku node before running?",mdxType:"AccordionItem"},"Check out the ",(0,a.kt)("a",{href:"/guides/nwaku/config-options"},"Node Configuration Options")," guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the ",(0,a.kt)("a",{href:"/guides/nwaku/configure-nwaku"},"Node Configuration Examples")," guide."),(0,a.kt)(i.AccordionItem,{title:"What peer discovery mechanisms are available for nwaku nodes, and how can I configure them?",mdxType:"AccordionItem"},"You can configure peer discovery for nwaku nodes through options like ",(0,a.kt)("a",{href:"/learn/concepts/static-peers"},"Static Peers"),", ",(0,a.kt)("a",{href:"/learn/concepts/dns-discovery"},"DNS Discovery"),", ",(0,a.kt)("a",{href:"/learn/concepts/discv5"},"DiscV5"),", and ",(0,a.kt)("a",{href:"/learn/concepts/peer-exchange"},"Peer Exchange"),". Check out the ",(0,a.kt)("a",{href:"/guides/nwaku/configure-discovery"},"Configure Peer Discovery")," guide for setting up your node."),(0,a.kt)(i.AccordionItem,{title:"How do I find my nwaku node's addresses for peer discovery?",mdxType:"AccordionItem"},"The node listening and ENR addresses can be found through the node's logs and ",(0,a.kt)("a",{href:"https://waku-org.github.io/waku-rest-api/#get-/debug/v1/info"},"REST API"),". Check out the ",(0,a.kt)("a",{href:"/guides/nwaku/run-node#find-the-node-addresses"},"Find the node addresses")," section to understand how to locate your node addresses."))}h.isMDXComponent=!0},46102:()=>{}}]);

View File

@ -0,0 +1 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[7442],{53958:(e,o,n)=>{"use strict";var t=n(83639);n.o(t,"AccordionItem")&&n.d(o,{AccordionItem:function(){return t.AccordionItem}})},26820:(e,o,n)=>{"use strict";n.r(o),n.d(o,{assets:()=>s,contentTitle:()=>u,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var t=n(87462),i=(n(67294),n(3905)),a=n(53958);const r={title:"Nwaku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},u=void 0,d={unversionedId:"guides/nwaku/faq",id:"guides/nwaku/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.",source:"@site/docs/guides/nwaku/faq.md",sourceDirName:"guides/nwaku",slug:"/guides/nwaku/faq",permalink:"/guides/nwaku/faq",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/guides/nwaku/faq.md",tags:[],version:"current",frontMatter:{title:"Nwaku FAQ",hide_table_of_contents:!0,sidebar_label:"Frequently Asked Questions"},sidebar:"guides",previous:{title:"Node Configuration Examples",permalink:"/guides/nwaku/configure-nwaku"},next:{title:"Upgrade Instructions",permalink:"/guides/nwaku/upgrade-instructions"}},s={},c=[],k={toc:c},g="wrapper";function h(e){let{components:o,...n}=e;return(0,i.kt)(g,(0,t.Z)({},k,n,{components:o,mdxType:"MDXLayout"}),(0,i.kt)(a.AccordionItem,{title:"How can I run a Waku node?",mdxType:"AccordionItem"},"Check out the ",(0,i.kt)("a",{href:"/guides/nwaku/run-docker-compose"},"Run Nwaku with Docker Compose")," guide to learn the simplest and fastest way to run a node. You can also check the comprehensive ",(0,i.kt)("a",{href:"/guides/nwaku/run-node"},"Run a Nwaku Node")," guide to explore other options like ",(0,i.kt)("a",{href:"/guides/nwaku/run-node#download-the-binary"},"downloading binaries")," and ",(0,i.kt)("a",{href:"/guides/nwaku/build-source"},"building from source"),"."),(0,i.kt)(a.AccordionItem,{title:"What are the system requirements for running a node?",mdxType:"AccordionItem"},"We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient."),(0,i.kt)(a.AccordionItem,{title:"How can I interact with my running nwaku node?",mdxType:"AccordionItem"},"You can interact with a running nwaku node using the ",(0,i.kt)("a",{href:"https://waku-org.github.io/waku-rest-api/"},"REST API interface")," or the ",(0,i.kt)("a",{href:"/guides/js-waku/"},"JavaScript Waku SDK"),"."),(0,i.kt)(a.AccordionItem,{title:"How can I view the logs of a nwaku node running in Docker?",mdxType:"AccordionItem"},'To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"'),(0,i.kt)(a.AccordionItem,{title:"What configuration methods are available for nwaku nodes?",mdxType:"AccordionItem"},"You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the ",(0,i.kt)("a",{href:"/guides/nwaku/config-methods"},"Node Configuration Methods")," guide to understand their usage and priority."),(0,i.kt)(a.AccordionItem,{title:"How can I configure my nwaku node before running?",mdxType:"AccordionItem"},"Check out the ",(0,i.kt)("a",{href:"/guides/nwaku/config-options"},"Node Configuration Options")," guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the ",(0,i.kt)("a",{href:"/guides/nwaku/configure-nwaku"},"Node Configuration Examples")," guide."),(0,i.kt)(a.AccordionItem,{title:"What peer discovery mechanisms are available for nwaku nodes, and how can I configure them?",mdxType:"AccordionItem"},"You can configure peer discovery for nwaku nodes through options like ",(0,i.kt)("a",{href:"/learn/concepts/static-peers"},"Static Peers"),", ",(0,i.kt)("a",{href:"/learn/concepts/dns-discovery"},"DNS Discovery"),", ",(0,i.kt)("a",{href:"/learn/concepts/discv5"},"DiscV5"),", and ",(0,i.kt)("a",{href:"/learn/concepts/peer-exchange"},"Peer Exchange"),". Check out the ",(0,i.kt)("a",{href:"/guides/nwaku/configure-discovery"},"Configure Peer Discovery")," guide for setting up your node."),(0,i.kt)(a.AccordionItem,{title:"How do I find my nwaku node's addresses for peer discovery?",mdxType:"AccordionItem"},"The node listening and ENR addresses can be found through the node's logs and ",(0,i.kt)("a",{href:"https://waku-org.github.io/waku-rest-api/#get-/debug/v1/info"},"REST API"),". Check out the ",(0,i.kt)("a",{href:"/guides/nwaku/run-node#find-the-node-addresses"},"Find the node addresses")," section to understand how to locate your node addresses."))}h.isMDXComponent=!0},46102:()=>{}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[8824],{53958:(e,t,n)=>{"use strict";var i=n(83639);n.o(i,"AccordionItem")&&n.d(t,{AccordionItem:function(){return i.AccordionItem}})},46442:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>g,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var i=n(87462),r=(n(67294),n(3905)),o=n(53958);const a={title:"Upgrade Instructions",hide_table_of_contents:!0,sidebar_label:"Upgrade Instructions"},s=void 0,u={unversionedId:"guides/nwaku/upgrade-instructions",id:"guides/nwaku/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.",source:"@site/docs/guides/nwaku/upgrade-instructions.md",sourceDirName:"guides/nwaku",slug:"/guides/nwaku/upgrade-instructions",permalink:"/guides/nwaku/upgrade-instructions",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/guides/nwaku/upgrade-instructions.md",tags:[],version:"current",lastUpdatedAt:1726478944,formattedLastUpdatedAt:"16 Sept 2024",frontMatter:{title:"Upgrade Instructions",hide_table_of_contents:!0,sidebar_label:"Upgrade Instructions"},sidebar:"guides",previous:{title:"Frequently Asked Questions",permalink:"/guides/nwaku/faq"},next:{title:"JavaScript Waku SDK",permalink:"/guides/js-waku/"}},d={},l=[{value:"Target Releases",id:"target-releases",level:2}],c={toc:l},p="wrapper";function g(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"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."),(0,r.kt)("p",null,"For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0"),(0,r.kt)("h2",{id:"target-releases"},"Target Releases"),(0,r.kt)(o.AccordionItem,{title:"v0.32.0",mdxType:"AccordionItem"},(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"--protected-topic")," CLI config was deprecated and is replaced by the new ",(0,r.kt)("inlineCode",{parentName:"p"},"--protected-shard")," configuration. Instead of configuring ",(0,r.kt)("inlineCode",{parentName:"p"},"topic:public_key")," you will now need to configure ",(0,r.kt)("inlineCode",{parentName:"p"},"shard:public_key"),(0,r.kt)("br",null),(0,r.kt)("br",null)),(0,r.kt)("p",null,"For example, if you used to run your node with ",(0,r.kt)("inlineCode",{parentName:"p"},'--protected-topic="waku/2/rs/3/4:your_public_key"')," you will need to replace this configuration for ",(0,r.kt)("inlineCode",{parentName:"p"},'--protected-shard="4:your_public_key"'))),(0,r.kt)(o.AccordionItem,{title:"v0.31.0",mdxType:"AccordionItem"},"Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: ",(0,r.kt)("code",null,"/waku/2/rs/<CLUSTER_ID>/<SHARD_ID>"),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("p",null,"In order to migrate your existing application, you need to:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using ",(0,r.kt)("inlineCode",{parentName:"li"},"js-waku"),", the configured pubsub topics follow the static sharding format defined above."),(0,r.kt)("li",{parentName:"ol"},"When running a node with the ",(0,r.kt)("inlineCode",{parentName:"li"},"--pubsub-topic")," CLI flag, the values provided should comply with the static sharding format."),(0,r.kt)("li",{parentName:"ol"},"If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period."))))}g.isMDXComponent=!0},46102:()=>{}}]);

View File

@ -0,0 +1 @@
(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[8824],{53958:(e,t,n)=>{"use strict";var i=n(83639);n.o(i,"AccordionItem")&&n.d(t,{AccordionItem:function(){return i.AccordionItem}})},46442:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>g,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var i=n(87462),r=(n(67294),n(3905)),o=n(53958);const a={title:"Upgrade Instructions",hide_table_of_contents:!0,sidebar_label:"Upgrade Instructions"},s=void 0,u={unversionedId:"guides/nwaku/upgrade-instructions",id:"guides/nwaku/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.",source:"@site/docs/guides/nwaku/upgrade-instructions.md",sourceDirName:"guides/nwaku",slug:"/guides/nwaku/upgrade-instructions",permalink:"/guides/nwaku/upgrade-instructions",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/guides/nwaku/upgrade-instructions.md",tags:[],version:"current",frontMatter:{title:"Upgrade Instructions",hide_table_of_contents:!0,sidebar_label:"Upgrade Instructions"},sidebar:"guides",previous:{title:"Frequently Asked Questions",permalink:"/guides/nwaku/faq"},next:{title:"JavaScript Waku SDK",permalink:"/guides/js-waku/"}},d={},l=[{value:"Target Releases",id:"target-releases",level:2}],c={toc:l},p="wrapper";function g(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"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."),(0,r.kt)("p",null,"For example, if you are interested in the version v0.32.0 and are currently running v0.30.0, follow the instructions for v0.31.0 and then the ones for v0.32.0"),(0,r.kt)("h2",{id:"target-releases"},"Target Releases"),(0,r.kt)(o.AccordionItem,{title:"v0.32.0",mdxType:"AccordionItem"},(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"--protected-topic")," CLI config was deprecated and is replaced by the new ",(0,r.kt)("inlineCode",{parentName:"p"},"--protected-shard")," configuration. Instead of configuring ",(0,r.kt)("inlineCode",{parentName:"p"},"topic:public_key")," you will now need to configure ",(0,r.kt)("inlineCode",{parentName:"p"},"shard:public_key"),(0,r.kt)("br",null),(0,r.kt)("br",null)),(0,r.kt)("p",null,"For example, if you used to run your node with ",(0,r.kt)("inlineCode",{parentName:"p"},'--protected-topic="waku/2/rs/3/4:your_public_key"')," you will need to replace this configuration for ",(0,r.kt)("inlineCode",{parentName:"p"},'--protected-shard="4:your_public_key"'))),(0,r.kt)(o.AccordionItem,{title:"v0.31.0",mdxType:"AccordionItem"},"Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: ",(0,r.kt)("code",null,"/waku/2/rs/<CLUSTER_ID>/<SHARD_ID>"),(0,r.kt)("br",null),(0,r.kt)("br",null),(0,r.kt)("p",null,"In order to migrate your existing application, you need to:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Make sure that your clients are sending messages to pubsub topics in the required format. Check that in your interactions with Nwaku's REST API or when using ",(0,r.kt)("inlineCode",{parentName:"li"},"js-waku"),", the configured pubsub topics follow the static sharding format defined above."),(0,r.kt)("li",{parentName:"ol"},"When running a node with the ",(0,r.kt)("inlineCode",{parentName:"li"},"--pubsub-topic")," CLI flag, the values provided should comply with the static sharding format."),(0,r.kt)("li",{parentName:"ol"},"If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period."))))}g.isMDXComponent=!0},46102:()=>{}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6653],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}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){a(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 c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=a,d=p["".concat(l,".").concat(y)]||p[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var u=2;u<o;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},47215:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={displayed_sidebar:null,sidebar_class_name:"hidden",pagination_prev:null,pagination_next:null},i="Security",c={unversionedId:"security",id:"security",title:"Security",description:"We take security seriously at Waku and across the Institute of Free Technology and its affiliates.",source:"@site/docs/security.md",sourceDirName:".",slug:"/security",permalink:"/security",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/security.md",tags:[],version:"current",lastUpdatedAt:1717451619,formattedLastUpdatedAt:"3 Jun 2024",frontMatter:{displayed_sidebar:null,sidebar_class_name:"hidden",pagination_prev:null,pagination_next:null}},l={},u=[],s={toc:u},p="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"security"},"Security"),(0,a.kt)("p",null,"We take security seriously at Waku and across the ",(0,a.kt)("a",{href:"https://free.technology/",target:"_blank"},"Institute of Free Technology")," and its affiliates."),(0,a.kt)("p",null,"Please report any security incidents via ",(0,a.kt)("a",{href:"mailto:security@free.technology"},(0,a.kt)("a",{parentName:"p",href:"mailto:security@free.technology"},"security@free.technology")),"."),(0,a.kt)("p",null,"Please report any discovered vulnerabilities in our bounty programme at ",(0,a.kt)("a",{href:"https://hackenproof.com/ift",target:"_blank"},"HackenProof")," to help ensure our protocols and software remain secure."))}f.isMDXComponent=!0}}]);
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6653],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(67294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}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){a(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 c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=a,d=p["".concat(l,".").concat(y)]||p[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var u=2;u<o;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}y.displayName="MDXCreateElement"},47215:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={displayed_sidebar:null,sidebar_class_name:"hidden",pagination_prev:null,pagination_next:null},i="Security",c={unversionedId:"security",id:"security",title:"Security",description:"We take security seriously at Waku and across the Institute of Free Technology and its affiliates.",source:"@site/docs/security.md",sourceDirName:".",slug:"/security",permalink:"/security",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/security.md",tags:[],version:"current",frontMatter:{displayed_sidebar:null,sidebar_class_name:"hidden",pagination_prev:null,pagination_next:null}},l={},u=[],s={toc:u},p="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"security"},"Security"),(0,a.kt)("p",null,"We take security seriously at Waku and across the ",(0,a.kt)("a",{href:"https://free.technology/",target:"_blank"},"Institute of Free Technology")," and its affiliates."),(0,a.kt)("p",null,"Please report any security incidents via ",(0,a.kt)("a",{href:"mailto:security@free.technology"},(0,a.kt)("a",{parentName:"p",href:"mailto:security@free.technology"},"security@free.technology")),"."),(0,a.kt)("p",null,"Please report any discovered vulnerabilities in our bounty programme at ",(0,a.kt)("a",{href:"https://hackenproof.com/ift",target:"_blank"},"HackenProof")," to help ensure our protocols and software remain secure."))}f.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6321],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(r),m=o,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},77362:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>p,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={toc:[]},i="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(i,(0,n.Z)({},a,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("mermaid",{value:"sequenceDiagram\nAlice->>Bob: Connect to Bob (static peer details)\nAlice->>Carol: Connect to Carol (static peer details)"}),(0,o.kt)("p",null,"Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node."))}c.isMDXComponent=!0;const s={title:"Static Peers",hide_table_of_contents:!0},l=void 0,p={unversionedId:"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.",source:"@site/docs/learn/concepts/static-peers.md",sourceDirName:"learn/concepts",slug:"/learn/concepts/static-peers",permalink:"/learn/concepts/static-peers",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/concepts/static-peers.md",tags:[],version:"current",lastUpdatedAt:1700737292,formattedLastUpdatedAt:"23 Nov 2023",frontMatter:{title:"Static Peers",hide_table_of_contents:!0},sidebar:"learn",previous:{title:"Peer Discovery",permalink:"/learn/concepts/peer-discovery"},next:{title:"DNS Discovery",permalink:"/learn/concepts/dns-discovery"}},d={},u=[{value:"Pros",id:"pros",level:4},{value:"Cons",id:"cons",level:4},{value:"Overview",id:"overview",level:2}],m={toc:u},f="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(f,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or ",(0,o.kt)("a",{parentName:"p",href:"/#run-a-waku-node"},"run a node"),"."),(0,o.kt)("h4",{id:"pros"},"Pros"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Low latency."),(0,o.kt)("li",{parentName:"ul"},"Low resource requirements.")),(0,o.kt)("h4",{id:"cons"},"Cons"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Vulnerable to censorship: Node IPs can be blocked or restricted."),(0,o.kt)("li",{parentName:"ul"},"Limited scalability: The number of nodes is fixed and cannot easily be expanded."),(0,o.kt)("li",{parentName:"ul"},"Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.")),(0,o.kt)("h2",{id:"overview"},"Overview"),(0,o.kt)(c,{mdxType:"StaticPeers"}))}y.isMDXComponent=!0}}]);
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6321],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},77362:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>s,metadata:()=>p,toc:()=>d});var n=r(87462),o=(r(67294),r(3905));const a={toc:[]},i="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(i,(0,n.Z)({},a,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("mermaid",{value:"sequenceDiagram\nAlice->>Bob: Connect to Bob (static peer details)\nAlice->>Carol: Connect to Carol (static peer details)"}),(0,o.kt)("p",null,"Alice establishes connections with Bob and Carol using their node details, which are predefined (hard-coded) into Alice's node."))}c.isMDXComponent=!0;const s={title:"Static Peers",hide_table_of_contents:!0},l=void 0,p={unversionedId:"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.",source:"@site/docs/learn/concepts/static-peers.md",sourceDirName:"learn/concepts",slug:"/learn/concepts/static-peers",permalink:"/learn/concepts/static-peers",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/concepts/static-peers.md",tags:[],version:"current",frontMatter:{title:"Static Peers",hide_table_of_contents:!0},sidebar:"learn",previous:{title:"Peer Discovery",permalink:"/learn/concepts/peer-discovery"},next:{title:"DNS Discovery",permalink:"/learn/concepts/dns-discovery"}},u={},d=[{value:"Pros",id:"pros",level:4},{value:"Cons",id:"cons",level:4},{value:"Overview",id:"overview",level:2}],m={toc:d},f="wrapper";function y(e){let{components:t,...r}=e;return(0,o.kt)(f,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Waku applications have the flexibility to embed bootstrap node addresses directly into their codebase. Developers can either use static peers operated by Status or ",(0,o.kt)("a",{parentName:"p",href:"/#run-a-waku-node"},"run a node"),"."),(0,o.kt)("h4",{id:"pros"},"Pros"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Low latency."),(0,o.kt)("li",{parentName:"ul"},"Low resource requirements.")),(0,o.kt)("h4",{id:"cons"},"Cons"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Vulnerable to censorship: Node IPs can be blocked or restricted."),(0,o.kt)("li",{parentName:"ul"},"Limited scalability: The number of nodes is fixed and cannot easily be expanded."),(0,o.kt)("li",{parentName:"ul"},"Maintenance challenges: Updating the node list requires modifying the code, which can be cumbersome and involves releasing and deploying.")),(0,o.kt)("h2",{id:"overview"},"Overview"),(0,o.kt)(c,{mdxType:"StaticPeers"}))}y.isMDXComponent=!0}}]);

View File

@ -1 +1 @@
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6618],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,s(s({ref:t},p),{},{components:r})):n.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,s[1]=i;for(var l=2;l<a;l++)s[l]=r[l];return n.createElement.apply(null,s)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},63351:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const a={title:"Transports",hide_table_of_contents:!0},s=void 0,i={unversionedId:"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.",source:"@site/docs/learn/concepts/transports.md",sourceDirName:"learn/concepts",slug:"/learn/concepts/transports",permalink:"/learn/concepts/transports",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/concepts/transports.md",tags:[],version:"current",lastUpdatedAt:1700737292,formattedLastUpdatedAt:"23 Nov 2023",frontMatter:{title:"Transports",hide_table_of_contents:!0},sidebar:"learn",previous:{title:"Network Domains",permalink:"/learn/concepts/network-domains"},next:{title:"Peer Discovery",permalink:"/learn/concepts/peer-discovery"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"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."),(0,o.kt)("p",null,"Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"TCP"),": By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Secure WebSocket"),": In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely."),(0,o.kt)("li",{parentName:"ul"},"Other protocols like ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/waku-org/js-waku/issues/20"},"WebRTC"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/waku-org/js-waku/issues/697"},"WebTransport"),", and QUIC have been researched and studied for potential integration.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Waku ensures compatibility and improved communication capabilities by following these recommended transports.")))}d.isMDXComponent=!0}}]);
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[6618],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return r?n.createElement(f,s(s({ref:t},p),{},{components:r})):n.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,s[1]=i;for(var l=2;l<a;l++)s[l]=r[l];return n.createElement.apply(null,s)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},63351:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(87462),o=(r(67294),r(3905));const a={title:"Transports",hide_table_of_contents:!0},s=void 0,i={unversionedId:"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.",source:"@site/docs/learn/concepts/transports.md",sourceDirName:"learn/concepts",slug:"/learn/concepts/transports",permalink:"/learn/concepts/transports",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/concepts/transports.md",tags:[],version:"current",frontMatter:{title:"Transports",hide_table_of_contents:!0},sidebar:"learn",previous:{title:"Network Domains",permalink:"/learn/concepts/network-domains"},next:{title:"Peer Discovery",permalink:"/learn/concepts/peer-discovery"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"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."),(0,o.kt)("p",null,"Waku is a transport-agnostic framework that allows developers to choose and support multiple protocols according to their requirements. For Waku nodes, the following transports are recommended:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"TCP"),": By default, Waku nodes use TCP for communication. Service nodes should employ TCP for listening to and connecting with other nodes."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Secure WebSocket"),": In browser environments, secure WebSocket is used. Service nodes are encouraged to set up SSL certificates to enable incoming connections from browsers and serve them securely."),(0,o.kt)("li",{parentName:"ul"},"Other protocols like ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/waku-org/js-waku/issues/20"},"WebRTC"),", ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/waku-org/js-waku/issues/697"},"WebTransport"),", and QUIC have been researched and studied for potential integration.")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"Waku ensures compatibility and improved communication capabilities by following these recommended transports.")))}d.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5838],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(67294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}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){a(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,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),f=a,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},34602:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(87462),a=(r(67294),r(3905));const o={title:"Research",hide_table_of_contents:!0,sidebar_position:1},i=void 0,s={unversionedId:"research/index",id:"research/index",title:"Research",description:"Research and Studies: Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the Waku RFCs website.",source:"@site/docs/research/index.md",sourceDirName:"research",slug:"/research/",permalink:"/research/",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/index.md",tags:[],version:"current",lastUpdatedAt:1727672505,formattedLastUpdatedAt:"30 Sept 2024",sidebarPosition:1,frontMatter:{title:"Research",hide_table_of_contents:!0,sidebar_position:1},sidebar:"research",next:{title:"PostgreSQL",permalink:"/research/benchmarks/postgres-adoption"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Research and Studies"),": Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the ",(0,a.kt)("a",{parentName:"p",href:"https://rfc.vac.dev/waku"},"Waku RFCs")," website."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Benchmarks"),": Results of implementations and engineering-related benchmarks for Waku clients."),(0,a.kt)("p",null,"Waku also has the following published research papers:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://arxiv.org/abs/2207.00117"},(0,a.kt)("strong",{parentName:"a"},"WAKU-RLN-RELAY: Privacy-Preserving Peer-to-Peer Economic Spam Protection"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://eprint.iacr.org/2024/1073"},(0,a.kt)("strong",{parentName:"a"},"Message Latency in Waku Relay with Rate Limiting Nullifiers"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://arxiv.org/abs/2207.00038"},(0,a.kt)("strong",{parentName:"a"},"Waku: A Family of Modular P2P Protocols For Secure & Censorship-Resistant Communication"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://ieeexplore.ieee.org/document/10646404"},(0,a.kt)("strong",{parentName:"a"},"The Waku Network as Infrastructure for dApps")))))}d.isMDXComponent=!0}}]);

View File

@ -0,0 +1 @@
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[5838],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(67294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}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){a(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,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),m=a,d=u["".concat(c,".").concat(m)]||u[m]||f[m]||o;return r?n.createElement(d,i(i({ref:t},p),{},{components:r})):n.createElement(d,i({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},34602:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(87462),a=(r(67294),r(3905));const o={title:"Research",hide_table_of_contents:!0,sidebar_position:1},i=void 0,s={unversionedId:"research/index",id:"research/index",title:"Research",description:"Research and Studies: Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the Waku RFCs website.",source:"@site/docs/research/index.md",sourceDirName:"research",slug:"/research/",permalink:"/research/",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"Research",hide_table_of_contents:!0,sidebar_position:1},sidebar:"research",next:{title:"PostgreSQL",permalink:"/research/benchmarks/postgres-adoption"}},c={},l=[],p={toc:l},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Research and Studies"),": Protocol simulations and theoretical analysis to support the design of Waku protocols. The protocol definitions are on the ",(0,a.kt)("a",{parentName:"p",href:"https://rfc.vac.dev/waku"},"Waku RFCs")," website."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Benchmarks"),": Results of implementations and engineering-related benchmarks for Waku clients."),(0,a.kt)("p",null,"Waku also has the following published research papers:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://arxiv.org/abs/2207.00117"},(0,a.kt)("strong",{parentName:"a"},"WAKU-RLN-RELAY: Privacy-Preserving Peer-to-Peer Economic Spam Protection"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://eprint.iacr.org/2024/1073"},(0,a.kt)("strong",{parentName:"a"},"Message Latency in Waku Relay with Rate Limiting Nullifiers"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://arxiv.org/abs/2207.00038"},(0,a.kt)("strong",{parentName:"a"},"Waku: A Family of Modular P2P Protocols For Secure & Censorship-Resistant Communication"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://ieeexplore.ieee.org/document/10646404"},(0,a.kt)("strong",{parentName:"a"},"The Waku Network as Infrastructure for dApps")))))}f.isMDXComponent=!0}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,15 +1,15 @@
{
"timestamp": "2025-06-20T14:54:54Z",
"timestamp": "2025-07-11T08:21:09Z",
"git": {
"commit": "e00bfdd527fd6a4055d59fdcdfd4399203fc144f",
"commit": "79f731582e6aff6c6c0eea8a800331b5223d2105",
"branch": "origin/master",
"url": "git@github.com:waku-org/docs.waku.org.git"
},
"build": {
"id": "95",
"number": "95",
"id": "96",
"number": "96",
"name": "website/docs.waku.org",
"slave": "linux-01",
"url": "https://ci.infra.status.im/job/website/job/docs.waku.org/95/"
"url": "https://ci.infra.status.im/job/website/job/docs.waku.org/96/"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More