Posts

Oráculos en blockchain | Llevar los datos del mundo real a la blockchain

Un oráculo en el ámbito de las criptomonedas es un servicio o protocolo que conecta los sistemas de cadena de bloques con fuentes de datos externas, lo que permite a los contratos inteligentes interactuar con datos del mundo real. Dado que las cadenas de bloques están intrínsecamente aisladas y no pueden acceder directamente a datos fuera de la cadena, los oráculos actúan como puentes para introducir información externa en el entorno de la cadena de bloques.

¿Por qué son importantes los oráculos?

1. Los contratos inteligentes necesitan datos del mundo real

Muchas aplicaciones de blockchain (como las finanzas descentralizadas, los juegos o la gestión de la cadena de suministro) requieren datos fuera de la cadena para funcionar. Por ejemplo:

  • Fuentes de precios para tokens (por ejemplo, precio ETH/USD).
  • Datos meteorológicos para contratos de seguros.
  • Resultados deportivos para plataformas de apuestas.

Los oráculos proporcionan estos datos externos a los contratos inteligentes de forma segura.

2. Automatización de procesos

Los oráculos permiten que los contratos inteligentes se ejecuten automáticamente en función de eventos del mundo real. Por ejemplo:

Un contrato podría liberar fondos a un agricultor si los datos pluviométricos indican una sequía.

¿Cómo funcionan los oráculos?

Los oráculos recopilan datos de fuentes externas (API, sensores u otros sistemas) y los entregan a una blockchain de forma que los contratos inteligentes puedan utilizarlos. Pueden ser

  • Oráculos de entrada: Traen datos externos a la blockchain (por ejemplo, precios de acciones).
  • Oráculos salientes: Envían datos desde la blockchain a sistemas externos (por ejemplo, enviar un pago o notificar a un sistema).

Tipos de oráculos

1. Oráculos centralizados

  • Operados por una única entidad.
  • Ventajas: Más fáciles de implantar y mantener.
  • Contras: propensos a puntos únicos de fallo y problemas de confianza.

2. Oráculos descentralizados

Múltiples entidades independientes proporcionan datos, reduciendo el riesgo de manipulación o fallo.
Ejemplo: Chainlink.

3. Oráculos de software

  • Obtienen datos de fuentes en línea como API, sitios web o bases de datos.
  • Ejemplo: Datos meteorológicos, resultados deportivos o datos financieros.

4. Oráculos de hardware

  • Recopilan datos de dispositivos físicos como sensores IoT o chips RFID.
  • Ejemplo: Un sensor que detecta la temperatura en una cadena de suministro.

5. Oráculos humanos

  • Personas con conocimientos específicos que verifican e introducen datos manualmente.
  • Ejemplo: Resultados electorales introducidos por personas de confianza.

6. Oráculos entre cadenas

  • Facilitan la transferencia de datos entre diferentes blockchains.
  • Ejemplo: Permitir que Ethereum acceda a datos de Solana o Bitcoin.

Casos de uso de los oráculos

  1. Finanzas descentralizadas (DeFi): Fuentes de precios para protocolos de préstamo, empréstito y comercio como Aave, Uniswap y MakerDAO.
    Ejemplo: Chainlink proporciona precios ETH/USD a Aave para la garantía de préstamos.
  2. Seguros: Los datos meteorológicos de los oráculos pueden desencadenar pagos para contratos de seguros de cosechas.
  3. Juegos de azar: Generación de números aleatorios o resultados de eventos (como resultados deportivos).
  4. Cadena de suministro: Los datos de los sensores IoT pueden rastrear mercancías en tiempo real, garantizando la calidad y la trazabilidad.
  5. Plataformas de apuestas: Los oráculos proporcionan resultados de eventos del mundo real (por ejemplo, resultados deportivos) para resolver apuestas.

Desafíos con los oráculos

  1. Centralización: Depender de un único oráculo crea un punto central de fallo y un problema de confianza.
  2. Exactitud de los datos: Los oráculos deben garantizar que los datos que entregan son correctos y a prueba de manipulaciones.
  3. Manipulación del oráculo (problema del oráculo): Actores malintencionados podrían comprometer un oráculo para que entregue datos falsos, provocando pérdidas financieras o explotación.
  4. Latencia: Los retrasos en la recuperación o verificación de datos fuera de la cadena podrían afectar a las aplicaciones en tiempo real.

