Skip to content
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

spec: proposal for terminology #101

Open
wants to merge 1 commit into
base: eei-v2
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Copy link
Collaborator

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.

Copy link
Collaborator Author

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.


**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?**):
Copy link
Collaborator

Choose a reason for hiding this comment

The 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?

Copy link
Contributor

Choose a reason for hiding this comment

The 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

Copy link
Collaborator Author

Choose a reason for hiding this comment

The 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?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The 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.

Expand Down