◈ 9ce92808be498e9e05590ff27cbfdfe4
Forum / Showcase / RNSmetrics - a public RNS node reliability monitor service

RNSmetrics - a public RNS node reliability monitor service

Started by x2tyfi ccf53a936676f008... ·

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 509723a0ccb60610...

Please publish your code, so we can all learn from eachother.

tyfi

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.

x2tyfi ccf53a936676f008...

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)

OH nice this is pretty slick! Got this bookmarked for use later, thanks for thjis

edited

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 :-)

x2tyfi ccf53a936676f008...

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

x2tyfi ccf53a936676f008...

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 Discoverable over time, by interface type. It will be fun to watch this grow. https://rns.wirebase.org/global

Post a Reply

Markdown

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Proof of work verification for anonymous posting

Copied to clipboard