-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 How do you imagine the web of the future?
[pre-draft, after a first small review circle we should make the development of the draft as viral as possible] The Web could embrace distributed web-content, applications and services. Today resourceful client hardware, sophisticated browsers and a complex client-side JavaScript language has already become reality. Global IPv6 endpoint-to-endpoint connectivity adds new opportunities to fully distributed P2P networks. (and that's also already reality, even if for the meantime just due to Microsoft shipping built-in IPv6 transition method Teredo since Windows 7) Many services already do load-balancing on many layers (web-caching, database-clusters, distributed storage), but that "cloud" obviously runs on centrally managed infrastructure, which is expensive to run. Modifying the current server-centric web architecture into a hybrid distributed architecture would allow existing services to scale better by making use of resources on clients. This could lead to a gradual adoption of peer-to-peer methods (as already seen in proprietary environments such as Adobe Flash) once support on the client-side exists/matures. This is an invitation to help linking those topics with more related projects, existing RFCs (there is a lot!) or papers on these topics. I guess it makes most sense to discuss and develop even the specs (!) on gitorious. How would you feel comfortable to participate? This needs a lot of glue! I envision an architecture that extends the current W3C web by a number of additions: - -1. (a more distributed) Networking infrastructure, multi-homing in ARPA, local mesh (arig), global overlay-networks like DN42, VPNs and TOR * transparent to client applications due to trivial routing for IPv6 multi-homed nodes as there are now address-space collisions 0. distributed DNS (many are breaking their heads on it) DNSSec provides the base for it, however, probably there will remain many implementations, ranging from hierachical/centralized to fully distributed, depending on the clients connectivity and system properties. * implemented as a device-type specific (permanent-infrastructure,stationary,mobile) daemon on each network node, therefore also transparent to the client. 1. (more) DHT e.g. using an existing implementation like libbitdht BitTorrent DHT is already widely adopted, namespaces can easily be added. I can imagine a use like NoSQL, given there is a JavaScript API provided by the browser... The DHT service could be extended with operations needed to run a distributed PKI, see section 4. 2. Distributed storage and streaming (to be implemented in VLC, hopefully Mozilla foundation will realize the need...) retrievel e.g. http://torrentstream.info there are proposals to add libtorrent streaming to VLC why not to Firefox? (or use Vuze or miro as your browser ;) or not even torrent but GnuNET? imagine URLs like magnet:?xt=urn:sha1:34a6fe12ac58d090610ad9b78feb3f75049fb3db:/file.html magnet:?xt=urn:sha1:34a6fe12ac58d090610ad9b78feb3f75049fb3db:/stream.ogm maybe HTML5 <a>,<style>,<img>,<video>,<audio>,... tags could have extra CSS/DOM attributes for retention time and other p2p client settings... or append it to the url like in SIP such as magnet:?xt=urn:sha1:34a6fe12ac58d090610ad9b78feb3f75049fb3db:/news0.html;r=1d DNS can carry such things as magnet-urls TXT records, seed-nodes could also be refered to by SRV records in DNS. site-certificates or even IPSec keys could also be stored in DNS.... publishing by creating torrents could also be integrated into the browser, e.g. for photo or other media uploads 3. WebSockets<->TOR(onion) local service on each client :) or anonymous other overlay networks like I2P and again GnuNET. Can any of them do "real" multicasting? can easily be used in JavaScript by creating a WebSocket connection to localhost:[tor-websocket-port] 4. a distributed PKI a distributed keyring and key/certificate management system imagine a mapping of social-networking like operations (->LinkedIn) to operations on PGP-like cryptographic certificates. Client side must support key generation, foreign public key signing, signed-public key certificate publishing in the DHT (+extensions, see below), public-key+purpose signing request. certificate signature revocation can be achieved by generating the revoker and refering to it's hash, but not yet publishing it on the DHT). this includes adding a crypto-namespace to the DHT which restricts operations on key-value-pairs according to rules provided by the cryptographic interpretation and evaluation of the current value(=certificate) of the key(=hash) (instead of keyservers), plus local support for both, per-user/per-app/per-namespace/... locally generated software keys or hardware tokens (PKCS#12). Singular permissions can then be reference by the hash of the corresponding signed certificate. A simple login with only a username and a password could be provided by storing a private-key plus certificate in an password-encrypted wrapper in the DHT. On the GUI-level, this could look like an roster. This includes using the PKI to include certificates for infrastructure services like DNSSec, IPSec, 802.11i or authsae or to-be-invented-olsr-real-security (which could be just IPSec-AH, however, only once the PKI is already populated...) A good example of existing building-blocks can be found in rapidshare https://rapidshare.com/ or key-management-guys like seahorse and of course just plainly GnuPG and all related tools. 5. real-time communication (implemented at least in Firefox and Chrome) WebRTC for direct Audio/Video communication (I wonder how we will fit established VoIP servers like freeswitch, camilo, asterisk, ... into that story...) 6. feeds/blogs/logs could then be implemented in client-side script-language by using DHT and PKI features 7. distributed search and crawling e.g. http://yacy.net/en/index.html (implemented in Java) maybe someone wants to write something like this in node/js? 8. distributed processing and building for software distribution and continuous integration during development, bigger data-processing tasks, ... e.g. using http://www.buildbot.net/ 9. distributed collaborative development and revisioning of course using http://git-scm.com/ 10. multi-cast broadcasting well, one day, it will probably make sense to use real multicast for real-time content instead of (caching) torrent-like method (as via zattoo.com)... -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJRHXV5AAoJECBgbL4bcbCQ3CAH/R+IuRVk0YkNBNXI60NLOrz5 UlgJXtD9TO4njHue71TOiIhfM9bul9F06t3SfWmHPu4YQ9Wdo6gvWGpThRjhlM+n d1U1Gr2yUKZTcg9xDi1b00KS+2VkAs9r1Krbkm8TREWhL+Q/yid2qSMJ1PG7gPqt 4mQGCcjoUKslzmDhYWOgE2h1Y+NCCBgem2ptOWLwM1CpVwCcgReeYoNjpMSmOzk2 sci2skcZrzR3cFJMd/XaU1lKBUDhUNBOfMtMEZ/wNIYlJ5UJV1f3HmIRc8/95/IV j0/xohg+YpUsHvlExUFfG0yU1eo0jfeyomequm3HaSkRiUI1Q0eoO76Bb9SSFAs= =XcCE -----END PGP SIGNATURE----- _______________________________________________ arig-discuss mailing list arig-discuss@lists.subsignal.org https://lists.subsignal.org/mailman/listinfo/arig-discuss