Closed makew0rld closed 5 years ago
I am confused as to why the Travis CI build failed. I am having trouble understanding the log. Does it matter?
I am confused as to why the Travis CI build failed. I am having trouble understanding the log. Does it matter?
My bad. Fix is in latest develop
.
So hopefully this will change things.
Cool! I'll give it a test.
@sahib Great! Let me know if it needs any changes, but everything should pretty much just work, I didn't change a lot. The testing is more long-term, about deciding on good values for HighWater
, LowWater
and GracePeriod
.
Out of curiosity I checked how the ConnMgr.Type
is handled in IPFS:
It is read here, which indicates that an empty string also selects basic but without picking up the low/high water settings. The default value seems to be already basic though. Also tested on my machine:
$ cat /tmp/ali/data/ipfs/config | jq '.Swarm.ConnMgr.Type'
"basic"
I don't think setting it explicitly will make a difference, although it definitely won't hurt. I suggest we leave this PR open for now, if you find some other stuff to tune.
Interesting...
if you find some other stuff to tune
I did change the GracePeriod
, which may help. Also, I noticed you've enabled QUIC. Is it actually being used to connect to remotes?
Is it actually being used to connect to remotes?
I don't know. How can I tell? lsof
would just show me open UDP connections. Probably the equivalent of ipfs swarm addrs
?
I just meant are you using the QUIC muiltaddr to connect to peers, such as /ip4/<address>/udp/<port>/quic
?
brig
dials to other peers via their ID, not by specifying an explicit address. Since I enabled QUIC, I assume that IPFS will use it, if the remote peer is capable of it. But I'm not quite sure how to test that, since all of the code in brig
is agnostic to the type of the connection - I only care if it is a more or less reliable stream.
To be honest I am unsure what IPFS will do at that level at all. Enabling QUIC won't hurt, but I have no idea whether it will use it there or not. Something to look into, perhaps.
I will close that PR, since there are conflicts with develop
due to the now externalized IPFS code. I added the grace period on my side in a82d3013.
Thanks for the efforts!
Ah okay, you're welcome, and thanks for adding it.
The main thing you missed is setting
Swarm.ConnMgr.Type
tobasic
.This is because you didn't change the type, otherwise IPFS wouldn't do anything with those values.
So hopefully this will change things. I also set
Swarm.ConnMgr.GracePeriod
to60s
, which means no connection will close until at least60s
have passed, even ifHighWater
has been reached. This is recommended when lowering theHighWater
andLowWater
values, as it keeps connections from being closed abruptly. You might need to play with these values, but try this config out and see what you think.