Creación de contratos inteligentes en la Red Blockchain de Ethereum con Solidity

Creación de contratos inteligentes en la Red Blockchain de Ethereum con Solidity

  • Author: Ramírez Gil, Carlos Mario
  • Publisher: Rama Editorial
  • ISBN: 9788419444301
  • eISBN Pdf: 9788419444530
  • Place of publication:  Madrid , Spain
  • Year of publication: 2022
  • Pages: 440
Los contratos inteligentes (Smart Contracts) son una de las piedras angulares de la tecnología blockchain. Entre todos los lenguajes de programación de contratos inteligentes en el mercado, Solidity que se ejecuta en Ethereum Virtual Machine (EVM) es el más popular en términos de número de usuarios, comunidad de desarrolladores, número de contratos en uso, y el reconocimiento público. Este libro presenta el lenguaje de programación Solidity desde cero y explica sus características principales en detalle. De forma clara y didáctica se desarrolla la teoría y la práctica del lenguaje de programación Solidity para que cualquier persona interesada en esta tecnología descubra la programación de contratos inteligentes, el uso de frameworks de desarrollo como Truffle y la escritura de aplicaciones descentralizadas (DApps). Cuando el lector haya finalizado la lectura de este libro podrá comprender los fundamentos técnicos de esta tecnología, y estará capacitado para desarrollar código de contratos inteligentes. El libro contiene material adicional que podrá descargar accediendo a la ficha del libro en www.rama.es.
  • PREFACIO
  • AUTORES
  • CAPÍTULO 1. INTRODUCCIÓN A BLOCKCHAIN, ETHEREUM Y CONTRATOS INTELIGENTES
    • ETHEREUM
      • Criptografía asincrónica
      • Función hash criptográfica
      • Red Peer-to-Peer
      • Blockchain
      • Máquina virtual de Ethereum (EVM)
      • Nodo
      • Minero
      • Prueba de trabajo (PoW, proof of work)
      • App descentralizada (DApp)
      • Solidity
    • CONTRATO INTELIGENTE
    • GAS
      • ¿Por qué GAS?
      • Componentes del GAS
    • ETHER
    • CUENTAS
    • TRANSACCIÓN
  • CAPÍTULO 2. PREPARANDO EL ENTORNO. HERRAMIENTAS Y FRAMEWORKS DE DESARROLLO
    • LENGUAJES DE DESARROLLO
    • COMPILADORES
    • HERRAMIENTAS Y LIBRERÍAS
      • Node.js
      • Ganache
    • FRAMEWORKS
      • Truffle
      • Embark
      • Brownie
      • Hardhat
      • OpenZeppelin
    • ENTORNO DE DESARROLLO INTEGRADO – IDE
      • Visual Studio Code
      • Remix
    • WEB3.js
      • Paquetes Web3.js
      • Interactuar con contratos a través de interfaces
    • METAMASK
      • Instalación de la extensión MetaMask para Chrome
    • REDES ETHEREUM
      • Redes públicas
      • Red principal
      • Redes de prueba
      • Faucets de redes de prueba
    • ETHERSCAN
  • CAPÍTULO 3. LOS CONTRATOS INTELIGENTES
    • HISTORIA
    • DEFINICIÓN
    • CONTRATOS RICARDIANOS
    • PLANTILLAS DE CONTRATOS INTELIGENTES
    • ORÁCULOS
      • Pruebas asistidas por software y red
      • TLSNotary
      • Mecanismo basado en TLS-N
      • Pruebas asistidas por dispositivos de hardware
      • Tipos de oráculos de blockchain
      • Implementación de contratos inteligentes
  • CAPÍTULO 4. CONCEPTOS BÁSICOS DE SOLIDITY
    • ESTRUCTURA DEL ARCHIVO SOL
      • Pragma
      • Importar
      • Comentarios
      • Contrato
      • Librerías
      • Interface
    • ESTRUCTURA DEL CONTRATO
    • VARIABLE
      • Tipo de valor
      • Tipo de referencia
      • Mapping
      • Caso especial
    • OPERADORES
    • DECLARACIONES
      • Declaración condicional
      • Bucle (Loop)
      • Misceláneos
    • UBICACIÓN DE DATOS
    • MODIFICADOR
      • Modificador estándar
      • Modificador autodefinido
    • EVENTO
      • Valor de retorno a la interfaz de usuario
      • Disparador asíncrono con datos
      • Almacenamiento barato
      • Parámetro indexado en evento
    • HERENCIA
      • Herencia Única
      • Herencia múltiple
    • VARIOS
      • Variable incorporada
      • Unidad Especial
      • Tipo Cast e inferencia
      • Excepción
  • CAPÍTULO 5. CREE SU PRIMER CONTRATO INTELIGENTE CON REMIX
    • REMIX
    • ESCRIBIENDO UN CONTRATO INTELIGENTE BÁSICO
    • COMPILANDO NUESTRO CONTRATO INTELIGENTE
    • AGREGAR ALGUNAS PRUEBAS A NUESTRO CONTRATO INTELIGENTE
    • IMPLEMENTAR NUESTRO CONTRATO INTELIGENTE EN LA RED DE PRUEBA DE RINKEBY
    • INTERACTUAR CON NUESTRO CONTRATO INTELIGENTE IMPLEMENTADO DE REMIX
  • CAPÍTULO 6. TEMAS AVANZADOS DE SOLIDITY
    • PALABRA CLAVE “THIS”
    • ERC20 INTERFACE
      • Métodos
      • Eventos
      • OpenZeppline
    • ERC721 INTERFACE
      • Protocolo ERC721
      • Metadata
      • Extensión enumerable
      • Protocolo ERC165
    • LLAMADA ENTRE CONTRATOS
      • Función Call
      • Inyección de dependencia
      • Mensaje de llamadas
      • Valor de retorno de la llamada de contrato
    • ALGORITMOS BÁSICOS
  • CAPÍTULO 7. INTERFAZ BINARIA DE APLICACIÓN (ABI)
    • ESTRUCTURA DE LA MEMORIA
    • SELECTOR DE FUNCIONES
    • DEFINICIÓN DE TIPO
    • PRESENTACIÓN DE DATOS EN EVM
      • Presentación del tipo de datos de longitud fija
      • Presentación del tipo de datos dinámicos
    • CODIFICAR
      • Un ejemplo sencillo
      • Un ejemplo de llamada externa
      • Codificación ABI para llamada de método externo
    • PROGRAMACIÓN ABI
  • CAPÍTULO 8. PRINCIPIOS DE FUNCIONAMIENTO DE LOS CONTRATOS INTELIGENTES
    • PATRÓN DE DISEÑO
      • Contrato Self-Desctruction
      • Contrato de fábrica
      • Registro de nombres
      • Iterador de Mapping
      • Patrón de retiro
    • AHORRE COSTOS DE GAS
      • Cuidado con los tipos de datos
      • Almacenar valores en formato codificado en bytes
      • Comprimir variables con el compilador SOLC
      • Comprimir variables usando código ensamblador
      • Parámetros de funciones de concatenación
      • Uso de pruebas de Merkle para reducir la carga de almacenamiento
      • Contratos sin estado
      • Almacenamiento de datos en IPFS
      • Compactación de bits
      • Procesamiento por lotes
      • Separación de lectura y escritura en el struct de almacenamiento
      • uint256 y almacenamiento directo en memoria
      • Optimización de ensamblaje
    • EL ENSAMBLADO
      • Pila (stack)
      • Calldata
      • Memoria
      • Almacenamiento
    • DECONSTRUIR CONTRATO INTELIGENTE
      • Creación de contratos
      • Parte General del Cuerpo del Contrato
      • Cuerpos de contrato
  • CAPÍTULO 9. CASO DE APLICACIÓN. CONSTRUCCIÓN CONTRATO INTELIGENTE: RELACIÓN COMERCIAL ENTRE UN EMPLEADOR Y UN PROFESIONAL INDEPENDIENTE(FREELANCER)
    • DESCRIPCIÓN BÁSICA DEL PROBLEMA
      • Solucionando el problema con un contrato inteligente
      • Comprensión del contrato inteligente
    • ESCRITURA DEL CÓDIGO DEL CONTRATO INTELIGENTE
      • Definir la versión
      • Estructura del contrato
      • Variable de almacenamiento (global)
      • El constructor
      • Modificadores
      • Los eventos
      • El método createRequest()
      • El método unlockRequest()
      • El método payRequest():
      • El método completeProject()
      • El método cancelProject()
      • El método increaseDeadline()
  • CAPÍTULO 10. CASO DE APLICACIÓN. IMPLEMENTACIÓN DE UN CONTRATO INTELIGENTE DE VOTACIÓN
    • CONCEPTUALIZACIÓN DEL CONTRATO INTELIGENTE PARA VOTACIONES
    • CÓDIGO FUENTE DEL CONTRATO INTELIGENTE PARA VOTACIONES
    • EXPLICACIÓN DEL CONTRATO INTELIGENTE. ANÁLISIS POR GRUPOS DE LÍNEAS DE CÓDIGO
  • CAPÍTULO 11. CASO DE APLICACIÓN. CONSTRUCCIÓN CONTRATO INTELIGENTE: COMPRA Y VENTA DE UN BIEN O SERVICIO
    • COMPRENSIÓN DEL CONTRATO INTELIGENTE
    • CÓDIGO FUENTE DEL CONTRATO INTELIGENTE: COMPRA Y VENTA DE UN BIEN O SERVICIO
    • EXPLICACIÓN DEL CONTRATO INTELIGENTE. ANÁLISIS POR GRUPOS DE LÍNEAS DE CÓDIGO
  • CAPÍTULO 12. ACTUALIZACIÓN DE UN CONTRATO INTELIGENTE
    • SOLUCIÓN
      • Contratos Proxi
      • Separar la lógica y los datos del contrato
      • Lógica y datos separados mediante valor-clave
      • Estrategias parcialmente actualizables
      • Comparación
      • Simple contrato proxi
    • LLAMADA DE PROXY GENÉRICO A ETHEREUM
    • ALMACENAMIENTO
      • Almacenamiento heredado
      • Almacenamiento eterno
      • Almacenamiento no estructurado
    • AUGUR
      • Implementación de contrato
      • Implementación de almacenamiento
    • COLONY
      • Implementación de contrato
      • Almacenamiento
  • CAPÍTULO 13. SEGURIDAD DE LOS CONTRATOS INTELIGENTES
    • ¿POR QUÉ DEBEMOS PREOCUPARNOS POR LA SEGURIDAD?
      • Tipos de vulnerabilidades de contratos inteligentes
  • CAPÍTULO 14. DISEÑO E IMPLEMENTACIÓN DE UNA APLICACIÓN DESCENTRALIZADA - DAPP
    • ¿QUÉ SON LAS APLICACIONES DESCENTRALIZADAS - DAPP?
      • ¿Cómo funciona una DAPP?
    • CASO DE APLICACIÓN. DISEÑO Y CONSTRUCCIÓN DE UNA DAPP PARA GESTIONAR LA COMPRA Y VENTA DE UN PRODUCTO ENTRE UN COMPRADOR Y UN VENDEDOR
      • Diseño e implementación del contrato inteligente
      • Diseño de la interfaz de usuario de la DApp (página web) en el lenguaje de programación HTML5
      • Diseño del archivo JavaScript para enlazar la interfaz de usuario, el contrato inteligente y la cadena de bloques
      • Diseño del proyecto Truffle para ejecutar la aplicación (Dapp) a través de la interfaz de usuario
      • Ejecución de la DApp (proyecto Truffle) en la cadena de bloques local Ganache
  • MATERIAL ADICIONAL

Subjects

SUBSCRIBE TO OUR NEWSLETTER

By subscribing, you accept our Privacy Policy