Ejemplos de soluciones populares de Oracle

  • Chainlink: La red descentralizada de oráculos más utilizada. Proporciona fuentes de datos seguras y fiables para DeFi y otras aplicaciones.
  • Band Protocol: Una red de oráculos descentralizada centrada en la escalabilidad y los datos entre cadenas.
  • API3: Se centra en oráculos de primera parte, permitiendo a los proveedores de datos ofrecer API directamente en la cadena sin intermediarios.
  • DIA (Activo de Información Descentralizado): Oráculo de datos de código abierto para aplicaciones financieras y DeFi.
  • Tellor: Oráculo descentralizado para datos de alto valor centrado en la seguridad.

Conclusión

Los oráculos son esenciales para salvar la distancia entre las cadenas de bloques y el mundo real. Amplían la funcionalidad de los contratos inteligentes al permitirles responder a eventos y datos del mundo real, lo que es crucial para crear sofisticadas aplicaciones descentralizadas (dApps). Sin embargo, su correcta implementación y descentralización son vitales para mitigar riesgos como la manipulación o las imprecisiones.

fondo de liquidez | Cómo funciona | Ventajas de los pools de liquidez

Un fondo de liquidez es un concepto fundamental en las finanzas descentralizadas (DeFi). Se trata de una colección de tokens de criptomoneda bloqueados en un contrato inteligente en una cadena de bloques para proporcionar liquidez para el comercio, los préstamos u otras actividades financieras. Los pools de liquidez impulsan las bolsas descentralizadas (DEX) como Uniswap, Balancer y Curve, permitiendo a los usuarios negociar tokens sin depender de los libros de órdenes tradicionales.

Cómo funciona un fondo común de liquidez

1. Fichas depositadas por proveedores de liquidez (LP)

Los usuarios (llamados proveedores de liquidez) depositan dos o más tokens en el pool en proporciones específicas (por ejemplo, 50/50 para muchos pools, o proporciones personalizadas en Balancer).

Ejemplo: Para un pool ETH/USDC, un LP deposita el mismo valor en ETH y USDC.

2. Creadores de Mercado Automatizados (AMM)

La reserva permite el intercambio de fichas mediante un algoritmo AMM (por ejemplo, la fórmula de producto constante de Uniswap: x×y=k, donde x e y son las cantidades de fichas del fondo).

Las operaciones se ejecutan ajustando las proporciones de fichas en el fondo común, lo que garantiza que siempre haya liquidez disponible.

3. Tasas e incentivos

Los operadores pagan una comisión por utilizar el pool. Estas comisiones se distribuyen entre los LP de forma proporcional a su participación en el pool.

Algunas plataformas ofrecen recompensas adicionales, como tokens de gobernanza o incentivos a la agricultura de rendimiento.

Ventajas de los pools de liquidez:

1. Liquidez siempre disponible

Elimina la necesidad de que compradores y vendedores coincidan directamente, haciendo que las operaciones sean instantáneas y eficientes.

2. Oportunidades de ingresos

Los proveedores de liquidez ganan comisiones y, en algunos casos, recompensas como tokens de gobernanza.

3. Descentralización

Funciona sin intermediarios ni entidades centralizadas, lo que aumenta la seguridad y la autonomía.

4. Soporte para nichos de mercado

Se pueden crear pools para cualquier par de tokens, incluso para tokens con poca demanda o liquidez.

Casos de uso común

1. Bolsas descentralizadas (DEX)

Los pools de liquidez permiten intercambiar tokens sin libros de órdenes (por ejemplo, Uniswap, Balancer).

2. Yield Farming

Los LP obtienen recompensas adicionales apostando sus tokens de pools de liquidez (LP tokens) en protocolos DeFi.

3. Préstamos y préstamos

Los pools pueden proporcionar liquidez para protocolos de préstamo como Aave o Compound.

4. Intercambio de Stablecoins

Los pools especializados (por ejemplo, Curve Finance) se centran en operaciones de bajo deslizamiento para stablecoins.

Riesgos de los pools de liquidez

