Commit Graph

2316 Commits

Author SHA1 Message Date
Zooko O'Whielacronx
294cb071a3 docs: edit running.html 2008-02-15 11:02:19 -07:00
Zooko O'Whielacronx
5942fca1e1 add unit test asserting that allmydata.util.base32 matches rfc 3548 2008-02-14 20:20:19 -07:00
Zooko O'Whielacronx
3eb95c1fad merge patch which adds base32 to test_util with patch which removes bencode from test_util 2008-02-14 19:35:32 -07:00
robk-tahoe
dcf304ab9b macfuse: another tahoe fuse implementation
This is the result of various experimentation done into using python-fuse
to provide access to tahoe on the mac.  It's rough in quite a few places,
and is really the result of investigation more than a thorough
implemenation of the fuse api.

upon launch, it looks for the users root_dir by opening ~/.tahoe/node.url
and ~/.tahoe/private/root_dir.cap it then proceeds to cache the directory
structure found by walking the users tahoe drive (safely in the face of
directory loops) into memory and then mounts that filesystem.

when a file is read, it calls the tahoe node to first download the file
into a cache directory (~/.tahoe/_cache) and then serves up the file
from there.

when a file is written, a temporary file is allocated within the tmp dir
of the cache, and upon close() (specifically upon release()) the file is
uploaded to the tahoe node, and the new directory entry written.

note that while the durectory structure is cached into memory only when
the filesystem is mounted, that it is 'write through' i.e. changes made
via fuse are reflected into the underlying tahoe fs, even though changes
made to the tahoe fs otherwise show up only upon restart.

in addition to opening files for read and write, the mkdir() and rename()
calls are supported.  most other file system operations are not yet
supported.  notably stat() metadata is not currently tracked by tahoe,
and is variably reported by this fs depending on write cache files.


also note that this version does not fully support Finder.  access through
normal unix commands such as cat, cp, mv, ls etc works fine, and read 
access to file from within finder (including preview images and double-
click to open) work ok.  but copies to the tahoe drive from within finder
may or may not succeed, but will always report an error. This is still
under investigation.

also note that this does not include any build integration.  the included
_fusemodule.so was built on mac os 10.4 against macfuse 1.3.0, and is
known to not work against 10.5-1.3.1  it's possible it may also contain
dependencies upon parts of macports used to build the python that it was
built against. this will be cleaned up later.

usage:
    python tahoefuse.py /Path/to/choice/of/mountpoint
or optionally
    python tahoefuse.py -ovolicon=/Path/to/icon.icns /Path/to/mountpoint

upon startup, tahoefuse will walk the tahoe directory, then print a
summary of files and folders found, and then daemonise itself. to exit,
either eject the 'drive' (note: 10.5 doesn't show it as a drive, since
it considers fuse to be a connected server instead) or unmount it via
umount /Path/to/mountpoint etc.
2008-02-14 18:35:10 -07:00
robk-tahoe
65ec397393 mac: fix a small bug in the 'tahoe' script 2008-02-14 17:36:10 -07:00
robk-tahoe
ca41693162 idlib: make failures much clearer when encountering unicode
while investigating fuse related stuff, I spent quite a while staring at
very cryptic explosions I got from idlib.  it turns out that unicode
objects and str objects have .translate() methods with differing signatures.
to save anyone else the headache, this makes it very clear if you accidentally
try to pass a unicode object in to a2b() etc.
2008-02-14 17:23:07 -07:00
Brian Warner
09bfa3bea2 remove bencode, yay 2008-02-14 18:06:41 -07:00
Brian Warner
92640dc6e5 docs/uri.txt: update to reflect mutable files 2008-02-14 17:59:29 -07:00
Brian Warner
7927495cbe unicode handling: declare dirnodes to contain unicode child names, update webish to match 2008-02-14 15:45:56 -07:00
Peter Secor
61edecd137 updating installer for beta release 2008-02-13 21:36:09 -07:00
Brian Warner
1a32aaaa33 more minor architecture.txt changes 2008-02-13 20:20:43 -07:00
Brian Warner
28611d1f90 architecture.txt: fix some things that have changed a lot in recent releases 2008-02-13 20:14:29 -07:00
robk-tahoe
4f4d355310 windows installer: remove uninstall tracking, add welcome page
in justin's testing, the uninstall tracking was hanging the uninstall 
process (on vista) for now, until we see enough need for it to warrant
more detailed testing/debugging/tweaks, I'm simply disabling the call
to confwiz --uninstall

