Un resumen de lo aprendido, por el momento.
Inicia tu camino construyendo la Web3
Bienvenida al desarrollo en blockchain
Por qu茅 iniciar en el desarrollo de blockchain
驴Qui茅n puede ser blockchain developer?
脕reas de aplicaci贸n
Conociendo el entorno de desarrollo
Consideraciones b谩sicas para desarrollo
Lenguajes y herramientas para el desarrollo blockchain
Arquitectura b谩sica en Web 3
Glosario criptogr谩fico
Desarrollo en Ethereum
Solidity: el lenguaje para programar contratos inteligentes
OpenZeppelin Contracts
Ethereum Virtual Machine
Mi camino programando - Ernesto Garc铆a
Primeros pasos en Ethereum
Uso de wallets: Metamask
Redes de prueba
RemixIDE
Entorno de desarrollo con Hardhat
Compilando y desplegando contratos inteligentes
Conectando la blockchain con el navegador: Web3.js y Ether.js
Ejecutando tu aplicaci贸n descentralizada
De Web2 a Web3 - Alfredo Bonilla
Seguridad y protocolos de segunda capa
Desarrollando en capa 2
Aprovecha la descentralizaci贸n - Oscar Barajas
M谩s all谩 del desarrollo
Base de datos en blockchain: IPFS, Filecoin y ARWEAVE
Blockchain startups y DAO
C贸mo llegu茅 a trabajar en programaci贸n - Natacha De La Rosa
Contin煤a tu aprendizaje en la Escuela de Blockchain y Criptomonedas
You don't have access to this class
Keep learning! Join and start boosting your career
The entire functioning of blockchains such as Ethereum, or second layers of it such as Polygon, Arbitrum or Optimisms, among others, is due to the Ethereum Virtual Machine. The technical heart of Ethereum.
The Ethereum Virtual Machine is a complex work of software engineering capable of running the entire Ethereum protocol. We could make an analogy in its operation with a typical CPU of any computer. Its job is to process instructions, one by one.
Each node of the Ethereum network runs the EVM. It is thanks to this that communication between nodes, information exchange, contract execution, information storage, and other functionalities are possible.
The EVM is a simple machine with stack architecture. It stores 256-bit elements in the stack, and interacts with a volatile memory and a permanent storage. The instructions it processes are done cyclically, delivered in "bytecode" format.
As developers, we program the logic of our smart contracts in languages such as Solidity. Any language you compile for EVM is an abstraction layer of a much more complex hexadecimal language for humans to understand called bytecode.
Bytecode is a code that results from compiling source code written in Solidity, or other languages. It was created especially for the EVM and only works for it.
An example of bytecode can be seen as follows: 0x60808060404052....
A long string of hexadecimal numbers that the EVM knows how to translate into operations and parameters.
The instructions are traversed one by one thanks to a fundamental part of the EVM called "program counter". Returning to the previous example, 0x608080604052...
, the counter takes the operator 60
and the parameter 80
, evaluates and executes the instruction. Then it takes the 60
and the 40
, and again evaluates and executes. So, until the end of the whole bytecode.
We can understand the execution of instructions by the program counter with the following graph.
The counter takes the operations from the bytecode and this, in turn, can take from the stack in memory or from the storage any type of data that it needs to do its work. Parameters, variables, etc.
This is a simple way to understand how EVM works. You will find, here at Platzi, the Ethereum Virtual Machine Management Course where you will learn in depth about the functioning of the Ethereum virtual machine.
The EVM is an abstract machine, distributed across hundreds of nodes on a blockchain, capable of executing instructions. Solidity is just one of the languages capable of being compiled for this purpose. You will realize that not just any programming language is ready for this.
Do you know of any other language compatible with EVM?
Contributed by: Kevin Fiorentino (Platzi Contributor).
Contributions 5
Questions 0
Un resumen de lo aprendido, por el momento.
Me resulta muy interesante entender como la EVM interpreta las instrucciones. Excelente clase introductoria, ya me agendo el curso de EVM 馃憦
Hace poco supe que existe un lenguaje llamado **Cairo **que permite escribir smart contracts creo que en la blockchain de StarckNet, creo que **Rust **tambien permite escribir smart contracts
Es genial comprender toda la arquitectura que esta detr谩s de lo que es Ethereum, que va desde su blockchain hasta elementos que lo diferencian como la Evm, su funcionamiento en forma de Stack interactuando con memory y storage, el Bytecode con el Program Counter y l贸gicamente los Smarts Contracts, cool!. Dentro de los lenguajes tenemos Rust, Cairo, Vyper y por supuesto Solidity.
Want to see more contributions, questions and answers from the community?