mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-05 22:33:06 +00:00
1 line
8.6 KiB
JavaScript
1 line
8.6 KiB
JavaScript
|
|
"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[4490],{28453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(96540);const i={},a=s.createContext(i);function r(e){const t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(a.Provider,{value:t},e.children)}},81277:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"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.","source":"@site/docs/learn/research/research-and-studies/capped-bandwidth.md","sourceDirName":"learn/research/research-and-studies","slug":"/learn/research/research-and-studies/capped-bandwidth","permalink":"/learn/research/research-and-studies/capped-bandwidth","draft":false,"unlisted":false,"editUrl":"https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/research/research-and-studies/capped-bandwidth.md","tags":[],"version":"current","lastUpdatedAt":null,"frontMatter":{"title":"Capped Bandwidth in Waku"},"sidebar":"learn","previous":{"title":"Performance Benchmarks and Test Reports","permalink":"/learn/research/benchmarks/test-results-summary"},"next":{"title":"Incentivisation","permalink":"/learn/research/research-and-studies/incentivisation"}}');var i=n(74848),a=n(28453);const r={title:"Capped Bandwidth in Waku"},o=void 0,d={},h=[{value:"Problem",id:"problem",level:2},{value:"Previous Work",id:"previous-work",level:2},{value:"Current Solution (RLN v2)",id:"current-solution-rln-v2",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,a.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"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."}),"\n",(0,i.jsx)(t.h2,{id:"problem",children:"Problem"}),"\n",(0,i.jsx)(t.p,{children:'First of all, let\'s begin with the terminology. We have talked in the past about "predictable" bandwidth, but a better name would be "capped" bandwidth. This is because it is totally fine that the waku traffic is not predictable, as long as it is capped. And it has to be capped because otherwise, no one will be able to run a node.'}),"\n",(0,i.jsx)(t.p,{children:"Since we aim that everyone can run a full waku node (at least subscribed to a single shard) it is of paramount importance that the bandwidth requirements (up/down) are i) reasonable to run with a residential internet connection in every country and ii) limited to an upper value, aka capped. If the required bandwidth to stay up to date with a topic is higher than what the node has available, then it will start losing messages and won't be able to stay up to date with the topic messages. And not to mention the problems this will cause to other services and applications being used by the user."}),"\n",(0,i.jsxs)(t.p,{children:["The main problem is that one can't just choose the bandwidth it allocates to ",(0,i.jsx)(t.code,{children:"relay"}),". One could set the maximum bandwidth willing to allocate to ",(0,i.jsx)(t.code,{children:"store"})," but this is not how ",(0,i.jsx)(t.code,{children:"relay"})," works. The required bandwidth is not set by the node, but by the network. If a pubsub topic ",(0,i.jsx)(t.code,{children:"a"}),' has a traffic of 50 Mbps (which is the sum of all messages being sent multiplied by its size, times the D_out degree), then if a node wants to stay up to date in that topic, and relay traffic in it, then it will require 50 Mbps. There is no thing such as "partially contributing" to the topic (with eg 25Mbps) because then you will be losing messages, becoming an unreliable peer and potentially be disconn
|