Introducción a la Solidez

Solidity es un lenguaje de programación completamente nuevo creado por Ethereum , que es el segundo mercado más grande de criptomonedas por capitalización, lanzado en el año 2015 dirigido por Christian Reitwiessner. Algunas características clave de la solidez se enumeran a continuación: 

  • Solidity es un lenguaje de programación de alto nivel diseñado para implementar contratos inteligentes.
  • Es un lenguaje orientado a objetos (orientado a contratos) tipificado estáticamente.
  • Solidity está muy influenciado por Python, c ++ y JavaScript, que se ejecuta en la máquina virtual Ethereum (EVM).
  • Solidity admite programación, bibliotecas y herencia complejas definidas por el usuario.
  • La solidez es el lenguaje principal para las plataformas de ejecución de strings de bloques.
  • Solidity se puede usar para crear contratos como votaciones, subastas a ciegas, crowdfunding, billeteras de múltiples firmas, etc.

Etéreo

Ethereum es una plataforma de código abierto descentralizada basada en el dominio blockchain, que se utiliza para ejecutar contratos inteligentes, es decir, aplicaciones que ejecutan el programa exactamente como se programó sin posibilidad de fraude, interferencia de terceros, censura o tiempo de inactividad. Sirve una plataforma para casi 2,60,000 criptomonedas diferentes. Ether es una criptomoneda generada por los mineros de ethereum, utilizada para recompensar los cálculos realizados para proteger la string de bloques. 

Máquina virtual Ethereum (EVM)

Ethereum Virtual Machine, abreviado como EVM, es un entorno de tiempo de ejecución para ejecutar contratos inteligentes en ethereum. Se enfoca ampliamente en proporcionar seguridad y ejecución de código no confiable utilizando una red internacional de Nodes públicos. EVM está especializado para prevenir ataques de denegación de servicio y confirma que el programa no tiene acceso al estado de los demás, también asegura que la comunicación se establezca sin ninguna interferencia potencial. 

Contrato inteligente

Los contratos inteligentes son códigos de programa de alto nivel que se compilan en el código de bytes EVM y se implementan en la string de bloques de ethereum para su posterior ejecución. Nos permite realizar transacciones creíbles sin ninguna interferencia de terceros, estas transacciones son rastreables e irreversibles. Los lenguajes utilizados para escribir contratos inteligentes son Solidity (una biblioteca de lenguaje con similitudes con C y JavaScript), Serpent (similar a Python, pero en desuso), LLL (un lenguaje similar a Lisp de bajo nivel) y Mutan (basado en Go, pero obsoleto).

Ejemplo: En el siguiente ejemplo, hemos discutido un programa solidity de muestra para demostrar cómo escribir un contrato inteligente en Solidity.

Solidity

// Solidity program to  
// demonstrate how to 
// write a smart contract  
pragma solidity >= 0.4.16 < 0.7.0; 
    
// Defining a contract 
contract Test
{ 
      
    // Declaring state variables 
    uint public var1;
    uint public var2;
    uint public sum;
    
    // Defining public function  
    // that sets the value of  
    // the state variable 
    function set(uint x, uint y) public
    { 
        var1 = x;
        var2=y;
        sum=var1+var2;
    } 
        
    // Defining function to 
    // print the sum of 
    // state variables 
    function get( 
    ) public view returns (uint) { 
        return sum; 
    } 
}

Producción:

Smart contract

Explicación:

1. Versión Pragma:

pragma solidity >=0.4.16 <0.7.0;

Los pragmas son instrucciones para el compilador sobre cómo tratar el código. Todo el código fuente de solidity debe comenzar con una «versión pragma», que es una declaración de la versión del compilador de solidity que debe usar este código. Esto ayuda a que el código no sea incompatible con las futuras versiones del compilador que pueden traer cambios. El código mencionado anteriormente establece que es compatible con compiladores de versión superior e igual a 0.4.16 pero inferior a la versión 0.7.0.

2. La palabra clave del contrato: 

contract Test{ 
//Functions and Data 
}

La palabra clave contract declara un contrato bajo el cual se encapsula el código.

3. Variables de estado: 

uint public var1;
uint public var2;
uint public sum;

Las variables de estado se almacenan permanentemente en el almacenamiento de contratos que están escritos en Ethereum Blockchain. La línea uint public var1 declara una variable de estado llamada var1 de tipo uint (entero sin signo de 256 bits). Piense en ello como agregar un espacio en una base de datos. Del mismo modo, va con la declaración uint public var2 y uint public sum .

4. Una declaración de función:

function set(uint x, uint y) public
function get() public view returns (uint)
  • Esta es una función llamada conjunto de tipo de modificador de acceso público que toma una variable x y una variable y de tipo de datos uint como parámetro.
  • Este fue un ejemplo de un contrato inteligente simple que actualiza el valor de var1 y var2. Cualquiera puede llamar al conjunto de funciones y sobrescribir el valor de var1 y var2 que se almacena en la string de bloques de Ethereum. Este es un ejemplo de una aplicación descentralizada que está a prueba de censura y no se ve afectada por el cierre de ningún servidor centralizado. Siempre que alguien esté ejecutando un solo Node de Ethereum blockchain, este contrato inteligente será accesible.
  • La variable suma se calcula sumando los valores de las variables var1 y var2.
  • La función get recuperará e imprimirá el valor de la variable de estado sum.

Cómo ejecutar el código:

Prácticamente hay dos formas de ejecutar un contrato inteligente de solidez:

1. Modo sin conexión: Ejecutar un contrato inteligente de Solidity en modo sin conexión requiere tres requisitos previos y 4 pasos principales que se deben seguir para que el contrato inteligente se ejecute:

  • requisitos previos:
  • Objetivos:
    • Crear un proyecto de trufas y configurar una red de desarrollo
    • Crear e implementar contratos inteligentes
    • Interactuar con el contrato inteligente desde la consola Truffle
    • Escribir pruebas para probar las principales características que ofrece Solidity

2. Modo en línea:

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *