/[gzz]/gzz/doc/pegboard/simple_storm--benja/peg.rst
ViewVC logotype

Diff of /gzz/doc/pegboard/simple_storm--benja/peg.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by tjl, Wed Feb 26 06:51:07 2003 UTC revision 1.7 by benja, Sun Mar 23 15:36:08 2003 UTC
# Line 8  Line 8 
8  :Last-Modified: $Date$  :Last-Modified: $Date$
9  :Type:          Architecture  :Type:          Architecture
10  :Scope:         Major  :Scope:         Major
11  :Status:        Incomplete  :Status:        Current
12    
13    
14  Storm is quite complex with its MIME headers, and prone to become  Storm is quite complex with its MIME headers, and prone to become
15  more complex if we choose to separate hashing of headers and bodies  more complex if we choose to separate hashing of headers and bodies
16  (``raw_blocks--benja``). If we break backward compatibility  (``raw_blocks--benja``). If we break backward compatibility
17  once, as Tuomas suggests, we should take the opportunity to  a single time, as Tuomas suggests, we should take the opportunity to
18  get rid of our mistakes from the past, in order to make  get rid of our mistakes from the past, in order to make
19  the future simpler.  the future simpler.
20    
# Line 46  Issues Line 46  Issues
46     We'll be using that (and we'll fully specify it when     We'll be using that (and we'll fully specify it when
47     writing the informal URN namespace registration).     writing the informal URN namespace registration).
48    
 - How do we represent charsets?  
   
    SUGGESTED RESOLUTION: Like in ``data:`` URIs:  
    ``...text/plain;charset=utf-8``.  
   
49  - Why bitzi bitprint? What is it? Why not SHA-1?  - Why bitzi bitprint? What is it? Why not SHA-1?
50    
51       RESOLVED: Bitprints are a combination of a SHA-1 hash with a
52       Merkle hash tree based on the Tiger hash algorithm.
53       Hash algorithms get broken; when one of the above
54       is broken, you have a transitional period before
55       the other is, too, in which you can e.g. sign blocks,
56       ensuring you can still use them when the other
57       is broken too.
58    
59       Having a hash tree allows you to download pieces
60       of a block from different sources, verifying each
61       piece individually. This can be of great help
62       in speeding up download times.
63    
64  - Are bitprints too long for short blocks like ours?  - Are bitprints too long for short blocks like ours?
65      (How long are the IDs going to be and whether
66      this will be a problem.)
67    
68       RESOLVED: Here's an example URI, 102 characters long:
69    
70         urn:urn-?:application/rdf+xml,QLFYWY2RI5WZCTEP6MJKR
71         5CAFGP7FQ5X.VEKXTRSJPTZJLY2IKG5FQ2TCXK26SECFPP4DX7I
72      
73       This is long, but IMO not 'too long.'
74    
75    - Why this syntax? Why not another?
76    
77       RESOLVED: For similarity to RFC 2397 (The "data"
78       URL scheme).
79    
80  Changes  Changes
81  =======  =======
# Line 61  Changes Line 83  Changes
83  Storm blocks do not have headers any more; the hash in their URN  Storm blocks do not have headers any more; the hash in their URN
84  is only of the body. Storm URNs have the following form:  is only of the body. Storm URNs have the following form:
85    
86      <namespace>:block:<bitprint>[:<content-type>]      <namespace>:block:[<mediatype>],<data>
87    
88  ``<namespace>`` is an informal URN namespace to be registered,  ``<namespace>`` is an informal URN namespace to be registered,
89  like ``urn:urn-5``. ``<bitprint>`` is a Bitzi bitprint as defined  like ``urn:urn-5``. ``<bitprint>`` is a Bitzi bitprint as defined
90  by <http://bitzi.com/developer/bitprint>. ``<content-type>`` is  by <http://bitzi.com/developer/bitprint>. ``<mediatype>`` is
91  either a non-"X-" MIME content type or a URI. ``X-`` types are  the token defined in [RFC2397]--
92  prohibited because they work against the persistence of Storm blocks.  
93  We allow URIs as a namespace for experimental identifiers instead.      mediatype  := [ type "/" subtype ] *( ";" parameter )
94        parameter  := attribute "=" value
95    
96    "where [...] 'type', 'subtype', 'attribute' and 'value' are
97    the corresponding tokens from [RFC2045], represented using
98    URL escaped encoding of [RFC2396] as necessary" [RFC2397].
99    (Escaping is necessary when a character isn't in the set
100    of allowed URN characters.)
101    
102    "X-" types aren't allowed, as they work against the persistence
103    of Storm blocks; ``application/octet-stream`` or similar
104    must be used instead.
105    
106  If no ``<content-type>`` is given, or a URI content type  Unlike in [RDF2397], if no ``<mediatype>`` is given,
107  is not known, ``application/octet-stream`` is assumed.  ``application/octet-stream`` is assumed (not ``text/plain``).
108    
109  There is a public domain Java implementation of bitprints at  There is a public domain Java implementation of bitprints at
110  <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/bitcollider/jbitprint/>.  <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/bitcollider/jbitprint/>.
111  Bitprints may be registered as a URN namespace in the future,  Bitprints may be registered as a URN namespace in the future,
112  according to Bitzi. If they're willing to include an optional  according to Bitzi. However, they will not include a
113  content type, ``urn:bitprint:`` and our ``urn:...:block:``  content type.
 would be equivalent.  
114    
115  \- Benja  \- Benja

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26