ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.03k stars 3k forks source link

routing algorithm simulator #5630

Open skliarie opened 5 years ago

skliarie commented 5 years ago

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?

skliarie commented 5 years ago

there is DHT simulator that might be used: https://github.com/whyrusleeping/dhtHell

Stebalien commented 5 years ago

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.

LastExile16 commented 5 years ago

That would be incredibly useful, especially for research purposes. I hope to see it very soon.

skliarie commented 5 years ago

I started working on architecture and looking for feedback from experienced go developers and IPFS masters: https://github.com/skliarie/ipfs-simulator/blob/master/architecture.txt