Files: fc6f0a0f0855a69b0137cdf8dd265e6e2fb4e16f / design.md
Architechture
This prototype attemps to module Ethereum as three seperate but interlocking layers. Environment, Kernel, and VM
+------------------+ | | | Environment | | | +------------------+ | +------------------+ | | | Kernal | | | +------------------+ | interfaces | +------------------+ | | | VM | | | +------------------+
VM
The Vm implements webassembly. Two sets of intefaces are exposed to it by the kernal. The Kernal Interface and The Environment Interface.
Kernel Interface
The kernal handles the following
- Interprocess communication
- Intializing the VM and exposes ROM to it (codeHandler)
- Exposing the namespace and Intializes the Environment which VM instance exists (callHandler)
- Provides some built in contracts that facilitates different run levels (runTx, runBlock)
- Provides resource sharing and limiting via gas
The kernel Interface expose kernal primitives to VM which contain
- IPC (calls)
- Namespace Interface
- GET/PUT/DELETE/ROOT/NEXT - currently implemented as a digraph
Environment Interface
The Environment Interface expose the following
- blockchain infromation
- current block infromation
- transaction infromation
Built with git-ssb-web