-
-
-
+
+
+
-
- Note: if you're hammering these endpoints and you start to get timeouts
- (or you've been reloading the page a lot) then change the target hosts
- to e.g. http://ipv4.icanhazip.com and https://ipv6.icanhazip.com/
-
+
+
+
+
+
Stress Test
-
-
- This does what is says on the tin - sends 10 fetch requests to
- https://jsonplaceholder.typicode.com/posts/ 1 through 10
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
Do a POST and get it echoed back
-
-
-
-
-
+
+
+ Each request randomly assigned a size via httpbin.org/bytes/{n}.
+ Tests how the mixnet handles asymmetric payload sizes concurrently.
+
+
+ | tiny | 128 B |
+ | small | 1 KB |
+ | medium | 10 KB |
+ | large | 100 KB |
+ | xlarge | 1 MB |
+
+
+
+
+
+ Uses httpbin.org/drip to slowly drip bytes over a set duration,
+ keeping connections alive for a controlled time. Profiles are designed to
+ straddle the Go timeout boundary — some will finish just in time,
+ others will be mid-transfer when the timeout fires. This is how we
+ reproduce the Go runtime panic (see DEBUGGING_NOTES.md).
+
+
+
+ | safe |
+ 30s |
+ well under 60s timeout |
+
+
+ | boundary |
+ 55s |
+ 55s server + ~10s mixnet latency = over |
+
+
+ | over |
+ 65s |
+ exceeds 60s timeout on its own |
+
+
+ | slow-start |
+ 10s delay + 50s |
+ late first byte, then long transfer |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+