[tahoe-dev] a distributed web app -- tahoe tiddly wiki

Ben Laurie ben at links.org
Mon Apr 28 08:14:37 UTC 2008


zooko wrote:
> Folks:
> 
> Here is a version of Tiddly Wiki which has been slightly patched to  
> save itself with an HTTP PUT back to its web location instead of  
> writing itself to a local file.
> 
> http://tahoebs1.allmydata.com:8123/uri/URI%3ADIR2% 
> 3A5pg4nmduniy2va6zgzz4wewvoi% 
> 3Amsrwf7ty7aye4lcuheiu27b3fp6tjvvyvenz25cnficcjd7qudwq/wiki.html
> 
> You can edit it and then click "save changes" and the results of your  
> edits will be written back to the tahoe grid where other people can  
> see them and change them.
> 
> Try it!
> 
> This is the first example that I know of of a "distributed web app"  
> -- a web app with no Single Point Of Failure.
> 
> Obviously if you don't want to use the "tahoebs1.allmydata.com"  
> public web gateway, you can run a Tahoe node yourself and replace  
> "tahoebs1.allmydata.com" with "127.0.0.1".

Cool idea. But, when I try it using my local node I get:

<type 'exceptions.ValueError'>: substring not found
/disk1.1/usr/local/lib/python2.5/site-packages/twisted/internet/defer.py, 
line 317 in _runCallbacks
315

                 kw = kw or {}

316

                 try:

317

                     self.result = callback(self.result, *args, **kw)

318

                     if isinstance(self.result, Deferred):

Self
result	
twisted.python.failure.Failure instance at 
0x90b558c<twisted.python.failure.Failure <type 'exceptions.ValueError'>>
Locals
kw	
Dictionary instance @ 0x909c824
callback	
Method _unpack_contents in file 
/disk1.1/usr/home/ben/darcs-work/tahoe/src/allmydata/dirnode.py at line 168
self	
twisted.internet.defer.Deferred instance at 0x90b026c<Deferred at 
0x90b026c current result: <twisted.python.failure.Failure <type 
'exceptions.ValueError'>>>
args	

()

Globals
Deferred	

<class twisted.internet.defer.Deferred at 0x84a256c>

/disk1.1/usr/home/ben/darcs-work/tahoe/src/allmydata/dirnode.py, line 
181 in _unpack_contents
179

         children = {}

180

         while len(data) > 0:

181

             entry, data = split_netstring(data, 1, True)

182

             name, rocap, rwcapdata, metadata_s = split_netstring(entry, 4)

Locals
data	- ???S????&???/h=??F??I??{??????L??Ys??Z????q??2?W?=?? 
V?Z??] ???
???N????*??U?'~?
?J?t0Q,F7?sB?X?^?oE????????A??
children	
Dictionary instance @ 0x909c604
Globals
split_netstring	
Function split_netstring in file 
/disk1.1/usr/home/ben/darcs-work/tahoe/src/allmydata/dirnode.py at line 16
/disk1.1/usr/home/ben/darcs-work/tahoe/src/allmydata/dirnode.py, line 24 
in split_netstring
22

     assert numstrings >= 0

23

     while data:

24

         colon = data.index(":")

25

         length = int(data[:colon])

Locals
numstrings	

1

data	- ???S????&???/h=??F??I??{??????L??Ys??Z????q??2?W?=?? 
V?Z??] ???
???N????*??U?'~?
?J?t0Q,F7?sB?X?^?oE????????A??

<type 'exceptions.ValueError'>: substring not found

-- 
http://www.apache-ssl.org/ben.html           http://www.links.org/

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff



More information about the tahoe-dev mailing list