You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: plans/2026-08-22-xftp-file-storage-time.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -141,7 +141,8 @@ Testing:
141
141
142
142
- e2e test in `tests/XFTPAgent.hs`: generate a BBS keypair, sign a supporter credential (issuer key index 1), run the server with `entitlementKeys = {1: testPk}` and a supporter maximum above the default, run the sender agent with the same `entitlementKeys` and the credential for the user, send a file requesting a number of hours above the default and below that maximum, and assert `SFDONE`'s granted expiry rounds up `now + requested` (proof of the entitlement raising the max above the default)
143
143
- the same upload without the credential is capped at the default maximum
144
-
- store log round trip in `tests/CoreTests/StoreLogTests.hs`, in the shape of the SMP store log test: a file record survives a write, a read into the store, and compaction, including a file blocked with a notice, where the record has a field after the blocking info
144
+
- the expiry is written before the status, because `BlockingInfo`'s notice parser is terminal (`A.takeByteString`), so any field after the blocking info makes the record unparseable and the file is dropped on restart. Every field added to `AddFile` must go before the status
145
+
- store log round trip in `tests/CoreTests/StoreLogTests.hs`, in the shape of the SMP store log test: a file record survives a write, a read into the store, and compaction, with and without the expiry, including a file blocked with a notice in both cases
Copy file name to clipboardExpand all lines: protocol/xftp.md
+25-5Lines changed: 25 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ This document describes XFTP protocol version 4. The version history:
55
55
- v1: initial version
56
56
- v2: authenticated commands - added basic auth support for commands
57
57
- v3: blocked files - added BLOCKED error type for policy violations
58
-
- v4: server public information in handshake
58
+
- v4: server public information and entitlement proof in handshake, file storage time in FNEW and SIDS
59
59
60
60
The protocol describes the set of commands that senders and recipients can send to XFTP routers to create, upload, download and delete data packets of several pre-defined sizes. XFTP routers SHOULD support packets of 4 sizes: 64KB, 256KB, 1MB and 4MB (1KB = 1024 bytes, 1MB = 1024KB).
61
61
@@ -330,7 +330,7 @@ Once TLS handshake is complete, client and router will exchange blocks of fixed
; encoded from v4; absent or zero requests the maximum the router allows
458
+
storageHours = 4*4 OCTET ; Word32 big-endian
444
459
445
460
x509encoded = <binary X509 key encoding>
446
461
447
462
length = 1*1 OCTET
448
463
```
449
464
465
+
`fileStorageTime` requests how long the router stores the data packet. The router grants the smaller of the request and the maximum it allows for the entitlement presented in the handshake, and returns the granted expiration in `sndIds`.
466
+
450
467
If the data packet is registered successfully, the router must send `sndIds` response with the sender's and recipients' data packet IDs:
0 commit comments