Pérdida Impermanente: Una pérdida temporal se produce cuando el precio de los tokens del pool cambia en relación a su precio en el momento del depósito.

Vulnerabilidades de los contratos inteligentes: Los pools dependen de contratos inteligentes, que pueden tener fallos o ser explotados.

Baja liquidez: sLos pools más pequeños pueden experimentar un alto deslizamiento y una baja rentabilidad para los LP.

Yield Farming | componentes clave | Beneficios y riesgos

La agricultura de rendimiento, también conocida como minería de liquidez, es una forma de que los titulares de criptomonedas obtengan recompensas por sus tenencias participando en plataformas financieras descentralizadas (DeFi). Consiste en bloquear o apostar criptomonedas en un contrato inteligente para proporcionar liquidez a un protocolo DeFi a cambio de recompensas.

¿Cómo funciona el «Yield Farming»?

1. Proporcionar liquidez

Los usuarios depositan su criptomoneda en un pool de liquidez, que es un contrato inteligente que mantiene fondos para un protocolo DeFi específico.
Estos fondos permiten diversas actividades de DeFi, como préstamos, empréstitos o intercambios.

2. Ganar recompensas

A cambio de proporcionar liquidez, los usuarios obtienen recompensas en forma de comisiones por transacción, intereses o tokens nativos de la plataforma.

3. Reinversión

Los cultivadores de rendimientos a menudo reinvierten sus recompensas en otros pools o protocolos para componer sus rendimientos.

Componentes clave de la Yield Farming

1. Fondos de liquidez

Pools de tokens bloqueados en contratos inteligentes para facilitar el comercio, el préstamo o el endeudamiento en plataformas como Uniswap, SushiSwap o Aave.

2. Intercambios descentralizados (DEX)

Plataformas como Uniswap o PancakeSwap que se basan en pools de liquidez en lugar de libros de órdenes tradicionales.

3. Fichas de recompensa

Muchos protocolos emiten tokens de gobernanza (por ejemplo, UNI, SUSHI, CAKE) como recompensas adicionales a los proveedores de liquidez.

4. Contratos inteligentes

Protocolos automatizados que gestionan las operaciones de producción, garantizando la transparencia y la seguridad.

Estrategias populares

Préstamos y empréstitos

  • Preste activos en plataformas como Aave o Compound para ganar intereses.
  • Toma prestados activos y utilízalos para seguir cultivando.

Provisión de liquidez

Añada tokens a un pool de liquidez DEX y gane comisiones generadas por las operaciones.

Estacas

Apueste fichas nativas o de recompensa en pools de apuestas para ganar recompensas adicionales.

Ventajas del «Yield Farming

Rendimientos elevados

Rendimientos potencialmente lucrativos en comparación con las inversiones tradicionales, especialmente en fondos de alto rendimiento.

Ingresos pasivos

Una oportunidad de ganar sin gestionar activamente los activos.

Ecosistema incentivado

Los protocolos recompensan a los usuarios con tokens de gobernanza, lo que les permite participar en la toma de decisiones.

Riesgos del «Yield Farming

1. Pérdida Impermanente

El riesgo de pérdida debido a fluctuaciones en el precio de los tokens que proporcionas como liquidez.

2. Riesgos de los contratos inteligentes:

Las vulnerabilidades o fallos en los contratos inteligentes del protocolo pueden provocar la pérdida de fondos.

3. Volatilidad del mercado:

La alta volatilidad en los precios de los tokens puede afectar al valor de los activos apostados y las recompensas.

4. Tirones de fondos:

Los proyectos maliciosos pueden drenar los fondos de liquidez, dejando a los inversores con tokens sin valor.

5. Altas comisiones de gas:

Las transacciones en blockchains como Ethereum pueden ser caras en momentos de congestión de la red.

Plataformas populares de «Yield Farming

  1. Uniswap
  2. Aave
  3. Compound
  4. Curva Finanzas
  5. Yearn Finanzas
¿Qué es ZRX? ¿Qué es 0x?

¿Qué es ZRX? ¿Qué es 0x?

¿Qué es el sitio web 0x.org?

