User Tools

Site Tools


dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_vm:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_vm:start [2020/11/13 02:21]
nick ↷ Links adapted because of a move operation
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_vm:start [2022/03/23 11:08] (current)
nick
Line 1: Line 1:
 ==== Ethereum: Ethereum Virtual Machine (EVM) ==== ==== Ethereum: Ethereum Virtual Machine (EVM) ====
-[[dido:​public:​ra:​xapend:​xapend.b_stds:​defact:​ethereum| return to the Ethereum Standards ]]+[[dido:​public:​ra:​xapend:​xapend.b_stds:​defact:​ethereum:start| return to the Ethereum Standards ]]
  
 <​table>​ <​table>​
-<​caption>​Data sheet for Ethereum Virtual Machine (EVM)</​caption>​+<​caption>​Data sheet for [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​evm]]</​caption>​
 | Title                      | Ethereum Virtual Machine | | Title                      | Ethereum Virtual Machine |
 | Acronym ​                   | EVM | | Acronym ​                   | EVM |
Line 16: Line 16:
  
 === Overview === === Overview ===
-  : //The Ethereum Virtual Machine or EVM is the runtime environment for smart contracts in Ethereum. It is not only sandboxed but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem or other processes. Smart contracts even have limited access to other smart contracts.//​+  : //The Ethereum ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​v:​vm|Virtual Machine]] or EVM is the runtime environment for smart contracts in [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​ethereum|Ethereum]]. It is not only sandboxed but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem or other processes. ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​smart_contract|Smart contracts]] even have limited access to other smart contracts.//​
  
   : **Accounts**   : **Accounts**
-    : //There are two kinds of accounts in Ethereum which share the same address space: External accounts that are controlled by public-private key pairs (i.e. humans) and contract accounts which are controlled by the code stored together with the account.//+    : //There are two kinds of accounts in Ethereum which share the same address space: External accounts that are controlled by public-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​private_key|private]] key pairs (i.e. humans) and contract accounts which are controlled by the code stored together with the account.//
  
     : **Transactions**     : **Transactions**
-      : //A transaction is a message that is sent from one account to another account (which might be the same or empty, see below). It can include binary data (which is called “payload”) and Ether.//+      : //A transaction is a message that is sent from one account to another account (which might be the same or empty, see below). It can include binary data (which is called “payload”) and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​ether|Ether]].//
  
     : **Gas**     : **Gas**
-      : //Upon creation, each transaction is charged with a certain amount of gas, whose purpose is to limit the amount of work that is needed to execute the transaction and to pay for this execution at the same time. While the EVM executes the transaction,​ the gas is gradually depleted according to specific rules.//+      : //Upon creation, each transaction is charged with a certain amount of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​g:​gas|gas]], whose purpose is to limit the amount of work that is needed to execute the transaction and to pay for this execution at the same time. While the EVM executes the transaction,​ the gas is gradually depleted according to specific rules.//
  
     : **Storage, Memory and the Stack**     : **Storage, Memory and the Stack**
Line 32: Line 32:
     : **Instruction Set**     : **Instruction Set**
       : //The instruction set of the EVM is kept minimal in order to avoid incorrect or inconsistent implementations which could cause consensus problems. All instructions operate on the basic data type, 256-bit words or on slices of memory (or other byte arrays). For a complete list, please see the list of opcodes as part of the inline assembly documentation. ** [[https://​solidity.readthedocs.io/​en/​v0.5.8/​assembly.html#​opcodes | REVIEW EVM OPCODES]] **//       : //The instruction set of the EVM is kept minimal in order to avoid incorrect or inconsistent implementations which could cause consensus problems. All instructions operate on the basic data type, 256-bit words or on slices of memory (or other byte arrays). For a complete list, please see the list of opcodes as part of the inline assembly documentation. ** [[https://​solidity.readthedocs.io/​en/​v0.5.8/​assembly.html#​opcodes | REVIEW EVM OPCODES]] **//
 +      : **Note:** This link is outdated. Look in [[https://​docs.soliditylang.org/​en/​v0.8.13/​assembly.html] Solidity 0.8.13]] and [[https://​docs.soliditylang.org/​en/​v0.8.13/​yul.html#​yul | Yul (previously also called JULIA or IULIA) ]]
  
     : **Message Calls**     : **Message Calls**
Line 40: Line 41:
  
     : **Logs**     : **Logs**
-      : //It is possible to store data in a specially indexed data structure that maps all the way up to the block level. This feature called logs is used by Solidity in order to implement events. //+      : //It is possible to store data in a specially indexed ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​datastructure|data structure]] that maps all the way up to the block level. This feature called logs is used by Solidity in order to implement events. //
  
     : **Deactivate and Self-destruct**     : **Deactivate and Self-destruct**
-      : //The only way to remove code from the blockchain is when a contract at that address performs the selfdestruct operation. //+      : //The only way to remove code from the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​blockchain|blockchain]] ​is when a contract at that address performs the selfdestruct operation. //
  
 +/​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 +/* To add a discussion page to this page, comment out the line that says 
 +  ~~DISCUSSION:​off~~
 +*/
 +~~DISCUSSION:​on|Outstanding Issues~~
 +~~DISCUSSION:​off~~
dido/public/ra/xapend/xapend.b_stds/defact/ethereum/ethereum_vm/start.1605252089.txt.gz · Last modified: 2020/11/13 02:21 by nick