My idea is to gather a list of all BP registered on EOS blockchain and find out all their API endpoints for further testing.

I wrote some script for this task, but i’m not ready to show it (if you’re interested, i’ll clean it and post someday =)), so i’ll just show you the results of gathering:

Now we need to find out endpoints with lowest latency, so we can have better performance (if BP have good node), but pinging hosts isn’t an option, because some endpoints are hiding behind CDN or load balancers.

API is dynamic service and caching it is bad idea, so we need to measure HTTP request-response time to find out closest (in terms of network) hosts.

For this task I will use get-closer (that I’ve written for such tasks).

Logic of the test is pretty simple, just measure HTTP request time and compare it with others.

For HTTP you can just run:

And you will get results like this:

For HTTPS:

Results: https://gist.github.com/akme/73c6826436968bb34a6edf2468da7d86

Conclusion

It’s pretty raw idea, but I’m interested in your feedback. What do you think about choosing endpoint based on measurements like this?