jsdelivr / globalping

A global network of probes to run network tests like ping, traceroute and DNS resolve

Home Page:https://www.jsdelivr.com/globalping

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adopting probes

MartinKolarik opened this issue · comments

Ability to adopt a probe. A user should be able to enter the IPs of the probes he controls to adopt them. I imagine this working like this: 1. Enter IP address of probe 2. Message asks the user to login where the probe is running and follow the logs output 3. The API sends a special command to that specific probe that prints a message to the user in the logs. It would contain a unique one-time code that would verify ownership 4. The user enters the code in the dashboard 5. The probe is now his

We agreed that IPs will be used to identify probes. Once a probe is assigned to an account, it'll belong to that account even after reconnecting, as long as it has the same IP.
The IP ownership will expire after 30 days of being offline.
No extra limits for sponsors. Everything above the base limits is tracked as credits.

  • Adopted probes can be removed from the account by the user at any point. This also resets all custom metadata.

I have a probe running on my home network and its IP changes every time I reboot the modem. How would it handle these cases?

You're right. We should use 2 parameters at the same time.
IP and a UUID generated on boot. And if at least one of them remains the same then the probe remains adopted. If both change then connection gets lost

Couldn't the UUID be persistent? So as long as I don't delete the container data, it remains mine. Because with the UUID generated on boot approach, if I lose power and both devices reboot (thus resetting both my IP and my UUID), I'd lose the adoption (even though the container is the same).

Our probes are all read-only at the moment, so it wouldn't work as is.

The above solution should cover the majority of cases, and in the future we will definitely add a more advanced option for the case you described. Possibly reading the UUID from a file if the user is technical enough to mount it to the container, or using a USB stick in case of hardware probes.