Quieres Trabajar en Web3 - "Parte 3"
En este artículo, continuamos repasando los conceptos básicos que debes conocer sí o sí antes de presentarte a una entrevista para un puesto en Web3.
Ethereum
¿Qué es Ethereum?
Ethereum es una blockchain descentralizada y de código abierto con funcionalidad de smart contracts.
¿Qué es Ether?
Ether es la criptomoneda nativa de Ethereum. Proporciona incentivos a los nodos para validar los bloques de la blockchain de Ethereum.
Menciona algunos entornos de desarrollo y prueba de Ethereum.
- Truffle
- Hardhat
- Brownie
¿Cuál es el tamaño del bloque de Ethereum?
Ethereum no tiene un límite de tamaño de bloque; los bloques utilizan límites de gas.
¿Cuál es la recompensa de bloque de Ethereum?
Actualmente, es de 2 ETH. Pero este número podría cambiar en el futuro.
¿Cuál es el tiempo de bloque de Ethereum?
El tiempo promedio de bloque es de alrededor de 13.2 segundos. Pero este valor puede fluctuar.
¿Cuál es la unidad más pequeña de Ether?
1 Wei (10 ** 18 Wei = 1 Ether).
Ordena las denominaciones correctamente: Gwei, Mwei, Kwei, Ether, Wei, microether, milliether.
Wei, Kwei, Mwei, Gwei, microether, milliether, Ether.
¿Quién fundó Ethereum?
Ethereum fue fundado por Vitalik Buterin, junto con otros siete cofundadores. Uno de ellos es Gavin Wood.
¿Cuándo se lanzó Ethereum?
2015.
¿En qué se diferencia Ethereum de Bitcoin?
Ethereum utiliza la tecnología blockchain no solo para mantener una red de pagos descentralizada, sino también para almacenar código de computadora que puede usarse para ejecutar smart contracts descentralizados y a prueba de manipulaciones.
¿Qué son los smart contracts?
Un smart contract es un programa que se ejecuta en una dirección en Ethereum. Están compuestos por datos y funciones que pueden ejecutarse al recibir una transacción.
¿Qué es el EVM?
EVM es el acrónimo de Ethereum Virtual Machine. El EVM actúa como una computadora global que presta su poder de cómputo acumulado a los desarrolladores. El EVM se puede acceder desde cualquier parte del mundo a través de nodos participantes en Ethereum.
¿Qué es Enterprise Ethereum?
Enterprise Ethereum es una versión con permisos de Ethereum. Con permisos significa que solo los nodos autorizados pueden unirse. La mainnet de Ethereum no tiene permisos, ya que cualquiera puede configurar un nodo. Además, se pueden configurar cadenas privadas con acceso restringido a sus datos.
¿Qué es un nodo en Ethereum?
Un nodo es una computadora conectada a la red de Ethereum, responsable de procesar transacciones.
¿Cómo puedes conectarte a un nodo?
Puedes conectarte a un nodo mediante WS-RPC, JSON-RPC e IPC-RPC.
¿Qué mecanismo de consenso utiliza Ethereum?
Ethereum actualmente usa proof of Stake, aunque en originalmente utilizaba proof of Work, este cambio fue conocido como "Merge" o "Ethereum 2.0".
¿Qué lenguaje de programación se usa para escribir smart contracts en Ethereum?
Solidity es el principal lenguaje de programación utilizado para escribir smart contracts y dApps. Vyper también se usa.
Menciona estándares comunes de smart contracts.
- ERC-20: Estándar de token
- ERC-165: Estándar para publicar y detectar qué interfaces implementa un smart contract
- ERC-721: Estándar de token no fungible
- ERC-1155: Estándar de multi-token
¿Qué es un desbordamiento/sobreflujo de enteros?
Los desbordamientos y sobreflujos de enteros ocurren debido a entradas cuyo tamaño no cumple con los límites de las variables enteras. Para evitar esto, asegúrate de usar una versión del compilador de Solidity > 0.8, que automáticamente verifica los desbordamientos y sobreflujos.
¿Qué es frontrunning?
Las transacciones toman tiempo antes de ser minadas. Un atacante puede observar el pool de transacciones y enviar una transacción, incluirla en un bloque antes de la transacción original. Este mecanismo puede ser abusado para reordenar transacciones a favor del atacante.
¿Qué es el nonce de cuenta en Ethereum?
Es el conteo de transacciones de una cuenta. Previene ataques de repetición.
¿Cómo puedes obtener Ether?
Ether se puede obtener minando o intercambiando Ether con otras criptomonedas.
¿Cuáles son los dos tipos de redes de Ethereum que existen?
- Redes públicas (mainnet, redes de prueba: Ropsten, Goerli, Kovan, Rinkeby)
- Redes privadas (Enterprise Ethereum, redes locales)
¿Por qué se cobran tarifas de gas?
La creación de consenso en un sistema descentralizado debe costar algo, porque motiva a todos los participantes a mantener la realidad óptima.
¿Cuánto gas cuesta una transacción simple en Ethereum?
Una transferencia simple de valor requiere 21,000 gas.
¿Cuántas transacciones caben en un bloque de Ethereum?
No hay una respuesta general para esto, ya que las transacciones utilizan diferentes cantidades de gas y un bloque tiene un tamaño variable (dependiendo de la demanda de la red).
¿Cómo se calculan las tarifas de transacción en Ethereum después de la actualización de Londres?
Gas units (límite) * (base fee (en Gwei) + priority fee (propina)). Los mineros reciben la propina y la base fee se quema.
¿Qué es un ABI?
ABI es el acrónimo de Application Binary Interface. El ABI es la interfaz para interactuar con nuestro smart contract. El ABI se puede generar a partir del código fuente de tu smart contract (debes compilarlo).
¿Qué necesitas para interactuar con un smart contract desplegado?
Necesitas la dirección del contrato y el ABI. La dirección del contrato apunta al lugar donde se encuentra el bytecode en la blockchain. El ABI define qué funciones puedes invocar.
¿Cómo se almacenan los smart contracts en la blockchain?
Se almacenan como bytecode (datos binarios) bajo una dirección específica, también conocida como dirección del contrato.
Solidity
¿Por qué un desarrollador debería definir una versión de Solidity al inicio de un archivo?
Reduce los problemas de incompatibilidad que pueden ocurrir al compilar con otra versión.
¿Por qué es difícil generar números aleatorios en un smart contract?
Los contratos en Solidity son deterministas. Cualquiera que descubra cómo tu contrato produce aleatoriedad puede anticipar sus resultados y usar esta información para explotar tu aplicación.
¿Cómo se pueden generar números aleatorios en un smart contract?
Para hacer que los números aleatorios sean impredecibles, debes usar un oráculo para producir aleatoriedad fuera de la cadena. Una forma popular es usar ChainLink VRF.
¿Por qué los smart contracts escritos en Solidity o Vyper necesitan ser compilados?
El EVM no entiende estos lenguajes de alto nivel. Por lo tanto, el código fuente debe traducirse a lenguaje máquina (bytecode) que el EVM pueda ejecutar.
Explica las convenciones de nomenclatura para contratos y funciones en Solidity.
Los nombres de contratos deben estar capitalizados (e.g., TestContract). Los nombres de funciones deben estar en "mixed-case" (e.g., superDuperFunction).
¿Todas las funciones en un smart contract cuestan gas?
Las funciones que modifican el estado del EVM cuestan gas, mientras que las funciones que solo leen el estado son gratuitas.
Enumera todos los tipos de datos válidos en Solidity.
Boolean, Integer, Address, Byte/String, Enum. El tipo de dato "Fixed Point Numbers" también existe, pero aún no es completamente compatible.
¿Cuál es el resultado de 7/2 en Solidity?
Es 3 porque el decimal se trunca.
¿Qué tipos de datos no son claves válidas en un mapeo?
La clave puede ser cualquier tipo de dato incorporado, pero los tipos de referencia no están permitidos. No se permiten: Mapping, Struct, Enum o Array de tamaño dinámico.
¿Cuál es la ventaja de definir una función de fallback en Solidity?
Nos ayuda a proteger la función de arrojar un error.
¿En qué dos escenarios se llama una función de fallback (definida como payable) en Solidity?
- Un contrato recibe solo ether y no datos(msg.data).
- Ningún nombre de función coincide con la función llamada.
¿Qué es especial sobre la función de fallback en Solidity?
- No tiene nombre, argumentos ni identificador.
- No puede devolver nada.
- Solo se puede definir una vez por contrato.
- Es obligatorio marcarla como external.
- Está limitada a 2300 gas cuando es llamada por otra función.
¿Cuál es la diferencia entre ERC y EIP?
- Ethereum Request for Comments (ERC) define estándares para el uso de Ethereum.
- Ethereum Improvement Proposals (EIP) mejoran el protocolo de Ethereum en sí.
Con esto concluimos con los conceptos básicos y no tan básicos. Si desean saber mas al respecto te invito a ver los cursos que Fin Guru tiene disponibles para amantes del mundo blockchain!
Dejame un comentario si este contenido te fue de utilidad.-
Comentarios