ipfs / notes

IPFS Collaborative Notebook for Research
MIT License
401 stars 30 forks source link

In a multi*-world, how can programs communicate capabilities? Also, VMs. #225

Open void4 opened 7 years ago

void4 commented 7 years ago

I.e. "i support these prefixes". The current mapping requires consensus.

Suppose there was consensus on a good VM with the following properties:

  1. simple
  2. homoiconic/runtime serializable processes
  3. easily sandboxable

the prefix could be a

although this might incur too much overhead.

Do you know any sane VM or language designs?

Misc. https://github.com/PeterReid/hoplight

hsanjuan commented 7 years ago

What's VM here?

void4 commented 7 years ago

A virtual machine or language specification.

Edit: https://github.com/void4/notes/issues/5

jbenet commented 7 years ago

@void4 you can make self-description all the way down, too. all the way to the kernel itself. meaning the code for multi-* algorithms would be available in IPFS too. you would then just need to store enough of the code locally to have a system that can get the rest of what it needs and bootstrap itself up.

are you interested in making this?

void4 commented 7 years ago

@jbenet Yes, but I'm not sure what this would entail. Do you have notes on this?

What kind of environment should the kernel expect? How does it interact with the environment? What kind of VM? A fully deterministic WASM subset? A homoiconic high level language? A DAG-adapted Nock?

Do we build 9P directly into the VM? Then it could easily host itself recursively. In some sense we are code golfing for an operating system here.

The main direction seems to be: "remove any hard-coded conventions, replace them with some VM code". This is what Urbits "operating function" is all about.