New paper: "Distributed Electronic Rights in JavaScript"

David Bruant bruant.d at
Tue Jan 15 02:20:19 PST 2013

Hi Mark,

I have a couple of comments:
* On the share-nothing model
This comment goes beyond the paper, but I think is relevant for future work.
Practice of the event loop model in JavaScript has proven that the 
share-nothing model has limitations. In my opinion, one of the reasons 
WebWorkers aren't used is that the share-nothing model imposes to copy 
data when one wants 2 WebWorkers to communicate.
This resulted in the addition of Transferable objects in JavaScript [1]. 
Rust introduced the notion of unique pointer [2] for equivalent reasons.
Adding a notion of (implicit) ownership could be a lead to follow 
(especially for the event loop work in ES7). It would however create a 
breach in the uniform vat model which abstracts out whether 2 vats are 
on the same machine or not. But I think it's a worthwhile addition.

* Web-key
It's probably a nit, but worth mentioning. Web-keys like only work on the web with a 
web application taking the fragment and building another url like with it, because the 
fragment part of a URL is a client-side only thing and is never sent 
over the network.

> Checkpointing a program’s entire state after every event loop turn may 
> be consid-
> ered costly. Ken takes care to only store those parts of the heap to 
> disk that are updated during a turn. Further, the availability of 
> cheap low-latency non-volatile memory (such as solid-state drives) has 
> driven down the cost of writing state to “disk” to the point that 
> making micro-snapshots after every turn becomes practical.
Out of curiosity, have you measured how much these micro-snapshots take? 
If so, what are the results/order of magnitude?


[2] Relevant article, but I'm not sure it's the best resource on the 

Le 14/01/2013 23:46, Mark S. Miller a écrit :
> At
> Paper for invited talk at ESOP2013
> Final already submitted, but comments of course appreciated anyway.
> Distributed Electronic Rights in JavaScript
> Mark S. Miller
> Tom Van Cutsem
> Bill Tulloh
> Contracts enable mutually suspicious parties to cooperate safely
> through the exchange of rights. Smart contracts are programs whose
> behavior enforces the terms of the contract. This paper shows how such
> contracts can be specified elegantly and executed safely, given an
> appropriate distributed, secure, persistent, and ubiquitous
> computational fabric. JavaScript provides the ubiquity but must be
> significantly extended to deal with the other aspects. The first part
> of this paper is a progress report on our efforts to turn JavaScript
> into this fabric. To demonstrate the suitability of this design, we
> describe an escrow exchange contract implemented in 42 lines of
> JavaScript code.
> --
>      Cheers,
>      --MarkM
> _______________________________________________
> es-discuss mailing list
> es-discuss at

More information about the es-discuss mailing list