El sitio web de 0x es la plataforma principal de 0x, un protocolo de código abierto diseñado para el intercambio descentralizado (DEX) de activos digitales en la blockchain de Ethereum. Construido por 0x Labs, su objetivo es facilitar el comercio entre pares, permitiendo a cualquiera intercambiar tokens basados en Ethereum directamente sin un intermediario centralizado. El sitio web proporciona recursos, herramientas y documentación para que los desarrolladores creen aplicaciones descentralizadas (dApps) utilizando la API 0x, que agrega liquidez de varias DEXs para ofrecer intercambios eficientes de tokens.

Además de los recursos para desarrolladores, el sitio incluye a menudo información sobre el token nativo 0x (ZRX), actualizaciones de gobernanza y otras integraciones. Los principales casos de uso del protocolo incluyen la habilitación de plataformas DeFi, bolsas descentralizadas y mercados NFT con acceso a liquidez de múltiples fuentes. El sitio web de 0x también proporciona información sobre su tecnología de contratos inteligentes, seguridad y cómo los usuarios pueden interactuar con la plataforma a través de carteras como MetaMask para el comercio.

¿Cómo funciona la plataforma 0x?

La plataforma 0x funciona como un protocolo de intercambio descentralizado (DEX) en la blockchain de Ethereum, lo que permite el comercio entre pares de tokens basados en Ethereum, incluidos los tokens ERC-20 y ERC-721. He aquí un desglose de su funcionamiento:

1. Creación y retransmisión de órdenes

Los usuarios crean órdenes para comerciar con tokens y pueden publicarlas o enviarlas directamente a una contraparte. 0x utiliza un modelo de «retransmisión de órdenes fuera de la cadena y liquidación en la cadena», en el que las órdenes se crean fuera de la cadena, lo que minimiza las comisiones de gas y la congestión de la cadena de bloques.

Estas órdenes se retransmiten a través de «retransmisores» (entidades que agregan órdenes) y pueden compartirse en libros de órdenes públicos o enviarse directamente de igual a igual.

2. Emparejamiento y liquidación

Una vez que se crea y transmite una orden, una contraparte correspondiente puede ejecutarla. La liquidación real se produce en la cadena, donde los contratos inteligentes confirman y registran la transacción.

La liquidación en la cadena de 0x garantiza que las operaciones se ejecuten de forma segura. Este método combina las ventajas de la descentralización (con liquidaciones en cadena sin confianza) y la escalabilidad (reduciendo el número de transacciones enviadas a la cadena de bloques).

3. Uso del código ZRX

El token nativo de 0x, ZRX, se utiliza para pagar a los repetidores por sus servicios. También funciona como un token de gobernanza, que permite a los titulares votar sobre actualizaciones o cambios en el protocolo.

4. API y agregación de liquidez

La API 0x agrega liquidez de múltiples fuentes, incluidas otras DEX, para ofrecer a los usuarios los mejores precios disponibles en todas las plataformas. Esta API puede ser integrada por desarrolladores para crear productos DeFi, ofreciendo acceso a múltiples pools de liquidez.

Principales ventajas de 0x

  • Comisiones más bajas: La retransmisión de órdenes fuera de la cadena minimiza los costes de gas hasta que se finaliza la operación real en la cadena.
  • Interoperabilidad: Es compatible con múltiples tipos de activos en Ethereum, incluidos los tokens fungibles y no fungibles (NFT).
  • Flexibilidad: Los desarrolladores pueden utilizar el protocolo para construir una variedad de aplicaciones DeFi, incluyendo DEXs, plataformas de préstamos y mercados NFT.

El protocolo es popular en el espacio DeFi por permitir un intercambio de activos seguro, eficiente y descentralizado, y es comúnmente utilizado por dApps que requieren intercambios de tokens o agregación de liquidez.

Argent | Ganar interés en DeFi

Argent | Ganar interés en DeFi

Argent es un sitio web y una empresa que ofrece un servicio de monedero de criptodivisas diseñado específicamente para Ethereum y activos basados en Ethereum. El objetivo principal de Argent es ofrecer una solución de monedero segura, fácil de usar y sin custodia. Estas son algunas de las principales características y funcionalidades proporcionadas por Argent:

Características principales de Argent

1. Cartera de contratos inteligentes

