<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>08532nam a22001937a 4500</leader>
  <controlfield tag="003">OSt</controlfield>
  <controlfield tag="005">20250403134549.0</controlfield>
  <controlfield tag="008">230419b        |||||||| |||| 00| 0 eng d</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">978-958-792-459-6</subfield>
  </datafield>
  <datafield tag="040" ind1=" " ind2=" ">
    <subfield code="a">B-ISTTENA</subfield>
  </datafield>
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">ESP</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Creaci&#xF3;n de contratos en la Red Blockchain de Ethereum con Solidity</subfield>
    <subfield code="c">Wilmar Alonso Ram&#xED;rez Gil, Carlos Mario Ram&#xED;rez Gil.</subfield>
  </datafield>
  <datafield tag="250" ind1=" " ind2=" ">
    <subfield code="a">1ra Ed.</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="a">Colombia</subfield>
    <subfield code="b">Ediciones de la U</subfield>
    <subfield code="c">2023</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">435 P&#xE1;g.</subfield>
    <subfield code="c">24 x 17 cm.</subfield>
  </datafield>
  <datafield tag="505" ind1=" " ind2=" ">
    <subfield code="a">INDICE 
-PREFACIO
-AUTORES
-CAP&#xCD;TULO 1. INTRODUCCI&#xD3;N A BLOCKCHAIN, ETHEREUM Y
-CONTRATOS INTELIGENTES
1.1 ETHEREUM
1.1.1 Criptograf&#xED;a asincr&#xF3;nica
1.1.2 Funci&#xF3;n hash criptogr&#xE1;fica.
1.1.3 Red Peer-to-Peer..
1.1.4 Blockchain.
1.1.5 M&#xE1;quina virtual de Ethereum (EVM)
1.1.6 Nodo
1.1.7 Minero
1.1.8 Prueba de trabajo (PoW, proof of work)
1.1.9 App descentralizada (DApp)
1.1.10 Solidity
1.2 CONTRATO INTELIGENTE
1.3 GAS.
1.3.1 &#xBF;Por qu&#xE9; GAS?.
1.3.2 Componentes del GAS
1.4 ETHER
1.5 CUENTAS
1.6 TRANSACCI&#xD3;N
-CAP&#xCD;TULO 2. PREPARANDO EL ENTORNO. HERRAMIENTAS Y FRAMEWORKS DE DESARROLLO......
2.1 LENGUAJES DE DESARROLLO
2.2 COMPILADORES
2.3 HERRAMIENTAS Y LIBRERIAS
2.3.1 Node.js.
2.3.2 Ganache.
2.4 FRAMEWORKS
2.4.1 Truffle
2.4.2 Embark
2.4.3 Brownie
2.4.4 Hardhat
2.4.5 OpenZeppelin.
2.5 ENTORNO DE DESARROLLO INTEGRADO-IDE.
2.5.1 Visual Studio Code
2.5.2 Remix
2.6 WEB3.JS
2.6.1 Paquetes Web3.js.
2.6.2 Interactuar con contratos a trav&#xE9;s de interfaces.
2.7 METAMASK
2.7.1 Instalaci&#xF3;n de la extensi&#xF3;n MetaMask para Chrome..
2.8 REDES ETHEREUM.
2.8.1 Redes p&#xFA;blicas.
2.8.2 Red principal
2.8.3 Redes de prueba
2.8.4 Faucets de redes de prueba.
2.9 ETHERSCAN
-CAP&#xCD;TULO 3. LOS CONTRATOS INTELIGENTES
3.1 HISTORIA
3.2 DEFINICI&#xD3;N.
3.3 CONTRATOS RICARDIANOS
3.4 PLANTILLAS DE CONTRATOS INTELIGENTES
3.5 ORACULOS.
3.5.1 Pruebas asistidas por software y red
3.5.2 TLSNotary
3.5.3 Mecanismo basado en TLS-N
3.5.4 Pruebas asistidas por dispositivos de hardware.
3.5.5 Tipos de or&#xE1;culos de blockchain
3.5.6 Implementaci&#xF3;n de contratos inteligentes.
-CAP&#xCD;TULO 4. CONCEPTOS B&#xC1;SICOS DE SOLIDITY
4.1 ESTRUCTURA DEL ARCHIVO SOL
4.1.1 Importar
4.1.2 Pragma..
4.1.3 Comentarios
4.1.4 Contrato
4.1.5 Librerias
4.1.6 Interface.
4.2 ESTRUCTURA DEL CONTRATO
4.3 VARIABLE.
4.3.1 Tipo de valor.
4.3.2 Tipo de referencia..
43.3 Mapping
4.3.4 Caso especial
4.4 OPERADORES
4.5 DECLARACIONES
4.5.1 Declaraci&#xF3;n condicional
4.5.2 Bucle (Loop)
4.5.3 Miscel&#xE1;neos.
4.6 UBICACI&#xD3;N DE DATOS
4.7 MODIFICADOR
4.7.1 Modificador est&#xE5;ndar.
4.7.2 Modificador autodefinido
4.8 EVENTO.
4.8.1 Valor de retorno a la interfaz de usuario,
4.8.2 Disparador asincrono con datos
4.8.3 Almacenamiento barato...
4.8.4 Parametro indexado en evento
4.9 HERENCIA
4.9.1 Herencia Unica
4.9.2 Herencia m&#xFA;ltiple
4.10 VARIOS
4.10.1 Variable incorporada
4.10.2 Unidad Especial..
4.10.3 Tipo Cast e inferencia.
4.10.4 Excepci&#xF3;n.
-CAP&#xCD;TULO 5. CREE SU PRIMER CONTRATO INTELIGENTE CON REMIX...
5.1 REMIX.
5.2 ESCRIBIENDO UN CONTRATO INTELIGENTE B&#xC1;SICO
5.3 COMPILANDO NUESTRO CONTRATO INTELIGENTE
5.4 AGREGAR ALGUNAS PRUEBAS A NUESTRO CONTRATO INTELIGENTE
5.5 IMPLEMENTAR NUESTRO CONTRATO INTELIGENTE EN LA RED DE PRUEBA DE RINKEBY
5.6 INTERACTUAR CON NUESTRO CONTRATO INTELIGENTE IMPLEMENTADO DE REMIX
-CAP&#xCD;TULO 6. TEMAS AVANZADOS DE SOLIDITY
6.1 PALABRA CLAVE "THIS"
6.2 ERC20 INTERFACE
6.2.1 M&#xE9;todos
6.2.2 Eventos
6.23 OpenZeppline
6.3 ERC721 INTERFACE.
6.3.1 Protocolo ERC721
6.3.2 Metadata 
6.3.3 Extensi&#xF3;n enumerable
6.3.4 Protocolo ERC165
6.4 LLAMADA ENTRE CONTRATOS
6.4.1 Funci&#xF3;n Call.
6.4.2 Inyecci&#xF3;n de dependencia 
6.4.3 Mensaje de llamadas
6.4.4 Valor de retorno de la llamada de contrato.
6.5 ALGORITMOS B&#xC1;SICOS
-CAP&#xCD;TULO 7. INTERFAZ BINARIA DE APLICACI&#xD3;N (ABI).
7.1 ESTRUCTURA DE LA MEMORIA 
7.2 SELECTOR DE FUNCIONES.
7.3 DEFINICI&#xD3;N DE TIPO
7.4 PRESENTACI&#xD3;N DE DATOS EN EVM
7.4.1 Presentaci&#xF3;n del tipo de datos de longitud fija.
7.4.2 Presentaci&#xF3;n del tipo de datos din&#xE1;micos.
7.5 CODIFICAR
7.5.1 Un ejemplo sencillo
7.5.2 Un ejemplo de llamada externa.
7.5.3 Codificaci&#xF3;n ABI para llamada de m&#xE9;todo externo.
7.6 PROGRAMACI&#xD3;N ABI
-CAP&#xCD;TULO 8. PRINCIPIOS DE FUNCIONAMIENTO DE LOS CONTRATOS
-INTELIGENTES
8.1 PATR&#xD3;N DE DISE&#xD1;O
8.1.1 Contrato Self-Desctruction.
8.1.2 Contrato de fabrica
8.1.3 Registro de nombres.
8.1.4 Iterador de Mapping.
8.1.5 Patr&#xF3;n de retiro
8.2 AHORRE COSTOS DE GAS
8.2.1 Cuidado con los tipos de datos.
8.2.2 Almacenar valores en formato codificado en bytes.
8.2.3 Comprimir variables con el compilador SOLC..
8.2.4 Comprimir variables usando c&#xF3;digo ensamblador. 
8.2.5 Par&#xE1;metros de funciones de concatenaci&#xF3;n
8.2.6 Uso de pruebas de Merkle para reducir la carga de almacenamiento
8.2.7 Contratos sin estado
8.2.8 Almacenamiento de datos en IPFS.
8.2.9 Compactaci&#xF3;n de bits
8.2.10 Procesamiento por lotes
8.2.11 Separaci&#xF3;n de lectura y escritura en el struct de almacenamiento......
8.2.12 uint256 y almacenamiento directo en memoria
8.2.13 Optimizaci&#xF3;n de ensamblaje
8.3 EL ENSAMBLADO.
8.3.1 Pila (stack).
8.3.2 Calldata.
8.3.3 Memoria
8.3.4 Almacenamiento.
8.4 DECONSTRUIR CONTRATO INTELIGENTE
8.4.1 Creaci&#xF3;n de contratos
8.4.2 Parte General del Cuerpo del Contrato.
8.4.3 Cuerpos de contrato..
-CAP&#xCD;TULO 9. CASO DE APLICACI&#xD3;N. CONSTRUCCI&#xD3;N CONTRATO INTELIGENTE: RELACI&#xD3;N COMERCIAL ENTRE UN EMPLEADOR Y UN PROFESIONAL INDEPENDIENTE(FREELANCER)
9.1 DESCRIPCI&#xD3;N B&#xC1;SICA DEL PROBLEMA
9.1.1 Solucionando el problema con un contrato inteligente
9.1.2 Comprensi&#xF3;n del contrato inteligente ESCRITURA DEL C&#xD3;DIGO DEL CONTRATO INTELIGENTE
9.2.1 Definir la versi&#xF3;n.
9.2.2 Estructura del contrato
9.2.3 Variable de almacenamiento (global)
9.2.4 El constructor
9.2.5 Modificadores.
9.2.6 Los eventos.
9.2.7 El m&#xE9;todo createRequest()
9.2.8 El m&#xE9;todo unlockRequest()
9.2.9 El m&#xE9;todo payRequest().
9.2.10 El m&#xE9;todo complete Project().
9.2.11 El m&#xE9;todo cancel Project()
9.2.12 El m&#xE9;todo increase Deadline()
-CAP&#xCD;TULO 10. CASO DE APLICACI&#xD3;N. IMPLEMENTACI&#xD3;N DE UN CONTRATO INTELIGENTE DE VOTACI&#xD3;N.
10.1 CONCEPTUALIZACI&#xD3;N DEL CONTRATO INTELIGENTE PARA VOTACIONES
10.2 C&#xD3;DIGO FUENTE DEL CONTRATO INTELIGENTE PARA VOTACIONES
10.3 EXPLICACI&#xD3;N DEL CONTRATO INTELIGENTE. ANALISIS POR GRUPOS DE L&#xCD;NEAS DE C&#xD3;DIGO.
-CAP&#xCD;TULO 11. CASO DE APLICACI&#xD3;N. CONSTRUCCI&#xD3;N CONTRATO INTELIGENTE: COMPRA Y VENTA DE UN BIEN O SERVICIO....
11.1 COMPRENSI&#xD3;N DEL CONTRATO INTELIGENTE
11.2 C&#xD3;DIGO FUENTE DEL CONTRATO INTELIGENTE:
-COMPRA Y VENTA DE UN BIEN O SERVICIO
11.3 EXPLICACI&#xD3;N DEL CONTRATO INTELIGENTE.
-AN&#xC1;LISIS POR GRUPOS DE L&#xCD;NEAS DE C&#xD3;DIGO
-CAP&#xCD;TULO 12. ACTUALIZACI&#xD3;N DE UN CONTRATO INTELIGENTE.
12.1 SOLUCI&#xD3;N
12.1.1 Contratos Proxi.
12.1.2 Separar In l&#xF3;gica y los datos del contrato...
12.1.3 L&#xF3;gica y datos separados mediante valor-clave.
12.1.4 Estrategias parcialmente actualizables
12.1.5 Comparaci&#xF3;n
12.1.6 Simple contrato proxi
12.2 LLAMADA DE PROXY GEN&#xC9;RICO A ETHEREUM.
12.3 ALMACENAMIENTO
12.3.1 Almacenamiento heredado
12.3.2 Almacenamiento eterno.
12.3.3 Almacenamiento no estructurado.
12.4 AUGUR
12.4.1 Implementaci&#xF3;n de contrato
12.4.2 Implementaci&#xF3;n de almacenamiento
12.5 COLONY...
12.5.1 Implementaci&#xF3;n de contrato
12.5.2 Almacenamiento
-CAP&#xCD;TULO 13. SEGURIDAD DE LOS CONTRATOS INTELIGENTES..
13.1 &#xBF;POR QU&#xC9; DEBEMOS PREOCUPARNOS POR LA SEGURIDAD?..........
13.1.1 Tipos de vulnerabilidades de contratos inteligentes.
-CAP&#xCD;TULO 14. DISE&#xD1;O E IMPLEMENTACI&#xD3;N DE UNA APLICACI&#xD3;N DESCENTRALIZADA-DAPP...
14.1 &#xBF;QU&#xC9; SON LAS APLICACIONES DESCENTRALIZADAS - DAPP?
14.1.1 &#xBF;C&#xF3;mo funciona una DAPP?
14.2 CASO DE APLICACI&#xD3;N. DISE&#xD1;O Y CONSTRUCCI&#xD3;N DE UNA DAPP PARA GESTIONAR LA COMPRA Y VENTA DE UN PRODUCTO
-ENTRE UN COMPRADOR Y UN VENDEDOR
14.2.1 Dise&#xF1;o e implementaci&#xF3;n del contrato inteligente. 14.2.2 Dise&#xF1;o de la interfaz de usuario de la DApp (p&#xE1;gina web) en el lenguaje de programaci&#xF3;n HTMLS 14.2.3 Dise&#xF1;o del archivo JavaScript para enlazar la interfaz de usuario, el contrato inteligente y la cadena de bloques.
14.2.4 Dise&#xF1;o del proyecto Truffle para ejecutar la aplicaci&#xF3;n (Dapp) a trav&#xE9;s de la interfaz de usuario
14.2.5 Ejecuci&#xF3;n de la DApp (proyecto Truffle) en la cadena de bloques local Ganache.
-MATERIAL ADICIONAL.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2=" ">
    <subfield code="b">DESARROLLO DE APLPICACIONES MOVILES </subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="a">B-ISTTENA</subfield>
    <subfield code="c">BOOK</subfield>
    <subfield code="p">19/04/2023</subfield>
    <subfield code="q">Erika Calapucha</subfield>
    <subfield code="n">17/04/2023</subfield>
  </datafield>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">1015</subfield>
    <subfield code="d">1015</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="a">BISTT</subfield>
    <subfield code="d">2023-04-17</subfield>
    <subfield code="e">DONACI&#xD3;N</subfield>
    <subfield code="i">ISTT-DS-0227</subfield>
    <subfield code="p">ISTT-DS-0227</subfield>
    <subfield code="t">Eje. 1/1</subfield>
    <subfield code="v">43.33</subfield>
    <subfield code="y">BOOK</subfield>
  </datafield>
</record>
