Mon, 27 Sep 1999 04:35:46 -0400
I've built something which should satisfy your appetite for capabilities until
we get E finished.
Droplets is a secure web based capability environment. I think it might be the
world's first (Mark?). Droplets works by embedding 128 bit numbers in URLs that
reference BLOBs in an object database. Using nothing but a web browser, users
can securely surf through the database, create new objects and engage in
transactions with other users.
I've also provided Open Source implementations of Mark's ERTP and the e-gold
Shopping Cart Interface (http://www.e-gold.com). This means that you can make
applications that do secure transactions with real money. Since ERTP supports
secure anonymous transactions, Droplets might be the only currently deployed
software that supports blind transactions.
For the Xanadu buffs in the crowd, Droplets also has built in support for
On my web site, http://www.waterken.com, you'll find a demonstration/tutorial
application called Beach Sex. It's meant to serve as an introduction to erights
and smart contracts. It's called Beach Sex because it lets you trade erights
that represent consent to procreate. It's fun to play with and will give you a
sense of the kind of things you can build with Droplets.
There's also the Pop Stand application which sells Waterken software license
certificates for e-gold. ;)
I built Droplets with a few aims in mind. One of those aims was to create a
precursor for full E. Although there should be, there isn't a whole lot of pent
up demand out there for capabilities. Most people don't even know what they are
or what they can do. With Droplets, I hope I have planted capabilities in sexy
application central. Although Droplets can't do everything that a capability
environment should, such as confinement, it can do the most important things.
Most importantly, it allows programmers to deploy capability based solutions
now. I hope that Droplets provides an easy way for programmers to get into the
capabilities mindset, and that once there, they'll start demanding the full set
of functionality that environments like E provide.
As Mark has been occasionally hinting at, I've got a 100% Java implemented
object database. It stores everything in a single file, does generational
garbage collection and has support for very large, deterministic collections.
It's used for persistence in the Droplets environment. It's possible that it
could be used for persistence in E.
That said, getting to full E is a lot more work than making Droplets from
scratch was. It's a large codebase and it hasn't really been conceived with a
persistence solution in mind. There are also some unresolved persistence issues
with E. We have to come up with a way of identifying objects which should be
persistent. Some thought also needs to be given to E's transactional paradigm.
When can an E object be sure that a given state has become durable?
I have some ideas for the above problems and would like to see how they fit in
with the current E code, but this is likely more work than I am willing to do
for free. A possible solution would be for me to develop a commercial E vat. The
tl-E distribution would of course remain free. How much would people on this
list pay for a full E vat?
We can kick around ideas for this, and I am going to spend a bit of time
wandering around in the E code. In the meantime though, it would be great if you
could all help spread the word about Droplets.
As a last word, I'd like to thank Mark for all the work he's done on E. A lot of
the design expertise that I used in making Droplets is newly acquired expertise
that I got from being exposed to E. Thanks Mark.