Lição 1

Descripción general de un mercado descentralizado y un IDE Remix

En esta lección, primero aprenderemos qué es un mercado descentralizado y cómo funciona. Luego, nos familiarizaremos con Remix IDE y escribiremos un contrato de Solidity simple.

Comprender los mercados descentralizados

En los mercados tradicionales de comercio electrónico, como Amazon y eBay, una autoridad central facilita las transacciones entre compradores y vendedores. Esta autoridad central controla las transacciones, mantiene los listados de productos y gestiona la resolución de disputas. Si bien este modelo centralizado tiene sus ventajas, también tiene varias desventajas, incluido el riesgo de censura, tarifas elevadas y dependencia de la confianza.

Por otro lado, un mercado descentralizado aprovecha la tecnología blockchain para permitir transacciones entre pares sin intermediarios. Elimina la necesidad de confianza, ya que las transacciones son transparentes y verificables por todos los participantes en la cadena de bloques. Ejemplos de mercados descentralizados incluyen OpenBazaar y Origin Protocol.

Introducción a Remix IDE

Remix IDE (Entorno de desarrollo integrado) es una poderosa herramienta de código abierto diseñada específicamente para el desarrollo de contratos inteligentes de Ethereum. Se ejecuta directamente en su navegador web, por lo que no necesita instalar nada en su computadora.

Puede acceder al IDE de Remix en https://remix.ethereum.org. Cuando abres Remix en tu navegador, encontrarás tres paneles:

  1. Panel izquierdo: aquí es donde puede crear, importar y administrar sus archivos de Solidity. También incluye varios complementos para compilar, probar, depurar e implementar sus contratos.

  2. Panel Central: Este es tu editor de código. Aquí escribirás y editarás tu código de Solidity.

  3. Panel derecho: este panel proporciona varias herramientas para compilar sus contratos, implementarlos en la red Ethereum (ya sea en una red Ethereum real o en una simulación de VM JavaScript) e interactuar con sus contratos implementados.

Su primer contrato de solidez: contrato “artículo”

En esta parte, vamos a escribir nuestro primer contrato de Solidity. Este contrato representará un “Artículo” básico en nuestro mercado.

Para comenzar, cree un nuevo archivo en Remix haciendo clic en el segundo ícono en la parte superior del panel izquierdo (el ícono del archivo). Aparecerá un nuevo cuadro de diálogo en el panel central. Ingrese Item.sol como nombre de archivo y haga clic en "Aceptar".

Ahora podemos empezar a escribir nuestro contrato:

