RNSmetrics - a public RNS node reliability monitor service
Started by x2tyfi ccf53a936676f008... ·
I used rmap.world a bunch while trying to figure out what peers to connect my Backbone node to. One challenge is knowing if the nodes are reliable or not.
I created RNSmetrics with the goal of longer-term reliability tracking of nodes.
It works by evaluating destination data rnstatus -d and by occasionally sending out tiny probes to confirm node reachability. It then aggregates age, uptime, announce consistency, and announce recency to generate an overall score for each node.
Open to feedback, if there are ideas or thoughts about measuring differently. In a perfect world you would have canary servers like this all over, so that you could effectively measure hops and latency, too.
aetherlab wrote:
Please publish your code, so we can all learn from eachother.
Happy to - should have time in the next couple days and will share.
Made a few more improvements to rnsmetrics.wirebase.org.
- Announcement Reliability: For now, I've adjusted logic to give "max score" when the canary receives 1-6 announces. Then diminishing scores above that (or if 0)
- Added I2P nodes
- Adjusted the uptime visual in main table: instead of the dots representing the overall uptime percentage (a bit redundant), each dot now represents a day, and is colored based off the uptime for that day
- Last Announce now shows green if >0 announces were received in the last 24h (yellow >48, red >72)
This is awesome! Any chance of adding a TCPServer filter? I have to use TCPServer since Backbone isn't available yet in the Rust Reticulum implementation.
(technically you could just do Backbone as BackboneInterface || TCPServerInterface... they're the same thing)
Since i'm contributing to the Rust reticulum implementation, it would be nice to see how my changes are making it more reliable :-)
kallisti5 wrote:
This is awesome! Any chance of adding a TCPServer filter? I have to use TCPServer since Backbone isn't available yet in the Rust Reticulum implementation.
(technically you could just do Backbone as BackboneInterface || TCPServerInterface... they're the same thing)
Since i'm contributing to the Rust reticulum implementation, it would be nice to see how my changes are making it more reliable :-)
Doh -- it is there, but I had mislabeled it as TCPClient. Any node that appears as TCPClient should actually be a TCPServer interface. I'll get that fixed up
Made a few more updates to rnsmetrics.
The two biggest ones are a map view, and global metrics.
-
Map: I'm finding that when browsing nodes, its nice to be able to see where they are on a map after being in list view. Let me know if there's any feedback on the implementation! https://rns.wirebase.org/?view=map
-
Global Metrics: A chart to track how many nodes are
Discoverableover time, by interface type. It will be fun to watch this grow. https://rns.wirebase.org/global