Ticket #1227: html-rst-conversion.patch

File html-rst-conversion.patch, 17.3 KB (added by p-static, at 2010-12-04T08:36:19Z)

add rST versions of the existing HTML docs (and also delete install.html, since it's unused)

  • new file docs/about.rst

    diff --git a/docs/about.rst b/docs/about.rst
    new file mode 100644
    index 0000000..a278e3b
    - +  
     1======================
     2Welcome to Tahoe-LAFS!
     3======================
     4
     5Welcome to `Tahoe-LAFS <http://tahoe-lafs.org>`_, the first
     6decentralized storage system with *provider-independent security*.
     7
     8What is "provider-independent security"?
     9========================================
     10
     11Every seller of cloud storage services will tell you that their service
     12is "secure".  But what they mean by that is something fundamentally
     13different from what we mean.  What they mean by "secure" is that after
     14you've given them the power to read and modify your data, they try
     15really hard not to let this power be abused.  This turns out to be
     16difficult!  Bugs, misconfigurations, or operator error can accidentally
     17expose your data to another customer or to the public, or can corrupt
     18your data.  Criminals routinely gain illicit access to corporate
     19servers.  Even more insidious is the fact that the employees themselves
     20sometimes violate customer privacy out of carelessness, avarice, or
     21mere curiousity.  The most conscientious of these service providers
     22spend considerable effort and expense trying to mitigate these risks.
     23
     24What we mean by "security" is something different.  *The service
     25provider never has the ability to read or modify your data in the first
     26place -- never.*  If you use Tahoe-LAFS, then all of the threats
     27described above are non-issues to you.  Not only is it easy and
     28inexpensive for the service provider to maintain the security of your
     29data, but in fact they couldn't violate its security if they tried. 
     30This is what we call *provider-independent security*.
     31
     32This guarantee is integrated naturally into the Tahoe-LAFS storage
     33system and doesn't require you to perform a manual pre-encryption step
     34or cumbersome key management.  (After all, having to do cumbersome
     35manual operations when storing or accessing your data would nullify one
     36of the primary benefits of using cloud storage in the first place --
     37convenience.)
     38
     39Here's how it works:
     40
     41.. image:: http://tahoe-lafs.org/~zooko/network-and-reliance-topology.png
     42
     43A "storage grid" is made up of a number of storage servers.  A storage
     44server has direct attached storage (typically one or more hard disks). 
     45A "gateway" uses the storage servers and provides access to the
     46filesystem over HTTP(S) or (S)FTP.
     47
     48Users do not rely on storage servers to provide *confidentiality* nor
     49*integrity* for their data -- instead all of the data is encrypted and
     50integrity-checked by the gateway, so that the servers can neither read
     51nor modify the contents of the files.
     52
     53Users do rely on storage servers for *availability*.  The ciphertext is
     54erasure-coded and distributed across ``N`` storage servers (the default
     55value for ``N`` is 10) so that it can be recovered from any ``K`` of
     56these servers (the default value of ``K`` is 3).  Therefore only the
     57simultaneous failure of ``N-K+1`` (with the defaults, 8) servers can
     58make the data unavailable.
     59
     60In the typical deployment mode each user runs her own gateway on her
     61own machine.  This way she relies on her own machine for the
     62confidentiality and integrity of the data.
     63
     64An alternate deployment mode is that the gateway runs on a remote
     65machine and the user connects to it over HTTPS or SFTP.  This means
     66that the operator of the gateway can view and modify the user's data
     67(the user *relies on* the gateway for confidentiality and integrity),
     68but the advantage is that the user can access the filesystem with a
     69client that doesn't have the gateway software installed, such as an
     70Internet kiosk or cell phone.
     71
     72Access Control
     73==============
     74
     75There are two kinds of files: immutable and mutable.  Immutable files
     76have the property that once they have been uploaded to the storage grid
     77they can't be modified.  Mutable ones can be modified.  A user can have
     78read-write access to a mutable file or read-only access to it (or no
     79access to it at all).
     80
     81A user who has read-write access to a mutable file or directory can
     82give another user read-write access to that file or directory, or they
     83can give read-only access to that file or directory.  A user who has
     84read-only access to a file or directory can give another user read-only
     85access to it.
     86
     87When linking a file or directory into a parent directory, you can use a
     88read-write link or a read-only link.  If you use a read-write link,
     89then anyone who has read-write access to the parent directory can gain
     90read-write access to the child, and anyone who has read-only access to
     91the parent directory can gain read-only access to the child.  If you
     92use a read-only link, then anyone who has either read-write or
     93read-only access to the parent directory can gain read-only access to
     94the child.
     95
     96For more technical detail, please see the `the doc page
     97<http://tahoe-lafs.org/trac/tahoe-lafs/wiki/Doc>`_ on the Wiki.
     98
     99Get Started
     100===========
     101
     102To use Tahoe-LAFS, please see `quickstart.rst <quickstart.rst>`_.
     103
     104License
     105=======
     106
     107You may use this package under the GNU General Public License, version
     1082 or, at your option, any later version.  See the file `COPYING.GPL
     109<../COPYING.GPL>`_ for the terms of the GNU General Public License,
     110version 2.
     111
     112You may use this package under the Transitive Grace Period Public
     113Licence, version 1 or, at your option, any later version.  The
     114Transitive Grace Period Public Licence has requirements similar to the
     115GPL except that it allows you to wait for up to twelve months after you
     116redistribute a derived work before releasing the source code of your
     117derived work. See the file `COPYING.TGGPL <../COPYING.TGPPL.html>`_ for
     118the terms of the Transitive Grace Period Public Licence, version 1.
     119
     120(You may choose to use this package under the terms of either licence,
     121at your option.)
     122
  • deleted file docs/install.html

    diff --git a/docs/install.html b/docs/install.html
    deleted file mode 100644
    index 33b6064..0000000
    + -  
    1 <!DOCtype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    2 <html lang="en">
    3   <head>
    4     <title>Getting Tahoe-LAFS</title>
    5     <link rev="made" class="mailto" href="mailto:zooko[at]zooko[dot]com">
    6     <meta name="description" content="how to get Tahoe-LAFS">
    7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    8     <meta name="keywords" content="tahoe-lafs secure decentralized filesystem installation">
    9     <meta http-equiv="refresh" content="0;url=quickstart.html" />
    10   </head>
    11 
    12   <body>
    13     <p>This page has moved to <a href="quickstart.html">quickstart.html</a>.</p>
    14   </body>
    15 </html>
  • new file docs/quickstart.rst

    diff --git a/docs/quickstart.rst b/docs/quickstart.rst
    new file mode 100644
    index 0000000..efbedb9
    - +  
     1==================
     2Getting Tahoe-LAFS
     3==================
     4
     5Welcome to `the Tahoe-LAFS project <http://tahoe-lafs.org>`_, a secure,
     6decentralized, fault-tolerant storage system. `About Tahoe-LAFS
     7<about.rst>`_.
     8
     9How To Get Tahoe-LAFS
     10=====================
     11
     12This procedure has been verified to work on Windows, Mac, OpenSolaris,
     13and too many flavors of Linux and of BSD to list.  It's likely to work
     14on other platforms.
     15
     16In Case Of Trouble
     17------------------
     18
     19There are a few 3rd party libraries that Tahoe-LAFS depends on that
     20might not be easy to set up on your platform.  If the following
     21instructions don't Just Work without any further effort on your part,
     22then please write to `the tahoe-dev mailing list
     23<http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev>`_ where
     24friendly hackers will help you out. You might also find clues in the
     25`Advanced Installation`_ section described below.
     26
     27Install Python
     28--------------
     29
     30Check if you already have an adequate version of Python installed by
     31running ``python -V``.  Python v2.4 (v2.4.4 or greater), Python v2.5,
     32Python v2.6, or Python v2.7 will work. Python v3 does not work. On
     33Windows, we recommend the use of Python v2.6 (native, not Cygwin). If
     34you don't have one of these versions of Python installed, then follow
     35the instructions on `the Python download page
     36<http://www.python.org/download/releases/2.6.6/>`_ to download and
     37install Python v2.6. Make sure that the path to the installation
     38directory has no spaces in it (e.g. on Windows, do not install Python
     39in the "Program Files" directory).
     40
     41If you are on Windows, you now must manually install the pywin32
     42package from `the pywin32 site
     43<http://sourceforge.net/projects/pywin32/files/>`_ before getting
     44Tahoe-LAFS. Make sure to get the correct file for the version of Python
     45you are using -- e.g. ending in "py2.6.exe" for Python v2.6. If using
     4664-bit Windows, the file should have "win-amd64" in its name.
     47
     48Get Tahoe-LAFS
     49--------------
     50
     51`Download the latest stable release, v1.8.1
     52<http://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-1.8.1.zip>`_
     53
     54Set Up Tahoe-LAFS
     55-----------------
     56
     57Unpack the zip file and cd into the top-level directory.
     58
     59Run ``python setup.py build`` to generate the ``tahoe`` executable in a
     60subdirectory of the current directory named ``bin``. This will download
     61and build anything you need from various websites.
     62
     63On Windows, the ``build`` step might tell you to open a new Command
     64Prompt (or, on XP and earlier, to log out and back in again). This is
     65needed the first time you set up Tahoe-LAFS on a particular
     66installation of Windows.
     67
     68Optionally run ``python setup.py test`` to verify that it passes all
     69of its self-tests.
     70
     71Run ``bin/tahoe --version`` (on Windows, ``bin\tahoe --version``) to
     72verify that the executable tool prints out the right version number.
     73
     74Run Tahoe-LAFS
     75--------------
     76
     77Now you are ready to deploy a decentralized filesystem.  The ``tahoe``
     78executable in the ``bin`` directory can configure and launch your
     79Tahoe-LAFS nodes.  See `running.rst <running.rst>`_ for instructions on
     80how to do that.
     81
     82Advanced Installation
     83---------------------
     84
     85For optional features such as tighter integration with your operating
     86system's package manager, you can see the `AdvancedInstall
     87<http://tahoe-lafs.org/trac/tahoe/wiki/AdvancedInstall>`_ wiki page.
     88The options on that page are not necessary to use Tahoe-LAFS and can be
     89complicated, so we do not recommend following that page unless you have
     90unusual requirements for advanced optional features. For most people,
     91you should first follow the instructions on this page, and if that
     92doesn't work then ask for help by writing to `the tahoe-dev mailing
     93list <http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev>`_.
     94
  • new file docs/running.rst

    diff --git a/docs/running.rst b/docs/running.rst
    new file mode 100644
    index 0000000..8424ab0
    - +  
     1=====================
     2How To Run Tahoe-LAFS
     3=====================
     4
     5Intro
     6=====
     7
     8This is how to run a Tahoe-LAFS client or a complete Tahoe-LAFS grid.
     9First you have to install the Tahoe-LAFS software, as documented in
     10`quickstart.rst <quickstart.rst>`_.
     11
     12The ``tahoe`` program in the ``bin`` directory is used to create,
     13start, and stop nodes. Each node lives in a separate base directory, in
     14which there is a configuration file named ``tahoe.cfg``. Nodes read and
     15write files within this base directory.
     16
     17A grid consists of a set of *storage nodes* and *client nodes* running
     18the Tahoe-LAFS code. There is also an *introducer node* that is
     19responsible for getting the other nodes talking to each other.
     20
     21If you're getting started we recommend you try connecting to
     22the `the public test grid
     23<http://tahoe-lafs.org/trac/tahoe-lafs/wiki/TestGrid>`_ as you only
     24need to create a client node. When you want to create your own grid
     25you'll need to create the introducer and several initial storage nodes
     26(see the note about small grids below).
     27
     28If the Tahoe-LAFS ``bin`` directory is not on your PATH, then in all
     29the command lines below, specify the full path to ``bin/tahoe``.
     30
     31To construct a client node, run "``tahoe create-client``", which will
     32create ``~/.tahoe`` to be the node's base directory. Acquire a copy of
     33the ``introducer.furl`` from the introducer and put it into this
     34directory, then use "``tahoe run``". After that, the node should be off
     35and running. The first thing it will do is connect to the introducer
     36and get itself connected to all other nodes on the grid.  By default,
     37"``tahoe create-client``" creates a client-only node, that does not
     38offer its disk space to other nodes. To configure other behavior, use
     39"``tahoe create-node``" or see `configuration.rst <configuration.rst>`_.
     40
     41To construct an introducer, create a new base directory for it (the
     42name of the directory is up to you), ``cd`` into it, and run
     43"``tahoe create-introducer .``". Now run the introducer using
     44"``tahoe start .``". After it starts, it will write a file named
     45``introducer.furl`` in that base directory. This file contains the URL
     46the other nodes must use in order to connect to this introducer. (Note
     47that "``tahoe run .``" doesn't work for introducers, this is a known
     48issue: `#937 <http://allmydata.org/trac/tahoe-lafs/ticket/937>`_.)
     49
     50The "``tahoe run``" command above will run the node in the foreground.
     51On Unix, you can run it in the background instead by using the
     52"``tahoe start``" command. To stop a node started in this way, use
     53"``tahoe stop``". ``tahoe --help`` gives a summary of all commands.
     54
     55See `configuration.rst <configuration.rst>`_ for more details about how
     56to configure Tahoe-LAFS, including how to get other clients to connect
     57to your node if it is behind a firewall or NAT device.
     58
     59A note about small grids
     60------------------------
     61
     62By default, Tahoe-LAFS ships with the configuration parameter
     63``shares.happy`` set to 7. If you are using Tahoe-LAFS on a
     64grid with fewer than 7 storage nodes, this won't work well for you
     65&mdash; none of your uploads will succeed. To fix this, see <a
     66href='configuration.rst'>configuration.rst</a> to learn how to set
     67``shares.happy`` to a more suitable value for your
     68grid.
     69
     70Do Stuff With It
     71================
     72
     73This is how to use your Tahoe-LAFS node.
     74
     75The WUI
     76-------
     77
     78Point your web browser to `http://127.0.0.1:3456
     79<http://127.0.0.1:3456>`_ -- which is the URL of the gateway running on
     80your own local computer -- to use your newly created node.
     81
     82Create a new directory (with the button labelled "create a directory").
     83Your web browser will load the new directory.  Now if you want to be
     84able to come back to this directory later, you have to bookmark it, or
     85otherwise save a copy of the URL.  If you lose URL to this directory,
     86then you can never again come back to this directory.
     87
     88You can do more or less everything you want to do with a decentralized
     89filesystem through the WUI.
     90
     91The CLI
     92-------
     93
     94Prefer the command-line? Run "``tahoe --help``" (the same command-line
     95tool that is used to start and stop nodes serves to navigate and use
     96the decentralized filesystem). To get started, create a new directory
     97and mark it as the 'tahoe:' alias by running
     98"``tahoe create-alias tahoe``". Once you've done that, you can do
     99"``tahoe ls tahoe:``" and "``tahoe cp LOCALFILE tahoe:foo.txt``" to
     100work with your filesystem. The Tahoe-LAFS CLI uses similar syntax to
     101the well-known scp and rsync tools. See `CLI.rst <frontends/CLI.rst>`_
     102for more details.
     103
     104As with the WUI (and with all current interfaces to Tahoe-LAFS), you
     105are responsible for remembering directory capabilities yourself. If you
     106create a new directory and lose the capability to it, then you cannot
     107access that directory ever again.
     108
     109The SFTP and FTP frontends
     110--------------------------
     111
     112You can access your Tahoe-LAFS grid via any `SFTP
     113<http://en.wikipedia.org/wiki/SSH_file_transfer_protocol>`_ or `FTP
     114<http://en.wikipedia.org/wiki/File_Transfer_Protocol>`_ client.
     115See `FTP-and-SFTP.rst <frontends/FTP-and-SFTP.rst>`_ for how to set
     116this up. On most Unix platforms, you can also use SFTP to plug
     117Tahoe-LAFS into your computer's local filesystem via ``sshfs``.
     118
     119The `SftpFrontend
     120<http://tahoe-lafs.org/trac/tahoe-lafs/wiki/SftpFrontend>`_ page on the
     121wiki has more information about using SFTP with Tahoe-LAFS.
     122
     123The WAPI
     124--------
     125
     126Want to program your Tahoe-LAFS node to do your bidding?  Easy!  See
     127`webapi.rst <frontends/webapi.rst>`_.
     128
     129Socialize
     130=========
     131
     132You can chat with other users of and hackers of this software on the
     133#tahoe-lafs IRC channel at ``irc.freenode.net``, or on the `tahoe-dev
     134mailing list
     135<http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev>`_.
  • new file docs/write_coordination.rst

    diff --git a/docs/write_coordination.rst b/docs/write_coordination.rst
    new file mode 100644
    index 0000000..eebb0dd
    - +  
     1==================================
     2Avoiding Write Collisions in Tahoe
     3==================================
     4
     5Tahoe does not provide locking of the mutable files and directories. 
     6If there is more than one simultaneous attempt to change a mutable file
     7or directory, then an <cite>UncoordinatedWriteError</p> will result. 
     8This might, in rare cases, cause the file or directory contents to be
     9accidentally deleted.  The user is expected to ensure that there is at
     10most one outstanding write or update request for a given file or
     11directory at a time.  One convenient way to accomplish this is to make
     12a different file or directory for each person or process which wants to
     13write.