devchat notes 09-May-2017
Brian Warner
warner at lothar.com
Tue May 9 20:55:28 UTC 2017
Tahoe-LAFS devchat notes 09-May-2016
Attendees: warner, exarkun, liz, meejah, cypher
* warner will land exarkun's magic-wormhole dockerfile patch (PR 149)
* also add dockerhub integration to MW account
* exarkun will look at tahoe's dockerfile situation
* warner will give dockerhub creds (for the tahoe account) to exarkun
* add "exarkun" to the organization
* also find out where the integration is pointing at
* ping ramki about namespaces
* warner will write up "federated grid" approaches to mailing list
* clearinghouse approaches
* two features: help find foreign data, mediate payment
* 1: clearinghouse maps short "area code"/grid-id to server access
FURLs (and also mediates payment)
* 2: filecaps include full verifying key as "area code",
access/contact-info stored in DHT
* foreign-filecaps get kinda big
* DHT is pretty small: one record per grid, probably 1KB max
* is the DHT sufficiently incentivized?
* 3: clearinghouse keeps a giant table of storageindex -> home grid
* filecaps remain small: one cryptovalue for mutable, two for
immutable
* to sign up with the clearinghouse, your servers must register all
their storage indices
* maybe clients can distinguish between "local" files and
"remotely-available"/"shared" files
* kind of a drag on the GUI, but maybe people would (like to) use
this as a form of access control
* clearinghouse provides obvious value
* easier to implement on the client: add a special server (always
the last one queried) which is backed by clearinghouse-provided
data
* initial directions:
* add "grid manager":
* defined by a verifying pubkey
* clients sign up with one grid manager via invitation process
* grid manager chooses which storage servers are part of the grid
* grid manager chooses which clients can use the grid
* payments (if any) happen out-of-band
* clients provide an accounting pubkey to grid manager, who delivers
them to servers
* maybe via the grid-membership announcement: include both
authorized servers *and* clients
* servers measure usage, indexed by accounting pubkey, provide
reports to grid manager
* so grid manager knows Alice's aggregate usage, across all
servers, according to servers
* server displays data to the server operator, who decides what/how
to bill the grid manager
* maybe add a price list to the server, so the report can be
denominated in $/BTC/ZEC/etc
* but don't publish this price list in any machine-readable
format, for now
* grid manager gets a report, decides what/how to bill clients
* maybe do a similar internal price list
* friend-net: somebody volunteers to manage the grid, runs
grid-manager, adds everybody as servers and clients
* usage reports but no billing
* rent-a-friend-net: provide a pre-packaged grid-manager which uses S3
* paste in AWS creds, grid-manager sets up a single server on S3
* admin's job is to make sure the AWS bill is paid
* initially, the only corrective tool is revocation
* grid-manager can kick a client out of the club
* storage server admin can kick out the grid-manager
* servers could lie about how much space is being used (to extract more
money from grid manager)
* can bound this by using finer-grained space delegation
* instead of server granting all space to manager, then manager
granting all space to Alice
* server could give a token for 1GB of space to manager, manager
gives to Alice
* Alice won't ask for a new token until she's used up the first one
* server can't claim alice is using more than 1GB unless the manager
was asked for a second token
* tradeoff of (network traffic, grid-manager involvement, complexity)
against (server's ability to lie)
* sounds like Macaroons, issued by storage server,
constrained/attenuated by grid-manager, exercised by clients
* foreign-grid payment issues
* should clearinghouse force members to charge a fixed rate for
downloads? doesn't feel right
* each grid can tell the clearinghouse what their rate is, must commit
to it for some amount of time
* like phone-call rates to different area codes costing more or less:
expensive remote grid, cheap remote grid
* local grid-manager can decide how much is too much, limit or forbid
access to some grids
* "sorry, that's a 1-900- number, completely blocked"
* Alice shouldn't contact foreign grid directly: she should go through
a gateway (specified by grid-manager)
* use her accounting key to request the ciphertext of a foreign-grid
file
* gateway checks with grid-manager for permission, which decides
based on price and Alice's quota
* gateway talks to foreign grid's gateway (announced by
clearinghouse), uses local grid's credentials
* foreign grid gateway talks to its servers, does erasure decoding,
delivers ciphertext
* foreign grid tells clearinghouse about the charge, clearinghouse
adds to local grid manager's bill
* same issues about servers lying
* aim for pairwise token exchange, limit total counterparty risk
* magic-wormhole "get token from URL" hashcash/captcha generalization:
file issue, implement
* gridsync invitation body: start with exchange of abilities, make room
for future "tahoe invite" with more keys
* grid-manager will eventually provide a verifying key,
grid-membership announcements will be signed by it
* client will eventually submit a client/accounting verifying key,
needs to be delivered to servers
More information about the tahoe-dev
mailing list