Ethereum es una tecnología innovadora que sirve como base para un nuevo tipo de Internet conocido como web descentralizada. Ethereum, creado por Vitalik Buterin, es una plataforma de código abierto basada en blockchain que permite a los desarrolladores crear e implementar aplicaciones descentralizadas o dApps. El uso de contratos inteligentes por parte de Ethereum permite que las dApps se ejecuten exactamente según lo planeado, sin tiempo de inactividad, censura, fraude o interferencia de terceros.
Leer más: ¿Qué es Ethereum?
Ether (ETH) es la criptomoneda nativa de Ethereum y utiliza el lenguaje de programación Solidity. La tecnología fundamental de Ethereum, blockchain, es un libro de contabilidad distribuido que mantiene una lista de registros permanente y a prueba de manipulaciones. Esta arquitectura descentralizada permite a los desarrolladores crear un conjunto diverso de aplicaciones descentralizadas (dApps) aprovechando el poderoso ecosistema y la adaptabilidad de la plataforma.
Los contratos inteligentes son contratos autoejecutables en los que los términos del acuerdo están escritos directamente en líneas de código. Son los componentes fundamentales de las dApps en Ethereum. Estos contratos digitales ejecutan transacciones automáticamente y mueven la moneda nativa de Ethereum, Ether, entre cuentas cuando se cumplen las condiciones definidas en el contrato. Esta automatización elimina la necesidad de intermediarios, mejorando enormemente la eficiencia y confiabilidad en el proceso. A medida que los pequeños programas informáticos se almacenan dentro de una cadena de bloques, los contratos inteligentes están diseñados para hacer cumplir automáticamente sus términos y condiciones, aportando un nuevo nivel de automatización y precisión a los acuerdos digitales.
Leer más: ¿ Qué son los contratos inteligentes?
Como comentamos en uno de nuestros cursos anteriores aquí: Curso: Contratos inteligentes 101: una introducción básica, existen varios beneficios clave de los contratos inteligentes que los convierten en un concepto revolucionario en el mundo digital:
Eliminación de intermediarios: los contratos inteligentes eliminan la necesidad de intermediarios, lo que genera transacciones más rentables.
Descentralización: al crear contratos inteligentes sobre blockchains, se pueden crear plataformas descentralizadas, lo que reduce la dependencia de una única entidad centralizada.
Desarrollo fácil y asequible: plataformas como Ethereum proporcionan la infraestructura que los desarrolladores necesitan para crear aplicaciones basadas en transacciones de forma fácil y económica.
Seguridad y transparencia mejoradas: dado que los contratos inteligentes están escritos en código, las transacciones son irreversibles y rastreables, lo que garantiza una mayor transparencia y seguridad.
Autoaplicación: los contratos inteligentes son autoaplicables, lo que crea un entorno sin confianza para realizar transacciones con cualquier persona en el mundo.
El lenguaje más común para escribir contratos inteligentes en Ethereum es Solidity. Influenciado por JavaScript, Python y C++, Solidity es un lenguaje de tipado estático diseñado para desarrollar contratos inteligentes de Ethereum. Tiene muchas funciones, es maduro y cuenta con un fuerte apoyo de la comunidad, lo que lo convierte en la primera opción para muchos desarrolladores de Ethereum.
Si bien Solidity ha acaparado la atención en el desarrollo de Ethereum, un lenguaje alternativo llamado Vyper proporciona una perspectiva única y valiosa. Vyper es un lenguaje Pythonic centrado en la seguridad y basado en la simplicidad, diseñado para escribir contratos inteligentes en Ethereum. A diferencia de Solidity, Vyper opta por renunciar a ciertas funciones para garantizar una mayor seguridad y una comprensión más sencilla de los contratos.
A pesar de la popularidad de Solidity, el compromiso de Vyper con la seguridad y la legibilidad lo convierte en una opción atractiva para muchos desarrolladores. Ofrece una sintaxis más accesible para quienes están familiarizados con Python, lo que lo convierte en un excelente punto de partida para los desarrolladores de Python que buscan ingresar al mundo de las dApps de Ethereum.
Para comprender mejor Solidity y Vyper, comparemos los dos lenguajes en función de varios parámetros, como sintaxis, curva de aprendizaje, tamaño de matrices y cadenas, soporte de la comunidad, manejo de errores y contratos, definición de variables, creación de subastas, especificaciones de funciones. , procesos de desistimiento y terminación de contrato.
Dado que Solidity y Vyper son lenguajes de alto nivel, su sintaxis es simple. Sin embargo, la sintaxis de Solidity se parece más a la de lenguajes ampliamente utilizados como C++ y JavaScript, lo que puede facilitar la tarea a algunos desarrolladores. Vyper, por otro lado, es similar a Python, con una sintaxis reconocible para los usuarios de Python.
Debido a que Solidity es el lenguaje más popular, tiene más documentación y materiales de aprendizaje, lo que puede ayudar con el proceso de aprendizaje. Vyper, por otro lado, es más nuevo y tiene menos materiales de aprendizaje. Por otro lado, su forma más simple y sus similitudes con Python lo convierten en un lenguaje fácil de aprender para los desarrolladores que ya están familiarizados con Python.
Solidity proporciona escalado dinámico de cadenas y matrices, lo que permite a los desarrolladores cambiar la longitud de una cadena según sus necesidades. Vyper, por otro lado, limita el tamaño de las matrices y cadenas para reducir las posibles vulnerabilidades en los contratos inteligentes.
El uso generalizado de Solidity ha dado lugar a una próspera comunidad de desarrolladores, especialistas y entusiastas. Vyper, como lenguaje más nuevo, no tiene una comunidad tan grande. Pero, a medida que avance, es probable que aumente el apoyo de la comunidad.
Los contratos en Solidity se pueden definir utilizando herramientas como Brownie y VSCode. Al crear un contrato, Vyper solo requiere que se especifique la versión de Vyper utilizada. Además, Vyper permite la detección instantánea de errores tipográficos, lo que simplifica la depuración, mientras que Solidity requiere que los contratos se compilen antes de que se puedan detectar errores.
La definición de variables en Vyper es simple y recuerda a un lenguaje de programación de alto nivel. Solidity, por otro lado, adopta un enfoque más complicado para la declaración de variables. Además, Solidity requiere el uso de punto y coma, lo que añade otra capa de complicación.
Crear subastas en Vyper es un proceso sencillo. Permite decoradores externos, permitiendo que otros contratos lo llamen. La solidez, por otro lado, requiere un manejo más complejo, incluidas definiciones de errores potenciales y el uso de declaraciones "si".
Las funciones de Vyper se pueden decorar con un decorador externo, lo que les permite aceptar pagos por transacciones. La solidez, por otro lado, requiere pasar las partes externas y pagaderas dentro de la función. Además, Solidity emplea declaraciones "si", mientras que Vyper emplea declaraciones "afirmar".
A diferencia de Solidity, el proceso de retiro en Vyper es más sencillo. La solidez requiere definir la cantidad y crear declaraciones "si", mientras que Vyper adopta un método más sencillo.
Vyper verifica la hora con 'assert', pero Solidity requiere una declaración 'if' antes de establecer la variable finalizada en "Verdadero". Además, a diferencia de Vyper, Solidity exige la emisión del final de la subasta y la transferencia de efectivo.
Antes de poder comenzar a codificar en Vyper, debe asegurarse de que su computadora esté lista para el desarrollo. Esto es lo que debes hacer:
Instale Python: Vyper requiere Python 3.6 o superior. Puedes descargar Python desde el sitio web oficial. Siga las instrucciones para instalarlo en su máquina. Puedes comprobar la instalación escribiendopython --version
en su terminal. Debería ver la versión de Python que instaló como resultado.
Instale Pip: Pip es un administrador de paquetes para Python. Se utiliza para instalar y administrar paquetes adicionales que no forman parte de la biblioteca estándar de Python. Pip debe instalarse automáticamente cuando instala Python. Puede verificar la instalación escribiendo pip --version
en su terminal. Si no está instalado, puede descargarlo del sitio web oficial de Pip y seguir las instrucciones que allí se encuentran.
Una vez que su entorno esté listo, puede instalar Vyper. Abra su terminal y ejecute el siguiente comando:
Python
pip3 instala vyper
Puedes ver que al final del código, la terminal nos sugiere actualizar pip escribiendo el comando:
Python
python.exe -m pip instalar --actualizar pip
Ejecute este comando para asegurarse de tener la última versión disponible de pip. Deberías ver un mensaje como este después de instalar la versión actualizada.
Una vez completada la instalación, puede verificar la versión de Vyper ejecutando vyper --version
. Debería ver la versión de Vyper que instaló como resultado.
Si bien puedes escribir código Vyper en cualquier editor de texto, utilizar un entorno de desarrollo integrado (IDE) puede facilitar mucho tu trabajo. Aquí tienes dos opciones:
Remix: Remix es un IDE basado en navegador proporcionado por Ethereum. Es compatible con Solidity y Vyper y ofrece características como un compilador integrado, un depurador robusto y un entorno de prueba. Puede comenzar a usar Remix navegando al sitio web oficial de Remix. No es necesaria ninguna instalación. (Usaremos esta opción durante nuestro curso)
Brownie: Brownie es un entorno de desarrollo y marco de prueba basado en Python para Ethereum. Es compatible tanto con Solidity como con Vyper. Una ventaja clave de Brownie es que permite escribir pruebas en Python, un lenguaje con el que muchos desarrolladores ya están familiarizados. Para instalar Brownie, abra su terminal y ejecute pip3 install eth-brownie
. Esto llevará unos minutos y se instalarán muchas bibliotecas y paquetes.
Ethereum es una tecnología innovadora que sirve como base para un nuevo tipo de Internet conocido como web descentralizada. Ethereum, creado por Vitalik Buterin, es una plataforma de código abierto basada en blockchain que permite a los desarrolladores crear e implementar aplicaciones descentralizadas o dApps. El uso de contratos inteligentes por parte de Ethereum permite que las dApps se ejecuten exactamente según lo planeado, sin tiempo de inactividad, censura, fraude o interferencia de terceros.
Leer más: ¿Qué es Ethereum?
Ether (ETH) es la criptomoneda nativa de Ethereum y utiliza el lenguaje de programación Solidity. La tecnología fundamental de Ethereum, blockchain, es un libro de contabilidad distribuido que mantiene una lista de registros permanente y a prueba de manipulaciones. Esta arquitectura descentralizada permite a los desarrolladores crear un conjunto diverso de aplicaciones descentralizadas (dApps) aprovechando el poderoso ecosistema y la adaptabilidad de la plataforma.
Los contratos inteligentes son contratos autoejecutables en los que los términos del acuerdo están escritos directamente en líneas de código. Son los componentes fundamentales de las dApps en Ethereum. Estos contratos digitales ejecutan transacciones automáticamente y mueven la moneda nativa de Ethereum, Ether, entre cuentas cuando se cumplen las condiciones definidas en el contrato. Esta automatización elimina la necesidad de intermediarios, mejorando enormemente la eficiencia y confiabilidad en el proceso. A medida que los pequeños programas informáticos se almacenan dentro de una cadena de bloques, los contratos inteligentes están diseñados para hacer cumplir automáticamente sus términos y condiciones, aportando un nuevo nivel de automatización y precisión a los acuerdos digitales.
Leer más: ¿ Qué son los contratos inteligentes?
Como comentamos en uno de nuestros cursos anteriores aquí: Curso: Contratos inteligentes 101: una introducción básica, existen varios beneficios clave de los contratos inteligentes que los convierten en un concepto revolucionario en el mundo digital:
Eliminación de intermediarios: los contratos inteligentes eliminan la necesidad de intermediarios, lo que genera transacciones más rentables.
Descentralización: al crear contratos inteligentes sobre blockchains, se pueden crear plataformas descentralizadas, lo que reduce la dependencia de una única entidad centralizada.
Desarrollo fácil y asequible: plataformas como Ethereum proporcionan la infraestructura que los desarrolladores necesitan para crear aplicaciones basadas en transacciones de forma fácil y económica.
Seguridad y transparencia mejoradas: dado que los contratos inteligentes están escritos en código, las transacciones son irreversibles y rastreables, lo que garantiza una mayor transparencia y seguridad.
Autoaplicación: los contratos inteligentes son autoaplicables, lo que crea un entorno sin confianza para realizar transacciones con cualquier persona en el mundo.
El lenguaje más común para escribir contratos inteligentes en Ethereum es Solidity. Influenciado por JavaScript, Python y C++, Solidity es un lenguaje de tipado estático diseñado para desarrollar contratos inteligentes de Ethereum. Tiene muchas funciones, es maduro y cuenta con un fuerte apoyo de la comunidad, lo que lo convierte en la primera opción para muchos desarrolladores de Ethereum.
Si bien Solidity ha acaparado la atención en el desarrollo de Ethereum, un lenguaje alternativo llamado Vyper proporciona una perspectiva única y valiosa. Vyper es un lenguaje Pythonic centrado en la seguridad y basado en la simplicidad, diseñado para escribir contratos inteligentes en Ethereum. A diferencia de Solidity, Vyper opta por renunciar a ciertas funciones para garantizar una mayor seguridad y una comprensión más sencilla de los contratos.
A pesar de la popularidad de Solidity, el compromiso de Vyper con la seguridad y la legibilidad lo convierte en una opción atractiva para muchos desarrolladores. Ofrece una sintaxis más accesible para quienes están familiarizados con Python, lo que lo convierte en un excelente punto de partida para los desarrolladores de Python que buscan ingresar al mundo de las dApps de Ethereum.
Para comprender mejor Solidity y Vyper, comparemos los dos lenguajes en función de varios parámetros, como sintaxis, curva de aprendizaje, tamaño de matrices y cadenas, soporte de la comunidad, manejo de errores y contratos, definición de variables, creación de subastas, especificaciones de funciones. , procesos de desistimiento y terminación de contrato.
Dado que Solidity y Vyper son lenguajes de alto nivel, su sintaxis es simple. Sin embargo, la sintaxis de Solidity se parece más a la de lenguajes ampliamente utilizados como C++ y JavaScript, lo que puede facilitar la tarea a algunos desarrolladores. Vyper, por otro lado, es similar a Python, con una sintaxis reconocible para los usuarios de Python.
Debido a que Solidity es el lenguaje más popular, tiene más documentación y materiales de aprendizaje, lo que puede ayudar con el proceso de aprendizaje. Vyper, por otro lado, es más nuevo y tiene menos materiales de aprendizaje. Por otro lado, su forma más simple y sus similitudes con Python lo convierten en un lenguaje fácil de aprender para los desarrolladores que ya están familiarizados con Python.
Solidity proporciona escalado dinámico de cadenas y matrices, lo que permite a los desarrolladores cambiar la longitud de una cadena según sus necesidades. Vyper, por otro lado, limita el tamaño de las matrices y cadenas para reducir las posibles vulnerabilidades en los contratos inteligentes.
El uso generalizado de Solidity ha dado lugar a una próspera comunidad de desarrolladores, especialistas y entusiastas. Vyper, como lenguaje más nuevo, no tiene una comunidad tan grande. Pero, a medida que avance, es probable que aumente el apoyo de la comunidad.
Los contratos en Solidity se pueden definir utilizando herramientas como Brownie y VSCode. Al crear un contrato, Vyper solo requiere que se especifique la versión de Vyper utilizada. Además, Vyper permite la detección instantánea de errores tipográficos, lo que simplifica la depuración, mientras que Solidity requiere que los contratos se compilen antes de que se puedan detectar errores.
La definición de variables en Vyper es simple y recuerda a un lenguaje de programación de alto nivel. Solidity, por otro lado, adopta un enfoque más complicado para la declaración de variables. Además, Solidity requiere el uso de punto y coma, lo que añade otra capa de complicación.
Crear subastas en Vyper es un proceso sencillo. Permite decoradores externos, permitiendo que otros contratos lo llamen. La solidez, por otro lado, requiere un manejo más complejo, incluidas definiciones de errores potenciales y el uso de declaraciones "si".
Las funciones de Vyper se pueden decorar con un decorador externo, lo que les permite aceptar pagos por transacciones. La solidez, por otro lado, requiere pasar las partes externas y pagaderas dentro de la función. Además, Solidity emplea declaraciones "si", mientras que Vyper emplea declaraciones "afirmar".
A diferencia de Solidity, el proceso de retiro en Vyper es más sencillo. La solidez requiere definir la cantidad y crear declaraciones "si", mientras que Vyper adopta un método más sencillo.
Vyper verifica la hora con 'assert', pero Solidity requiere una declaración 'if' antes de establecer la variable finalizada en "Verdadero". Además, a diferencia de Vyper, Solidity exige la emisión del final de la subasta y la transferencia de efectivo.
Antes de poder comenzar a codificar en Vyper, debe asegurarse de que su computadora esté lista para el desarrollo. Esto es lo que debes hacer:
Instale Python: Vyper requiere Python 3.6 o superior. Puedes descargar Python desde el sitio web oficial. Siga las instrucciones para instalarlo en su máquina. Puedes comprobar la instalación escribiendopython --version
en su terminal. Debería ver la versión de Python que instaló como resultado.
Instale Pip: Pip es un administrador de paquetes para Python. Se utiliza para instalar y administrar paquetes adicionales que no forman parte de la biblioteca estándar de Python. Pip debe instalarse automáticamente cuando instala Python. Puede verificar la instalación escribiendo pip --version
en su terminal. Si no está instalado, puede descargarlo del sitio web oficial de Pip y seguir las instrucciones que allí se encuentran.
Una vez que su entorno esté listo, puede instalar Vyper. Abra su terminal y ejecute el siguiente comando:
Python
pip3 instala vyper
Puedes ver que al final del código, la terminal nos sugiere actualizar pip escribiendo el comando:
Python
python.exe -m pip instalar --actualizar pip
Ejecute este comando para asegurarse de tener la última versión disponible de pip. Deberías ver un mensaje como este después de instalar la versión actualizada.
Una vez completada la instalación, puede verificar la versión de Vyper ejecutando vyper --version
. Debería ver la versión de Vyper que instaló como resultado.
Si bien puedes escribir código Vyper en cualquier editor de texto, utilizar un entorno de desarrollo integrado (IDE) puede facilitar mucho tu trabajo. Aquí tienes dos opciones:
Remix: Remix es un IDE basado en navegador proporcionado por Ethereum. Es compatible con Solidity y Vyper y ofrece características como un compilador integrado, un depurador robusto y un entorno de prueba. Puede comenzar a usar Remix navegando al sitio web oficial de Remix. No es necesaria ninguna instalación. (Usaremos esta opción durante nuestro curso)
Brownie: Brownie es un entorno de desarrollo y marco de prueba basado en Python para Ethereum. Es compatible tanto con Solidity como con Vyper. Una ventaja clave de Brownie es que permite escribir pruebas en Python, un lenguaje con el que muchos desarrolladores ya están familiarizados. Para instalar Brownie, abra su terminal y ejecute pip3 install eth-brownie
. Esto llevará unos minutos y se instalarán muchas bibliotecas y paquetes.