/[gzz]/manuscripts/storm/article.rst
ViewVC logotype

Diff of /manuscripts/storm/article.rst

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

revision 1.157 by antont, Sat Feb 15 14:09:28 2003 UTC revision 1.158 by benja, Sat Feb 15 14:10:33 2003 UTC
# Line 476  the link now points to both locations of Line 476  the link now points to both locations of
476  In Storm, all data is stored  In Storm, all data is stored
477  as *blocks*, byte sequences identified by a SHA-1  as *blocks*, byte sequences identified by a SHA-1
478  cryptographic content hash [fips-sha-1]_.  cryptographic content hash [fips-sha-1]_.
479  Being purely a function of a block's content, block ids  Purely a function of a block's content, block ids
480  are completely independent of network location.  are completely independent of network location.
481  Blocks have a similar granularity  Blocks have a similar granularity
482  as regular files, but they are immutable, since any change to the  as regular files, but they are immutable, since any change to the
# Line 491  we are able to check we have the correct Line 491  we are able to check we have the correct
491  the cryptographic hash in the identifier. Therefore, we can  the cryptographic hash in the identifier. Therefore, we can
492  safely download blocks from an untrusted peer.  safely download blocks from an untrusted peer.
493    
 While digital signatures also allow for self-certifying identifiers  
 (the identifier could contain a public key, and we could check  
 the signature after downloading a block),  
 they raise the need for a public-key infrastructure (PKI)  
 and for a timestamping mechanism in order to be reliable  
 for more than a short time.  
   
494  When we make a reference to a block, we can be sure  When we make a reference to a block, we can be sure
495  that even the original author of the target will not be able  that even the original author of the target will not be able
496  to change it (contrast this with a signature-based scheme).  to change it (unlike with e.g. digital signatures).
497  For example, if a newspaper refers to a letter  For example, if a newspaper refers to a letter
498  to the editor this way, the letter's sender won't be able to change  to the editor this way, the letter's sender won't be able to change
499  the reference into an advertisement for a pornographic web page.  the reference into an advertisement for a pornographic web page.
# Line 509  Secondly, caching becomes trivial, since Line 502  Secondly, caching becomes trivial, since
502  never necessary to check for new versions of blocks. It is easy  never necessary to check for new versions of blocks. It is easy
503  to replicate data between systems: A replica of a block never  to replicate data between systems: A replica of a block never
504  needs to be updated; cached copies can be kept as long as desired.  needs to be updated; cached copies can be kept as long as desired.
 When a document is replicated, different versions of it can  
 coexist on the same system without naming conflicts, since  
 each version will be stored in its own block with its own id.  
505    
506  If peers make the blocks in their caches available on the network,  If peers make the blocks in their caches available on the network,
507  the flash crowd problem could be alleviated: The more users  the flash crowd problem could be alleviated: The more users
# Line 525  concerns with exposing one's browser cac Line 515  concerns with exposing one's browser cac
515  To replicate all data from computer A  To replicate all data from computer A
516  on computer B, it suffices to copy all blocks from A to B that B  on computer B, it suffices to copy all blocks from A to B that B
517  does not already store. This can be done through a simple 'copy'  does not already store. This can be done through a simple 'copy'
518  command. In contrast, a system based on mutable resources  command. Different versions of a single document
519    can coexist on the same system without naming conflicts, since
520    each version will be stored in its own block with its own id.
521    In contrast, a system based on mutable resources
522  has to use more advanced schemes, for example merging the changes  has to use more advanced schemes, for example merging the changes
523  done to a document at A or B. (Merging is still be necessary  done to a document at A or B. (Merging is still be necessary
524  when a user wants to incorporate a set of changes, but not  when a user wants to incorporate a set of changes, but not
# Line 542  retrieved from the network. When an onli Line 535  retrieved from the network. When an onli
535  permanently downloaded to the local harddisk, it can be found  permanently downloaded to the local harddisk, it can be found
536  by a browser just as data from the network. This is convenient  by a browser just as data from the network. This is convenient
537  for offline browsing, for example in mobile environments:  for offline browsing, for example in mobile environments:
538  After a document has been downloaded, links to it will *never*  After a block has been downloaded, references to it will *never*
539  cease to work, online or offline.  cease to work, online or offline.
540    
541  .. tried to think this a bit, as 'never' is always a strong word.  .. tried to think this a bit, as 'never' is always a strong word.
# Line 560  cease to work, online or offline. Line 553  cease to work, online or offline.
553     B1.1 does not make any sense when the user ends up in 1.0 instead?)     B1.1 does not make any sense when the user ends up in 1.0 instead?)
554     -- antont     -- antont
555    
556    .. Changed to read 'block.' That blocks are immutable should be clear
557       at this point ;-) -b
558    
559  Thirdly, immutable blocks increase *reliability*.  Thirdly, immutable blocks increase *reliability*.
560  When saving a document, an application will only *add* blocks,  When saving a document, an application will only *add* blocks,
561  never overwrite existing data. When a bug causes an application  never overwrite existing data. When a bug causes an application

Legend:
Removed from v.1.157  
changed lines
  Added in v.1.158

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