Re: A practical and compelling distributed cap platform: Sandstorm on Cap'n Proto
Thomas Leonard <[email protected]>
| Newsgroups | gmane.comp.capabilities.general |
|---|---|
| Message-ID | <CAG4opy8RJpu8fotATHBoCkNxu-uZ0orCXoZVeKzJRaFRz=ADCw@mail.gmail.com> |
On 5 August 2014 04:04, Mark S. Miller <[email protected]> wrote: > Hi cap-talk, > > I want to call everyone's attention to a project I've been advising and am > excited about. > > Sandstorm.io is a capability platform entering a new market not already > dominated by big players: user-friendly hosting of personal instances of > "cloud" apps. Kenton et al have built a system that makes installing and > using apps on a personal server as easy as installing apps on a phone should > be. They have attracted users from far beyond the capability community with > the promises of privacy, security, control, and the ability to easily run > open source apps that were previously too hard to set up. > > We may have a real opportunity here to show the world what a capability > system looks like without having to beat a well-funded incumbent. > > The demo takes 60 seconds and quickly illustrates what Sandstorm is and just > how easy it is to use <https://demo.sandstorm.io>. > > The project is currently fundraising on Indiegogo. I have contributed > <https://www.indiegogo.com/projects/sandstorm-io-personal-cloud-platform>. > > Please take a look. Do you find it as compelling as I do? What opportunities > or weaknesses might we have missed? Let's discuss it here on cap-talk. I've > CC'd Kenton Varda, the lead developer. Hi Mark, It wasn't totally clear to me from the page what it actually does. How are the web apps sandboxed? Using VMs? Containers? Processes? Can I upload any VM image, like with OpenStack or OpenNebula? If so, how is this different? We're trying to provide a user-friendly Xen hosting system for users to install web-apps on their home routers, developer boards, etc. Our plan is for the VMs themselves to be tiny unikernels written in OCaml (very little C except for malloc and the boot code): http://nymote.org/ Here's an example of a simple web-app I wrote to test it: http://roscidus.com/blog/blog/2014/07/28/my-first-unikernel/ I'd certainly like to get some ocaps in here, and the technologies you describe sound useful. > Some more details, in layers: > > * Kenton had built and open sourced Google's "Protocol Buffers 2" > infrastructure <https://code.google.com/p/protobuf/>, which is a compact > efficient serialization format for structured data (typed records and > lists). It is central to much of Google's infrastructure. Kenton has since > left Google and revisited these ideas, creating a successor in the > serialization format of Cap'n Proto, where the generated C++ accessors > enable clients to directly compute with the data as stored in the > transmissible form, saving the serialization/unserialization costs, > resulting in significant speedups. For example, > <http://www.slideshare.net/albertstrasheim/serialization-in-go> starting at > slide 39. This is especially significant since Go was built to work well > with protocol buffers. > > * Next layer up is Cap'n Proto's RPC system, which is a statically typed > variant of CapTP built on Cap'n Proto serialization, with full promise > pipelining and E-order. Kenton has done a few friam presentations on it, and > it looks great. Great! How did you fix the DoS problems we had with pipelining in E? (being able to use lots of resources on a server by doing bignum calculations on ints, making millions of copies of strings and lists, etc) > There are now language bindings for Cap'n Proto for a significant number of > languages <https://kentonv.github.io/capnproto/otherlang.html>. For example, > Cloudflare is using Cap'n Proto from Lua > <http://blog.cloudflare.com/introducing-lua-capnproto-better-serialization-in-lua>. > > Cap'n Proto is a conventional github based volunteer open source project, > based on free (as in beer) contributions. > > > * Next layer up is Sandstorm, which is also all open source, but as a > startup company trying to raise their initial funding on Indegogo. I am an > advisor and contributor to this project. > > The name "Sandstorm" is for "Sandbox in the Cloud". The Sandstorm technology > enables anyone to run a webserver which can host sandboxed applications -- > typically web apps -- installed by their clients. Cap'n Proto serves as the > secure IPC layer between these applications, and between them and their > clients. If clients and hosts do not enable these to talk to their authors, > these applications are ideally confined from their authors (modulo some > transient usable security shortcuts in the current demo). > > > I like > <http://gigaom.com/2014/08/01/sandstorms-decentralized-hosting-platform-could-finally-make-indie-web-apps-viable/> > as a laymen's explanation of the significance of all this, without needing > to say much about computer security per se. We've all learned the painful > lesson of how hard it is to sell security directly. I think these projects > are a wonderful way to deploy the kind of security we care about, by selling > the functionality they built on this security. -- Dr Thomas Leonard http://0install.net/ GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA