ipfs / ipfs/kubo

routing algorithm simulator

Open
#5,630 4 comments 1 reaction 0 assignees View on GitHub
kind/enhancement kind/test
Dominant language
Go
Stars
17.1k
Forks
3.2k
Avg merge
3d 18h
Merged PRs (30d)
11

Description

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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.