-
Notifications
You must be signed in to change notification settings - Fork 1
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
Basic Waku simulation #1
Comments
Basic very early WIP here in PR. Having some issues with nim-eth connectivity (though to be fair I only played with it very briefly so far). @kdeme any ideas? Based it on shh client status-im/nim-eth#145 We want this to be separate unix procs, so we can have a more realistic simulation with various components, etc. So can't take current in-proc tests as is, hence basing it on basic client Expected result: See messages (handler log) appearing in watch process. Actual result: Connected to Whisper nodes, messages appear to be sent and filters installed, but no messages coming through. Note: Noticed some WRN 2019-12-11 13:46:56+08:00 Message PoW too low topics="whisper" tid=8053 minPow=0.2 pow=0.0003289473684210526, unclear if related or mainnet artifact. |
Yes, definitely separate procs would be the way to go. Both for being able to gather metrics/bandwidth usage/memory usage/ etc. per node and to keep it understandable and scalable. That warning is likely to be a mainnet artifact, as same clients (with same PoW requirement I assume) are used to post/subscribe. Also, I see that the |
Trying to run with https://github.com/status-im/status-go/tree/develop/_assets/systemd/bootnode and using that enode with local config I get:
The bootstrap service is running ( |
You could now use the wakunode at https://github.com/status-im/nimbus/pull/437 . It is far from finished but should be usable to start a bootnode, and several other nodes and post messages through the RPC interface (via web3, plain curl, and hopefully soon nim-web3). I will try to add the actual Waku Mode settings soon. |
|
Brief update: Using a local network with bootstrap node etc it is running over
See https://github.com/status-im/nimbus/pull/437/files#diff-a3fe75c397a0d5a4da33c4d6a48f75b7 for current runner code FYI @adambabik too |
Brief update:
Addendum: Check beacon chain Dockerfile, possibly more up to date |
Updated https://github.com/status-im/nimbus/pull/437, needs further work on network set up + traffic generation and some other items but a hardcoded (star) network can be launched and traffic can be generated by running quicksim, see readme. |
So I think the basic version fulfils the requirements: Network can be started in Star, FullMesh or via discovery (v4). Configurable amount of peers can be started. Additionally a light node with using bloom filter and a light node using set topic list is started. Metrics are collected of all nodes and some are printed also on the console. Follow-up issue(s) would contain still:
The Waku version tested does not use latest spec yet (alist). |
Awesome work @kdeme, do you want to post a mini write up in Vac forum or Discuss with screenshots of the configurations and roughly what it means? Think a lot of people would be interested |
I'll probably include simulation numbers in upcoming write-up, so if you prefer I can do above (or we can do both) |
Created an issue with some follow-up items: https://github.com/status-im/nimbus/issues/458 |
Thanks! This issue can probably be closed |
Problem
We don't know if Waku mode will actually significantly decrease bandwidth vacp2p/rfc#49
We have a theoretical model that claims it well, but we need more confirmation. Core integration is one way (and the ultimate goal), but it'd be good to know earlier if we are actually solving the problem.
Acceptance criteria
This is a minimal simulation for Waku. To start with, it should
I.e. you can run a script and it shows you some basic BW usage for some time period. Essentially testing the model and ensure it reflects reality.
As well as:
Solution
Start with shh client, then figure out how get them talk. Static nodes / bootstrap nodes etc. See
nim-eth
for additional changes (also related: https://github.com/vacp2p/pm/issues/4)Notes
See https://github.com/status-im/nim-beacon-chain for how they do it as inspiration. Start with basics though, something that can be done in a few days.
https://github.com/status-im/nimbus/issues/426
Further work
After basics are done:
The text was updated successfully, but these errors were encountered: