aboutsummaryrefslogtreecommitdiffstats
path: root/docs/MESHBAY_DESIGN.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/MESHBAY_DESIGN.md')
-rw-r--r--docs/MESHBAY_DESIGN.md11
1 files changed, 8 insertions, 3 deletions
diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md
index 609c751..1f2e43d 100644
--- a/docs/MESHBAY_DESIGN.md
+++ b/docs/MESHBAY_DESIGN.md
@@ -1898,7 +1898,7 @@ Node page:
| `invite_ttl_hours` | 168 | how long a member invitation stays valid. Not an invitation link, which is fixed at seven days (§3.4) |
| `pair_ttl_hours` | 24 | how long an operator pairing code stays valid |
| `device_request_ttl_minutes` | 60 | how long a device request waits for approval. Comfort, not security: the code is bound to the keys by its hash |
-| `max_concurrent_streams` | 8 | simultaneous video streams. One process per viewer, ~50 MB each; a slot is held for the length of a film, so this counts viewers |
+| `max_concurrent_streams` | 8 | simultaneous video streams. One process per viewer, ~50 MB each; a slot is held for the length of a film, so this counts viewers. One account plays at most half of them, rounded up — three screens in one home fit, and no member alone takes every slot — and runs at most two subtitle extractions at once, which take the same slots |
| `max_concurrent_downloads` | 8 | node-wide download leases (§5.5) |
| `max_concurrent_uploads` | 8 | node-wide upload leases. A separate pool from downloads, because the two cost different things and one queue for both makes each cap meaningless |
| `max_upload_gb` | 8 | the largest single upload, §6.4. Fractions are allowed, and it is read per chunk so a change reaches an upload already running |
@@ -2020,8 +2020,13 @@ refused offer is indistinguishable, to the reader, from a node that is down:
connected above all, fails at once, so a dead node costs no time.
The node bounds its own total separately (`MAX_PEER_SESSIONS` in
-`webrtc_server.py`), which is the limit that protects the machine whatever the
-number of members.
+`webrtc_server.py`, 128), which is the limit that protects the machine whatever
+the number of members, and **one account holds at most half of it** (64, from
+the account the hub names with each offer). The heaviest real member — twenty
+groups on one node, three devices and a spare tab — holds up to 52: each device
+keeps up to twelve connections for search and music, plus the open group page.
+The node's own account is not counted; it is the operator's machine. An idle
+connected session costs about 0.15 MiB and one file descriptor.
**A node registered for no group shares one with nobody**, and is refused rather
than exempted. Written as "check membership if the node claims any group", the