also this adds a 'welcome page' to the install process. once the user
has installed the windows build, then the installer will open a web
browser to the 'welcome page' on the website ('/welcome_install')
2008-02-13 18:17:16 -07:00
Brian Warner
85eae2bf57 mutable.py: add comments to justify initial-read size choices 2008-02-13 17:41:20 -07:00
Brian Warner
269d4bcded docs/dirnodes.txt: add notes on dirnode sizes 2008-02-13 17:40:45 -07:00
Brian Warner
1f6855ede8 mutable.txt: fix offset math in the SDMF layout 2008-02-13 17:39:06 -07:00
Zooko O'Whielacronx
7c6de95bc6 switch from base62 to base32 for storage indices, switch from z-base-32 to rfc 3548 base-32 for everything, separate out base32 encoding from idlib 2008-02-14 19:27:47 -07:00
Zooko O'Whielacronx
481f3649ec docs: link straight to the release tar.gz in install.html 2008-02-14 11:54:14 -07:00
Zooko O'Whielacronx
70dbe69f05 docs: update relnotes.txt for v0.8.0! 2008-02-14 09:00:26 -07:00
Zooko O'Whielacronx
73c148a725 docs: update relnotes, running.html 2008-02-14 08:54:34 -07:00
Zooko O'Whielacronx
b9841d09a2 docs: beginning of update to relnotes.txt for v0.8 2008-02-13 17:43:02 -07:00
Zooko O'Whielacronx
1c456e8210 mac: shebang usr bin env python
This makes it so that I can run "./setup.py" on the command-line, instead of "python ./setup.py".
2008-02-13 16:17:14 -07:00
Brian Warner
41045fba0f 'tahoe catalog-shares': add SDMF filesize to the output, update misc/find-share-anomalies.py to match 2008-02-13 15:12:06 -07:00
Brian Warner
a050204833 add test coverage for the /stats web page 2008-02-13 13:57:39 -07:00
Brian Warner
8c8bcb6d53 mutable.py: reject shares with different k/N than we expect. Quick fix for #312: avoids data corruption but has availability problems. 2008-02-13 13:34:20 -07:00
Brian Warner
871e7756f7 test_web: remove test_GET_DIRURL_large, it failed to exercise the problem in #237 and consumes a disproportionate amount of time 2008-02-13 13:08:26 -07:00
Zooko O'Whielacronx
98f570c3ee setup: remove older bundled pycryptopp-0.2.10 2008-02-13 15:23:15 -07:00
Zooko O'Whielacronx
fa92672e24 setup: bundle pycryptopp-0.3.0 2008-02-13 14:57:15 -07:00
amber
0a01fd405b docs: 10 blocks by default, not 12 2008-02-13 04:57:19 -07:00
Brian Warner
124b2160b9 webish.py: fix for #237: when listing large directories, insert a turn break once every 100 children, to work around non-optimized tail recursion Deferreds 2008-02-12 21:28:52 -07:00
Zooko O'Whielacronx
e400c5a8fb docs: edits and updates to architecture.txt, with Amber 2008-02-13 10:24:52 -07:00
Zooko O'Whielacronx
2e84230a18 setup: remove older bundled version of setuptools_darcs 2008-02-13 08:03:40 -07:00
Zooko O'Whielacronx
70b573434b setup: remove another older bundled setuptools 2008-02-13 08:01:40 -07:00
Zooko O'Whielacronx
99f609d55b setup: remove older bundled setuptools 2008-02-13 07:59:24 -07:00
Zooko O'Whielacronx
9eb2c7f5aa setup: remove older bundled version of darcsver 2008-02-13 07:57:22 -07:00
Zooko O'Whielacronx
e89edf8803 fix a few unused imports and suchlike, discovered by pyflakes 2008-02-13 07:38:08 -07:00
Brian Warner
55d30790bc webish: flogify the remaining log messages 2008-02-12 19:32:33 -07:00
Brian Warner
94348b7182 webish: censor all caps before logging the HTTP request, to preserve user privacy 2008-02-12 19:31:23 -07:00
Brian Warner
9795bcd9b7 download status: refactor into a separate object, so we don't need to keep the Download itself around for a long time 2008-02-12 19:01:03 -07:00
Brian Warner
a7867aeea2 introducer: remove encoding-parameter config, for now 2008-02-12 18:59:54 -07:00
Zooko O'Whielacronx
3f8df27063 use base62 encoding for storage indexes, on disk and in verifier caps, and in logging and diagnostic tools
base62 encoding fits more information into alphanumeric chars while avoiding the troublesome non-alphanumeric chars of base64 encoding.  In particular, this allows us to work around the ext3 "32,000 entries in a directory" limit while retaining the convenient property that the intermediate directory names are leading prefixes of the storage index file names.
2008-02-12 20:48:37 -07:00
Brian Warner
b17b7695a4 webish: add /status page to display current uploads/downloads 2008-02-12 15:40:05 -07:00
Brian Warner
e6af3b845c make current upload/download status objects available from the client 2008-02-12 15:39:45 -07:00
Brian Warner
94097affc3 add download-status objects, to track download progress 2008-02-12 15:38:39 -07:00
Brian Warner
d0ce8694c1 add upload-status objects, to track upload progress 2008-02-12 15:36:05 -07:00
Brian Warner
95f27bb8fb misc/find-share-anomalies.py: tool to analyze 'tahoe catalog-shares' output and look for problems 2008-02-11 19:53:36 -07:00
Brian Warner
a70fba4ef1 webish: add edge metadata to t=json output, including timestamps 2008-02-11 19:14:10 -07:00
Brian Warner
1f7b980a51 catalog-shares: add expiration time to output 2008-02-11 18:44:54 -07:00
Brian Warner
ca27b8e5ad add 'tahoe catalog-shares' tool, to make a one-line summary of each share file. This can help do cross-server correlation of sharefiles, looking for anomalies 2008-02-11 18:17:01 -07:00
Brian Warner
5f50543c3b test_dirnode.py: improve error messages in case timestamp tests fail 2008-02-11 17:37:51 -07:00