mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-08 15:53:08 +00:00
1 line
7.8 KiB
JavaScript
1 line
7.8 KiB
JavaScript
|
|
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[7976],{14046:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"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:","source":"@site/docs/learn/concepts/protocols.md","sourceDirName":"learn/concepts","slug":"/learn/concepts/protocols","permalink":"/learn/concepts/protocols","draft":false,"unlisted":false,"editUrl":"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/concepts/protocols.md","tags":[],"version":"current","lastUpdatedAt":null,"frontMatter":{"title":"Protocols","hide_table_of_contents":true,"displayed_sidebar":"learn"},"sidebar":"learn","previous":{"title":"The Waku Network","permalink":"/learn/"},"next":{"title":"Content Topics","permalink":"/learn/concepts/content-topics"}}');var o=n(74848),i=n(28453);const r={title:"Protocols",hide_table_of_contents:!0,displayed_sidebar:"learn"},a=void 0,l={},c=[{value:"Relay",id:"relay",level:2},{value:"RLN relay",id:"rln-relay",level:2},{value:"Filter",id:"filter",level:2},{value:"Store",id:"store",level:2},{value:"Light push",id:"light-push",level:2},{value:"Waku message",id:"waku-message",level:2}];function d(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the ",(0,o.jsx)(t.a,{href:"https://eprint.iacr.org/2017/954.pdf",children:"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:"]}),"\n",(0,o.jsx)(t.h2,{id:"relay",children:(0,o.jsx)(t.a,{href:"https://rfc.vac.dev/waku/standards/core/11/relay/",children:"Relay"})}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"Relay"})," protocol employs a Pub/Sub architecture to facilitate the sending and receiving of messages among peers. It extends the ",(0,o.jsx)(t.a,{href:"https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/README.md",children:"libp2p GossipSub protocol"})," to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship. It also scales the Waku Network to accommodate many nodes efficiently."]}),"\n",(0,o.jsx)(t.h2,{id:"rln-relay",children:(0,o.jsx)(t.a,{href:"https://rfc.vac.dev/waku/standards/core/17/rln-relay/",children:"RLN relay"})}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"RLN Relay"})," protocol extends the ",(0,o.jsx)(t.code,{children:"Relay"})," protocol by using ",(0,o.jsx)(t.a,{href:"https://rfc.vac.dev/vac/32/rln-v1/",children:"Rate Limit Nullifiers (RLN)"})," to provide efficient and economic spam-prevention. It enforces a rate limit on messages over time for all peers in the network, economically preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in the ",(0,o.jsx)(t.a,{href:"https://vac.dev/rln-relay",children:"RLN Relay blog post"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"filter",children:(0,o.jsx)(t.a,{href:"https://rfc.vac.dev/waku/standards/core/12/filter/",children:"Filter"})}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"Filter"})," protocol allows light nodes to selectively subscribe to specific messages relayed by other peers using ",(0,o.jsx)(t.a,{href:"/learn/concepts/content-topics",children:"content topics"}),". It is designed to be a lightweight alternative for accessing
|