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 https://www.example.com/app/#mhbqcmmva5ja3 only work on the web with a web application taking the fragment and building another url like https://www.example.com/app/?s=mhbqcmmva5ja3 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?

David

[1] http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast [2] Relevant article, but I'm not sure it's the best resource on the topic: http://pcwalton.github.com/blog/2012/10/03/unique-pointers-arent-just-about-memory-management/

Le 14/01/2013 23:46, Mark S. Miller a écrit :
At http://code.google.com/p/es-lab/downloads/detail?name=distr-erights-in-js.pdf

Paper for invited talk at ESOP2013 http://www.etaps.org/2013/esop13
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
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to