Repository: netbirdio/netbird

Issue:
When leveraging highly available routing peers in the same location, we experience route flapping periodically.
**Describe the problem**

We're seeing an issue periodically crop up in our ecosystem where we've setup our routing peers in a high availability pair for each environment and in this issue window, random clients will experience route flapping where assets behind the RP nodes are accessible but extremely slow (due to the route flaps).

We've got a variety of 0.27 windows clients in the fleet that have all been able to replicate this behavior and myself this morning experienced this.

Generally the remedy is to shut the windows service down for a few minutes and start it back up, however this is less than ideal long term as we want non-power users to be leveraging this solution and telling them to do technical steps will fall on deaf ears.

As I suspect we're more of an edge case because of this HA setup, we're going to stop the netbird client on one of the two nodes in each location to try and isolate the issue to see if it's related to the HA pair or if it's client side. I just wanted to open this issue to see what we could supply in the meantime to get clarity from other avenues.

**To Reproduce**

Due to the nature it's not reproducible on command. Generally it happens on the first connection of the day, 9 our of 10 days logging in will be fine but that one day it won't.

**Expected behavior**

For the client not to flap when attempting to create a route.

**Are you using NetBird Cloud?**

No. Self Hosted.

**NetBird version**

0.27.10

**NetBird status -d output:**

See attached.

**Screenshots**

See attached output.log

**Additional context**

It looks almost like the routemanager has an issue with one of the RPs, sees the RP come online and flops the routes over to the other node because peer has a slightly better score.. I guess the fix for this would be to make sure that peers are aware they are right next to each other and that it's possible to have a slightly different score for the same environment to ensure it doesn't flap?  Not sure, maybe I am off-base.

