-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add post for Waku v1 vs Waku v2 bandwidth comparison #43
Conversation
Sorry won't have time to review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice job! Looks good to me!
I have left a few questions and suggestions.
|
||
![](/assets/img/waku1-vs-waku2/waku1-vs-waku2-50-nodes.png) | ||
|
||
Average bandwidth usage (for the same message rate) has remained roughly the same for Waku v2, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Average bandwidth usage (for the same message rate) has remained roughly the same for Waku v2
Do you mean in comparison with the 30 nodes scenario?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes! Thanks, should be clarified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done in 21749a4
so let's confirm by running the test once more for a network of 85 nodes. | ||
Due to local resource constraints, the effective throughput for Waku v1 falls to below 50 messages per second, | ||
so the v1 results below have been normalized and are therefore approximate. | ||
The local Waku v2 simulation maintains the message throughput rate without any problems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious to know why the bandwidth consumption of waku v2 has decreased from >2000 kbps in 50 nodes case to almost 2000 kbps in 80 nodes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the quirks of real world experiments. :) Expectation is that it should be similar (barring normal, slight variations between different runs) to the smaller network size. In this instance my local system struggled to maintain throughput and my guess is that effective throughput also fell for Waku v2. That said, I significantly reconfigured my experimental system in order to achieve the 150 nodes scenario below. I think it's a good idea to rerun this test and see if I get more reasonable (expected) results. Thanks!
Since we are particularly interested in how Waku v1 compares to Waku v2 in terms of bandwidth usage, | ||
the results are normalised to the Waku v2 average bandwidth usage for each network size. | ||
|
||
![](/assets/img/waku1-vs-waku2/waku1-vs-waku2-overall-network-size.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is useful to also see the non-normalized comparison as well, especially, to better understand waku v2 behavior for different network sizes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In order to better formalize the bit complexity per second against the network size, I'd suggest fitting a polynomial into the data points of waku v2 (and waku v1). we can also use the resultant polynomial to approximately predict the bandwidth usage of larger network sizes (even without simulation).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is useful to also see the non-normalized comparison as well, especially, to better understand waku v2 behavior for different network sizes
True. I do think though that the experimental system (blackbox, local system, external bandwidth monitoring tool with limited capability) is not a good characterisation of Waku v2 (or v1) bandwidth, but rather a fair comparison of the two. To accurately characterise Waku v2 bandwidth for different networks I'd like to add internal measurements, also to understand what the bandwidth is being used by (control messages, discovery, message publishing, connection setup, etc.). Watch this space! :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do think though that the experimental system (blackbox, local system, external bandwidth monitoring tool with limited capability) is not a good characterisation of Waku v2 (or v1) bandwidth, but rather a fair comparison of the two. To accurately characterise Waku v2 bandwidth for different networks I'd like to add internal measurements, also to understand what the bandwidth is being used by (control messages, discovery, message publishing, connection setup, etc.). Watch this space! :)
Makes sense! looking forward to that :)
4. Each message propagated in the network carries **8 bytes** of random payload, which is **encrypted**. | ||
The same symmetric key cryptographic algorithm (with the same keys) are used in both Waku v1 and v2. | ||
5. Traffic in each network is **generated from 10 nodes** (randomly-selected) and published in a round-robin fashion to **10 topics** (content topics for Waku v2). | ||
In practice, we found no significant difference in _average_ bandwidth usage when tweaking these two parameters (the number of traffic generating nodes and the number of topics). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this average per message? or per node? or both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Meant as in per node, but it would hold for per message bandwidth too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be good to clarify this in the text as well, that the reported value is the average bandwidth each node consumes per message.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW, I just revisited the figures and I think the average might be per node but not per message. The reason is that the bandwidth usage has been dropped from >2000kpbs in 85 nodes case to below 1000kpbs in a network of 150 nodes (where the messaging rate has also dropped from 50 to 35). Normally, I would expect to see the same bandwidth usage (based on the trend in prior figures), but it seems there is dependency between bandwidth and the messaging rate, what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I understand your question a bit better now. Yes, if we were to normalise the bandwidth to per message we would not see much variation if we also tweaked the number of nodes generating traffic or the number of content topics. However, the actual scenario results are certainly per node, which is heavily dependent on the message rate - the higher the message rate, the higher the average bandwidth per node.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a user of waku, I would be also interested to see the bandwidth overhead per node and per message i.e, I would ask how much bandwidth each node has to spend for the transmission of one message to the entire network. In another set of simulations, the impact of message rate on bandwidth can be examined for scenarios with identical setup but varying messaging rates.
In the current PR, since the objective is to provide a comparative analysis of waku v1 with v2, I think the average per node is fine. But for the follow-up simulations that you mentioned (to characterize waku v2), I'd suggest having per-message results as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree! I also think to answer this question we'll need to add better internal metrics to validate what the external tool returns.
If our expectations are confirmed, it helps validate our methodology, | ||
showing that it gives more or less equivalent results between Waku v1 and Waku v2 networks. | ||
|
||
![](/assets/img/waku1-vs-waku2/waku1-vs-waku2-10-nodes.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does the elapsed time indicate the total time required for one round to finish? one round is completed when all the 10 nodes finish publishing 50 messages per second
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the nodes maintain a constant rate of 50 messages per second for the full elapsed time. The fact that both networks (v1 and v2) shows more or less constant bandwidth usage for this constant propagation rate is an indication that both protocols can maintain stable meshes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, Thanks for the clarification!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice one! Some comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some suggestions re intro and outro to make it more like a dynamic article, otherwise LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
* Add post for Waku v1 vs Waku v2 bandwidth comparison * Addressing PR comments * Added future work. Minor changes to intro. (cherry picked from commit 007696c)
* Add new design * Use yarn instead of npm * Add 404 page style * Update "See VAC Openings" CTA * Change VAC to Vac * Change specs link * Keep post categories * Change code formatting * Update images * Update media links * Add media image default * Update package.json * Add twitter cards meta data * Add media section back * Remove images * Comment script for form * Change media urls to https * Import font locally * Add Anonymous font * Change inner page layout * Change pre code style * Add font preloading * Change post content styles * Add alt attribute * Change footer research links * Update gitignore * Add Fathom analytics * Update links * Change gif to video * Add work cards links back * Change footer spacing * Change logo size * Fix header * Centered section join * Make cards clickable * Align left section join * Remove graphic & video section about * Return logo size * Add post for Waku v1 vs Waku v2 bandwidth comparison (#43) * Add post for Waku v1 vs Waku v2 bandwidth comparison * Addressing PR comments * Added future work. Minor changes to intro. (cherry picked from commit 007696c) * Add <code> styles * Add Hanno page * Add opinion piece on ethics in surveillance tech (#44) * Add opinion piece on ethics in surveillance tech * Change published date. Added preface. * wrong date - today is 3rd (cherry picked from commit c64f5a8) * Add circe page Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]>
* Add new design * Use yarn instead of npm * Add 404 page style * Update "See VAC Openings" CTA * Change VAC to Vac * Change specs link * Keep post categories * Change code formatting * Update images * Update media links * Add media image default * Update package.json * Add twitter cards meta data * Add media section back * Remove images * Comment script for form * Change media urls to https * Import font locally * Add Anonymous font * Change inner page layout * Change pre code style * Add font preloading * Change post content styles * Add alt attribute * Change footer research links * Update gitignore * Add Fathom analytics * Update links * Change gif to video * Add work cards links back * Change footer spacing * Change logo size * Fix header * Centered section join * Make cards clickable * Align left section join * Remove graphic & video section about * Return logo size * Add post for Waku v1 vs Waku v2 bandwidth comparison (#43) * Add post for Waku v1 vs Waku v2 bandwidth comparison * Addressing PR comments * Added future work. Minor changes to intro. (cherry picked from commit 007696c) * Add <code> styles * Add Hanno page * Add opinion piece on ethics in surveillance tech (#44) * Add opinion piece on ethics in surveillance tech * Change published date. Added preface. * wrong date - today is 3rd (cherry picked from commit c64f5a8) * Add circe page Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]> Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]>
* Add new design * Use yarn instead of npm * Add 404 page style * Update "See VAC Openings" CTA * Change VAC to Vac * Change specs link * Keep post categories * Change code formatting * Update images * Update media links * Add media image default * Update package.json * Add twitter cards meta data * Add media section back * Remove images * Comment script for form * Change media urls to https * Import font locally * Add Anonymous font * Change inner page layout * Change pre code style * Add font preloading * Change post content styles * Add alt attribute * Change footer research links * Update gitignore * Add Fathom analytics * Update links * Change gif to video * Add work cards links back * Change footer spacing * Change logo size * Fix header * Centered section join * Make cards clickable * Align left section join * Remove graphic & video section about * Return logo size * Add post for Waku v1 vs Waku v2 bandwidth comparison (#43) * Add post for Waku v1 vs Waku v2 bandwidth comparison * Addressing PR comments * Added future work. Minor changes to intro. (cherry picked from commit 007696c) * Add <code> styles * Add Hanno page * Add opinion piece on ethics in surveillance tech (#44) * Add opinion piece on ethics in surveillance tech * Change published date. Added preface. * wrong date - today is 3rd (cherry picked from commit c64f5a8) * Add circe page Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]> Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]>
* Add new design * Use yarn instead of npm * Add 404 page style * Update "See VAC Openings" CTA * Change VAC to Vac * Change specs link * Keep post categories * Change code formatting * Update images * Update media links * Add media image default * Update package.json * Add twitter cards meta data * Add media section back * Remove images * Comment script for form * Change media urls to https * Import font locally * Add Anonymous font * Change inner page layout * Change pre code style * Add font preloading * Change post content styles * Add alt attribute * Change footer research links * Update gitignore * Add Fathom analytics * Update links * Change gif to video * Add work cards links back * Change footer spacing * Change logo size * Fix header * Centered section join * Make cards clickable * Align left section join * Remove graphic & video section about * Return logo size * Add post for Waku v1 vs Waku v2 bandwidth comparison (#43) * Add post for Waku v1 vs Waku v2 bandwidth comparison * Addressing PR comments * Added future work. Minor changes to intro. (cherry picked from commit 007696c) * Add <code> styles * Add Hanno page * Add opinion piece on ethics in surveillance tech (#44) * Add opinion piece on ethics in surveillance tech * Change published date. Added preface. * wrong date - today is 3rd (cherry picked from commit c64f5a8) * Add circe page Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]> Co-authored-by: Hanno Cornelius <[email protected]> Co-authored-by: thecirce <[email protected]>
I've converted the bandwidth comparison between Waku v1 and Waku v2 into a research post. Th original post can still be viewed here and in the Vac Book.