¿Qué es Solidity?

Completado

Solidity es un lenguaje orientado a objetos para escribir contratos inteligentes.

Los contratos inteligentes son programas almacenados dentro de una cadena de bloques. Especifican las reglas y el comportamiento de cómo se transfieren los recursos digitales. Solidity sirve para programar contratos inteligentes para la plataforma de cadena de bloques Ethereum. Los contratos inteligentes contienen lógica de estado y programable. Las transacciones dan como resultado funciones que se ejecutan en contratos inteligentes, y estos contratos, a su vez, permiten crear un flujo de trabajo empresarial.

Introducción

Solidity es el lenguaje de programación más popular de la cadena de bloques Ethereum.

Solidity es un lenguaje de alto nivel que se basa en otros lenguajes de programación, como C++, Python y JavaScript. Si conoce alguno de estos lenguajes, el código de Solidity le será familiar.

Solidity es de tipos estáticos, lo que significa que la comprobación de tipos se realiza en el tiempo de compilación y no en el tiempo de ejecución, como sucede con los lenguajes de tipos dinámicos. En los lenguajes de tipos estáticos hay que especificar el tipo de cada variable. Por ejemplo, Python y JavaScript son lenguajes de tipos dinámicos, mientras que C++ es de tipos estáticos.

Solidity admite la herencia, de modo que las funciones, variables y otras propiedades existentes en un contrato se pueden usar en otro. El lenguaje también admite tipos complejos definidos por el usuario, como estructuras y enumeraciones, que permiten agrupar tipos de datos relacionados.

Solidity es un lenguaje de programación de código abierto que cuenta con una comunidad de colaboradores cada vez más nutrida. Para más información sobre el proyecto Solidity y cómo colaborar en él, vea este repositorio de GitHub.

¿Qué es Ethereum?

Antes de continuar, conviene familiarizarse también con Ethereum.

Ethereum es una de las plataformas de cadena de bloques más populares, después de Bitcoin. Se trata de una tecnología desarrollada por una comunidad y tiene su propio criptomoneda, denominada Ether (ETH), que se puede comprar y vender.

Lo que singulariza a Ethereum es que es la "cadena de bloques programable del mundo". Si usamos Ethereum, podremos codificar las definiciones de contrato, también conocidas como contratos inteligentes. Los contratos inteligentes sirven para describir el modo en que los participantes de la cadena de bloques transfieren sus activos digitales. Solidity es el lenguaje de programación principal que se usa para desarrollar en la plataforma Ethereum y lo han creado y mantenido los desarrolladores de Ethereum.

Ethereum Virtual Machine

Los contratos de Solidity se ejecutan en Ethereum Virtual Machine (EVM, en su forma abreviada), que es un entorno de espacio aislado que está completamente aislado. En la red, este entorno no accede a nada más que a los contratos que ejecuta. Por ahora no es preciso que ahondemos demasiado en EVM, solo debemos recordar que los contratos inteligentes de Solidity se van a implementar y ejecutar en un entorno virtual.