Solidez 
 // Identificador de licencia SPDX: solidez pragma del MIT 
 ^0.8.6; 

 contrato Artículo { 
 // Definir un evento que se activará cuando se cree un nuevo artículo 
 evento NewItem(uint itemId, string itemName, uint itemPrice); 

 // Cada artículo tiene una identificación, un nombre y un precio 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Matriz para contener todos los artículos 
 ItemStruct[] public items; 

 // Función para crear un nuevo artículo 
 función createItem(string memoria _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Expliquemos las diferentes partes de este contrato:

  1. Identificador de licencia SPDX: esta es una forma estándar de expresar la licencia del contrato. La línea // SPDX-License-Identifier: MIT indica que nuestro contrato utiliza la licencia MIT permisiva.

  2. Directiva Pragma: pragma solidity ^0.8.6; especifica que el contrato está escrito en Solidity versión 0.8.6. El símbolo ^ significa que también será compatible con cualquier versión más reciente hasta la versión 0.9.0, pero sin incluirla.

  3. Definición de contrato: contract Item {...} define un nuevo contrato llamado Item. Aquí es donde escribimos las variables de estado y funciones del contrato.

  4. Definición del evento: event NewItem(uint itemId, string itemName, uint itemPrice); define un evento que podemos emitir cada vez que se crea un nuevo elemento. Los eventos son una forma para que los contratos inteligentes registren la actividad que las partes externas pueden escuchar.

  5. Definición de estructura: struct ItemStruct {...} define un nuevo tipo de datos ItemStruct, que representa un artículo con un name y un price.

  6. Variable de estado: ItemStruct[] public items; declara una variable de estado items que contiene una matriz de ItemStructs. La palabra clave public crea automáticamente una función getter que permite a cualquiera acceder a la lista de elementos.

  7. Definición de función: function createItem(string memory _name, uint _price) public {...} define una función pública a la que cualquiera puede llamar para crear un nuevo elemento. La función toma un nombre y un precio, crea un nuevo ItemStruct, lo agrega a la matriz items y emite un evento NewItem .
    Para compilar este contrato, vaya al panel derecho y haga clic en el tercer ícono desde la parte superior (el logotipo de Solidity). Aquí puede redactar el contrato. Haga clic en el botón "Compilar" y si no hay errores, su contrato se compilará correctamente.

Puede aparecer una pregunta en el panel izquierdo:

La pregunta sobre Swarm o IPFS es sobre el método que utilizará Remix para almacenar los metadatos de su contrato. Repasémoslos:

  1. IPFS: El InterPlanetary File System (IPFS) es un protocolo diseñado para crear una web permanente y descentralizada. Es como un único enjambre de BitTorrent, intercambiando objetos dentro de un repositorio Git.

  2. Swarm: Swarm es una plataforma de almacenamiento distribuido y un servicio de distribución de contenido nativo de la pila Ethereum web3. Permite que una red de pares almacene y distribuya datos.
    Cuando compila un contrato, el compilador Solidity genera un archivo JSON que contiene su interfaz binaria de aplicación (ABI) y su código de bytes, entre otra información. Esto se llama metadatos del contrato. Almacenar estos metadatos en una red de almacenamiento descentralizada garantiza que estén disponibles permanentemente y puede resultar útil para verificar el código fuente del contrato.

Sin embargo, para su propósito de aprendizaje y si no planea verificar el contrato en Etherscan o cualquier otro explorador de bloques, puede elegir Swarm o IPFS, o simplemente puede ignorarlo y pasar a los siguientes pasos de su aprendizaje. Recuerde, el objetivo principal en esta etapa es comprender cómo redactar, compilar e implementar el contrato.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 1

Descripción general de un mercado descentralizado y un IDE Remix

En esta lección, primero aprenderemos qué es un mercado descentralizado y cómo funciona. Luego, nos familiarizaremos con Remix IDE y escribiremos un contrato de Solidity simple.

Comprender los mercados descentralizados

En los mercados tradicionales de comercio electrónico, como Amazon y eBay, una autoridad central facilita las transacciones entre compradores y vendedores. Esta autoridad central controla las transacciones, mantiene los listados de productos y gestiona la resolución de disputas. Si bien este modelo centralizado tiene sus ventajas, también tiene varias desventajas, incluido el riesgo de censura, tarifas elevadas y dependencia de la confianza.

Por otro lado, un mercado descentralizado aprovecha la tecnología blockchain para permitir transacciones entre pares sin intermediarios. Elimina la necesidad de confianza, ya que las transacciones son transparentes y verificables por todos los participantes en la cadena de bloques. Ejemplos de mercados descentralizados incluyen OpenBazaar y Origin Protocol.

Introducción a Remix IDE

Remix IDE (Entorno de desarrollo integrado) es una poderosa herramienta de código abierto diseñada específicamente para el desarrollo de contratos inteligentes de Ethereum. Se ejecuta directamente en su navegador web, por lo que no necesita instalar nada en su computadora.

Puede acceder al IDE de Remix en https://remix.ethereum.org. Cuando abres Remix en tu navegador, encontrarás tres paneles:

  1. Panel izquierdo: aquí es donde puede crear, importar y administrar sus archivos de Solidity. También incluye varios complementos para compilar, probar, depurar e implementar sus contratos.

  2. Panel Central: Este es tu editor de código. Aquí escribirás y editarás tu código de Solidity.

  3. Panel derecho: este panel proporciona varias herramientas para compilar sus contratos, implementarlos en la red Ethereum (ya sea en una red Ethereum real o en una simulación de VM JavaScript) e interactuar con sus contratos implementados.

Su primer contrato de solidez: contrato “artículo”

En esta parte, vamos a escribir nuestro primer contrato de Solidity. Este contrato representará un “Artículo” básico en nuestro mercado.

Para comenzar, cree un nuevo archivo en Remix haciendo clic en el segundo ícono en la parte superior del panel izquierdo (el ícono del archivo). Aparecerá un nuevo cuadro de diálogo en el panel central. Ingrese Item.sol como nombre de archivo y haga clic en "Aceptar".

Ahora podemos empezar a escribir nuestro contrato:

Solidez 
 // Identificador de licencia SPDX: solidez pragma del MIT 
 ^0.8.6; 

 contrato Artículo { 
 // Definir un evento que se activará cuando se cree un nuevo artículo 
 evento NewItem(uint itemId, string itemName, uint itemPrice); 

 // Cada artículo tiene una identificación, un nombre y un precio 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Matriz para contener todos los artículos 
 ItemStruct[] public items; 

 // Función para crear un nuevo artículo 
 función createItem(string memoria _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Expliquemos las diferentes partes de este contrato:

  1. Identificador de licencia SPDX: esta es una forma estándar de expresar la licencia del contrato. La línea // SPDX-License-Identifier: MIT indica que nuestro contrato utiliza la licencia MIT permisiva.

  2. Directiva Pragma: pragma solidity ^0.8.6; especifica que el contrato está escrito en Solidity versión 0.8.6. El símbolo ^ significa que también será compatible con cualquier versión más reciente hasta la versión 0.9.0, pero sin incluirla.

  3. Definición de contrato: contract Item {...} define un nuevo contrato llamado Item. Aquí es donde escribimos las variables de estado y funciones del contrato.

  4. Definición del evento: event NewItem(uint itemId, string itemName, uint itemPrice); define un evento que podemos emitir cada vez que se crea un nuevo elemento. Los eventos son una forma para que los contratos inteligentes registren la actividad que las partes externas pueden escuchar.

  5. Definición de estructura: struct ItemStruct {...} define un nuevo tipo de datos ItemStruct, que representa un artículo con un name y un price.

  6. Variable de estado: ItemStruct[] public items; declara una variable de estado items que contiene una matriz de ItemStructs. La palabra clave public crea automáticamente una función getter que permite a cualquiera acceder a la lista de elementos.

  7. Definición de función: function createItem(string memory _name, uint _price) public {...} define una función pública a la que cualquiera puede llamar para crear un nuevo elemento. La función toma un nombre y un precio, crea un nuevo ItemStruct, lo agrega a la matriz items y emite un evento NewItem .
    Para compilar este contrato, vaya al panel derecho y haga clic en el tercer ícono desde la parte superior (el logotipo de Solidity). Aquí puede redactar el contrato. Haga clic en el botón "Compilar" y si no hay errores, su contrato se compilará correctamente.

Puede aparecer una pregunta en el panel izquierdo:

La pregunta sobre Swarm o IPFS es sobre el método que utilizará Remix para almacenar los metadatos de su contrato. Repasémoslos:

  1. IPFS: El InterPlanetary File System (IPFS) es un protocolo diseñado para crear una web permanente y descentralizada. Es como un único enjambre de BitTorrent, intercambiando objetos dentro de un repositorio Git.

  2. Swarm: Swarm es una plataforma de almacenamiento distribuido y un servicio de distribución de contenido nativo de la pila Ethereum web3. Permite que una red de pares almacene y distribuya datos.
    Cuando compila un contrato, el compilador Solidity genera un archivo JSON que contiene su interfaz binaria de aplicación (ABI) y su código de bytes, entre otra información. Esto se llama metadatos del contrato. Almacenar estos metadatos en una red de almacenamiento descentralizada garantiza que estén disponibles permanentemente y puede resultar útil para verificar el código fuente del contrato.

Sin embargo, para su propósito de aprendizaje y si no planea verificar el contrato en Etherscan o cualquier otro explorador de bloques, puede elegir Swarm o IPFS, o simplemente puede ignorarlo y pasar a los siguientes pasos de su aprendizaje. Recuerde, el objetivo principal en esta etapa es comprender cómo redactar, compilar e implementar el contrato.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.