Argent utiliza contratos inteligentes para mejorar la seguridad y proporcionar funciones avanzadas. Esto la diferencia de las billeteras de criptomonedas tradicionales.

2. Sin claves privadas

En lugar de depender de claves privadas, Argent permite a los usuarios recuperar sus billeteras a través de un conjunto de contactos de confianza (denominados Guardianes) o un mecanismo de recuperación seguro.

3. Integración DeFi

Argent proporciona un fácil acceso a las aplicaciones financieras descentralizadas (DeFi), permitiendo a los usuarios prestar, pedir prestado, ganar intereses y comerciar directamente desde sus billeteras.

4. Seguridad integrada

Funciones como los límites diarios de transacciones, la autenticación biométrica y la posibilidad de bloquear el monedero a distancia añaden capas de seguridad a los fondos de los usuarios.

5. Transacciones sin gasolina

Argent cubre las tarifas de gas para muchos tipos de transacciones, lo que facilita y abarata la interacción de los usuarios con la red Ethereum.

6. Interfaz fácil de usar

La billetera está diseñada para ser intuitiva y accesible, incluso para los usuarios que pueden no tener una amplia experiencia con cryptocurrencies.

7. Soporte para NFTs

Los usuarios pueden almacenar y gestionar sus tokens no fungibles (NFTs) dentro del monedero.

Utilización y ventajas

Facilidad de uso: Argent pretende simplificar la experiencia de usuario, facilitando a las personas la gestión de sus activos digitales sin las complejidades asociadas a las criptocarteras tradicionales.

Seguridad: Al utilizar contratos inteligentes y eliminar la dependencia de una única clave privada, Argent mejora la seguridad y la recuperabilidad de las billeteras.

Accesibilidad DeFi: Los usuarios pueden acceder y utilizar sin problemas varios servicios DeFi, promoviendo la adopción de las finanzas descentralizadas.

Argent | Ganar interés en DeFi

Gane interés con Argent

Para ganar intereses con Argent, puedes utilizar sus funciones integradas de finanzas descentralizadas (DeFi) para prestar tus activos a través de varios protocolos directamente desde tu monedero. Aquí tienes una guía paso a paso sobre cómo hacerlo:

1. Descargar y configurar Argent Wallet

Descargar: Instala la aplicación Argent desde Apple App Store o Google Play Store.

Configurar: Sigue las instrucciones en pantalla para crear tu monedero, configurar las opciones de recuperación y asegurar tu monedero con datos biométricos o un PIN.

2. Deposita fondos en tu monedero

Transfiere Ethereum (ETH) o tokens ERC-20 (como DAI, USDC, etc.) a la dirección de tu monedero Argent. Puedes comprar cripto directamente dentro de la cartera utilizando rampas de entrada integradas o transferir desde otra cartera/intercambio.

3. Accede a las aplicaciones DeFi

Abre la aplicación Argent y navega hasta la pestaña “Invertir”. Esta sección proporciona acceso a varios protocolos DeFi donde puedes prestar tus activos y ganar intereses.

4. Elige un protocolo de préstamo

Argent se integra con varios protocolos de préstamo DeFi populares como Aave, Compound y Yearn Finance.

Selecciona un protocolo en función de tus preferencias y de los tipos de interés ofrecidos. Puedes comparar tipos dentro de la aplicación.

5. Deposita tus activos

Seleccione el activo que desea prestar (por ejemplo, DAI, USDC, ETH).

Introduzca la cantidad que desea prestar.

Confirma la transacción. Argent se encargará del proceso de interacción con el contrato inteligente del protocolo DeFi elegido.

6. Gana intereses

Una vez que tus activos estén depositados en el protocolo de préstamo, empezarás a ganar intereses. El tipo de interés puede variar en función de la oferta y la demanda dentro del protocolo.

Puedes controlar tus ganancias y retirar tus fondos junto con los intereses acumulados en cualquier momento desde la pestaña “Invertir” de la aplicación Argent.

Protocolos DeFi populares integrados con Argent

Aave

Aave es un protocolo de préstamo descentralizado en el que puedes depositar activos para ganar intereses o pedir prestados activos contra garantía. Los tipos de interés son dinámicos y pueden variar en función de las condiciones del mercado.

Compound

