[tahoe-dev] nanobarter redux

zooko zooko at zooko.com
Thu Aug 23 12:42:06 PDT 2007


Folks:

My conversation with Nick Szabo about his notion of "nanobarter" has  
been slowly progressing:

http://unenumerated.blogspot.com/2007/06/nanobarter.html

In a related story, Brian and I started talking yesterday about the  
issues of "quotas", "file maintenance", and related topics for Tahoe.

The question is: how to allocate resources?  For example, if there is  
a storage server, and a client connects to it and requests that it  
store a gigabyte of data for 30 days, and if the server has the space  
available to write a gigabyte, then should the server grant or deny  
this request from the client?

There are currently two or three use cases that we care about in the  
short term:

1.  Allmydata.com owns the server, and Allmydata.com's customer owns  
the client.  The server should accept the request if and only if the  
customer has the right kind of contract with Allmydata.com.

2.  Your friend owns the server, and you own the client, and the  
server should always grant your request.

3.  Your friend owns the server, and you own the client, but your  
friend wants to share his space evenly among his friends, so the  
server should grant your request only if you are not using up more  
than your share.

My basic feeling at this point is that we can make an abstraction for  
the resource allocation decision, and that abstraction can be  
implemented as an account-server or token-server resolution for the  
first use case, and as local or bilateral peer relationship logic for  
the second two use cases.  Likewise, other use cases that might arise  
can hopefully fit into this same basic abstraction.

What I mean is, in the  
"please_allocate_some_space_for_some_duration_for_me()" message,  
there could be an argument named "why_should_you" which contains an  
object (i.e. a foolscap-referenceable Python object).  This object  
could be None for the second use case, it could contain a reference  
to an account server and an account id for the first use case, and so  
on.

This is still early days for this issue.  More to come as I  
understand it.

Regards,

Zooko


More information about the tahoe-dev mailing list