I am thinking about writing IPFS routing algorithm simulator. It would enable quick iterations in routing algorithm development, before thousands of full-fledged IPFS daemons are spun.
The simulator would have configuration to specify following "starting situation":
whether node is NATed
percentage of "unique" content, small and big blocks
speed of node's network up/down
connection latency
amount of storage available
amount of pubsub channels, number of subscribers
clustering with some other nodes
While running, it will be possible to specify:
amount of interest in various blocks to go up and down
normal/important blocks (e.g. blocks requested from browser are much more important to retrieve than backup of some blocks). Same goes for sending unique content. I understand that IPFS does not support this yet.
Output of the simulator would have graphs of blocks traversal speed, pubsub speed, etc
Obviously this should be written in go, to facilitate thousands of goroutines that represent hosts and networks.
Sorry for making it as issue, think about it as a feature. What do you think?
The text was updated successfully, but these errors were encountered:
This is something we've been wanting for a long time. You should take a look at iptb, our testbed project. We currently use it along with our sharness (tests/sharness) tests to do some testing like this but nothing at this scale.
@raulk and @bigs have been mulling over an equivalent (probably also using iptb) for libp2p and @travisperson has been working quite a bit on improving iptb itself.
skliarie commentedOct 23, 2018
I am thinking about writing IPFS routing algorithm simulator. It would enable quick iterations in routing algorithm development, before thousands of full-fledged IPFS daemons are spun.
The simulator would have configuration to specify following "starting situation":
While running, it will be possible to specify:
Output of the simulator would have graphs of blocks traversal speed, pubsub speed, etc
Obviously this should be written in go, to facilitate thousands of goroutines that represent hosts and networks.
Sorry for making it as issue, think about it as a feature. What do you think?
The text was updated successfully, but these errors were encountered: