72 lines
97 KiB
HTML
Raw Permalink Normal View History

2024-02-20 09:23:32 +00:00
<!doctype html>
2025-08-13 03:24:27 +00:00
<html lang="en-GB" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-undefined" data-has-hydrated="false">
2024-02-20 09:23:32 +00:00
<head>
<meta charset="UTF-8">
2025-08-13 03:24:27 +00:00
<meta name="generator" content="Docusaurus v3.8.1">
2025-10-03 05:55:52 +00:00
<title data-rh="true">Message Propagation Times With Waku-RLN | Waku Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.waku.org/learn/research/research-and-studies/message-propagation"><meta data-rh="true" property="og:locale" content="en_GB"><meta data-rh="true" name="docusaurus_locale" content="en-GB"><meta data-rh="true" name="docsearch:language" content="en-GB"><meta data-rh="true" name="keywords" content="waku, web3"><meta data-rh="true" name="image" content="https://docs.waku.org/_og/e093238147e25245716028178897434ad9585a62.png"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Message Propagation Times With Waku-RLN | Waku Documentation"><meta data-rh="true" name="description" content="TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it&#x27;s affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters."><meta data-rh="true" property="og:description" content="TLDR: We present the results of 1000 nwaku nodes running rln using different message sizes, in a real network with bandwidth limitations and network delays. The goal is to study the message propagation delay distribution, and how it&#x27;s affected by i) rln and ii) message size in a real environment. We observe that for messages of 10kB the average end-to-end propagation delay is 508 ms. We can also observe that the message propagation delays are severely affected when increasing the message size, which indicates that it is not a good idea to use waku for messages of eg. 500kB. See simulation parameters."><link data-rh="true" rel="icon" href="/theme/image/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.waku.org/learn/research/research-and-studies/message-propagation"><link data-rh="true" rel="alternate" href="https://docs.waku.org/learn/research/research-and-studies/message-propagation" hreflang="en-GB"><link data-rh="true" rel="alternate" href="https://docs.waku.org/learn/research/research-and-studies/message-propagation" hreflang="x-default"><link rel="alternate icon" type="image/png" href="/theme/image/favicon.png">
<link rel="icon" type="image/svg+xml" href="/theme/image/favicon.svg"><link rel="stylesheet" href="/assets/css/styles.f0961b96.css">
2026-03-13 09:56:32 +00:00
<script src="/assets/js/runtime~main.5ff1e07d.js" defer="defer"></script>
<script src="/assets/js/main.279f15d8.js" defer="defer"></script>
2025-08-13 03:24:27 +00:00
<meta property="og:image" content="https://docs.waku.org/_og/e093238147e25245716028178897434ad9585a62.png"><meta name="twitter:image" content="https://docs.waku.org/_og/e093238147e25245716028178897434ad9585a62.png"></head>
2024-02-20 09:23:32 +00:00
<body class="navigation-with-keyboard">
2025-08-13 03:24:27 +00:00
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/theme/image/logo-black.svg"><link rel="preload" as="image" href="/theme/image/logo.svg"><style data-emotion="css-global 3rtehh">.lsd-button{width:auto;cursor:pointer;padding:6px 24px;}.lsd-button--disabled{cursor:default;opacity:0.34;}.lsd-button--large{padding:10px 40px;}.lsd-button--medium{padding:6px 24px;}.lsd-button--small{padding:6px 12px;}.lsd-button:hover:not(.lsd-button--disabled) .lsd-button__text{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-button--with-icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-button__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}.lsd-button--large.lsd-button--with-icon{padding:10px 0px 10px 18px;}.lsd-button--large.lsd-button--with-icon .lsd-button__icon{width:42px;}.lsd-button--medium.lsd-button--with-icon{padding:6px 0px 6px 14px;}.lsd-button--medium.lsd-button--with-icon .lsd-button__icon{width:38px;}.lsd-button--small.lsd-button--with-icon{padding:6px 0px 6px 12px;}.lsd-button--small.lsd-button--with-icon .lsd-button__icon{width:34px;}.lsd-button--outlined{background:none;border:1px solid rgb(var(--lsd-border-primary));}.lsd-button--outlined .lsd-button__text{color:rgb(var(--lsd-text-primary));}.lsd-button--filled{background:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-primary));}.lsd-button--filled .lsd-button__text{color:rgb(var(--lsd-text-secondary));}</style><style data-emotion="css-global 10bahxd">.lsd-icon-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;background:none;padding:0;border:1px solid rgb(var(--lsd-border-primary));}.lsd-icon-button--filled{background-color:rgb(var(--lsd-icon-primary));}.lsd-icon-button--filled svg{--lsd-icon-primary:var(--lsd-icon-secondary);}.lsd-icon-button--disabled{opacity:0.34;cursor:default;}.lsd-icon-button--large{width:40px;height:40px;}.lsd-icon-button--medium{width:32px;height:32px;}.lsd-icon-button--small{width:28px;height:28px;}</style><style data-emotion="css-global icqph9">.lsd-icon-button-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.lsd-icon-button-group--outlined .lsd-icon-button:not(:last-child){border-right:none;}</style><style data-emotion="css-global 1f43ub2">body *{font-family:var(--lsd-typography-generic-font-family);}.lsd-typography{color:rgb(var(--lsd-text-primary));}.lsd-typography--sans-serif,.lsd-typography--sans-serif *{font-family:sans-serif;}.lsd-typography--serif,.lsd-typography--serif *{font-family:serif;}.lsd-typography--monospace,.lsd-typography--monospace *{font-family:monospace;}.lsd-typography--display1{color:rgb(var(--lsd-text-primary));font-weight:var(--lsd-display1-fontWeight);font-size:var(--lsd
2024-02-20 09:23:32 +00:00
.lsd-dropdown--error
) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not(
.lsd-dropdown--error
2025-10-03 05:55:52 +00:00
) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}</style><style data-emotion="css-global w2g5fy">.lsd-dropdown-item{width:100%;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown-item:not(.lsd-dropdown-item--disabled){cursor:pointer;}.lsd-dropdown-item:not(.lsd-dropdown-item--disabled):hover,.lsd-dropdown-item:not(.lsd-dropdown-item--disabled):focus{outline:none;}.lsd-dropdown-item:not(.lsd-dropdown-item--disabled):hover .lsd-dropdown-item__label,.lsd-dropdown-item:not(.lsd-dropdown-item--disabled):focus .lsd-dropdown-item__label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown-item__label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.lsd-dropdown-item--disabled{opacity:0.34;}.lsd-dropdown-item__icon{margin-right:18px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.lsd-dropdown-item--small{padding:5px 9px;height:28px;}.l
2025-08-13 03:24:27 +00:00
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction"></a></h2>
<p>Waku uses <a href="https://rfc.vac.dev/spec/11/" target="_blank" rel="noopener noreferrer">relay</a> as a routing protocol, which is an adaptation of <a href="https://arxiv.org/pdf/2007.02754.pdf" target="_blank" rel="noopener noreferrer">gossipsub</a>. It routes messages following a publisher/subscriber architecture, where nodes can publish messages or subscribe to topics. If message <code>m</code> is published to topic <code>t</code>, all <code>i</code> nodes <code>n_1...n_i</code> subscribed to <code>t</code> will get <code>m</code>. The <code>relay</code> protocol ensures that every node gets the messages of the topics it is subscribed to.</p>
<p>However, since <code>relay</code> works in a decentralized manner, all nodes contribute to the gossiping of a message, until it has successfully reached all the interested nodes (subscribed to it). This means that a message can travel multiple hops until it reaches all nodes. The amount of hops determines the <strong>message propagation time</strong>, which is measured as the <strong>time difference of when the node published the message and when another node received</strong>.</p>
<p><strong>This issue aims to go from theory to practice, by i) understanding message propagation times in theory and ii) presenting nwaku simulation results in an end-to-end setup with rln, with real message propagation times</strong>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="theory">Theory<a href="#theory" class="hash-link" aria-label="Direct link to Theory" title="Direct link to Theory"></a></h2>
<p>Let&#x27;s start with <strong>message propagation times in theory</strong>. On a high level, it depends on:</p>
<ul>
<li>The gossipsub <a href="https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.0.md#parameters" target="_blank" rel="noopener noreferrer">configuration</a>, being <code>D</code> one of the most important parameters. This sets the hops that a message will travel to reach all nodes. Higher <code>D</code>, less hops, less delay. Note that a higher <code>D</code> implies more bandwidth consumption.</li>
<li>The node. Different nodes will see different propagation times, because a message can travel different paths. A node connected directly to the publisher (1 hop) will see lower propagation times than other nodes further away.</li>
<li>Individual propagation times. Since a message can travel multiple hops to reach its destination, each hop adds a contribution to the overall message propagation time. This individual propagation time depends on the characteristics on the nodes involved in the connections.</li>
</ul>
<p>In a D-regular graph, like the one formed by waku nodes around a topic, the maximum amount of hops that a message can travel to reach all nodes can be calculated as <code>ceil(log(total_nodes)/log(D))</code>. For example, with log(1000)/log(6) = 3.85 = 4. So in a network with 1000 nodes and <code>D=6</code>, no matter which node publishes the message, in 4 hops it will reach all the nodes.</p>
<p>Notice the <strong>&quot;worst case&quot;</strong> since some nodes might be directly connected to the publisher, so they will get the message in just 1 hop.</p>
<p>But how long does it take to jump each hop? It depends on:</p>
<ul>
<li>The latency between nodes. Can be measured as the time to respond to a ping.</li>
<li>The size of the messages. The bigger the message, the more time it takes to transmit.</li>
<li>Nodes bandwidth. Sender upload bandwidth and receiver download bandwidth. More important when using big message sizes.</li>
<li>Message validation time. When each node receives a message, it applies some validation to decide if the message is further gossiped or not. In the case of waku, this is RLN (<a href="https://arxiv.org/pdf/2207.00116.pdf" target="_blank" rel="noopener noreferrer">paper</a>, <a href="https://rfc.vac.dev/spec/32/" target="_blank" rel="noopener noreferrer">rfc</a>)</li>
</ul>
<p>Assuming a message <code>m</code> that travels 4 hops from node <code>n1</code> (publisher) to <code>n5</code> (subscriber) we can calculate the message propagation time <code>mpt=ipt_1+ipt_2+ipt_3+ipt_4</code> where <code>ipt</code> is the individual propagation time between each node in the chain.</p>
<p>However, specific message propagation times are useless, we need average times under specific conditions. And <strong>for this, we need simulations</strong>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="simulations">Simulations<a href="#simulations" class="hash-link" aria-label="Direct link to Simulations" title="Direct link to Simulations"></a></h2>
<p>Using <a href="https://shadow.github.io/docs/guide/shadow.html" target="_blank" rel="noopener noreferrer">shadow</a> simulator, we have developed a <a href="https://github.com/waku-org/research/tree/master/rln-delay-simulations" target="_blank" rel="noopener noreferrer">tool</a> that allows to simulate message propagation delays of <code>nwaku</code> (using a slightly modified <a href="https://github.com/waku-org/nwaku/compare/master...simulations" target="_blank" rel="noopener noreferrer">branch</a>, mainly to instrument it with tools to measure the times + starting from an already connected mesh. Thanks <a href="https://github.com/menduist" target="_blank" rel="noopener noreferrer">@Menduist</a> for the help. Note that running this simulation requires a significant amount of resources, done with 256 GB of RAM.</p>
<p>The configuration of the simulation is (see <a href="https://github.com/waku-org/research/blob/master/rln-delay-simulations/shadow.yaml" target="_blank" rel="noopener noreferrer">config</a>):</p>
<ul>
<li><code>latency=100ms</code>. Average latency in our current waku network. Thanks <a href="https://github.com/vpavlin" target="_blank" rel="noopener noreferrer">@vpavlin</a> for the measurements. See <a href="https://grafana.infra.status.im/d/b819dbfe-acb6-4086-8736-578ca148d7cd/waku-networkmonitor-v2?orgId=1&amp;refresh=30s&amp;viewPanel=12" target="_blank" rel="noopener noreferrer">this</a> for live data.</li>
<li><code>down_bandwidth=83Mbps</code>, <code>up_bandwidth=38Mbps</code>. As shown in <a href="https://github.com/waku-org/research/issues/31" target="_blank" rel="noopener noreferrer">Table 2</a> that&#x27;s the worldwide median speed.</li>
<li><code>D=6</code>, which is the current <code>nwaku</code> <a href="https://github.com/waku-org/nwaku/blob/v0.21.0/waku/waku_relay/protocol.nim#L73-L78" target="_blank" rel="noopener noreferrer">configuration</a>.</li>
<li><code>nodes=1000</code>. Amount of nodes used in the simulation</li>
<li><code>nwaku</code> was used with a minor <a href="https://github.com/waku-org/nwaku/compare/master...simulations" target="_blank" rel="noopener noreferrer">modification</a></li>
<li>A total of <code>10</code> messages were published, that led to <code>9990</code> received messages.</li>
<li>Since <code>shadow</code> <strong>doesn&#x27;t take into account CPU times</strong> (<a href="https://github.com/shadow/shadow/discussions/1675#discussioncomment-7342812" target="_blank" rel="noopener noreferrer">by now</a>), we simulate it with <code>sleepAsync</code> as per <a href="https://github.com/waku-org/research/issues/23" target="_blank" rel="noopener noreferrer">https://github.com/waku-org/research/issues/23</a> findings. <code>0.012 seconds</code> for proof verification and <code>0.15 seconds</code> for proof generation.</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="results">Results<a href="#results" class="hash-link" aria-label="Direct link to Results" title="Direct link to Results"></a></h2>
<p>The following figure shows the <strong>message propagation time with real simulations</strong>, showing the distribution in a network with the above configuration with three different message sizes: <code>10kB</code>, <code>100kB</code>, <code>500kB</code>. Note that the whiskers indicate the best/worst values and the box contains P25 to P75 values. Average <code>mu</code> and P95 are also shown. Raw data <a href="https://github.com/waku-org/research/tree/master/rln-delay-simulations/raw" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p></p><div class="wrapper_SWrM active_qZD5"><img decoding="async" loading="lazy" alt="message-latency-distribution" src="/assets/images/message-latencies-distribution-3371680debde538ccb37052f55074c49.png" width="2400" height="1800" class="img_ev3q"><button class="fullscreenButton_Bocn lsd-icon-button lsd-icon-button--medium lsd-icon-button--outlined"><div class="icon_S7Kx m_thRi"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 14 14"><path fill="#fff" d="M1.75 2.917V5.25h1.167V2.917H5.25V1.75H2.917A1.17 1.17 0 0 0 1.75 2.917M2.917 8.75H1.75v2.333a1.17 1.17 0 0 0 1.167 1.167H5.25v-1.167H2.917zm8.166 2.333H8.75v1.167h2.333a1.17 1.17 0 0 0 1.167-1.167V8.75h-1.167zm0-9.333H8.75v1.167h2.333V5.25h1.167V2.917a1.17 1.17 0 0 0-1.167-1.167"></path></svg></div></button></div><p></p>
<p><strong>Important note</strong>. The first messages sent in the simulations are omitted, since they show an abnormal propagation delay that doesn&#x27;t reflect reality. This is due to how flow control works in TCP, where right after connection, the sender node has no idea of the &quot;bandwidth&quot; of the receiver node, so it will start sending packages at a lower rate. This translates into high transmission times, and it&#x27;s more pronounced when dealing with big message sizes.</p>
<p>In other words, in a 100Mpbs link, 100Mbits won&#x27;t be sent in 1 second, or at least not a the beginning, when the node is slowly increasing the rate until based on ACK/NACK ratio. For more information about this, this is explained in <a href="https://www.youtube.com/watch?v=vb_wjh_nAmo" target="_blank" rel="noopener noreferrer">here</a>.</p>
<p><strong>Conclusions:</strong></p>
<ul>
<li>Using small messages <code>10kB</code> the <strong>average propagation delay is <code>508 ms</code></strong>, quite reasonable for applications using waku. The variance is acceptable, with 95% of the messages arriving in <code>&lt;627 ms</code>.</li>
<li>When using a size of <code>10kB</code> we can see that the best case propagation delay is <code>263 ms</code>. This corresponds to the nodes that are just 1 hop from the publisher. The proof generation time <code>0.15 seconds</code> affects the most, where the rest is the inter-node latency and the transmission of the message itself.</li>
<li>We can see that the <strong>message propagation delay increases with big messages</strong>, <code>100kB</code> and <code>500kB</code>. So its <strong>probably not a good idea to use waku for such big messages</strong>. Note that these simulations had 1000 nodes, so if we scale it to 10000 or beyond, propagation times would be worse.</li>
<li>Best case propagation time (lower part of the whisker) is quite similar in all cases. This is because it corresponds to the node that is just 1 hop away from the publisher.</li>
</ul>
<p><strong>Future work</strong>:</p>
<ul>
<li>Current waku <code>D</code> <a href="https://github.com/waku-org/nwaku/blob/v0.21.0/waku/waku_relay/protocol.nim#L73-L78" target="_blank" rel="noopener noreferrer">values</a> (average of 6 ranging from 4 to 12) have a huge impact on the bandwidth that a node consumes. Are we willing to lower D in order to reduce bandwidth but increase message propagation times?</li>
<li>Since <code>shadow</code> doesn&#x27;t take CPU time into account, it&#x27;s currently simulated for rln, which should be the biggest bottleneck. Once <code>shadow</code> has <a href="https://github.com/shadow/shadow/discussions/1675#discussioncomment-7342812" target="_blank" rel="noopener noreferrer">this feature</a> times would be more accurate.</li>
2026-03-13 09:56:32 +00:00
</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/waku-org/docs.waku.org/tree/develop/docs/learn/research/research-and-studies/message-propagation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><div class="icon_S7Kx m_thRi"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="#fff" fill-rule="evenodd" d="m12.707 2.393.9.9c.526.52.526 1.367 0 1.887L4.787 14H2v-2.787l6.933-6.94 1.887-1.88c.52-.52 1.367-.52 1.887 0M3.333 12.667l.94.04 6.547-6.554-.94-.94-6.547 6.547z" clip-rule="evenodd"></path></svg></div><span class="lsd-typography lsd-typography--body2">Edit this page</span></a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/learn/research/research-and-studies/maximum-bandwidth"><div class="icon_S7Kx m_thRi"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 14 14"><path fill="#fff" d="M11.667 6.417h-7.1L7.83 3.156 7 2.333 2.334 7 7 11.667l.823-.823-3.255-3.26h7.099z"></path></svg></div><span class="lsd-typography lsd-typography--body2 pagination-nav__label">Maximum Bandwidth for Global Adoption</span></a><a class="pagination-nav__link pagination-nav__link--next" href="/learn/research/research-and-studies/rln-key-benchmarks"><span class="lsd-typography lsd-typography--body2 pagination-nav__label">RLN Key Benchmarks</span><div class="icon_S7Kx m_thRi"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 14 14"><path fill="#fff" d="m7 2.334-.823.822 3.255 3.26H2.333v1.167h7.1l-3.256 3.261.823.823L11.667 7z"></path></svg></div></a></nav></div></div><div class="gap1_XuuQ"></div><div class="toc_pP_5"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#introduction" class="table-of-contents__link toc-highlight">Introduction</a></li><li><a href="#theory" class="table-of-contents__link toc-highlight">Theory</a></li><li><a href="#simulations" class="table-of-contents__link toc-highlight">Simulations</a></li><li><a href="#results" class="table-of-contents__link toc-highlight">Results</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid firstRow_ar1q"><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a class="footerLogoLink_BH7S" href="/"><img src="/theme/image/logo.svg" alt="Waku" class="themedImage_kfRS themedImage--light_BL8e footer__logo" width="22"><img src="/theme/image/logo.svg" alt="Waku" class="themedImage_kfRS themedImage--dark_OvIx footer__logo" width="22"></a></div><div class="footer__copyright">Waku</div></div><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/waku_org/" target="_blank" rel="noopener noreferrer" class="footer__link-item">X<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://discord.waku.org/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/waku-org/" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.youtube.com/@wakuorg" target="_blank" rel="noopener noreferrer" class="footer__link-it
2024-02-20 09:23:32 +00:00
</body>
</html>