sentinel-official / dvpn-node

The official Sentinel dVPN node
Apache License 2.0
108 stars 33 forks source link

EOF on Speedtest when starting node #105

Closed MathNodes closed 1 year ago

MathNodes commented 2 years ago

Describe the bug A few users are experiencing issues with exactly one of their nodes after stopping it and restarting it. The error is an EOF immediately after beginning the Speedtest with speedtest.net

To Reproduce Run the node

$ docker run --rm     --interactive     --tty     --volume ${HOME}/.sentinelnode:/root/.sentinelnode     --volume /lib/modules:/lib/modules     --cap-drop ALL     --cap-add NET_ADMIN     --cap-add NET_BIND_SERVICE     --cap-add NET_RAW     --cap-add SYS_MODULE     --sysctl net.ipv4.ip_forward=1     --sysctl net.ipv6.conf.all.disable_ipv6=0     --sysctl net.ipv6.conf.all.forwarding=1     --sysctl net.ipv6.conf.default.forwarding=1     --publish 52618:52618/tcp     --publish 20640:20640/udp     sentinel-dvpn-node process start
2022-09-20T04:22:44Z INF Reading the configuration file path=/root/.sentinelnode/config.toml
2022-09-20T04:22:44Z INF Validating the configuration data={"chain":{"gas":200000,"gas_adjustment":1.05,"gas_prices":"0.1udvpn","id":"sentinelhub-2","rpc_address":"https://rpc.mathnodes.com:443","simulate_and_execute":true},"handshake":{"enable":true,"peers":8},"keyring":{"backend":"file","from":"PoincarePostulate"},"node":{"interval_set_sessions":120000000000,"interval_update_sessions":6900000000000,"interval_update_status":3300000000000,"listen_on":"0.0.0.0:52618","moniker":"Poincaré Postulate","price":"1261247udvpn,728ibc/ED07A3391A112B175915CD8FAF43A2DA8E4790EDE12566649D0C2F97716B8518,53427ibc/B1C0DDB14F25279A2026BC8794E12B259F8BDA546A3C5132CCAEE4431CE36783,65ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477,902ibc/31FEE1A2A9F9C01113F90BD0BBCCE8FD6BBB8585FAF109A2101827DD1D5B95B8","provider":"","remote_url":"https://poincare.mathnoders.com:52618"},"qos":{"max_peers":250}}
2022-09-20T04:22:44Z INF Creating IPv4 pool CIDR=10.8.0.2/24
2022-09-20T04:22:44Z INF Creating IPv6 pool CIDR=fd86:ea04:1115::2/120
2022-09-20T04:22:44Z INF Initializing RPC HTTP client address=https://rpc.mathnodes.com:443 endpoint=/websocket
2022-09-20T04:22:44Z INF Initializing keyring backend=file name=sentinel
Enter keyring passphrase:
2022-09-20T04:22:45Z INF Querying account address=sent1j5x0k2kzuq87sjg2vs66drkyl8zyc3tgx3sj8r
2022-09-20T04:22:46Z INF Fetching GeoIP location info...
2022-09-20T04:22:46Z INF GeoIP location info city=Paris country=France
2022-09-20T04:22:46Z INF Performing internet speed test...
Error: EOF
$

Expected behavior For the Node to run as prior to restarting it. It seems there is a problem Fetching the servers in utils/speedtest.go This might be a speedtest thing, but I dunno, since it works on all other nodes. It could be a host problem on our end.

Desktop (please complete the following information):

Additional context I successfully spun up a new node and everything worked. It is just on exactly one node for many users. I downloaded the speedtest CLI by Okala and that did work.

kfmg commented 2 years ago

any news?

0xwetzo commented 1 year ago

Same for me since a few months. Config: Debian 11 My only node get stuck. I tried to reinstall it from scratch and it does not improve. It seems it is only for French nodes.

MathNodes commented 1 year ago

I think this is an issue with speedtest-cli software since the dVPN node software uses it.

I tried to use the speedtest-cli (pip install speedtest-cli or sudo apt install speedtest-cli) on a server that is located in France and it didn't work. Said it couldn't connect to speedtest.net server. I think this issue is directly isolated to nodes in France.

The github https://github.com/sivel/speedtest-cli says that they will not fix any issues any more. Maybe adopt the speedtest.net CLI in future dVPN node releases??

0xwetzo commented 1 year ago

Yes, that is what they told me this summer but no fix since then :-(

MathNodes commented 1 year ago

Maybe we should ping them on twitter: https://twitter.com/speedtest

0xwetzo commented 1 year ago

The CLI works for me. I installed it using

sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest
MathNodes commented 1 year ago

Yeah Sentinel should use this one going forward. I think (not sure though), they are are using that github speedtest-cli version

MathNodes commented 1 year ago

Figured it out. It's a IP ban from speedtest.net -

IN speedtest-cli at line 1447 it calls a routine to get the servers from speedtest.net which can be traced back to line 1261 where it requests the server information to preform a speedtest from the url http://c.speedtest.net/speedtest-servers-static.php

running curl http://c.speedtest.net/speedtest-servers-static.php from any of my three Paris, France servers gives the same response:

$ curl http://c.speedtest.net/speedtest-servers.php
<html><head><title>Too Many Requests</title></head><body><h1>429 Error - Too Many Requests</h1><p>Your IP address is making too many requests. We ask that you limit requests to no more than 1 per second.</p><p>We make an attempt to be flexible, allowing small bursts in traffic. You have exceeded this threshold however and have been blocked.</p><p>Please reduce the speed at which your requests are made and try again after a while. If you feel you have reached this message in error, please contact us at noc @ speedtest.net and reference this error code.</p><p>Thank you</p></body></html>

I'm going to e-mail speedtest as they provided me their e-mail on twitter.

0xwetzo commented 1 year ago

Same error from my node. I get a correct list from another country. So they blocked all French IPs it seems.

0xwetzo commented 1 year ago

Sentinel uses https://github.com/showwin/speedtest-go/ And in https://github.com/showwin/speedtest-go/blob/e55185e1a09e7a176b9a545fcf619246c99f24fc/speedtest/server.go#L20 they use https://www.speedtest.net/speedtest-servers-static.php

0xwetzo commented 1 year ago

Solved with last release! 2023-01-30T17:10:50Z INF GeoIP location info city=Paris country=France 2023-01-30T17:10:50Z INF Performing internet speed test... 2023-01-30T17:10:57Z INF Internet speed test result data={"download":"108769596","upload":"62890154"}

MathNodes commented 1 year ago

Yes. This was fixed in 0.4.0. I will close it now. Good work!!!