-
Notifications
You must be signed in to change notification settings - Fork 126
spec: proposal for terminology #101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: eei-v2
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,17 +5,20 @@ Introduction | |
------------ | ||
|
||
This document aims to specify an ewasm VM in a way useful to contract writers and VM implementers. | ||
To this end, multiple things are specified: | ||
|
||
- The extra state that a VM needs to have around to successfully respond to calls into the EEI. | ||
- The EEI (Ethereum Environment Interface), currently specified loosely [here](eth_interface.md). | ||
|
||
### Terminology | ||
|
||
**EEI**: The *Ethereum Environment Interface* refers to the layer between the Ethereum Client code and the execution engine. | ||
**TODO**: Is *EEI* the right term to use? | ||
|
||
**Ethereum Client**: Code which can interact with the blockchain (read/validate and sending transactions). | ||
**EEI method**: A method exposed by the Ethereum Client to the execution engine for interacting with the blockchain state. | ||
|
||
**EEI namespace**: Named subset of the available EEI methods for specifying which blockchain state interactions are available to an execution engine. | ||
|
||
**Ethereum Client**: Code which can interact with the blockchain (read/validate and broadcasting transactions). | ||
|
||
**EVMC**: The *Ethereum Virtual Machine Connector* (correct name?) refers to one of (**TODO: Which one?**): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's API (C language) containing both API for VM and EEI. Maybe I should physically separate both for clarity? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, the full name for acronym EVMC is here: https://github.com/ethereum/evmc There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, so would: EVMC: The Ethereum Client-VM Connector API is the C implementation of the EEI. be an accurate description? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, good idea @poemm, I'll make all these definitions links when appropriate. |
||
- The C++ header file specifying the EEI. | ||
- The execution engine side of the EEI. | ||
|
||
**execution engine**: The underlying "hardware" of the VM, implementing the basic computational functions. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wander maybe "function" would be more familiar name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to avoid the word "function" because they aren't functions in the mathematical sense. I think "method" or "procedure" is closer, in the sense of methods from OOP languages like Java which can alter the state of the surrounding context.