First sync after re-entering the network

  • Operating System (Platform and Version): win10
  • App version (at Preferences > About): Aether v2.0.0

Expected Behavior
Getting the latest data should take only some minutes

Actual behavior
I started the app after it was closed for about 10 hours and the first successful outbound connection took about 20 mins. (Status Backend; last outbound unknown, last insert (db) unknown for the first 20 mins, outbound conns in last 15 min: 19)

To Reproduce
see above
Screenshots

Additional Information
I changed these values in advanced settings right in the beginning of using this app:
“MaxInboundConns”: 50,
“MaxOutboundConns”: 10,

I think that many of the nodes i was connected to yesterday went offline and my client had to find an online node. If the last successful sync was hours ago the client should try to contact other nodes more frequently until one (to three) node respond and the client should try nodes with the most up-time first. Too busy contacts should currently not be a problem.

Inbound connections seem to work fine…

Edit: after writing this post i noticed that my last successful outbound con is 42 mins ago, it seems that it is not only a problem with re-entering the network.

Edit2: I noticed that my node ip was wrong and changed the “ExternalIp” in the backend config and restarted the app, now it seems to work again.

That sounds like the external IP change did it, but it’s still worth keeping an eye on. There is only one bootstrap node that is always online, and there’s a few other nodes that are 7/24 online as well, so it’s unlikely that they’re 100% saturated.

Let me know if it happens again. The next build will have a logic that makes sure that the external IP is refreshed every 10 minutes, so that you don’t get stuck in an old IP. The current app only does external IP determination check on its first start, which is a problem if you move places and go to a coffee shop and connect to its wifi, for example.

why is my external ip i report to the other peer critical for the communication?

If you don’t give them your IP, how will they know who they are going to respond to?

This sounds like a fundamental question about how Internet works, you might want to read about it in Wikipedia here: https://en.wikipedia.org/wiki/Internet_protocol_suite which does give a good overview.

I assumed u were using https libraries to communicate to other nodes and not a low level communication. As I know u dont need to know your own ip address in a programming language to use tcp/ip or http because the libraries/kernel are handling that stuff for u.