[netbird_output.log](https://github.com/user-attachments/files/15889120/netbird_output.log)
[netbird_status_output.txt](https://github.com/user-attachments/files/15889121/netbird_status_output.txt)


Discussion:
@pascal-fischer: Hi @briemann,

I've checked the logs and the score is noticeably different. 0.93... to 2.92... which means the flapping is not due to similar latency to the routing peers. To me it looks like one of the routing peers might be reconnecting (or somewhat attempting) and the connection type is changing between e.g. P2P or relay this way causing the difference of 2 (the rest is due to latency).

Once you have the issue could you gather some debug logs (follow [Debug for a specific time](https://docs.netbird.io/how-to/troubleshooting-client#debug-for-a-specific-time)) to figure out what is causing the score to change so frequently. 
It might also be possible to catch whatever is happening by running netbird status command multiple time over one of the flaps.@briemann: @pascal-fischer sure thing, we turned off one node on all of the high availability pairs this week to do some other testing and will bring them back online next week. At that point i'll try to replicate or see how long it takes and will report back when we're able to.@LeszekBlazewski: Hey @pascal-fischer ,

I just wanted to bump this issue as I am observing the same problems. So far I have been loving the product but the high availability setup results in the above issue described by @briemann.

**Context**

Self hosted netbird server v0.28.4 deployed on public EC2 and netbird routing peers with multiple replicas deployed in three different EKS clusters (each set of routing peers in given cluster is responsible for routing the traffic within the VPC in which it runs). Around 30 users using the whole stack. We are using netbird as a secure way to access our resources running in private subnets. Also all of the netbird routing peers inside kubernetes are running in private subnets and we are spreading them across 3 different availability zones in N.Virginia (which means for each set of peers there are 3 different EC2 nodes in 3 different availability zones). The architecture looks like this:

![image](https://github.com/netbirdio/netbird/assets/34927142/467a731c-c85e-4479-9f83-73a22afe3bba)

**TBH I am not 100% sure wether the connections between peers look like this because they are all showing as relay/relay from my macos client (I assume this is due to the fact that the routing k8s peers are in private subnets).** Actually if I could receive some guidance regarding the setup, wether using private subnets for the netbird client peers is suboptimal in terms of going for a public based peers in each VPC since if I get this right, the TCP/UDP hole punching mechanism sends all of the traffic via public internet regardless where the peers are spawned? Still using private subnets (not publicly routable) means that all connections must be relayed, and if the routing peers would be public routable then we could achieve full P2P connections, right?

**Netbird setup**

<img width="880" alt="image" src="https://github.com/netbirdio/netbird/assets/34927142/cbb415be-031f-4219-8358-106d080cdd82">

**Issue**

From time to time, when connecting to netbird from macos client we see a constantly switching routes which result in a situation where the traffic is being routed across those switching peers and the requests either time out or everything loads really slow. In the client logs it looks more or less like this:

**Macos client logs**

```
2024-07-04T14:04:22+02:00 INFO client/internal/connect.go:119: starting NetBird client version 0.28.4 on darwin/arm64
2024-07-04T14:04:24+02:00 INFO client/internal/routemanager/manager.go:133: Routing setup complete
2024-07-04T14:04:24+02:00 INFO signal/client/grpc.go:158: connected to the Signal Service stream
2024-07-04T14:04:24+02:00 INFO client/internal/engine.go:1479: Network monitor is disabled, not starting
2024-07-04T14:04:24+02:00 INFO client/internal/connect.go:267: Netbird engine started, the IP is: 100.102.77.139/16
2024-07-04T14:04:25+02:00 INFO management/client/grpc.go:164: connected to the Management Service stream
2024-07-04T14:04:25+02:00 WARN client/internal/engine.go:587: running SSH server is not permitted
2024-07-04T14:04:25+02:00 WARN client/internal/routemanager/client.go:164: The network [10.3.0.0/16] has not been assigned a routing peer as no peers from the list [7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs=] are currently connected
2024-07-04T14:04:25+02:00 WARN client/internal/routemanager/client.go:164: The network [10.4.0.0/16] has not been assigned a routing peer as no peers from the list [SShE7zCGnpGEth+h+9pvWZv6HoP0j2JiuoA+g0ag2Vk= zCjlP6SD6UPgBpD13BBn2RlOvKb04MENm9oZXVbDp1w=] are currently connected
2024-07-04T14:04:25+02:00 WARN client/internal/routemanager/client.go:164: The network [10.2.0.0/16] has not been assigned a routing peer as no peers from the list [gMI4O3/mpD2vieMA1fyqdiy6tJ4WpPKs/zCwlglDLl0= B7giAEzzKK0o5LKo/8w0PjjFieNkVg0CAx2CTr8ROCs=] are currently connected
2024-07-04T14:04:25+02:00 WARN client/internal/routemanager/client.go:164: The network [0.0.0.0/0] has not been assigned a routing peer as no peers from the list [7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs=] are currently connected
2024-07-04T14:04:25+02:00 INFO client/internal/dns/host_darwin.go:91: removing match domains from the system
2024-07-04T14:04:25+02:00 INFO client/internal/dns/host_darwin.go:157: added 1 search domains to the state. Domain list: netbird.selfhosted
2024-07-04T14:04:25+02:00 INFO client/internal/acl/manager.go:52: ACL rules processed in: 100.5µs, total rules count: 2
2024-07-04T14:04:26+02:00 INFO iface/bind/udp_mux_universal.go:168: Address 10.4.92.162:51820 is part of routed network 10.4.0.0/16, refusing to write
2024-07-04T14:04:26+02:00 INFO iface/bind/udp_mux_universal.go:168: Address 10.2.74.144:51820 is part of routed network 10.2.0.0/16, refusing to write
2024-07-04T14:04:27+02:00 INFO iface/bind/udp_mux_universal.go:168: Address 10.2.111.3:51820 is part of routed network 10.2.0.0/16, refusing to write
2024-07-04T14:04:27+02:00 INFO iface/bind/udp_mux_universal.go:168: Address 10.3.67.147:51820 is part of routed network 10.3.0.0/16, refusing to write
2024-07-04T14:04:28+02:00 INFO iface/bind/udp_mux_universal.go:168: Address 10.4.107.160:51820 is part of routed network 10.4.0.0/16, refusing to write
2024-07-04T14:04:28+02:00 ERRO util/net/dialer_nonios.go:64: Failed to call dialer hooks: failed to resolve address :51820: lookup : no such host
2024-07-04T14:04:28+02:00 INFO client/internal/peer/conn.go:362: connected to peer zCjlP6SD6UPgBpD13BBn2RlOvKb04MENm9oZXVbDp1w=, endpoint address: 127.0.0.1:57551
2024-07-04T14:04:28+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu307da4u8s73f5d220:cpuho8la4u8s73du51g0 with peer zCjlP6SD6UPgBpD13BBn2RlOvKb04MENm9oZXVbDp1w= with score 0.881377 for network [10.4.0.0/16]
2024-07-04T14:04:28+02:00 ERRO util/net/dialer_nonios.go:64: Failed to call dialer hooks: failed to resolve address :51820: lookup : no such host
2024-07-04T14:04:28+02:00 INFO client/internal/peer/conn.go:362: connected to peer gMI4O3/mpD2vieMA1fyqdiy6tJ4WpPKs/zCwlglDLl0=, endpoint address: 127.0.0.1:62831
2024-07-04T14:04:28+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu3115a4u8s73f5d230:cpuitkta4u8s73du51mg with peer gMI4O3/mpD2vieMA1fyqdiy6tJ4WpPKs/zCwlglDLl0= with score 0.882792 for network [10.2.0.0/16]
2024-07-04T14:04:29+02:00 ERRO util/net/dialer_nonios.go:64: Failed to call dialer hooks: failed to resolve address :51820: lookup : no such host
2024-07-04T14:04:29+02:00 INFO client/internal/peer/conn.go:362: connected to peer B7giAEzzKK0o5LKo/8w0PjjFieNkVg0CAx2CTr8ROCs=, endpoint address: 127.0.0.1:58550
2024-07-04T14:04:29+02:00 ERRO util/net/dialer_nonios.go:64: Failed to call dialer hooks: failed to resolve address :51820: lookup : no such host
2024-07-04T14:04:29+02:00 INFO client/internal/peer/conn.go:362: connected to peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs=, endpoint address: 127.0.0.1:53513
2024-07-04T14:04:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877397 for network [10.3.0.0/16]
2024-07-04T14:04:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877397 for network [0.0.0.0/0]
2024-07-04T14:04:30+02:00 ERRO util/net/dialer_nonios.go:64: Failed to call dialer hooks: failed to resolve address :51820: lookup : no such host
2024-07-04T14:04:30+02:00 INFO client/internal/peer/conn.go:362: connected to peer SShE7zCGnpGEth+h+9pvWZv6HoP0j2JiuoA+g0ag2Vk=, endpoint address: 127.0.0.1:55834
2024-07-04T14:04:41+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:04:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879870 for network [10.3.0.0/16]
2024-07-04T14:04:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879870 for network [0.0.0.0/0]
2024-07-04T14:04:51+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:51+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:04:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876803 for network [0.0.0.0/0]
2024-07-04T14:04:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876803 for network [10.3.0.0/16]
2024-07-04T14:05:01+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:01+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:07+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879549 for network [0.0.0.0/0]
2024-07-04T14:05:07+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879549 for network [10.3.0.0/16]
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:11+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:17+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879403 for network [0.0.0.0/0]
2024-07-04T14:05:17+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879403 for network [10.3.0.0/16]
2024-07-04T14:05:21+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:21+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:27+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878546 for network [10.3.0.0/16]
2024-07-04T14:05:27+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878546 for network [0.0.0.0/0]
2024-07-04T14:05:31+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:31+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:37+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877314 for network [0.0.0.0/0]
2024-07-04T14:05:37+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877314 for network [10.3.0.0/16]
2024-07-04T14:05:41+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:41+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879302 for network [10.3.0.0/16]
2024-07-04T14:05:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879302 for network [0.0.0.0/0]
2024-07-04T14:05:50+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:50+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:05:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880173 for network [0.0.0.0/0]
2024-07-04T14:05:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880173 for network [10.3.0.0/16]
2024-07-04T14:06:00+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:06:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:00+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878042 for network [10.3.0.0/16]
2024-07-04T14:06:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878042 for network [0.0.0.0/0]
2024-07-04T14:06:10+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:10+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:16+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878643 for network [10.3.0.0/16]
2024-07-04T14:06:16+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878643 for network [0.0.0.0/0]
2024-07-04T14:06:19+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:19+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880698 for network [0.0.0.0/0]
2024-07-04T14:06:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880698 for network [10.3.0.0/16]
2024-07-04T14:06:29+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:29+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880049 for network [0.0.0.0/0]
2024-07-04T14:06:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880049 for network [10.3.0.0/16]
2024-07-04T14:06:39+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [10.3.0.0/16]
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.000000 for network [0.0.0.0/0]
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:39+02:00 WARN client/internal/routemanager/client.go:130: peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= has 0 latency
2024-07-04T14:06:45+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879614 for network [10.3.0.0/16]
2024-07-04T14:06:45+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879614 for network [0.0.0.0/0]
2024-07-04T14:06:50+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:06:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:06:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:06:56+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879952 for network [0.0.0.0/0]
2024-07-04T14:06:56+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879952 for network [10.3.0.0/16]
2024-07-04T14:07:00+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879844 for network [10.3.0.0/16]
2024-07-04T14:07:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879844 for network [0.0.0.0/0]
2024-07-04T14:07:10+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:16+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879257 for network [10.3.0.0/16]
2024-07-04T14:07:16+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879257 for network [0.0.0.0/0]
2024-07-04T14:07:20+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878903 for network [0.0.0.0/0]
2024-07-04T14:07:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878903 for network [10.3.0.0/16]
2024-07-04T14:07:30+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877552 for network [0.0.0.0/0]
2024-07-04T14:07:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877552 for network [10.3.0.0/16]
2024-07-04T14:07:40+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878866 for network [10.3.0.0/16]
2024-07-04T14:07:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878866 for network [0.0.0.0/0]
2024-07-04T14:07:51+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:07:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:07:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:07:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879554 for network [10.3.0.0/16]
2024-07-04T14:07:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879554 for network [0.0.0.0/0]
2024-07-04T14:08:00+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:08:00+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:08:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878420 for network [0.0.0.0/0]
2024-07-04T14:08:06+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878420 for network [10.3.0.0/16]
2024-07-04T14:08:09+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:09+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [0.0.0.0/0]
2024-07-04T14:08:09+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.876629 for network [10.3.0.0/16]
2024-07-04T14:08:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878722 for network [0.0.0.0/0]
2024-07-04T14:08:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878722 for network [10.3.0.0/16]
2024-07-04T14:08:20+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:08:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:08:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879727 for network [10.3.0.0/16]
2024-07-04T14:08:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879727 for network [0.0.0.0/0]
2024-07-04T14:08:30+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:08:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:08:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879716 for network [0.0.0.0/0]
2024-07-04T14:08:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879716 for network [10.3.0.0/16]
2024-07-04T14:08:40+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:08:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:08:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879634 for network [10.3.0.0/16]
2024-07-04T14:08:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879634 for network [0.0.0.0/0]
2024-07-04T14:08:50+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:08:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:08:56+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879177 for network [10.3.0.0/16]
2024-07-04T14:08:56+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879177 for network [0.0.0.0/0]
2024-07-04T14:08:59+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:08:59+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:08:59+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877131 for network [10.3.0.0/16]
2024-07-04T14:09:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877131 for network [0.0.0.0/0]
2024-07-04T14:09:09+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:09+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:09+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:09:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879594 for network [0.0.0.0/0]
2024-07-04T14:09:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879594 for network [10.3.0.0/16]
2024-07-04T14:09:18+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:09:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878744 for network [10.3.0.0/16]
2024-07-04T14:09:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878744 for network [0.0.0.0/0]
2024-07-04T14:09:29+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:09:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878762 for network [0.0.0.0/0]
2024-07-04T14:09:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878762 for network [10.3.0.0/16]
2024-07-04T14:09:38+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:09:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879675 for network [0.0.0.0/0]
2024-07-04T14:09:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879675 for network [10.3.0.0/16]
2024-07-04T14:09:48+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:48+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:09:48+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:54+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878353 for network [0.0.0.0/0]
2024-07-04T14:09:54+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878353 for network [10.3.0.0/16]
2024-07-04T14:09:58+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:09:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:09:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:04+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879249 for network [0.0.0.0/0]
2024-07-04T14:10:04+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879249 for network [10.3.0.0/16]
2024-07-04T14:10:08+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:10:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879893 for network [0.0.0.0/0]
2024-07-04T14:10:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879893 for network [10.3.0.0/16]
2024-07-04T14:10:18+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:10:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879589 for network [0.0.0.0/0]
2024-07-04T14:10:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879589 for network [10.3.0.0/16]
2024-07-04T14:10:27+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:27+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:10:27+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:34+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878839 for network [0.0.0.0/0]
2024-07-04T14:10:34+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878839 for network [10.3.0.0/16]
2024-07-04T14:10:37+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:37+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:37+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:10:43+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879805 for network [0.0.0.0/0]
2024-07-04T14:10:43+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879805 for network [10.3.0.0/16]
2024-07-04T14:10:46+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:10:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879471 for network [10.3.0.0/16]
2024-07-04T14:10:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879471 for network [0.0.0.0/0]
2024-07-04T14:10:55+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:10:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:10:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:11:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879148 for network [10.3.0.0/16]
2024-07-04T14:11:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879148 for network [0.0.0.0/0]
2024-07-04T14:11:05+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:11:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:11:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880060 for network [10.3.0.0/16]
2024-07-04T14:11:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880060 for network [0.0.0.0/0]
2024-07-04T14:11:15+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [0.0.0.0/0]
2024-07-04T14:11:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875678 for network [10.3.0.0/16]
2024-07-04T14:11:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878164 for network [10.3.0.0/16]
2024-07-04T14:11:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878164 for network [0.0.0.0/0]
2024-07-04T14:11:25+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:11:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:11:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878394 for network [0.0.0.0/0]
2024-07-04T14:11:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878394 for network [10.3.0.0/16]
2024-07-04T14:11:34+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:34+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:11:34+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:11:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878810 for network [0.0.0.0/0]
2024-07-04T14:11:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878810 for network [10.3.0.0/16]
2024-07-04T14:11:44+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:11:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:11:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876056 for network [10.3.0.0/16]
2024-07-04T14:11:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876056 for network [0.0.0.0/0]
2024-07-04T14:11:55+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:11:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:11:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877230 for network [10.3.0.0/16]
2024-07-04T14:12:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877230 for network [0.0.0.0/0]
2024-07-04T14:12:05+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876873 for network [10.3.0.0/16]
2024-07-04T14:12:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876873 for network [0.0.0.0/0]
2024-07-04T14:12:15+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877509 for network [0.0.0.0/0]
2024-07-04T14:12:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877509 for network [10.3.0.0/16]
2024-07-04T14:12:25+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.864090 for network [0.0.0.0/0]
2024-07-04T14:12:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.864090 for network [10.3.0.0/16]
2024-07-04T14:12:35+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878385 for network [10.3.0.0/16]
2024-07-04T14:12:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878385 for network [0.0.0.0/0]
2024-07-04T14:12:45+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:45+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:12:45+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880014 for network [0.0.0.0/0]
2024-07-04T14:12:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880014 for network [10.3.0.0/16]
2024-07-04T14:12:55+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:12:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:12:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879401 for network [0.0.0.0/0]
2024-07-04T14:13:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879401 for network [10.3.0.0/16]
2024-07-04T14:13:05+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879494 for network [0.0.0.0/0]
2024-07-04T14:13:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879494 for network [10.3.0.0/16]
2024-07-04T14:13:15+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:15+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878681 for network [0.0.0.0/0]
2024-07-04T14:13:21+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878681 for network [10.3.0.0/16]
2024-07-04T14:13:25+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:25+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876027 for network [10.3.0.0/16]
2024-07-04T14:13:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876027 for network [0.0.0.0/0]
2024-07-04T14:13:35+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:35+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879922 for network [10.3.0.0/16]
2024-07-04T14:13:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879922 for network [0.0.0.0/0]
2024-07-04T14:13:44+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:13:44+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879063 for network [0.0.0.0/0]
2024-07-04T14:13:50+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879063 for network [10.3.0.0/16]
2024-07-04T14:13:54+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:13:54+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:13:54+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878803 for network [10.3.0.0/16]
2024-07-04T14:14:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878803 for network [0.0.0.0/0]
2024-07-04T14:14:04+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:04+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:04+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879765 for network [0.0.0.0/0]
2024-07-04T14:14:10+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879765 for network [10.3.0.0/16]
2024-07-04T14:14:14+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878156 for network [0.0.0.0/0]
2024-07-04T14:14:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878156 for network [10.3.0.0/16]
2024-07-04T14:14:24+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:24+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:24+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879349 for network [0.0.0.0/0]
2024-07-04T14:14:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879349 for network [10.3.0.0/16]
2024-07-04T14:14:33+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:33+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:33+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:39+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878820 for network [0.0.0.0/0]
2024-07-04T14:14:39+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878820 for network [10.3.0.0/16]
2024-07-04T14:14:42+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:42+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:42+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:49+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878854 for network [0.0.0.0/0]
2024-07-04T14:14:49+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878854 for network [10.3.0.0/16]
2024-07-04T14:14:52+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:14:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:14:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:14:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880142 for network [0.0.0.0/0]
2024-07-04T14:14:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880142 for network [10.3.0.0/16]
2024-07-04T14:15:02+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877977 for network [0.0.0.0/0]
2024-07-04T14:15:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.877977 for network [10.3.0.0/16]
2024-07-04T14:15:12+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:12+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:12+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880091 for network [10.3.0.0/16]
2024-07-04T14:15:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880091 for network [0.0.0.0/0]
2024-07-04T14:15:23+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:23+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:23+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878801 for network [10.3.0.0/16]
2024-07-04T14:15:29+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878801 for network [0.0.0.0/0]
2024-07-04T14:15:32+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:32+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:32+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878943 for network [0.0.0.0/0]
2024-07-04T14:15:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878943 for network [10.3.0.0/16]
2024-07-04T14:15:42+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:42+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:42+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:48+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879070 for network [0.0.0.0/0]
2024-07-04T14:15:48+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879070 for network [10.3.0.0/16]
2024-07-04T14:15:52+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:15:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:15:52+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:15:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879015 for network [10.3.0.0/16]
2024-07-04T14:15:58+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879015 for network [0.0.0.0/0]
2024-07-04T14:16:02+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:02+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878873 for network [10.3.0.0/16]
2024-07-04T14:16:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878873 for network [0.0.0.0/0]
2024-07-04T14:16:13+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:13+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:13+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:19+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879238 for network [0.0.0.0/0]
2024-07-04T14:16:19+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879238 for network [10.3.0.0/16]
2024-07-04T14:16:22+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:22+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:22+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:28+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879600 for network [0.0.0.0/0]
2024-07-04T14:16:28+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879600 for network [10.3.0.0/16]
2024-07-04T14:16:31+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:31+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878165 for network [0.0.0.0/0]
2024-07-04T14:16:38+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878165 for network [10.3.0.0/16]
2024-07-04T14:16:41+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:41+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878921 for network [10.3.0.0/16]
2024-07-04T14:16:47+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878921 for network [0.0.0.0/0]
2024-07-04T14:16:51+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:16:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:16:51+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:16:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878377 for network [0.0.0.0/0]
2024-07-04T14:16:57+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878377 for network [10.3.0.0/16]
2024-07-04T14:17:01+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:17:01+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:17:07+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878849 for network [10.3.0.0/16]
2024-07-04T14:17:07+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.878849 for network [0.0.0.0/0]
2024-07-04T14:17:11+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:17:11+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:17:17+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879954 for network [0.0.0.0/0]
2024-07-04T14:17:17+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879954 for network [10.3.0.0/16]
2024-07-04T14:17:20+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [0.0.0.0/0]
2024-07-04T14:17:20+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.875484 for network [10.3.0.0/16]
2024-07-04T14:17:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879357 for network [0.0.0.0/0]
2024-07-04T14:17:26+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.879357 for network [10.3.0.0/16]
2024-07-04T14:17:30+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
2024-07-04T14:17:30+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:17:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.875640 for network [10.3.0.0/16]
2024-07-04T14:17:36+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.875640 for network [0.0.0.0/0]
2024-07-04T14:17:40+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
2024-07-04T14:17:40+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:17:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876708 for network [10.3.0.0/16]
2024-07-04T14:17:46+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876708 for network [0.0.0.0/0]
2024-07-04T14:17:49+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:49+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
2024-07-04T14:17:49+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:17:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.875378 for network [10.3.0.0/16]
2024-07-04T14:17:55+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.875378 for network [0.0.0.0/0]
2024-07-04T14:17:59+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:17:59+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:17:59+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
2024-07-04T14:18:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876750 for network [10.3.0.0/16]
2024-07-04T14:18:05+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.876750 for network [0.0.0.0/0]
2024-07-04T14:18:08+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:18:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
2024-07-04T14:18:08+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:18:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880613 for network [10.3.0.0/16]
2024-07-04T14:18:14+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitlla4u8s73du51n0 with peer 2XsMJhp8X8LCRknyVWfZWDKAmfDgjpy13EdkCLwDgBs= with score 0.880613 for network [0.0.0.0/0]
2024-07-04T14:18:18+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
2024-07-04T14:18:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpu30gta4u8s73f5d22g:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [10.3.0.0/16]
2024-07-04T14:18:18+02:00 INFO client/internal/routemanager/client.go:175: New chosen route is cpuj1v5a4u8s73du51og:cpuitkta4u8s73du51m0 with peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo= with score 2.872098 for network [0.0.0.0/0]
```

And the above logs just keep on going. Only a disconnection and then connection again can fix the above issue which sometimes needs to happen few times since it can reoccur. Since I have found this out, I have decreased the number of the netbird peers running inside each kubernetes cluster to 1 from 2 and I couldn't reproduce this issue anymore (once routes are chosen, they are simply used because there is just 1 routing peer). This is of course not ideal because whenever we need to do maintenance on the node which runs the netbird client - we are locked out of given VPC access (until the peer starts up again). So I would really like to restore the HA setup if it would prove to be working OK.


I can provide further logs and other troubleshooting details as needed.
@hurricanehrndz: So I have studied this, one possible workaround is to compare the route update with the current routes, if routes aren't different recalculating of routes should be skipped. This works for us by leveraging the management ACLs we let client have access to routing peers, but block clients from seeing each other@hurricanehrndz: I will submit a PR@hurricanehrndz: @LeszekBlazewski I just looked over your log again, and something else is going on with your setup. It seems to me like one of the routing peer is disconnecting and reconnecting. Did you ever capture the logs of the routing peer and why it is disconnecting and reconnecting? I would turn on debug on the routing peer and capture the log as to why it keeps disconnecting and reconnecting. 

```
2024-07-04T14:18:18+02:00 INFO client/internal/peer/conn.go:362: connected to peer 7bNmizr5SP3tHb+PVKPQlpxjNJ8WRO9TXL1xSWkgCRo=, endpoint address: 10.3.90.209:51820
```
My PR would do very little in this situation. Because `getBestRoute` would be called in this situation. To add I don't think latency is the issue at play here, not to mention that the logs show that latency is pretty stable with little to no deviation. 

Additionally, I believe that one of the routing peer is making a direct connection to the client via the other routing peer's tunnel. I say this because [the score of the one routing peer is 2points better than the other](https://github.com/netbirdio/netbird/blob/main/client/internal/routemanager/client.go#L135). 

So perhaps the solution for your situation would be to ensure that port 51820 is not accessible on the private address space or disable the relay and make the routing peers publicly accessible.

To answer your question, I trust more the wireguard tech then I do STUN, so I rather avoid using relay when possible and just have a public subnet@LeszekBlazewski: Than you for the detailed answer @hurricanehrndz. I appreciate all of your feedback. It makes sense, I will move my routing peers to a public subnet and check the setup again.@LeszekBlazewski: Hi @hurricanehrndz,

I have a quick question regarding your suggested changes:

> So perhaps the solution for your situation would be to ensure that port 51820 is not accessible on the private address space or disable the relay and make the routing peers publicly accessible.

I have executed some tests by moving the netbird routing peers to public subnets but have observed a situation where the routing peers would join randomly as either P2P with connection `Direct: true` or same as before with `relay/relay` connection type. (Observed from my macos peer who uses those peers for routing traffic for a HA network route that is specified for `10.X.0.0/16`).

As you mentioned those 2 routing peers are running in 2 different public AWS subnets (same VPC) but I was wondering why relay connections are chosen instead of direct even if the routing peers are made public. The AWS subnets in which those 2 peers run only have to routes in their routing table:

1. Route for `0.0.0.0/0` pointing to internet gateway
2. Route for `10.X.0.0/16` pointing to local  (so resources running in private subnets are accessible from public subnet)

I started to think, that as you said, the following is probably true:

>  I believe that one of the routing peer is making a direct connection to the client via the other routing peer's tunnel. So perhaps the solution for your situation would be to ensure that port 51820 is not accessible on the private address space

I am just not 100% sure wether I understand this correctly, by private space you mean the whole `10.X.0.0/16` range (the VPC CIDR block), right? In that case to avoid those connections to go through the other peer tunnel, I would have to add a firewall rule on the public routing peers that would block the `10.X.0.0/16` range on the WG port `51820`? Smth like this?:

```
WG_PORT=51820
sudo iptables -A INPUT -p udp --dport $WG_PORT -s 10.X.0.0/16 -j DROP
```

@LeszekBlazewski: Quick update to the above. I have run further tests and it turned out that the constant reconnecting peer (that can be observed in the logs above) was present due to the usage of an exit node. One of the set of routing peers was assigned as an exit node and that caused constant jumping of connections on few other peers from P2P to relay which made the connection very unreliable. On the debug logs I have observed that as @hurricanehrndz pointed out, one of the peers was trying to use the other peers tunnel.

Moreover after disabling the exit node and running some tests I have noticed that in order to have proper P2P direct connection to a public EC2 netbird client one has to open up the 51820 port for all UDP traffic. Without that, I was able to connect to the peer but the connection from my macos peer was shown as relay for most of the time and only sometimes went as P2P. As soon as I opened the port, it's always P2P. It's something that has been mentioned here: https://github.com/netbirdio/netbird/issues/254#issuecomment-2229534046.

Since I have been planning to move to a full split DNS and routing setup, the above mentioned issue is solved for me. Thank you all for providing such enormous amount of information. Netbird is a great product, keep up the good work! @hurricanehrndz: > Quick update to the above. I have run further tests and it turned out that the constant reconnecting peer (that can be observed in the logs above) was present due to the usage of an exit node. One of the set of routing peers was assigned as an exit node and that caused constant jumping of connections on few other peers from P2P to relay which made the connection very unreliable. On the debug logs I have observed that as @hurricanehrndz pointed out, one of the peers was trying to use the other peers tunnel.
> 
> 
> 
> Moreover after disabling the exit node and running some tests I have noticed that in order to have proper P2P direct connection to a public EC2 netbird client one has to open up the 51820 port for all UDP traffic. Without that, I was able to connect to the peer but the connection from my macos peer was shown as relay for most of the time and only sometimes went as P2P. As soon as I opened the port, it's always P2P. It's something that has been mentioned here: https://github.com/netbirdio/netbird/issues/254#issuecomment-2229534046.
> 
> 
> 
> Since I have been planning to move to a full split DNS and routing setup, the above mentioned issue is solved for me. Thank you all for providing such enormous amount of information. Netbird is a great product, keep up the good work! 

Ah yeah opening the port is key. Glad you figured it out@nazarewk: @briemann Did you resolve the issue? Any idea whether this is still happening with the latest NetBird version?@briemann: @nazarewk We upgraded 0.27.5 -> 0.36.5 of the management plane a month back and haven't seen issues since. We can close out this issue, thanks!

Solution patch:
diff --git a/client/internal/routemanager/client.go b/client/internal/routemanager/client.go
index 3c230df2..92c71b1e 100644
--- a/client/internal/routemanager/client.go
+++ b/client/internal/routemanager/client.go
@@ -3,6 +3,7 @@ package routemanager
 import (
 	"context"
 	"fmt"
+	"reflect"
 	"time"
 
 	"github.com/hashicorp/go-multierror"
@@ -309,22 +310,33 @@ func (c *clientNetwork) sendUpdateToClientNetworkWatcher(update routesUpdate) {
 	}()
 }
 
-func (c *clientNetwork) handleUpdate(update routesUpdate) {
+func (c *clientNetwork) handleUpdate(update routesUpdate) bool {
+	isUpdateMapDifferent := false
 	updateMap := make(map[route.ID]*route.Route)
 
 	for _, r := range update.routes {
 		updateMap[r.ID] = r
 	}
 
+	if len(c.routes) != len(updateMap) {
+		isUpdateMapDifferent = true
+	}
+
 	for id, r := range c.routes {
 		_, found := updateMap[id]
 		if !found {
 			close(c.routePeersNotifiers[r.Peer])
 			delete(c.routePeersNotifiers, r.Peer)
+			isUpdateMapDifferent = true
+			continue
+		}
+		if !reflect.DeepEqual(c.routes[id], updateMap[id]) {
+			isUpdateMapDifferent = true
 		}
 	}
 
 	c.routes = updateMap
+	return isUpdateMapDifferent
 }
 
 // peersStateAndUpdateWatcher is the main point of reacting on client network routing events.
@@ -351,13 +363,19 @@ func (c *clientNetwork) peersStateAndUpdateWatcher() {
 
 			log.Debugf("Received a new client network route update for [%v]", c.handler)
 
-			c.handleUpdate(update)
+			// hash update somehow
+			isTrueRouteUpdate := c.handleUpdate(update)
 
 			c.updateSerial = update.updateSerial
 
-			err := c.recalculateRouteAndUpdatePeerAndSystem()
-			if err != nil {
-				log.Errorf("Failed to recalculate routes for network [%v]: %v", c.handler, err)
+			if isTrueRouteUpdate {
+				log.Debug("Client network update contains different routes, recalculating routes")
+				err := c.recalculateRouteAndUpdatePeerAndSystem()
+				if err != nil {
+					log.Errorf("Failed to recalculate routes for network [%v]: %v", c.handler, err)
+				}
+			} else {
+				log.Debug("Route update is not different, skipping route recalculation")
 			}
 
 			c.startPeersStatusChangeWatcher()
diff --git a/client/internal/routemanager/manager.go b/client/internal/routemanager/manager.go
index 0673ea6c..0b10dbe3 100644
--- a/client/internal/routemanager/manager.go
+++ b/client/internal/routemanager/manager.go
@@ -16,6 +16,7 @@ import (
 	firewall "github.com/netbirdio/netbird/client/firewall/manager"
 	"github.com/netbirdio/netbird/client/internal/listener"
 	"github.com/netbirdio/netbird/client/internal/peer"
+	"github.com/netbirdio/netbird/client/internal/routemanager/notifier"
 	"github.com/netbirdio/netbird/client/internal/routemanager/refcounter"
 	"github.com/netbirdio/netbird/client/internal/routemanager/systemops"
 	"github.com/netbirdio/netbird/client/internal/routemanager/vars"
@@ -50,7 +51,7 @@ type DefaultManager struct {
 	statusRecorder       *peer.Status
 	wgInterface          *iface.WGIface
 	pubKey               string
-	notifier             *notifier
+	notifier             *notifier.Notifier
 	routeRefCounter      *refcounter.RouteRefCounter
 	allowedIPsRefCounter *refcounter.AllowedIPsRefCounter
 	dnsRouteInterval     time.Duration
@@ -65,7 +66,8 @@ func NewManager(
 	initialRoutes []*route.Route,
 ) *DefaultManager {
 	mCTX, cancel := context.WithCancel(ctx)
-	sysOps := systemops.NewSysOps(wgInterface)
+	notifier := notifier.NewNotifier()
+	sysOps := systemops.NewSysOps(wgInterface, notifier)
 
 	dm := &DefaultManager{
 		ctx:              mCTX,
@@ -77,7 +79,7 @@ func NewManager(
 		statusRecorder:   statusRecorder,
 		wgInterface:      wgInterface,
 		pubKey:           pubKey,
-		notifier:         newNotifier(),
+		notifier:         notifier,
 	}
 
 	dm.routeRefCounter = refcounter.New(
@@ -107,7 +109,7 @@ func NewManager(
 
 	if runtime.GOOS == "android" {
 		cr := dm.clientRoutes(initialRoutes)
-		dm.notifier.setInitialClientRoutes(cr)
+		dm.notifier.SetInitialClientRoutes(cr)
 	}
 	return dm
 }
@@ -186,7 +188,7 @@ func (m *DefaultManager) UpdateRoutes(updateSerial uint64, newRoutes []*route.Ro
 
 		filteredClientRoutes := m.routeSelector.FilterSelected(newClientRoutesIDMap)
 		m.updateClientNetworks(updateSerial, filteredClientRoutes)
-		m.notifier.onNewRoutes(filteredClientRoutes)
+		m.notifier.OnNewRoutes(filteredClientRoutes)
 
 		if m.serverRouter != nil {
 			err := m.serverRouter.updateRoutes(newServerRoutesMap)
@@ -199,14 +201,14 @@ func (m *DefaultManager) UpdateRoutes(updateSerial uint64, newRoutes []*route.Ro
 	}
 }
 
-// SetRouteChangeListener set RouteListener for route change notifier
+// SetRouteChangeListener set RouteListener for route change Notifier
 func (m *DefaultManager) SetRouteChangeListener(listener listener.NetworkChangeListener) {
-	m.notifier.setListener(listener)
+	m.notifier.SetListener(listener)
 }
 
 // InitialRouteRange return the list of initial routes. It used by mobile systems
 func (m *DefaultManager) InitialRouteRange() []string {
-	return m.notifier.getInitialRouteRanges()
+	return m.notifier.GetInitialRouteRanges()
 }
 
 // GetRouteSelector returns the route selector
@@ -226,7 +228,7 @@ func (m *DefaultManager) TriggerSelection(networks route.HAMap) {
 
 	networks = m.routeSelector.FilterSelected(networks)
 
-	m.notifier.onNewRoutes(networks)
+	m.notifier.OnNewRoutes(networks)
 
 	m.stopObsoleteClients(networks)
 
diff --git a/client/internal/routemanager/notifier.go b/client/internal/routemanager/notifier/notifier.go
similarity index 67%
rename from client/internal/routemanager/notifier.go
rename to client/internal/routemanager/notifier/notifier.go
index b606c79d..ebdd6032 100644
--- a/client/internal/routemanager/notifier.go
+++ b/client/internal/routemanager/notifier/notifier.go
@@ -1,6 +1,7 @@
-package routemanager
+package notifier
 
 import (
+	"net/netip"
 	"runtime"
 	"sort"
 	"strings"
@@ -10,7 +11,7 @@ import (
 	"github.com/netbirdio/netbird/route"
 )
 
-type notifier struct {
+type Notifier struct {
 	initialRouteRanges []string
 	routeRanges        []string
 
@@ -18,17 +19,17 @@ type notifier struct {
 	listenerMux sync.Mutex
 }
 
-func newNotifier() *notifier {
-	return &notifier{}
+func NewNotifier() *Notifier {
+	return &Notifier{}
 }
 
-func (n *notifier) setListener(listener listener.NetworkChangeListener) {
+func (n *Notifier) SetListener(listener listener.NetworkChangeListener) {
 	n.listenerMux.Lock()
 	defer n.listenerMux.Unlock()
 	n.listener = listener
 }
 
-func (n *notifier) setInitialClientRoutes(clientRoutes []*route.Route) {
+func (n *Notifier) SetInitialClientRoutes(clientRoutes []*route.Route) {
 	nets := make([]string, 0)
 	for _, r := range clientRoutes {
 		nets = append(nets, r.Network.String())
@@ -37,7 +38,10 @@ func (n *notifier) setInitialClientRoutes(clientRoutes []*route.Route) {
 	n.initialRouteRanges = nets
 }
 
-func (n *notifier) onNewRoutes(idMap route.HAMap) {
+func (n *Notifier) OnNewRoutes(idMap route.HAMap) {
+	if runtime.GOOS != "android" {
+		return
+	}
 	newNets := make([]string, 0)
 	for _, routes := range idMap {
 		for _, r := range routes {
@@ -62,7 +66,30 @@ func (n *notifier) onNewRoutes(idMap route.HAMap) {
 	n.notify()
 }
 
-func (n *notifier) notify() {
+func (n *Notifier) OnNewPrefixes(prefixes []netip.Prefix) {
+	newNets := make([]string, 0)
+	for _, prefix := range prefixes {
+		newNets = append(newNets, prefix.String())
+	}
+
+	sort.Strings(newNets)
+	switch runtime.GOOS {
+	case "android":
+		if !n.hasDiff(n.initialRouteRanges, newNets) {
+			return
+		}
+	default:
+		if !n.hasDiff(n.routeRanges, newNets) {
+			return
+		}
+	}
+
+	n.routeRanges = newNets
+
+	n.notify()
+}
+
+func (n *Notifier) notify() {
 	n.listenerMux.Lock()
 	defer n.listenerMux.Unlock()
 	if n.listener == nil {
@@ -74,7 +101,7 @@ func (n *notifier) notify() {
 	}(n.listener)
 }
 
-func (n *notifier) hasDiff(a []string, b []string) bool {
+func (n *Notifier) hasDiff(a []string, b []string) bool {
 	if len(a) != len(b) {
 		return true
 	}
@@ -86,7 +113,7 @@ func (n *notifier) hasDiff(a []string, b []string) bool {
 	return false
 }
 
-func (n *notifier) getInitialRouteRanges() []string {
+func (n *Notifier) GetInitialRouteRanges() []string {
 	return addIPv6RangeIfNeeded(n.initialRouteRanges)
 }
 
diff --git a/client/internal/routemanager/systemops/systemops.go b/client/internal/routemanager/systemops/systemops.go
index 9ee51538..cddd7e7e 100644
--- a/client/internal/routemanager/systemops/systemops.go
+++ b/client/internal/routemanager/systemops/systemops.go
@@ -3,7 +3,9 @@ package systemops
 import (
 	"net"
 	"net/netip"
+	"sync"
 
+	"github.com/netbirdio/netbird/client/internal/routemanager/notifier"
 	"github.com/netbirdio/netbird/client/internal/routemanager/refcounter"
 	"github.com/netbirdio/netbird/iface"
 )
@@ -18,10 +20,19 @@ type ExclusionCounter = refcounter.Counter[any, Nexthop]
 type SysOps struct {
 	refCounter  *ExclusionCounter
 	wgInterface *iface.WGIface
+	// prefixes is tracking all the current added prefixes im memory
+	// (this is used in iOS as all route updates require a full table update)
+	//nolint
+	prefixes map[netip.Prefix]struct{}
+	//nolint
+	mu sync.Mutex
+	// notifier is used to notify the system of route changes (also used on mobile)
+	notifier *notifier.Notifier
 }
 
-func NewSysOps(wgInterface *iface.WGIface) *SysOps {
+func NewSysOps(wgInterface *iface.WGIface, notifier *notifier.Notifier) *SysOps {
 	return &SysOps{
 		wgInterface: wgInterface,
+		notifier:    notifier,
 	}
 }
diff --git a/client/internal/routemanager/systemops/systemops_mobile.go b/client/internal/routemanager/systemops/systemops_android.go
similarity index 96%
rename from client/internal/routemanager/systemops/systemops_mobile.go
rename to client/internal/routemanager/systemops/systemops_android.go
index 43815c65..5e97a4a5 100644
--- a/client/internal/routemanager/systemops/systemops_mobile.go
+++ b/client/internal/routemanager/systemops/systemops_android.go
@@ -1,4 +1,4 @@
-//go:build ios || android
+//go:build android
 
 package systemops
 
diff --git a/client/internal/routemanager/systemops/systemops_ios.go b/client/internal/routemanager/systemops/systemops_ios.go
new file mode 100644
index 00000000..7cfb2b29
--- /dev/null
+++ b/client/internal/routemanager/systemops/systemops_ios.go
@@ -0,0 +1,64 @@
+//go:build ios
+
+package systemops
+
+import (
+	"net"
+	"net/netip"
+	"runtime"
+
+	log "github.com/sirupsen/logrus"
+
+	nbnet "github.com/netbirdio/netbird/util/net"
+)
+
+func (r *SysOps) SetupRouting([]net.IP) (nbnet.AddHookFunc, nbnet.RemoveHookFunc, error) {
+	r.mu.Lock()
+	defer r.mu.Unlock()
+	r.prefixes = make(map[netip.Prefix]struct{})
+	return nil, nil, nil
+}
+
+func (r *SysOps) CleanupRouting() error {
+	r.mu.Lock()
+	defer r.mu.Unlock()
+
+	r.prefixes = make(map[netip.Prefix]struct{})
+	r.notify()
+	return nil
+}
+
+func (r *SysOps) AddVPNRoute(prefix netip.Prefix, _ *net.Interface) error {
+	r.mu.Lock()
+	defer r.mu.Unlock()
+
+	r.prefixes[prefix] = struct{}{}
+	r.notify()
+	return nil
+}
+
+func (r *SysOps) RemoveVPNRoute(prefix netip.Prefix, _ *net.Interface) error {
+	r.mu.Lock()
+	defer r.mu.Unlock()
+
+	delete(r.prefixes, prefix)
+	r.notify()
+	return nil
+}
+
+func EnableIPForwarding() error {
+	log.Infof("Enable IP forwarding is not implemented on %s", runtime.GOOS)
+	return nil
+}
+
+func IsAddrRouted(netip.Addr, []netip.Prefix) (bool, netip.Prefix) {
+	return false, netip.Prefix{}
+}
+
+func (r *SysOps) notify() {
+	prefixes := make([]netip.Prefix, 0, len(r.prefixes))
+	for prefix := range r.prefixes {
+		prefixes = append(prefixes, prefix)
+	}
+	r.notifier.OnNewPrefixes(prefixes)
+}
diff --git a/client/ios/NetBirdSDK/client.go b/client/ios/NetBirdSDK/client.go
index d96f035d..d80072c7 100644
--- a/client/ios/NetBirdSDK/client.go
+++ b/client/ios/NetBirdSDK/client.go
@@ -19,6 +19,7 @@ import (
 	"github.com/netbirdio/netbird/client/internal/peer"
 	"github.com/netbirdio/netbird/client/system"
 	"github.com/netbirdio/netbird/formatter"
+	"github.com/netbirdio/netbird/management/domain"
 	"github.com/netbirdio/netbird/route"
 )
 
@@ -47,6 +48,7 @@ type CustomLogger interface {
 type selectRoute struct {
 	NetID    string
 	Network  netip.Prefix
+	Domains  domain.List
 	Selected bool
 }
 
@@ -279,6 +281,7 @@ func (c *Client) GetRoutesSelectionDetails() (*RoutesSelectionDetails, error) {
 		route := &selectRoute{
 			NetID:    string(id),
 			Network:  rt[0].Network,
+			Domains:  rt[0].Domains,
 			Selected: routeSelector.IsSelected(id),
 		}
 		routes = append(routes, route)
@@ -299,17 +302,40 @@ func (c *Client) GetRoutesSelectionDetails() (*RoutesSelectionDetails, error) {
 		return iPrefix < jPrefix
 	})
 
+	resolvedDomains := c.recorder.GetResolvedDomainsStates()
+
+	return prepareRouteSelectionDetails(routes, resolvedDomains), nil
+
+}
+
+func prepareRouteSelectionDetails(routes []*selectRoute, resolvedDomains map[domain.Domain][]netip.Prefix) *RoutesSelectionDetails {
 	var routeSelection []RoutesSelectionInfo
 	for _, r := range routes {
+		domainList := make([]DomainInfo, 0)
+		for _, d := range r.Domains {
+			domainResp := DomainInfo{
+				Domain: d.SafeString(),
+			}
+			if prefixes, exists := resolvedDomains[d]; exists {
+				var ipStrings []string
+				for _, prefix := range prefixes {
+					ipStrings = append(ipStrings, prefix.Addr().String())
+				}
+				domainResp.ResolvedIPs = strings.Join(ipStrings, ", ")
+			}
+			domainList = append(domainList, domainResp)
+		}
+		domainDetails := DomainDetails{items: domainList}
 		routeSelection = append(routeSelection, RoutesSelectionInfo{
 			ID:       r.NetID,
 			Network:  r.Network.String(),
+			Domains:  &domainDetails,
 			Selected: r.Selected,
 		})
 	}
 
 	routeSelectionDetails := RoutesSelectionDetails{items: routeSelection}
-	return &routeSelectionDetails, nil
+	return &routeSelectionDetails
 }
 
 func (c *Client) SelectRoute(id string) error {
diff --git a/client/ios/NetBirdSDK/routes.go b/client/ios/NetBirdSDK/routes.go
index 63536255..30d0d0d0 100644
--- a/client/ios/NetBirdSDK/routes.go
+++ b/client/ios/NetBirdSDK/routes.go
@@ -16,9 +16,25 @@ type RoutesSelectionDetails struct {
 type RoutesSelectionInfo struct {
 	ID       string
 	Network  string
+	Domains  *DomainDetails
 	Selected bool
 }
 
+type DomainCollection interface {
+	Add(s DomainInfo) DomainCollection
+	Get(i int) *DomainInfo
+	Size() int
+}
+
+type DomainDetails struct {
+	items []DomainInfo
+}
+
+type DomainInfo struct {
+	Domain      string
+	ResolvedIPs string
+}
+
 // Add new PeerInfo to the collection
 func (array RoutesSelectionDetails) Add(s RoutesSelectionInfo) RoutesSelectionDetails {
 	array.items = append(array.items, s)
@@ -34,3 +50,16 @@ func (array RoutesSelectionDetails) Get(i int) *RoutesSelectionInfo {
 func (array RoutesSelectionDetails) Size() int {
 	return len(array.items)
 }
+
+func (array DomainDetails) Add(s DomainInfo) DomainCollection {
+	array.items = append(array.items, s)
+	return array
+}
+
+func (array DomainDetails) Get(i int) *DomainInfo {
+	return &array.items[i]
+}
+
+func (array DomainDetails) Size() int {
+	return len(array.items)
+}
diff --git a/client/system/info_linux.go b/client/system/info_linux.go
index d85a6fae..db58d913 100644
--- a/client/system/info_linux.go
+++ b/client/system/info_linux.go
@@ -8,6 +8,7 @@ import (
 	"context"
 	"os"
 	"os/exec"
+	"regexp"
 	"runtime"
 	"strings"
 	"time"
@@ -89,9 +90,17 @@ func _getInfo() string {
 func sysInfo() (serialNumber string, productName string, manufacturer string) {
 	var si sysinfo.SysInfo
 	si.GetSysInfo()
+	isascii := regexp.MustCompile("^[[:ascii:]]+$")
 	serial := si.Chassis.Serial
 	if (serial == "Default string" || serial == "") && si.Product.Serial != "" {
 		serial = si.Product.Serial
 	}
-	return serial, si.Product.Name, si.Product.Vendor
+	if (!isascii.MatchString(serial)) && si.Board.Serial != "" {
+		serial = si.Board.Serial
+	}
+	name := si.Product.Name
+	if (!isascii.MatchString(name)) && si.Board.Name != "" {
+		name = si.Board.Name
+	}
+	return serial, name, si.Product.Vendor
 }
diff --git a/client/ui/client_ui.go b/client/ui/client_ui.go
index 67f3ef07..58004dd4 100644
--- a/client/ui/client_ui.go
+++ b/client/ui/client_ui.go
@@ -15,7 +15,6 @@ import (
 	"strconv"
 	"strings"
 	"sync"
-	"syscall"
 	"time"
 	"unicode"
 
@@ -34,6 +33,7 @@ import (
 	"github.com/netbirdio/netbird/client/internal"
 	"github.com/netbirdio/netbird/client/proto"
 	"github.com/netbirdio/netbird/client/system"
+	"github.com/netbirdio/netbird/util"
 	"github.com/netbirdio/netbird/version"
 )
 
@@ -62,8 +62,25 @@ func main() {
 	var errorMSG string
 	flag.StringVar(&errorMSG, "error-msg", "", "displays a error message window")
 
+	tmpDir := "/tmp"
+	if runtime.GOOS == "windows" {
+		tmpDir = os.TempDir()
+	}
+
+	var saveLogsInFile bool
+	flag.BoolVar(&saveLogsInFile, "use-log-file", false, fmt.Sprintf("save logs in a file: %s/netbird-ui-PID.log", tmpDir))
+
 	flag.Parse()
 
+	if saveLogsInFile {
+		logFile := path.Join(tmpDir, fmt.Sprintf("netbird-ui-%d.log", os.Getpid()))
+		err := util.InitLog("trace", logFile)
+		if err != nil {
+			log.Errorf("error while initializing log: %v", err)
+			return
+		}
+	}
+
 	a := app.NewWithID("NetBird")
 	a.SetIcon(fyne.NewStaticResource("netbird", iconDisconnectedPNG))
 
@@ -76,8 +93,12 @@ func main() {
 	if showSettings || showRoutes {
 		a.Run()
 	} else {
-		if err := checkPIDFile(); err != nil {
-			log.Errorf("check PID file: %v", err)
+		running, err := isAnotherProcessRunning()
+		if err != nil {
+			log.Errorf("error while checking process: %v", err)
+		}
+		if running {
+			log.Warn("another process is running")
 			return
 		}
 		client.setDefaultFonts()
@@ -861,19 +882,3 @@ func openURL(url string) error {
 	}
 	return err
 }
-
-// checkPIDFile exists and return error, or write new.
-func checkPIDFile() error {
-	pidFile := path.Join(os.TempDir(), "wiretrustee-ui.pid")
-	if piddata, err := os.ReadFile(pidFile); err == nil {
-		if pid, err := strconv.Atoi(string(piddata)); err == nil {
-			if process, err := os.FindProcess(pid); err == nil {
-				if err := process.Signal(syscall.Signal(0)); err == nil {
-					return fmt.Errorf("process already exists: %d", pid)
-				}
-			}
-		}
-	}
-
-	return os.WriteFile(pidFile, []byte(fmt.Sprintf("%d", os.Getpid())), 0o664) //nolint:gosec
-}
diff --git a/client/ui/process.go b/client/ui/process.go
new file mode 100644
index 00000000..bcb3dd87
--- /dev/null
+++ b/client/ui/process.go
@@ -0,0 +1,37 @@
+package main
+
+import (
+	"os"
+	"path/filepath"
+	"strings"
+
+	"github.com/shirou/gopsutil/v3/process"
+)
+
+func isAnotherProcessRunning() (bool, error) {
+	processes, err := process.Processes()
+	if err != nil {
+		return false, err
+	}
+
+	pid := os.Getpid()
+	processName := strings.ToLower(filepath.Base(os.Args[0]))
+
+	for _, p := range processes {
+		if int(p.Pid) == pid {
+			continue
+		}
+
+		runningProcessPath, err := p.Exe()
+		// most errors are related to short-lived processes
+		if err != nil {
+			continue
+		}
+
+		if strings.Contains(strings.ToLower(runningProcessPath), processName) && isProcessOwnedByCurrentUser(p) {
+			return true, nil
+		}
+	}
+
+	return false, nil
+}
diff --git a/client/ui/process_nonwindows.go b/client/ui/process_nonwindows.go
new file mode 100644
index 00000000..0d17be2b
--- /dev/null
+++ b/client/ui/process_nonwindows.go
@@ -0,0 +1,26 @@
+//go:build !windows
+
+package main
+
+import (
+	"os"
+
+	"github.com/shirou/gopsutil/v3/process"
+	log "github.com/sirupsen/logrus"
+)
+
+func isProcessOwnedByCurrentUser(p *process.Process) bool {
+	currentUserID := os.Getuid()
+	uids, err := p.Uids()
+	if err != nil {
+		log.Errorf("get process uids: %v", err)
+		return false
+	}
+	for _, id := range uids {
+		log.Debugf("checking process uid: %d", id)
+		if int(id) == currentUserID {
+			return true
+		}
+	}
+	return false
+}
diff --git a/client/ui/process_windows.go b/client/ui/process_windows.go
new file mode 100644
index 00000000..b15b0ed2
--- /dev/null
+++ b/client/ui/process_windows.go
@@ -0,0 +1,24 @@
+package main
+
+import (
+	"os/user"
+
+	"github.com/shirou/gopsutil/v3/process"
+	log "github.com/sirupsen/logrus"
+)
+
+func isProcessOwnedByCurrentUser(p *process.Process) bool {
+	processUsername, err := p.Username()
+	if err != nil {
+		log.Errorf("get process username error: %v", err)
+		return false
+	}
+
+	currUser, err := user.Current()
+	if err != nil {
+		log.Errorf("get current user error: %v", err)
+		return false
+	}
+
+	return processUsername == currUser.Username
+}
diff --git a/iface/tun_android.go b/iface/tun_android.go
index dc6abea3..50499309 100644
--- a/iface/tun_android.go
+++ b/iface/tun_android.go
@@ -64,7 +64,7 @@ func (t *wgTunDevice) Create(routes []string, dns string, searchDomains []string
 	t.wrapper = newDeviceWrapper(tunDevice)
 
 	log.Debugf("attaching to interface %v", name)
-	t.device = device.NewDevice(t.wrapper, t.iceBind, device.NewLogger(device.LogLevelSilent, "[wiretrustee] "))
+	t.device = device.NewDevice(t.wrapper, t.iceBind, device.NewLogger(wgLogLevel(), "[wiretrustee] "))
 	// without this property mobile devices can discover remote endpoints if the configured one was wrong.
 	// this helps with support for the older NetBird clients that had a hardcoded direct mode
 	// t.device.DisableSomeRoamingForBrokenMobileSemantics()
diff --git a/iface/tun_darwin.go b/iface/tun_darwin.go
index 7d684f52..364e5dfa 100644
--- a/iface/tun_darwin.go
+++ b/iface/tun_darwin.go
@@ -49,7 +49,7 @@ func (t *tunDevice) Create() (wgConfigurer, error) {
 	t.device = device.NewDevice(
 		t.wrapper,
 		t.iceBind,
-		device.NewLogger(device.LogLevelSilent, "[netbird] "),
+		device.NewLogger(wgLogLevel(), "[netbird] "),
 	)
 
 	err = t.assignAddr()
diff --git a/iface/tun_ios.go b/iface/tun_ios.go
index 83e26e08..6d53cc33 100644
--- a/iface/tun_ios.go
+++ b/iface/tun_ios.go
@@ -64,7 +64,7 @@ func (t *tunDevice) Create() (wgConfigurer, error) {
 
 	t.wrapper = newDeviceWrapper(tunDevice)
 	log.Debug("Attaching to interface")
-	t.device = device.NewDevice(t.wrapper, t.iceBind, device.NewLogger(device.LogLevelSilent, "[wiretrustee] "))
+	t.device = device.NewDevice(t.wrapper, t.iceBind, device.NewLogger(wgLogLevel(), "[wiretrustee] "))
 	// without this property mobile devices can discover remote endpoints if the configured one was wrong.
 	// this helps with support for the older NetBird clients that had a hardcoded direct mode
 	// t.device.DisableSomeRoamingForBrokenMobileSemantics()
diff --git a/iface/tun_netstack.go b/iface/tun_netstack.go
index beb3acc3..df2f75c4 100644
--- a/iface/tun_netstack.go
+++ b/iface/tun_netstack.go
@@ -54,7 +54,7 @@ func (t *tunNetstackDevice) Create() (wgConfigurer, error) {
 	t.device = device.NewDevice(
 		t.wrapper,
 		t.iceBind,
-		device.NewLogger(device.LogLevelSilent, "[netbird] "),
+		device.NewLogger(wgLogLevel(), "[netbird] "),
 	)
 
 	t.configurer = newWGUSPConfigurer(t.device, t.name)
diff --git a/iface/tun_usp_unix.go b/iface/tun_usp_unix.go
index b18794b2..814c9ca8 100644
--- a/iface/tun_usp_unix.go
+++ b/iface/tun_usp_unix.go
@@ -57,7 +57,7 @@ func (t *tunUSPDevice) Create() (wgConfigurer, error) {
 	t.device = device.NewDevice(
 		t.wrapper,
 		t.iceBind,
-		device.NewLogger(device.LogLevelSilent, "[netbird] "),
+		device.NewLogger(wgLogLevel(), "[netbird] "),
 	)
 
 	err = t.assignAddr()
diff --git a/iface/tun_windows.go b/iface/tun_windows.go
index 5c77f1d1..0d658059 100644
--- a/iface/tun_windows.go
+++ b/iface/tun_windows.go
@@ -41,6 +41,7 @@ func newTunDevice(name string, address WGAddress, port int, key string, mtu int,
 }
 
 func (t *tunDevice) Create() (wgConfigurer, error) {
+	log.Info("create tun interface")
 	tunDevice, err := tun.CreateTUN(t.name, t.mtu)
 	if err != nil {
 		return nil, err
@@ -52,7 +53,7 @@ func (t *tunDevice) Create() (wgConfigurer, error) {
 	t.device = device.NewDevice(
 		t.wrapper,
 		t.iceBind,
-		device.NewLogger(device.LogLevelSilent, "[netbird] "),
+		device.NewLogger(wgLogLevel(), "[netbird] "),
 	)
 
 	luid := winipcfg.LUID(t.nativeTunDevice.LUID())
diff --git a/iface/wg_log.go b/iface/wg_log.go
new file mode 100644
index 00000000..b44f6fc0
--- /dev/null
+++ b/iface/wg_log.go
@@ -0,0 +1,15 @@
+package iface
+
+import (
+	"os"
+
+	"golang.zx2c4.com/wireguard/device"
+)
+
+func wgLogLevel() int {
+	if os.Getenv("NB_WG_DEBUG") == "true" {
+		return device.LogLevelVerbose
+	} else {
+		return device.LogLevelSilent
+	}
+}
diff --git a/management/server/account.go b/management/server/account.go
index 27c21e40..558de6fb 100644
--- a/management/server/account.go
+++ b/management/server/account.go
@@ -69,6 +69,7 @@ type AccountManager interface {
 	ListSetupKeys(ctx context.Context, accountID, userID string) ([]*SetupKey, error)
 	SaveUser(ctx context.Context, accountID, initiatorUserID string, update *User) (*UserInfo, error)
 	SaveOrAddUser(ctx context.Context, accountID, initiatorUserID string, update *User, addIfNotExists bool) (*UserInfo, error)
+	SaveOrAddUsers(ctx context.Context, accountID, initiatorUserID string, updates []*User, addIfNotExists bool) ([]*UserInfo, error)
 	GetSetupKey(ctx context.Context, accountID, userID, keyID string) (*SetupKey, error)
 	GetAccountByUserOrAccountID(ctx context.Context, userID, accountID, domain string) (*Account, error)
 	GetAccountFromToken(ctx context.Context, claims jwtclaims.AuthorizationClaims) (*Account, *User, error)
@@ -95,6 +96,7 @@ type AccountManager interface {
 	GetAllGroups(ctx context.Context, accountID, userID string) ([]*nbgroup.Group, error)
 	GetGroupByName(ctx context.Context, groupName, accountID string) (*nbgroup.Group, error)
 	SaveGroup(ctx context.Context, accountID, userID string, group *nbgroup.Group) error
+	SaveGroups(ctx context.Context, accountID, userID string, newGroups []*nbgroup.Group) error
 	DeleteGroup(ctx context.Context, accountId, userId, groupID string) error
 	ListGroups(ctx context.Context, accountId string) ([]*nbgroup.Group, error)
 	GroupAddPeer(ctx context.Context, accountId, groupID, peerID string) error
diff --git a/management/server/file_store.go b/management/server/file_store.go
index 3fd54379..c649602e 100644
--- a/management/server/file_store.go
+++ b/management/server/file_store.go
@@ -746,3 +746,11 @@ func (s *FileStore) Close(ctx context.Context) error {
 func (s *FileStore) GetStoreEngine() StoreEngine {
 	return FileStoreEngine
 }
+
+func (s *FileStore) SaveUsers(accountID string, users map[string]*User) error {
+	return status.Errorf(status.Internal, "SaveUsers is not implemented")
+}
+
+func (s *FileStore) SaveGroups(accountID string, groups map[string]*nbgroup.Group) error {
+	return status.Errorf(status.Internal, "SaveGroups is not implemented")
+}
diff --git a/management/server/group.go b/management/server/group.go
index ea512924..45c51bda 100644
--- a/management/server/group.go
+++ b/management/server/group.go
@@ -112,61 +112,85 @@ func (am *DefaultAccountManager) GetGroupByName(ctx context.Context, groupName,
 func (am *DefaultAccountManager) SaveGroup(ctx context.Context, accountID, userID string, newGroup *nbgroup.Group) error {
 	unlock := am.Store.AcquireAccountWriteLock(ctx, accountID)
 	defer unlock()
+	return am.SaveGroups(ctx, accountID, userID, []*nbgroup.Group{newGroup})
+}
 
+// SaveGroups adds new groups to the account.
+// Note: This function does not acquire the global lock.
+// It is the caller's responsibility to ensure proper locking is in place before invoking this method.
+func (am *DefaultAccountManager) SaveGroups(ctx context.Context, accountID, userID string, newGroups []*nbgroup.Group) error {
 	account, err := am.Store.GetAccount(ctx, accountID)
 	if err != nil {
 		return err
 	}
 
-	if newGroup.ID == "" && newGroup.Issued != nbgroup.GroupIssuedAPI {
-		return status.Errorf(status.InvalidArgument, "%s group without ID set", newGroup.Issued)
-	}
+	var eventsToStore []func()
 
-	if newGroup.ID == "" && newGroup.Issued == nbgroup.GroupIssuedAPI {
+	for _, newGroup := range newGroups {
+		if newGroup.ID == "" && newGroup.Issued != nbgroup.GroupIssuedAPI {
+			return status.Errorf(status.InvalidArgument, "%s group without ID set", newGroup.Issued)
+		}
 
-		existingGroup, err := account.FindGroupByName(newGroup.Name)
-		if err != nil {
-			s, ok := status.FromError(err)
-			if !ok || s.ErrorType != status.NotFound {
-				return err
+		if newGroup.ID == "" && newGroup.Issued == nbgroup.GroupIssuedAPI {
+			existingGroup, err := account.FindGroupByName(newGroup.Name)
+			if err != nil {
+				s, ok := status.FromError(err)
+				if !ok || s.ErrorType != status.NotFound {
+					return err
+				}
 			}
+
+			// Avoid duplicate groups only for the API issued groups.
+			// Integration or JWT groups can be duplicated as they are coming from the IdP that we don't have control of.
+			if existingGroup != nil {
+				return status.Errorf(status.AlreadyExists, "group with name %s already exists", newGroup.Name)
+			}
+
+			newGroup.ID = xid.New().String()
 		}
 
-		// avoid duplicate groups only for the API issued groups. Integration or JWT groups can be duplicated as they are
-		// coming from the IdP that we don't have control of.
-		if existingGroup != nil {
-			return status.Errorf(status.AlreadyExists, "group with name %s already exists", newGroup.Name)
+		for _, peerID := range newGroup.Peers {
+			if account.Peers[peerID] == nil {
+				return status.Errorf(status.InvalidArgument, "peer with ID \"%s\" not found", peerID)
+			}
 		}
 
-		newGroup.ID = xid.New().String()
-	}
+		oldGroup := account.Groups[newGroup.ID]
+		account.Groups[newGroup.ID] = newGroup
 
-	for _, peerID := range newGroup.Peers {
-		if account.Peers[peerID] == nil {
-			return status.Errorf(status.InvalidArgument, "peer with ID \"%s\" not found", peerID)
-		}
+		events := am.prepareGroupEvents(ctx, userID, accountID, newGroup, oldGroup, account)
+		eventsToStore = append(eventsToStore, events...)
 	}
 
-	oldGroup, exists := account.Groups[newGroup.ID]
-	account.Groups[newGroup.ID] = newGroup
-
 	account.Network.IncSerial()
-	if err = am.Store.SaveAccount(ctx, account); err != nil {
+	if err = am.Store.SaveGroups(account.Id, account.Groups); err != nil {
 		return err
 	}
 
 	am.updateAccountPeers(ctx, account)
 
-	// the following snippet tracks the activity and stores the group events in the event store.
-	// It has to happen after all the operations have been successfully performed.
+	for _, storeEvent := range eventsToStore {
+		storeEvent()
+	}
+
+	return nil
+}
+
+// prepareGroupEvents prepares a list of event functions to be stored.
+func (am *DefaultAccountManager) prepareGroupEvents(ctx context.Context, userID string, accountID string, newGroup, oldGroup *nbgroup.Group, account *Account) []func() {
+	var eventsToStore []func()
+
 	addedPeers := make([]string, 0)
 	removedPeers := make([]string, 0)
-	if exists {
+
+	if oldGroup != nil {
 		addedPeers = difference(newGroup.Peers, oldGroup.Peers)
 		removedPeers = difference(oldGroup.Peers, newGroup.Peers)
 	} else {
 		addedPeers = append(addedPeers, newGroup.Peers...)
-		am.StoreEvent(ctx, userID, newGroup.ID, accountID, activity.GroupCreated, newGroup.EventMeta())
+		eventsToStore = append(eventsToStore, func() {
+			am.StoreEvent(ctx, userID, newGroup.ID, accountID, activity.GroupCreated, newGroup.EventMeta())
+		})
 	}
 
 	for _, p := range addedPeers {
@@ -175,11 +199,14 @@ func (am *DefaultAccountManager) SaveGroup(ctx context.Context, accountID, userI
 			log.WithContext(ctx).Errorf("peer %s not found under account %s while saving group", p, accountID)
 			continue
 		}
-		am.StoreEvent(ctx, userID, peer.ID, accountID, activity.GroupAddedToPeer,
-			map[string]any{
-				"group": newGroup.Name, "group_id": newGroup.ID, "peer_ip": peer.IP.String(),
-				"peer_fqdn": peer.FQDN(am.GetDNSDomain()),
-			})
+		peerCopy := peer // copy to avoid closure issues
+		eventsToStore = append(eventsToStore, func() {
+			am.StoreEvent(ctx, userID, peerCopy.ID, accountID, activity.GroupAddedToPeer,
+				map[string]any{
+					"group": newGroup.Name, "group_id": newGroup.ID, "peer_ip": peerCopy.IP.String(),
+					"peer_fqdn": peerCopy.FQDN(am.GetDNSDomain()),
+				})
+		})
 	}
 
 	for _, p := range removedPeers {
@@ -188,14 +215,17 @@ func (am *DefaultAccountManager) SaveGroup(ctx context.Context, accountID, userI
 			log.WithContext(ctx).Errorf("peer %s not found under account %s while saving group", p, accountID)
 			continue
 		}
-		am.StoreEvent(ctx, userID, peer.ID, accountID, activity.GroupRemovedFromPeer,
-			map[string]any{
-				"group": newGroup.Name, "group_id": newGroup.ID, "peer_ip": peer.IP.String(),
-				"peer_fqdn": peer.FQDN(am.GetDNSDomain()),
-			})
+		peerCopy := peer // copy to avoid closure issues
+		eventsToStore = append(eventsToStore, func() {
+			am.StoreEvent(ctx, userID, peerCopy.ID, accountID, activity.GroupRemovedFromPeer,
+				map[string]any{
+					"group": newGroup.Name, "group_id": newGroup.ID, "peer_ip": peerCopy.IP.String(),
+					"peer_fqdn": peerCopy.FQDN(am.GetDNSDomain()),
+				})
+		})
 	}
 
-	return nil
+	return eventsToStore
 }
 
 // difference returns the elements in `a` that aren't in `b`.
diff --git a/management/server/mock_server/account_mock.go b/management/server/mock_server/account_mock.go
index 177088ac..25bcdfce 100644
--- a/management/server/mock_server/account_mock.go
+++ b/management/server/mock_server/account_mock.go
@@ -40,6 +40,7 @@ type MockAccountManager struct {
 	GetAllGroupsFunc                    func(ctx context.Context, accountID, userID string) ([]*group.Group, error)
 	GetGroupByNameFunc                  func(ctx context.Context, accountID, groupName string) (*group.Group, error)
 	SaveGroupFunc                       func(ctx context.Context, accountID, userID string, group *group.Group) error
+	SaveGroupsFunc                      func(ctx context.Context, accountID, userID string, groups []*group.Group) error
 	DeleteGroupFunc                     func(ctx context.Context, accountID, userId, groupID string) error
 	ListGroupsFunc                      func(ctx context.Context, accountID string) ([]*group.Group, error)
 	GroupAddPeerFunc                    func(ctx context.Context, accountID, groupID, peerID string) error
@@ -64,6 +65,7 @@ type MockAccountManager struct {
 	ListSetupKeysFunc                   func(ctx context.Context, accountID, userID string) ([]*server.SetupKey, error)
 	SaveUserFunc                        func(ctx context.Context, accountID, userID string, user *server.User) (*server.UserInfo, error)
 	SaveOrAddUserFunc                   func(ctx context.Context, accountID, userID string, user *server.User, addIfNotExists bool) (*server.UserInfo, error)
+	SaveOrAddUsersFunc                  func(ctx context.Context, accountID, initiatorUserID string, update []*server.User, addIfNotExists bool) ([]*server.UserInfo, error)
 	DeleteUserFunc                      func(ctx context.Context, accountID string, initiatorUserID string, targetUserID string) error
 	CreatePATFunc                       func(ctx context.Context, accountID string, initiatorUserID string, targetUserId string, tokenName string, expiresIn int) (*server.PersonalAccessTokenGenerated, error)
 	DeletePATFunc                       func(ctx context.Context, accountID string, initiatorUserID string, targetUserId string, tokenID string) error
@@ -308,6 +310,14 @@ func (am *MockAccountManager) SaveGroup(ctx context.Context, accountID, userID s
 	return status.Errorf(codes.Unimplemented, "method SaveGroup is not implemented")
 }
 
+// SaveGroups mock implementation of SaveGroups from server.AccountManager interface
+func (am *MockAccountManager) SaveGroups(ctx context.Context, accountID, userID string, groups []*group.Group) error {
+	if am.SaveGroupsFunc != nil {
+		return am.SaveGroupsFunc(ctx, accountID, userID, groups)
+	}
+	return status.Errorf(codes.Unimplemented, "method SaveGroups is not implemented")
+}
+
 // DeleteGroup mock implementation of DeleteGroup from server.AccountManager interface
 func (am *MockAccountManager) DeleteGroup(ctx context.Context, accountId, userId, groupID string) error {
 	if am.DeleteGroupFunc != nil {
@@ -502,6 +512,14 @@ func (am *MockAccountManager) SaveOrAddUser(ctx context.Context, accountID, user
 	return nil, status.Errorf(codes.Unimplemented, "method SaveOrAddUser is not implemented")
 }
 
+// SaveOrAddUsers mocks SaveOrAddUsers of the AccountManager interface
+func (am *MockAccountManager) SaveOrAddUsers(ctx context.Context, accountID, userID string, users []*server.User, addIfNotExists bool) ([]*server.UserInfo, error) {
+	if am.SaveOrAddUsersFunc != nil {
+		return am.SaveOrAddUsersFunc(ctx, accountID, userID, users, addIfNotExists)
+	}
+	return nil, status.Errorf(codes.Unimplemented, "method SaveOrAddUsers is not implemented")
+}
+
 // DeleteUser mocks DeleteUser of the AccountManager interface
 func (am *MockAccountManager) DeleteUser(ctx context.Context, accountID string, initiatorUserID string, targetUserID string) error {
 	if am.DeleteUserFunc != nil {
diff --git a/management/server/sql_store.go b/management/server/sql_store.go
index 6bcff9f8..41e9fde8 100644
--- a/management/server/sql_store.go
+++ b/management/server/sql_store.go
@@ -311,6 +311,34 @@ func (s *SqlStore) SavePeerLocation(accountID string, peerWithLocation *nbpeer.P
 	return nil
 }
 
+// SaveUsers saves the given list of users to the database.
+// It updates existing users if a conflict occurs.
+func (s *SqlStore) SaveUsers(accountID string, users map[string]*User) error {
+	usersToSave := make([]User, 0, len(users))
+	for _, user := range users {
+		user.AccountID = accountID
+		for id, pat := range user.PATs {
+			pat.ID = id
+			user.PATsG = append(user.PATsG, *pat)
+		}
+		usersToSave = append(usersToSave, *user)
+	}
+	return s.db.Session(&gorm.Session{FullSaveAssociations: true}).
+		Clauses(clause.OnConflict{UpdateAll: true}).
+		Create(&usersToSave).Error
+}
+
+// SaveGroups saves the given list of groups to the database.
+// It updates existing groups if a conflict occurs.
+func (s *SqlStore) SaveGroups(accountID string, groups map[string]*nbgroup.Group) error {
+	groupsToSave := make([]nbgroup.Group, 0, len(groups))
+	for _, group := range groups {
+		group.AccountID = accountID
+		groupsToSave = append(groupsToSave, *group)
+	}
+	return s.db.Clauses(clause.OnConflict{UpdateAll: true}).Create(&groupsToSave).Error
+}
+
 // DeleteHashedPAT2TokenIDIndex is noop in SqlStore
 func (s *SqlStore) DeleteHashedPAT2TokenIDIndex(hashedToken string) error {
 	return nil
diff --git a/management/server/store.go b/management/server/store.go
index 05a09b3e..3ba73e8c 100644
--- a/management/server/store.go
+++ b/management/server/store.go
@@ -12,6 +12,7 @@ import (
 	"strings"
 	"time"
 
+	nbgroup "github.com/netbirdio/netbird/management/server/group"
 	log "github.com/sirupsen/logrus"
 	"gorm.io/gorm"
 
@@ -41,6 +42,8 @@ type Store interface {
 	GetUserByTokenID(ctx context.Context, tokenID string) (*User, error)
 	GetPostureCheckByChecksDefinition(accountID string, checks *posture.ChecksDefinition) (*posture.Checks, error)
 	SaveAccount(ctx context.Context, account *Account) error
+	SaveUsers(accountID string, users map[string]*User) error
+	SaveGroups(accountID string, groups map[string]*nbgroup.Group) error
 	DeleteHashedPAT2TokenIDIndex(hashedToken string) error
 	DeleteTokenID2UserIDIndex(tokenID string) error
 	GetInstallationID() string
diff --git a/management/server/user.go b/management/server/user.go
index 266692b8..65b5c787 100644
--- a/management/server/user.go
+++ b/management/server/user.go
@@ -740,7 +740,7 @@ func (am *DefaultAccountManager) GetAllPATs(ctx context.Context, accountID strin
 	return pats, nil
 }
 
-// SaveUser saves updates to the given user. If the user doesn't exit it will throw status.NotFound error.
+// SaveUser saves updates to the given user. If the user doesn't exist, it will throw status.NotFound error.
 func (am *DefaultAccountManager) SaveUser(ctx context.Context, accountID, initiatorUserID string, update *User) (*UserInfo, error) {
 	return am.SaveOrAddUser(ctx, accountID, initiatorUserID, update, false) // false means do not create user and throw status.NotFound
 }
@@ -748,165 +748,241 @@ func (am *DefaultAccountManager) SaveUser(ctx context.Context, accountID, initia
 // SaveOrAddUser updates the given user. If addIfNotExists is set to true it will add user when no exist
 // Only User.AutoGroups, User.Role, and User.Blocked fields are allowed to be updated for now.
 func (am *DefaultAccountManager) SaveOrAddUser(ctx context.Context, accountID, initiatorUserID string, update *User, addIfNotExists bool) (*UserInfo, error) {
-	unlock := am.Store.AcquireAccountWriteLock(ctx, accountID)
-	defer unlock()
-
 	if update == nil {
 		return nil, status.Errorf(status.InvalidArgument, "provided user update is nil")
 	}
 
-	account, err := am.Store.GetAccount(ctx, accountID)
-	if err != nil {
-		return nil, err
-	}
+	unlock := am.Store.AcquireAccountWriteLock(ctx, accountID)
+	defer unlock()
 
-	initiatorUser, err := account.FindUser(initiatorUserID)
+	updatedUsers, err := am.SaveOrAddUsers(ctx, accountID, initiatorUserID, []*User{update}, addIfNotExists)
 	if err != nil {
 		return nil, err
 	}
 
-	if !initiatorUser.HasAdminPower() || initiatorUser.IsBlocked() {
-		return nil, status.Errorf(status.PermissionDenied, "only users with admin power are authorized to perform user update operations")
+	if len(updatedUsers) == 0 {
+		return nil, status.Errorf(status.Internal, "user was not updated")
 	}
 
-	oldUser := account.Users[update.Id]
-	if oldUser == nil {
-		if !addIfNotExists {
-			return nil, status.Errorf(status.NotFound, "user to update doesn't exist")
-		}
-		// when addIfNotExists is set to true the newUser will use all fields from the update input
-		oldUser = update
-	}
+	return updatedUsers[0], nil
+}
 
-	if initiatorUser.HasAdminPower() && initiatorUserID == update.Id && oldUser.Blocked != update.Blocked {
-		return nil, status.Errorf(status.PermissionDenied, "admins can't block or unblock themselves")
+// SaveOrAddUsers updates existing users or adds new users to the account.
+// Note: This function does not acquire the global lock.
+// It is the caller's responsibility to ensure proper locking is in place before invoking this method.
+func (am *DefaultAccountManager) SaveOrAddUsers(ctx context.Context, accountID, initiatorUserID string, updates []*User, addIfNotExists bool) ([]*UserInfo, error) {
+	if len(updates) == 0 {
+		return nil, nil //nolint:nilnil
 	}
 
-	if initiatorUser.HasAdminPower() && initiatorUserID == update.Id && update.Role != initiatorUser.Role {
-		return nil, status.Errorf(status.PermissionDenied, "admins can't change their role")
+	account, err := am.Store.GetAccount(ctx, accountID)
+	if err != nil {
+		return nil, err
 	}
 
-	if initiatorUser.Role == UserRoleAdmin && oldUser.Role == UserRoleOwner && update.Role != oldUser.Role {
-		return nil, status.Errorf(status.PermissionDenied, "only owners can remove owner role from their user")
+	initiatorUser, err := account.FindUser(initiatorUserID)
+	if err != nil {
+		return nil, err
 	}
 
-	if initiatorUser.Role == UserRoleAdmin && oldUser.Role == UserRoleOwner && update.IsBlocked() && !oldUser.IsBlocked() {
-		return nil, status.Errorf(status.PermissionDenied, "unable to block owner user")
+	if !initiatorUser.HasAdminPower() || initiatorUser.IsBlocked() {
+		return nil, status.Errorf(status.PermissionDenied, "only users with admin power are authorized to perform user update operations")
 	}
 
-	if initiatorUser.Role == UserRoleAdmin && update.Role == UserRoleOwner && update.Role != oldUser.Role {
-		return nil, status.Errorf(status.PermissionDenied, "only owners can add owner role to other users")
-	}
+	updatedUsers := make([]*UserInfo, 0, len(updates))
+	var (
+		expiredPeers  []*nbpeer.Peer
+		eventsToStore []func()
+	)
 
-	if oldUser.IsServiceUser && update.Role == UserRoleOwner {
-		return nil, status.Errorf(status.PermissionDenied, "can't update a service user with owner role")
-	}
+	for _, update := range updates {
+		if update == nil {
+			return nil, status.Errorf(status.InvalidArgument, "provided user update is nil")
+		}
 
-	transferedOwnerRole := false
-	if initiatorUser.Role == UserRoleOwner && initiatorUserID != update.Id && update.Role == UserRoleOwner {
-		newInitiatorUser := initiatorUser.Copy()
-		newInitiatorUser.Role = UserRoleAdmin
-		account.Users[initiatorUserID] = newInitiatorUser
-		transferedOwnerRole = true
-	}
+		oldUser := account.Users[update.Id]
+		if oldUser == nil {
+			if !addIfNotExists {
+				return nil, status.Errorf(status.NotFound, "user to update doesn't exist: %s", update.Id)
+			}
+			// when addIfNotExists is set to true, the newUser will use all fields from the update input
+			oldUser = update
+		}
 
-	// only auto groups, revoked status, and integration reference can be updated for now
-	newUser := oldUser.Copy()
-	newUser.Role = update.Role
-	newUser.Blocked = update.Blocked
-	// these two fields can't be set via API, only via direct call to the method
-	newUser.Issued = update.Issued
-	newUser.IntegrationReference = update.IntegrationReference
+		if err := validateUserUpdate(account, initiatorUser, oldUser, update); err != nil {
+			return nil, err
+		}
 
-	for _, newGroupID := range update.AutoGroups {
-		if _, ok := account.Groups[newGroupID]; !ok {
-			return nil, status.Errorf(status.InvalidArgument, "provided group ID %s in the user %s update doesn't exist",
-				newGroupID, update.Id)
+		// only auto groups, revoked status, and integration reference can be updated for now
+		newUser := oldUser.Copy()
+		newUser.Role = update.Role
+		newUser.Blocked = update.Blocked
+		newUser.AutoGroups = update.AutoGroups
+		// these two fields can't be set via API, only via direct call to the method
+		newUser.Issued = update.Issued
+		newUser.IntegrationReference = update.IntegrationReference
+
+		transferredOwnerRole := handleOwnerRoleTransfer(account, initiatorUser, update)
+		account.Users[newUser.Id] = newUser
+
+		if !oldUser.IsBlocked() && update.IsBlocked() {
+			// expire peers that belong to the user who's getting blocked
+			blockedPeers, err := account.FindUserPeers(update.Id)
+			if err != nil {
+				return nil, err
+			}
+			expiredPeers = append(expiredPeers, blockedPeers...)
+		}
+
+		if update.AutoGroups != nil && account.Settings.GroupsPropagationEnabled {
+			removedGroups := difference(oldUser.AutoGroups, update.AutoGroups)
+			// need force update all auto groups in any case they will not be duplicated
+			account.UserGroupsAddToPeers(oldUser.Id, update.AutoGroups...)
+			account.UserGroupsRemoveFromPeers(oldUser.Id, removedGroups...)
 		}
-	}
-	newUser.AutoGroups = update.AutoGroups
 
-	account.Users[newUser.Id] = newUser
+		events := am.prepareUserUpdateEvents(ctx, initiatorUser.Id, oldUser, newUser, account, transferredOwnerRole)
+		eventsToStore = append(eventsToStore, events...)
 
-	if !oldUser.IsBlocked() && update.IsBlocked() {
-		// expire peers that belong to the user who's getting blocked
-		blockedPeers, err := account.FindUserPeers(update.Id)
+		updatedUserInfo, err := getUserInfo(ctx, am, newUser, account)
 		if err != nil {
 			return nil, err
 		}
+		updatedUsers = append(updatedUsers, updatedUserInfo)
+	}
 
-		if err := am.expireAndUpdatePeers(ctx, account, blockedPeers); err != nil {
+	if len(expiredPeers) > 0 {
+		if err := am.expireAndUpdatePeers(ctx, account, expiredPeers); err != nil {
 			log.WithContext(ctx).Errorf("failed update expired peers: %s", err)
 			return nil, err
 		}
 	}
 
-	if update.AutoGroups != nil && account.Settings.GroupsPropagationEnabled {
-		removedGroups := difference(oldUser.AutoGroups, update.AutoGroups)
-		// need force update all auto groups in any case they will not be duplicated
-		account.UserGroupsAddToPeers(oldUser.Id, update.AutoGroups...)
-		account.UserGroupsRemoveFromPeers(oldUser.Id, removedGroups...)
-
-		account.Network.IncSerial()
-		if err = am.Store.SaveAccount(ctx, account); err != nil {
-			return nil, err
-		}
+	account.Network.IncSerial()
+	if err = am.Store.SaveUsers(account.Id, account.Users); err != nil {
+		return nil, err
+	}
 
+	if account.Settings.GroupsPropagationEnabled {
 		am.updateAccountPeers(ctx, account)
-	} else {
-		if err = am.Store.SaveAccount(ctx, account); err != nil {
-			return nil, err
-		}
 	}
 
-	defer func() {
-		if oldUser.IsBlocked() != update.IsBlocked() {
-			if update.IsBlocked() {
-				am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.UserBlocked, nil)
-			} else {
-				am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.UserUnblocked, nil)
-			}
-		}
+	for _, storeEvent := range eventsToStore {
+		storeEvent()
+	}
+
+	return updatedUsers, nil
+}
+
+// prepareUserUpdateEvents prepares a list user update events based on the changes between the old and new user data.
+func (am *DefaultAccountManager) prepareUserUpdateEvents(ctx context.Context, initiatorUserID string, oldUser, newUser *User, account *Account, transferredOwnerRole bool) []func() {
+	var eventsToStore []func()
 
-		switch {
-		case transferedOwnerRole:
-			am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.TransferredOwnerRole, nil)
-		case oldUser.Role != newUser.Role:
-			am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.UserRoleUpdated, map[string]any{"role": newUser.Role})
-		default:
+	if oldUser.IsBlocked() != newUser.IsBlocked() {
+		if newUser.IsBlocked() {
+			eventsToStore = append(eventsToStore, func() {
+				am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.UserBlocked, nil)
+			})
+		} else {
+			eventsToStore = append(eventsToStore, func() {
+				am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.UserUnblocked, nil)
+			})
 		}
+	}
 
-		if update.AutoGroups != nil {
-			removedGroups := difference(oldUser.AutoGroups, update.AutoGroups)
-			addedGroups := difference(newUser.AutoGroups, oldUser.AutoGroups)
-			for _, g := range removedGroups {
-				group := account.GetGroup(g)
-				if group != nil {
-					am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.GroupRemovedFromUser,
+	switch {
+	case transferredOwnerRole:
+		eventsToStore = append(eventsToStore, func() {
+			am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.TransferredOwnerRole, nil)
+		})
+	case oldUser.Role != newUser.Role:
+		eventsToStore = append(eventsToStore, func() {
+			am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.UserRoleUpdated, map[string]any{"role": newUser.Role})
+		})
+	}
+
+	if newUser.AutoGroups != nil {
+		removedGroups := difference(oldUser.AutoGroups, newUser.AutoGroups)
+		addedGroups := difference(newUser.AutoGroups, oldUser.AutoGroups)
+		for _, g := range removedGroups {
+			group := account.GetGroup(g)
+			if group != nil {
+				eventsToStore = append(eventsToStore, func() {
+					am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.GroupRemovedFromUser,
 						map[string]any{"group": group.Name, "group_id": group.ID, "is_service_user": newUser.IsServiceUser, "user_name": newUser.ServiceUserName})
-				} else {
-					log.WithContext(ctx).Errorf("group %s not found while saving user activity event of account %s", g, account.Id)
-				}
-			}
+				})
 
-			for _, g := range addedGroups {
-				group := account.GetGroup(g)
-				if group != nil {
-					am.StoreEvent(ctx, initiatorUserID, oldUser.Id, accountID, activity.GroupAddedToUser,
+			} else {
+				log.WithContext(ctx).Errorf("group %s not found while saving user activity event of account %s", g, account.Id)
+			}
+		}
+		for _, g := range addedGroups {
+			group := account.GetGroup(g)
+			if group != nil {
+				eventsToStore = append(eventsToStore, func() {
+					am.StoreEvent(ctx, initiatorUserID, oldUser.Id, account.Id, activity.GroupAddedToUser,
 						map[string]any{"group": group.Name, "group_id": group.ID, "is_service_user": newUser.IsServiceUser, "user_name": newUser.ServiceUserName})
-				}
+				})
 			}
 		}
-	}()
+	}
+
+	return eventsToStore
+}
 
-	if !isNil(am.idpManager) && !newUser.IsServiceUser {
-		userData, err := am.lookupUserInCache(ctx, newUser.Id, account)
+func handleOwnerRoleTransfer(account *Account, initiatorUser, update *User) bool {
+	if initiatorUser.Role == UserRoleOwner && initiatorUser.Id != update.Id && update.Role == UserRoleOwner {
+		newInitiatorUser := initiatorUser.Copy()
+		newInitiatorUser.Role = UserRoleAdmin
+		account.Users[initiatorUser.Id] = newInitiatorUser
+		return true
+	}
+	return false
+}
+
+// getUserInfo retrieves the UserInfo for a given User and Account.
+// If the AccountManager has a non-nil idpManager and the User is not a service user,
+// it will attempt to look up the UserData from the cache.
+func getUserInfo(ctx context.Context, am *DefaultAccountManager, user *User, account *Account) (*UserInfo, error) {
+	if !isNil(am.idpManager) && !user.IsServiceUser {
+		userData, err := am.lookupUserInCache(ctx, user.Id, account)
 		if err != nil {
 			return nil, err
 		}
-		return newUser.ToUserInfo(userData, account.Settings)
+		return user.ToUserInfo(userData, account.Settings)
+	}
+	return user.ToUserInfo(nil, account.Settings)
+}
+
+// validateUserUpdate validates the update operation for a user.
+func validateUserUpdate(account *Account, initiatorUser, oldUser, update *User) error {
+	if initiatorUser.HasAdminPower() && initiatorUser.Id == update.Id && oldUser.Blocked != update.Blocked {
+		return status.Errorf(status.PermissionDenied, "admins can't block or unblock themselves")
+	}
+	if initiatorUser.HasAdminPower() && initiatorUser.Id == update.Id && update.Role != initiatorUser.Role {
+		return status.Errorf(status.PermissionDenied, "admins can't change their role")
+	}
+	if initiatorUser.Role == UserRoleAdmin && oldUser.Role == UserRoleOwner && update.Role != oldUser.Role {
+		return status.Errorf(status.PermissionDenied, "only owners can remove owner role from their user")
+	}
+	if initiatorUser.Role == UserRoleAdmin && oldUser.Role == UserRoleOwner && update.IsBlocked() && !oldUser.IsBlocked() {
+		return status.Errorf(status.PermissionDenied, "unable to block owner user")
 	}
-	return newUser.ToUserInfo(nil, account.Settings)
+	if initiatorUser.Role == UserRoleAdmin && update.Role == UserRoleOwner && update.Role != oldUser.Role {
+		return status.Errorf(status.PermissionDenied, "only owners can add owner role to other users")
+	}
+	if oldUser.IsServiceUser && update.Role == UserRoleOwner {
+		return status.Errorf(status.PermissionDenied, "can't update a service user with owner role")
+	}
+
+	for _, newGroupID := range update.AutoGroups {
+		if _, ok := account.Groups[newGroupID]; !ok {
+			return status.Errorf(status.InvalidArgument, "provided group ID %s in the user %s update doesn't exist",
+				newGroupID, update.Id)
+		}
+	}
+
+	return nil
 }
 
 // GetOrCreateAccountByUser returns an existing account for a given user id or creates a new one if doesn't exist
diff --git a/signal/server/signal.go b/signal/server/signal.go
index fc9c19ef..02c49c31 100644
--- a/signal/server/signal.go
+++ b/signal/server/signal.go
@@ -23,6 +23,8 @@ const (
 	labelTypeError         = "error"
 	labelTypeNotConnected  = "not_connected"
 	labelTypeNotRegistered = "not_registered"
+	labelTypeStream        = "stream"
+	labelTypeMessage       = "message"
 
 	labelError             = "error"
 	labelErrorMissingId    = "missing_id"
@@ -62,6 +64,7 @@ func (s *Server) Send(ctx context.Context, msg *proto.EncryptedMessage) (*proto.
 	}
 
 	if dstPeer, found := s.registry.Get(msg.RemoteKey); found {
+		start := time.Now()
 		//forward the message to the target peer
 		if err := dstPeer.Stream.Send(msg); err != nil {
 			log.Errorf("error while forwarding message from peer [%s] to peer [%s] %v", msg.Key, msg.RemoteKey, err)
@@ -69,6 +72,7 @@ func (s *Server) Send(ctx context.Context, msg *proto.EncryptedMessage) (*proto.
 
 			s.metrics.MessageForwardFailures.Add(ctx, 1, metric.WithAttributes(attribute.String(labelType, labelTypeError)))
 		} else {
+			s.metrics.MessageForwardLatency.Record(ctx, float64(time.Since(start).Nanoseconds())/1e6, metric.WithAttributes(attribute.String(labelType, labelTypeMessage)))
 			s.metrics.MessagesForwarded.Add(context.Background(), 1)
 		}
 	} else {
@@ -118,22 +122,21 @@ func (s *Server) ConnectStream(stream proto.SignalExchange_ConnectStreamServer)
 		} else if err != nil {
 			return err
 		}
-		start := time.Now()
 
 		log.Debugf("received a new message from peer [%s] to peer [%s]", p.Id, msg.RemoteKey)
 
 		// lookup the target peer where the message is going to
 		if dstPeer, found := s.registry.Get(msg.RemoteKey); found {
+			start := time.Now()
 			//forward the message to the target peer
 			if err := dstPeer.Stream.Send(msg); err != nil {
 				log.Errorf("error while forwarding message from peer [%s] to peer [%s] %v", p.Id, msg.RemoteKey, err)
 				//todo respond to the sender?
-
+				s.metrics.MessageForwardFailures.Add(stream.Context(), 1, metric.WithAttributes(attribute.String(labelType, labelTypeError)))
+			} else {
 				// in milliseconds
-				s.metrics.MessageForwardLatency.Record(stream.Context(), float64(time.Since(start).Nanoseconds())/1e6)
+				s.metrics.MessageForwardLatency.Record(stream.Context(), float64(time.Since(start).Nanoseconds())/1e6, metric.WithAttributes(attribute.String(labelType, labelTypeStream)))
 				s.metrics.MessagesForwarded.Add(stream.Context(), 1)
-			} else {
-				s.metrics.MessageForwardFailures.Add(stream.Context(), 1, metric.WithAttributes(attribute.String(labelType, labelTypeError)))
 			}
 		} else {
 			log.Debugf("message from peer [%s] can't be forwarded to peer [%s] because destination peer is not connected", p.Id, msg.RemoteKey)



Test patch:
diff --git a/client/internal/routemanager/systemops/systemops_bsd_test.go b/client/internal/routemanager/systemops/systemops_bsd_test.go
index ce9a9082..84b84483 100644
--- a/client/internal/routemanager/systemops/systemops_bsd_test.go
+++ b/client/internal/routemanager/systemops/systemops_bsd_test.go
@@ -36,7 +36,7 @@ func TestConcurrentRoutes(t *testing.T) {
 	baseIP := netip.MustParseAddr("192.0.2.0")
 	intf := &net.Interface{Name: "lo0"}
 
-	r := NewSysOps(nil)
+	r := NewSysOps(nil, nil)
 
 	var wg sync.WaitGroup
 	for i := 0; i < 1024; i++ {
diff --git a/client/internal/routemanager/systemops/systemops_generic_test.go b/client/internal/routemanager/systemops/systemops_generic_test.go
index 29216658..94965c11 100644
--- a/client/internal/routemanager/systemops/systemops_generic_test.go
+++ b/client/internal/routemanager/systemops/systemops_generic_test.go
@@ -68,7 +68,7 @@ func TestAddRemoveRoutes(t *testing.T) {
 			err = wgInterface.Create()
 			require.NoError(t, err, "should create testing wireguard interface")
 
-			r := NewSysOps(wgInterface)
+			r := NewSysOps(wgInterface, nil)
 
 			_, _, err = r.SetupRouting(nil)
 			require.NoError(t, err)
@@ -224,7 +224,7 @@ func TestAddExistAndRemoveRoute(t *testing.T) {
 			require.NoError(t, err, "InterfaceByName should not return err")
 			intf := &net.Interface{Index: index.Index, Name: wgInterface.Name()}
 
-			r := NewSysOps(wgInterface)
+			r := NewSysOps(wgInterface, nil)
 
 			// Prepare the environment
 			if testCase.preExistingPrefix.IsValid() {
@@ -379,7 +379,7 @@ func setupTestEnv(t *testing.T) {
 		assert.NoError(t, wgInterface.Close())
 	})
 
-	r := NewSysOps(wgInterface)
+	r := NewSysOps(wgInterface, nil)
 	_, _, err := r.SetupRouting(nil)
 	require.NoError(t, err, "setupRouting should not return err")
 	t.Cleanup(func() {