Exhaustive Networking Tests #269
Description
js-ipfs is really good leveraging several transports to guarantee connectivity, but it is not the best at handling error situations, from Sockets hanging up, other peers leaving and so on.
We need to beef up our networking testing suit, in a gain that we skim all of those errors out, or give better primitives for the users of js-ipfs to handle those situations.
Note that build an app like IPFS on JS is naturally hard on the network side of things, due to the fact that we open really a lot of connections to a lot of endpoints, and we cannot isolate those processes (like you would do with a go routine), one crash that is not handled properly and everything goes down. There has been an attempt to make Node.js core provide a mechanism to solve this issue, domains, but so far, there hasn't been a lot of success from the community in using it and AFAIK, the goal is to remove it from core.
This will be one of my core focus for the next few days, help is appreciated :)