Compound es otro protocolo de préstamo descentralizado. Al suministrar activos a Compound, se ganan intereses que se acumulan continuamente.

Yearn Finance

Yearn Finance optimiza el rendimiento a través de varios protocolos DeFi. Al depositar activos en las bóvedas de Yearn, puedes ganar tipos de interés optimizados.

lenguaje de programación solidity

Lenguaje de programación Solidity | Guía paso a paso para escribir su primer programa

Solidity es un lenguaje de programación de alto nivel diseñado específicamente para escribir contratos inteligentes en plataformas de cadena de bloques, en particular la cadena de bloques Ethereum. Es el principal lenguaje de programación utilizado para desarrollar aplicaciones descentralizadas (DApps), protocolos y tokens personalizados en la red Ethereum.

Estos son algunos puntos clave sobre Solidity:

  1. Propósito: Solidity se creó para permitir a los desarrolladores escribir contratos inteligentes que gobiernan el comportamiento y las interacciones de las aplicaciones descentralizadas. Los contratos inteligentes son acuerdos autoejecutables cuyos términos se escriben directamente en el código. Se ejecutan automáticamente cuando se cumplen las condiciones predefinidas, proporcionando confianza y transparencia en los sistemas descentralizados.
  2. Sintaxis: La sintaxis de Solidity es similar a la de lenguajes populares como JavaScript y C++. Soporta características como tipos de datos, variables, estructuras de control (if-else, bucles), funciones y conceptos de programación orientada a objetos como herencia y polimorfismo.
  3. Compatibilidad con Ethereum: Solidity está diseñado específicamente para la máquina virtual de Ethereum (EVM), el entorno de ejecución que ejecuta contratos inteligentes en la blockchain de Ethereum. Se integra perfectamente con Ethereum y permite a los desarrolladores definir el comportamiento de los contratos inteligentes, incluida la creación de tokens, el despliegue de contratos y la ejecución de lógica compleja.
  4. Seguridad y protección: Solidity tiene como objetivo proporcionar medidas de seguridad y protección en el desarrollo de contratos inteligentes. Sin embargo, los desarrolladores deben ser cautelosos y seguir las mejores prácticas para mitigar las posibles vulnerabilidades, ya que los fallos o errores en los contratos inteligentes pueden ser costosos e irreversibles.
  5. Bibliotecas estándar: Solidity incluye varias bibliotecas estándar que proporcionan código reutilizable para tareas comunes como cálculos matemáticos, estructuras de datos y funciones criptográficas. Estas bibliotecas simplifican el desarrollo y ayudan a mantener las mejores prácticas.
  6. Herramientas y ecosistema: Solidity tiene un ecosistema de desarrollo maduro con una amplia gama de herramientas, marcos y bibliotecas para apoyar el desarrollo de contratos inteligentes. Entornos de desarrollo integrados (IDE) como Remix y Truffle proporcionan editores de código, compiladores y marcos de pruebas adaptados específicamente a Solidity.
  7. Lenguaje en evolución: Solidity sigue evolucionando con actualizaciones y mejoras a lo largo del tiempo. Los desarrolladores deben mantenerse al día con las últimas versiones para aprovechar las nuevas funciones, las mejoras de seguridad y las correcciones de errores.

Solidity ha ganado una popularidad significativa debido a su asociación con Ethereum y su papel en permitir el desarrollo de aplicaciones descentralizadas, contratos token y otras soluciones basadas en blockchain. Permite a los desarrolladores escribir código que interactúa con la cadena de bloques de Ethereum y proporciona la base para crear contratos y aplicaciones autoejecutables y resistentes a la manipulación.

Guía paso a paso para escribir un programa simple en Solidity

Paso 1: Instale las herramientas necesarias

Necesita algunas herramientas para desarrollar y probar contratos inteligentes:

Instalar Node.js: El desarrollo de Solidity suele utilizar Node.js para la gestión de paquetes y la ejecución de scripts. Descárgalo e instálalo desde aquí.

Instalar Truffle (opcional): Puedes utilizar Truffle para compilar, probar y desplegar tus contratos. Instálelo globalmente a través de npm:

npm install -g truffle

Instala MetaMask: MetaMask es una extensión del navegador que actúa como un monedero para interactuar con tus contratos. Descárgala aquí y crea una cuenta.

