Tahoe-LAFS devchat 20-Jun-2017 Attendees: warner, exarkun, meejah
Notes: * twisted book ideas: tahoe, magic-wormhole, buildbot * magic-wormhole ops stuff * API to turn on mitigation * stats fetcher API instead of writing out JSON files * wormhole rendezvous server could accept JSON blobs over unix-domain socket, return results as JSON via same path * then write external proxy program which does whatever auth you want * wormhole-server --api-port=unix:/path * https://github.com/warner/magic-wormhole/issues/176 * NaCl-based signed/Boxed requests/responses * write "wormhole-server-api-client" to speak the client-side * or do auth/encryption in-process * plugins * or pre-write multiple auth schemes as people ask for them * or SIGUSR1: reread configfile * down-side of --api-port=: easy to accidentally expose, e.g. --api-port=tcp:0.0.0.0:1234 * magic-wormhole PoW/DoS-mitigation stuff * warner will read wormhole#126 /PR165 * maybe/maybe-not automatically pop open web browser * meejah finds it kind of rude to launch a browser surprisingly * maybe have them hit return at the "enter token" prompt to pop-open their web browser * jp: open local web server, point user's browser at that, auto-submit token * or, in a WebView, provide a window.somethingNew API to auto-submit (like how Persona used to do it) * tahoe-invite * at least needs magic-wormhole 0.10.0 with new API * CNAME * tahoe invite / tahoe create-node --join * tahoe create-node --join=WORMHOLECODE * current patch makes this be create-client: disables storage * only thinking of this as a client thing for now * "tahoe invite" is run on any node * because it currently only provides the introducer.furl and recommended encoding parms * and suggested nickname * so notionally it's run on the introducer node * LAE won't use these commands * server will use some internal API * gridsync will wrap client, do its own wormhole stuff, emit tahoe.cfg * so main customer right now is: * power users who want an LAE server but who won't run the gridsync client * friendnet admin who want easier client setup * two sides exchange an abilities message first * so initial code will use v1, which transfers just introducer.furl and encoding parameters * later, v2 means grid-manager, which also does accounting pubkeys * need a way to make an interactive code-entry form of create-client * maybe "tahoe create-client --join=ASK", or "tahoe create-client --accept" * but to be honest, tab-completion is not a priority-1 feature * also think about web-based config setup * "tahoe create-client --websetup" * then a web-based UI asks for the invitation code * restarts itself after tahoe.cfg is written * * tahoe start/daemonize/run, PR417 * change "tahoe start" to bail with error on windows * exarkun would like to see "tahoe start" go away, only provide "tahoe run", use external daemonizers * should we also get rid of "tahoe stop"? * warner wants a handy command for local testnets * maybe supervisord (which is in homebrew), or daemontools * this exists so that async startup (for async leasedb) can async fail, and "tahoe start" exits with error * goal is to replace the Client() constructor API (as called by startstop_node.py) with a function that returns a Deferred * internally it will build all the sub-objects that Client needs (i.e. leasedb) asynchronously, then feed them in as pre-constructed attrs to Client() * the Deferred it returns will fulfill a contract that says "when you finally get this Client object, it will be fully ready to go, and any obvious early/late errors that would prompt us to terminate the process will have happened by now" * later we can provide softer contracts, like "this is good enough for downloading, but might not yet be good enough for uploading" * moving tahoe to a more library-like interface (with possible shared connection pools, like twisted's http2/Agent API) can make this easier * * warner will look for a "tahoe start" replacement, then he can be comfortable with hard-deprecation "tahoe start" * aka "deprecate with an axe" * maybe add a helper shell script to misc/ * _______________________________________________ tahoe-dev mailing list tahoe-dev@tahoe-lafs.org https://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev