"use strict";(self.webpackChunkwaku_guide=self.webpackChunkwaku_guide||[]).push([[1937],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>m});varn=a(67294);functioni(e,t,a){returntine?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}functionr(e,t){vara=Object.keys(e);if(Object.getOwnPropertySymbols){varn=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){returnObject.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}returna}functiono(e){for(vart=1;t<arguments.length;t++){vara=null!=arguments[t]?arguments[t]:{};t%2?r(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}returne}functions(e,t){if(null==e)return{};vara,n,i=function(e,t){if(null==e)return{};vara,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(i[a]=e[a]);returni}(e,t);if(Object.getOwnPropertySymbols){varr=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}returni}varl=n.createContext({}),d=function(e){vart=n.useContext(l),a=t;returne&&(a="function"==typeofe?e(t):o(o({},t),e)),a},p=function(e){vart=d(e.components);returnn.createElement(l.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){vart=e.children;returnn.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){vara=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=d(a),c=i,m=u["".concat(l,".").concat(c)]||u[c]||h[c]||r;returna?n.createElement(m,o(o({ref:t},p),{},{components:a})):n.createElement(m,o({ref:t},p))}));functionm(e,t){vara=arguments,i=t&&t.mdxType;if("string"==typeofe||i){varr=a.length,o=newArray(r);o[0]=c;vars={};for(varlint)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeofe?e:i,o[1]=s;for(vard=2;d<r;d++)o[d]=a[d];returnn.createElement.apply(null,o)}returnn.createElement.apply(null,a)}c.displayName="MDXCreateElement"},56055:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>d});varn=a(87462),i=(a(67294),a(3905));constr={title:"Capped Bandwidth in Waku"},o=void0,s={unversionedId:"research/research-and-studies/capped-bandwidth",id:"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/research/research-and-studies/capped-bandwidth.md",sourceDirName:"research/research-and-studies",slug:"/research/research-and-studies/capped-bandwidth",permalink:"/research/research-and-studies/capped-bandwidth",draft:!1,editUrl:"https://github.com/waku-org/docs.waku.org/tree/develop/docs/research/research-and-studies/capped-bandwidth.md",tags:[],version:"current",lastUpdatedAt:1729480127,formattedLastUpdatedAt:"21 Oct 2024",frontMatter:{title:"Capped Bandwidth in Waku"},sidebar:"research",previous:{title:"PostgreSQL",permalink:"/research/benchmarks/postgres-adoption"},next:{title:"Incentivisation",permalink:"/research/research-and-studies/incentivisation"}},l={},d=[{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}],p={toc:d},u="wrapper";functionh(e){let{components:t,...a}=e;return(0,i.kt)(u,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"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."),(0,i.kt)("h2",{id:"problem"},"Problem"),(0,i.kt)("p",null,'First of all, let\'sbeginwiththeterminology.Wehavetalkedinthepastabout"predictable"bandwidth,butabetternamewouldbe"capped"bandwidth.Thisisbecause