Changes between Version 4 and Version 5 of Capabilities


Ignore:
Timestamp:
2010-07-01T02:01:35Z (14 years ago)
Author:
davidsarah
Comment:

literal caps and immutable directories

Legend:

Unmodified
Added
Removed
Modified
  • Capabilities

    v4 v5  
    11= Capabilities =
    22
    3 An overview from the mailing list archives - originally [http://allmydata.org/pipermail/tahoe-dev/2009-February/001110.html Feb 2009 - Brian Warner]:
     3An overview from the mailing list archives - originally by [http://allmydata.org/pipermail/tahoe-dev/2009-February/001110.html Feb 2009 - Brian Warner],
     4but updated to take into account literal caps and immutable directories:
    45
    56{{{
    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:
    810
    9  3: mutable file read-write capability string   URI:SSK:
    10  4: mutable file read-only capability string    URI:SSK-RO:
    11  5: mutable file verify capability string       URI: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:
    1214
    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
     1910: mutable directory read-write capability string        URI:DIR2:
     2011: mutable directory read-only capability string         URI:DIR2-RO:
     2112: mutable directory verify capability string            URI:DIR2-Verifier:
    1622
    1723In Tahoe, directories are built out of mutable files (a directory is really
     
    2329derive #2 (but not the other way around). The full table is:
    2430
    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
    2835
    2936Deriving a weaker capability from a strong one is called "diminishing" the stronger one.
    3037
    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.
     38So we use "filecap" to talk about #1..6, but (since most files are immutable)
     39we're usually talking about #1. We use "dircap" to talk about #7..12.
     40We 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
     43A "literal cap" or "LIT cap" stores the contents of a small file (#3) or
     44directory (#9) in the capability itself.
    3545
    3646A "verifycap" is the weakest capability that still allows every bit of every
    3747share to be validated (hashes checked, signatures verified, etc). That means
    38 #2, #5, and #8.
     48#{2,6,8,12}.
    3949
    4050When we talk about a "repaircap", we mean "the weakest capability that can
    4151still 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.
     52repairer and our webapi, that means we're talking about #{1,4,7,10}.
    4353Eventually 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).
     54a 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
     56redesign of the server protocol.)
    4757
    4858We then use the somewhat-vague term "rootcap" to refer to a cap (usually a