Remix IDE (basado en web): Si prefiere una configuración más sencilla, puede utilizar Remix, un IDE basado en web para escribir y desplegar contratos inteligentes Solidity sin instalación local.

Paso 2: Escriba su primer contrato inteligente en Solidity

Vamos a utilizar Remix IDE para este tutorial para mantenerlo simple.

Abra Remix: Vaya a Remix IDE.

Crear un nuevo archivo.

Escribe el contrato inteligente: Aquí tienes un contrato inteligente básico para almacenar y recuperar un número:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyFirstContract {
    uint256 public storedData;

    // Function to store a number
    function set(uint256 x) public {
        storedData = x;
    }

    // Function to retrieve the stored number
    function get() public view returns (uint256) {
        return storedData;
    }
}

Paso 3: Redactar el contrato

Cambie a la pestaña Compilador:

  • En la barra lateral izquierda, haga clic en el icono Compilador Solidity (parece un botón «compilar»).

Seleccione la versión de Solidity:

  • Elija la versión 0.8.x del compilador Solidity (para que coincida con el pragma de su código).
  • Haga clic en Compilar MiPrimerContrato.sol.

Compruebe si hay errores:

  • Si no hay errores de sintaxis, el contrato se compilará correctamente.

Paso 4: Despliegue del contrato inteligente

Vaya a la pestaña «Despliegue y ejecución de transacciones»:

  • Haga clic en el botón «Desplegar y ejecutar transacciones» de la barra lateral izquierda.

Seleccione el Entorno:

  • En el menú desplegable Entorno, seleccione JavaScript VM (Londres). Esto utilizará la cadena de bloques Ethereum de Remix en el navegador para las pruebas.

Despliegue el contrato:

  • En la sección Contratos desplegados, haz clic en el botón Desplegar junto a MiPrimerContrato.
  • Deberías ver tu contrato desplegado en la sección de Contratos Desplegados.

Paso 5: Interactúe con su contrato desplegado

Una vez desplegado el contrato, puede interactuar con él utilizando la interfaz Remix.

Establecer un valor:

  • En la sección Contratos desplegados, debajo de su MyFirstContract desplegado, verá las funciones set y get.
  • Para almacenar un valor, introduzca un número (por ejemplo, 42) en el cuadro de entrada set y haga clic en el botón de transacción.

Recuperar el valor:

  • Después de establecer el valor, haga clic en el botón obtener para recuperar el valor almacenado.
  • El valor introducido (42) aparecerá en la consola.

Paso 6: Despliegue en una Blockchain real (opcional)

Si quieres desplegar el contrato en una red Ethereum activa (por ejemplo, testnet o mainnet), sigue estos pasos:

Configurar MetaMask:

  • Conecta MetaMask a una red de prueba como Goerli o Sepolia.
  • Obtén un poco de éter de prueba de un grifo (por ejemplo, el grifo Goerli).

Despliega en Testnet:

  • En Remix, cambia el entorno de JavaScript VM a Injected Provider – MetaMask.
  • Confirme la transacción a través de MetaMask para desplegar el contrato en la testnet.

Ver en Etherscan:

  • Una vez desplegado, recibirás un hash de la transacción.
  • Utiliza este hash para ver tu contrato en Etherscan para el testnet correspondiente.

enhorabuena

Ha escrito, compilado, desplegado e interactuado con éxito con su primer contrato inteligente en Solidity. Ahora puede explorar conceptos más avanzados como los tokens ERC-20, las finanzas descentralizadas (DeFi) o las NFT.

Códigos de muestra

He aquí algunos ejemplos sencillos de fragmentos de código Solidity para que se haga una idea de la sintaxis y la funcionalidad del lenguaje:

Hola mundo

pragma solidity ^0.8.0;

contract HelloWorld {
    string public greeting;

    constructor() {
        greeting = "Hello, World!";
    }

    function getGreeting() public view returns (string memory) {
        return greeting;
    }
}

Este es un contrato inteligente básico de “Hola Mundo”. Inicializa una variable de saludo con un mensaje predeterminado y proporciona una función getter para recuperar el saludo.

Contrato Token

