This document looks into how Station could take on the benchmarking and load testing for Saturn L1 nodes. It analyses it based on certain criteria such as:
The Saturn team tests their network from the user perspective in the following way.
| Field | Description |
|---|---|
| service | IPFS or Saturn |
| cid | The chosen CID |
| url | The request URL |
| transferId | saturn-transfer-id header, fallback to x-bfid header |
| httpStatusCode | Status code of the response |
| httpProtocol | quic-status header |
| nodeId | saturn-node-id header, fallback to x-ipfs-pop header |
| cacheStatus | saturn-cache-status header, fallback to x-proxy-cache |
| ttfb | new Date() timestamp when response arrives |
| ttfbAfterDnsMs | Difference between window.performance.resource.responseStart and window.performance.resource.requestStart |
| dnsTimeMs | Difference between window.performance.resource.domainLookupEnd and window.performance.resource.domainLookupStart |
| startTime | new Date() at start of request invocation |
| endTime | new Date() at end of response handling |
| transferSize | Size of response body |
| isError | Did the request error out? |
| isDir | Is the CID addressing a directory instead of a file? |
| traceparent | Open Telemetry Traceparent made using the transferId header |

Station nodes can replace Arc service workers to perform these Saturn network tests and measurements.