We originally were part of a hackathon focused on building a product that is powered by micropayments and we settled on a network that could ping other network devices and users could be paid in fractions of a cent for performing said work.
After winning the hackathon, we built an uptime monitoring service and discovered some discrepancies between our data and traditional monitoring tools based in data centers; Your site might be "up" from Google's perspective, but unreachable for users in certain regions or on specific ISPs.
This realisation led us to build a network of monitoring nodes running on real user devices. We now have 20k+ nodes across 135+ countries, and they've performed over 837 million tests to date.
We've since pivoted from the uptime testing SaaS product and have started focusing on building networking software to help people enrich their existing monitoring stack by supplementing traditional metrics with our last mile monitoring data.
We have also started building open source tools that use this API to get developer brain juices flowing, so feel free to check out our Github! I'm pretty proud of bping, our remote ping testing tool which allows you to ping servers from any one of our nodes in any region. I'm also working on a distributed metrics collection tool for people who want to enrich their existing prometheus metrics with external protocol/networking information, kind of like your own uptime testing tool that can be as high level or in depth as you'd like
What Makes This Different: Unlike traditional monitoring services that run only from data centers, we provide: - Tests from actual user devices with real-world network conditions
- Access to data typically only available to ISPs
- Cross-ISP visibility in 135+ countries
You can see our current network status and node distribution at http://explorer.bitping.com
Technical Details:
- Built in Rust (moved from Node.js)
- Uses LibP2P for node communication
- Mesh network architecture (replaced original hub-and-spoke model)
Documentation and Examples: - Bitping Developer Docs: https://bitping.com/help/customers/api
- Bping: Open source ping testing tool built on the Developer API: https://github.com/BitpingApp/bping
- Distributed Metrics: In Progress global metrics collector that supports DNS, ICMP Ping and HLS metric collection: https://github.com/BitpingApp/distributed-metrics
What Protocols the Developer API Currently Supports and why they're useful:
1. HTTP - Ensure your website is providing the correct content based on region or that specific regions cannot access your site if you are beholden to certain regulations
2. ICMP - Check if a an IP address is reachable (or unreachable) from specific countries
3. DNS Lookups - DNS Poisoning detection; ensure your websites hostname is being resolved to the correct IP address in every country
4. HLS Stream testing - Verify that your video streams are being served within reasonable latencies. TTFB metrics on manifests and content can be used to granularly identify issues with content distribution anywhere in the world.
Planned Protocols:
- TCP
- QUIC/UDP
- Traceroute
- WASI Compute
- GPGPU
If any of this interests you, visit http://developer.bitping.com to get started. Once you have API access, you can follow our documentation (https://bitping.com/help/customers/api) to start running tests from our global network of nodes.
I'm here to answer any technical questions about the implementation, especially around the challenges of managing a distributed network of user devices. My email is in my profile if anyone wants to discuss this further or needs help getting started.