Este ejemplo muestra un contrato de token básico. Permite la creación de un token personalizado con un nombre, símbolo y suministro inicial. La función de transferencia permite transferir tokens entre direcciones, actualizando los saldos y emitiendo un evento de Transferencia.

pragma solidity ^0.8.0;

contract MyToken {
    string public name;
    string public symbol;
    uint256 public totalSupply;
    mapping(address => uint256) public balances;

    event Transfer(address indexed from, address indexed to, uint256 value);

    constructor(string memory _name, string memory _symbol, uint256 _totalSupply) {
        name = _name;
        symbol = _symbol;
        totalSupply = _totalSupply;
        balances[msg.sender] = _totalSupply;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(balances[msg.sender] >= _value, "Insufficient balance");

        balances[msg.sender] -= _value;
        balances[_to] += _value;

        emit Transfer(msg.sender, _to, _value);
        return true;
    }
}

Contrato de votación

Este ejemplo muestra un contrato de votación simple. Permite a los usuarios votar por candidatos representados por un identificador bytes32. El contrato realiza un seguimiento del recuento de votos para cada candidato y proporciona una función getter para recuperar el recuento.

pragma solidity ^0.8.0;

contract Voting {
    mapping(bytes32 => uint256) public votes;

    function vote(bytes32 _candidate) public {
        votes[_candidate] += 1;
    }

    function getVoteCount(bytes32 _candidate) public view returns (uint256) {
        return votes[_candidate];
    }
}

Estos son sólo ejemplos básicos para ilustrar la sintaxis y funcionalidad de Solidity. En escenarios del mundo real, los contratos inteligentes pueden ser mucho más complejos y pueden incluir características adicionales, medidas de seguridad y lógica para adaptarse a requisitos específicos.

¿Qué es un «Modifier» en Solidity?

n Solidity, los modificadores son una potente característica que se utiliza para cambiar el comportamiento de las funciones. Permiten a los desarrolladores añadir precondiciones o reglas reutilizables a las funciones, como comprobar si el autor de la llamada está autorizado o si se cumplen determinadas condiciones antes de ejecutar una función.

Los modificadores ayudan a que el código sea más legible, organizado y reutilizable.

Cómo funcionan los modificadores

Un modificador se define de forma similar a una función, pero está pensado para adjuntarse a una llamada a función. Se puede utilizar para:

  • Comprobar previamente las condiciones antes de ejecutar la lógica de la función.
  • Ejecutar algún código antes o después del cuerpo de la función principal.
modifier <modifier_name>() {
    // pre-condition checks
    _;
    // post-condition actions (optional)
}

l _ (guión bajo) es un marcador de posición que indica a Solidity dónde ejecutar el código de la función que se está modificando.

El código antes de _ se ejecuta antes del cuerpo de la función.

El código después de _ (si existe) se ejecuta después del cuerpo de la función.

Casos comunes de uso de los modificadores

  • Control de acceso: Restricción del acceso a funciones a direcciones o roles específicos.
  • Condiciones de estado: Asegurar que se cumplen ciertas condiciones, como que un contrato esté activo o que una variable tenga un valor específico.
  • Lógica previa y posterior a la ejecución: Ejecutar lógica adicional antes o después del cuerpo de la función principal, como cobrar tasas o registrar eventos.

Buenas prácticas para los modificadores

  1. Los modificadores deben ser sencillos: Evite la lógica compleja dentro de los modificadores, ya que puede hacer que el código sea más difícil de leer y mantener.
  2. Reutilización: Utilice modificadores para imponer condiciones de uso común en varias funciones, reduciendo así la redundancia.
  3. El orden de los modificadores importa: Si una función tiene varios modificadores, se ejecutan en el orden en que se declaran.
  4. Optimización del gas: No abuse de los modificadores. Considere si añadirlos supondrá un gasto innecesario de gas para los usuarios del contrato.

Los modificadores en Solidity son una herramienta poderosa para imponer precondiciones y postcondiciones en funciones de contratos inteligentes. Hacen que el código sea más limpio, más legible y más seguro al gestionar comprobaciones como el control de acceso y otras restricciones. Utilizándolos eficazmente, puede reducir la redundancia y aumentar la mantenibilidad de sus contratos inteligentes.