Changes between Version 4 and Version 5 of Capabilities
- Timestamp:
- 2010-07-01T02:01:35Z (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Capabilities
v4 v5 1 1 = Capabilities = 2 2 3 An overview from the mailing list archives - originally [http://allmydata.org/pipermail/tahoe-dev/2009-February/001110.html Feb 2009 - Brian Warner]: 3 An overview from the mailing list archives - originally by [http://allmydata.org/pipermail/tahoe-dev/2009-February/001110.html Feb 2009 - Brian Warner], 4 but updated to take into account literal caps and immutable directories: 4 5 5 6 {{{ 6 1: immutable file read-only capability string URI:CHK: 7 2: immutable file verify capability string URI:CHK-Verifier: 7 1: immutable file read-only capability string URI:CHK: 8 2: immutable file verify capability string URI:CHK-Verifier: 9 3: immutable LIT file read-only capability string URI:LIT: 8 10 9 3: mutable file read-write capability stringURI:SSK:10 4: mutable file read-only capability stringURI:SSK-RO:11 5: mutable file verify capability stringURI:SSK-Verifier:11 4: mutable file read-write capability string URI:SSK: 12 5: mutable file read-only capability string URI:SSK-RO: 13 6: mutable file verify capability string URI:SSK-Verifier: 12 14 13 6: directory read-write capability string URI:DIR2: 14 7: directory read-only capability string URI:DIR2-RO: 15 8: directory verify capability string URI:DIR2-Verifier: 15 7: immutable directory read-only capability string URI:DIR2-CHK: 16 8: immutable directory verify capability string URI:DIR2-CHK-Verifier: 17 9: immutable LIT directory read-only capability string URI:DIR2-LIT: 18 19 10: mutable directory read-write capability string URI:DIR2: 20 11: mutable directory read-only capability string URI:DIR2-RO: 21 12: mutable directory verify capability string URI:DIR2-Verifier: 16 22 17 23 In Tahoe, directories are built out of mutable files (a directory is really … … 23 29 derive #2 (but not the other way around). The full table is: 24 30 25 #1->#2 26 #3->#4->#5 27 #6->#7->#8 31 #1 -> #2 32 #4 -> #5 -> #6 33 #7 -> #8 34 #10-> #11-> #12 28 35 29 36 Deriving a weaker capability from a strong one is called "diminishing" the stronger one. 30 37 31 So we use "filecap" to talk about #1+#3+#4, but (since most files are 32 immutable) we're usually talking about #1. We use "dircap" to talk about #6 33 and #7. We use "readcap" to talk about #1,#4, and #7, but usually we refer to 34 #7 as a "directory readcap". We use "writecap" to talk about #3 and #6. 38 So we use "filecap" to talk about #1..6, but (since most files are immutable) 39 we're usually talking about #1. We use "dircap" to talk about #7..12. 40 We use "readcap" to talk about #{1,3,5,7,9,11}, but usually we refer to 41 #{7,9,11} as a "directory readcap". We use "writecap" to talk about #4 and #10. 42 43 A "literal cap" or "LIT cap" stores the contents of a small file (#3) or 44 directory (#9) in the capability itself. 35 45 36 46 A "verifycap" is the weakest capability that still allows every bit of every 37 47 share to be validated (hashes checked, signatures verified, etc). That means 38 # 2, #5, and #8.48 #{2,6,8,12}. 39 49 40 50 When we talk about a "repaircap", we mean "the weakest capability that can 41 51 still be used to repair the file". Given the current limitations of the 42 repairer and our webapi, that means we're talking about # 1, #3, or #6.52 repairer and our webapi, that means we're talking about #{1,4,7,10}. 43 53 Eventually we'll fix this limitation, and any verifycap should be useable as 44 a repaircap too. ( there's much less work involved to let #2 repair a file..45 it's just an incomplete API, rather than a fundamental redesign of the server 46 protocol). 54 a repaircap too. (There's much less work involved to let #2 repair a file or 55 #8 repair a directory... it's just an incomplete API, rather than a fundamental 56 redesign of the server protocol.) 47 57 48 58 We then use the somewhat-vague term "rootcap" to refer to a cap (usually a