[tahoe-dev] Some thoughts about Tahoe/Allmydata

tav tav at espians.com
Wed Jul 2 15:44:00 PDT 2008


Hey all,

I am currently working on a meta-mashup of sorts -- geared towards
web-based collaboration. This is basically just a minimal glue over
existing services, e.g. YouTube, Facebook, &c. The idea being to
leverage people's use of existing services instead of trying to do
everything from scratch.

As part of this, I was looking for a decent "storage service" to
integrate. So far I have looked at: box.net, openomy, thelinkup,
omnidrive, wuala and allmydata.

My ideal service would have the following components:

1. Ability to run local nodes for "unlimited" storage/bandwidth
2. Ability to buy centralised storage/bandwidth for when my friends
and I are offline
3. Files served over HTTP
4. A decent JSON-based API for building an independent application
5. RSS feeds for monitoring updates to files/directories/tags

I had initially dismissed allmydata as having nothing except feature
#2. But thanks to Zooko, I discovered some hidden nuggets like the
webapi document.

This is my first criticism. The potential of Tahoe and Allmydata is
very cool -- but I feel it isn't really reflected in either of the two
websites. Allmydata.com doesn't come across as a hip Web 2.0 + P2P
enabled storage service. And Tahoe hides some of its useful
functionality in a doc that is hidden away in the repository.

My second point is more of a question. If I run a Tahoe node *and*
have an Allmydata account, will I be able to rely on my Allmydata
account as a centralised fallback when there aren't enough voluntary
nodes on the grid? This is something that I would be happy to pay for
personally and can see others doing so too.

Thirdly, if I have an Allmydata account, can I access my files using
Tahoe's Web API? Is there an API for accessing *my* account somehow?

The Web API is very nicely done. One small point about the
documentation -- it is a bit too detailed for most developer's needs.
It could perhaps be summarised into a shorter document?

As an application developer, one feature I would like added to the Web
API is JSON callback support. That is, if an additional URI query
parameter ?callback=some_function_name is specified, then I'd like the
JSON response data to be wrapped within the function call. For
example, calling:

  /uri/$FILECAP?t=json&callback=foobar

Will respond with:

  foobar(['filenode'....])

A way to get the FILECAP via a JSON callback when POST-ing to /uri
will also be useful.

Anyways, hope some of this was useful. Apologies if my mail makes
little sense -- it has been a long day and I'm writing this in a
hurry. Sorry!

-- 
love, tav

plex:espians/tav | tav at espians.com | +44 (0) 7809 569 369


More information about the tahoe-dev mailing list