Skip to content

Commit a75a5b0

Browse files
authored
Add ProbeLab page to Concepts (#1699) (#1708)
1 parent 6bb0b9b commit a75a5b0

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

docs/.vuepress/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ module.exports = {
179179
'/concepts/ipfs-implementations',
180180
'/concepts/comparisons',
181181
'/concepts/usage-ideas-examples',
182+
['/concepts/measuring', 'Measuring the network'],
182183
'/concepts/faq',
183184
'/concepts/glossary',
184185
'/concepts/further-reading/academic-papers'

docs/concepts/measuring.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Measuring the IPFS network
3+
description: Learn about IPFS network measurements and ProbeLab
4+
---
5+
6+
# Measuring the IPFS network
7+
8+
The IPFS network is a complex system that relies on the coordinated participation of a swarm of independent peers. To ensure reliability and efficiency, the [Protocol Benchmarking & Optimization Team (ProbeLab)](https://probelab.io/) regularly measures the performance and health of the network, and reports these measurements to the public. In addition to these [key performance indicators (KPIs)](#kpis), ProbeLab has created a number of [custom tools](#tools) to calculate these measurements.
9+
10+
This page provides a brief overview of these KPIs and tools. For more in-depth information, see [probelab.io](https://probelab.io/).
11+
12+
## KPIs
13+
14+
### Network size and stability
15+
16+
#### DHT Client and Server node estimates
17+
18+
The following metrics are used to estimate the DHT network size and number of clients versus servers:
19+
20+
1. Total number of peers in the Amino (Public IPFS DHT) network
21+
1. Number of unique [DHT](dht.md) Server peers
22+
1. Number of DHT Clients peers
23+
24+
For more info and the latest data, see [https://probelab.io/ipfskpi/#client-vs-server-node-estimate](https://probelab.io/ipfskpi/#client-vs-server-node-estimate).
25+
26+
#### Unique software agents
27+
28+
The following metrics are used to estimate the total number of unique software agents:
29+
30+
1. Unique software agents identified by [bootstrap nodes](https://docs.ipfs.tech/concepts/nodes/#bootstrap)
31+
1. Unique software agents seen in Amino (the public IPFS [DHT](dht.md))
32+
33+
For more info and the latest data, see [https://probelab.io/ipfskpi/#unique-software-agents](https://probelab.io/ipfskpi/#unique-software-agents).
34+
https://probelab.io/ipfskpi/#unique-software-agents
35+
36+
### Content routing
37+
38+
#### DHT server availability
39+
40+
[DHT](dht.md) server availability is measured by classifying nodes into one of four categories, as a function of the percentage of time the node was seen online:
41+
42+
- _Online_: online for 80% of the time or more.
43+
- _Mostly Online_: online between 40%-80% of the time.
44+
- _Mostly Offline_: online between 10%-40% of the time.
45+
- _Offline_: online less than 10% of time.
46+
47+
For more info and the latest data, see [https://probelab.io/ipfskpi/#dht-server-availability](https://probelab.io/ipfskpi/#dht-server-availability).
48+
49+
#### DHT lookup performance
50+
51+
[DHT](dht.md) lookup performance is measured by calculating performance over time and from several geographic regions. The metrics used are: i) median, ii) P90, iii) P99.
52+
53+
54+
For more info and the latest data, see [https://probelab.io/ipfskpi/#dht-lookup-performance](https://probelab.io/ipfskpi/#dht-lookup-performance).
55+
56+
#### IPNI utilization
57+
58+
[IPNI](ipni.md) utilization is measured by calculating the number of requests made per day to the network indexers operated by [cid.contact](https://cid.contact/). For more info and the latest data, see [https://probelab.io/ipfskpi/#ipni-utilization](https://probelab.io/ipfskpi/#ipni-utilization).
59+
60+
## Tools
61+
The ProbeLab team is developing tools to continuously monitor the performance of several critical parts of the IPFS network. The current set of tools, together with detailed description and links can be found at: [https://probelab.io/tools/](https://probelab.io/tools/).
62+
### Nebula
63+
64+
[Nebula](https://github.com/dennis-tra/nebula) is a libp2p DHT crawler that is used to calculate [DHT server availability](#dht-server-availability). It periodically tries to connect to DHT Server peers within the IPFS DHT. Upon discovering a new peer, the crawler notes the beginning of an availability session, extending this session with each successful connection attempt. Conversely, a failed connection ends the session, with a subsequent successful attempt initiating a new one. During each measurement period, peers may experience multiple availability sessions. Learn more about Nebula at [probelab.io/tools/nebula/](https://probelab.io/tools/nebula/).
65+
66+
### Parsec
67+
68+
[Parsec](https://github.com/dennis-tra/nebula) is a tool for measuring [DHT lookup performance](#dht-lookup-performance), specifically focusing on the PUT and GET performance of the IPFS public DHT. It can also be adapted to assess other [libp2p-kad-dht](https://github.com/libp2p/specs/blob/master/kad-dht/README.md) networks. The configuration is divided into a scheduler and a server. Learn more about Parsec at [probelab.io/tools/parsec/](https://probelab.io/tools/parsec/).
69+
70+
### Tiros
71+
72+
[Tiros](https://github.com/plprobelab/tiros) evaluates the retrieval performance of websites hosted on IPFS. Specifically, it compares website metrics such as TTFB (Time to First Byte) or FCP (First Contentful Paint) with a Kubo node and a headless Chrome instance for a given website. The objective is to compare these metrics when loaded over IPFS versus HTTPS. To achieve this, Tiros directs Chrome to request a website through either the gateway of a local Kubo node or HTTPS. Learn more about Tiros at [probelab.io/tools/tiros/](https://probelab.io/tools/tiros/).
73+
74+
## Learn more
75+
76+
You can learn more about the data and tools discussed here, as well as ProbeLab in general at [probelab.io](https://probelab.io/).

0 commit comments

Comments
 (0)