StorjOld / storjnode

Low level storj protocol reference implementation.
http://storj.io
MIT License
15 stars 6 forks source link

Improve finding initial neighbors for tests #46

Open F483 opened 8 years ago

F483 commented 8 years ago

While it will not make to much of a difference in the wild, for testing it can improve a lot.

Currently we disable auto refresh (because we of twisted miss/use?) and get all nodes to refresh there neighbours twice, then wait until they are done https://github.com/Storj/storjnode/blob/develop/tests/network/node.py#L88. We don't know when they are done, which means we have to wait longer then needed and increase the test time unnecessarily.

tl;dr find a better way to determine if the nodes are done finding each other.

F483 commented 8 years ago

This seems to make a difference in the wild also as reported by @robertsdotpm

The main problem is that the DHT and relay functions do not preform well under high churn (on startup and network reorg). The best way to handle this may be to monitor the churn and disable (get, put, message) features until churn is lower and queue the calls to those features in the mean time.

This is quite a bit of effort to change and since its mostly on startup I recommend just waiting on start-up for some amount of time as a quick fix.