Workshop ETHArauca | Introducción a Solidity
ETHArauca Workshops 2023 · 27 Apr 2023 · 1:30:51
A Spanish language virtual workshop introduces Solidity to developers who already know JavaScript, using the Remix editor in the browser so nothing has to be installed. The instructor compiles and deploys a small contract while explaining integer sizes and overflow, the address type, function visibility, memory for strings and why gas makes efficient code matter. The contract is then deployed to a test network through MetaMask with test funds, showing that state changing functions cost gas while reads are free, and that funds sent to a contract with no withdrawal function are stuck.
Speakers
Topics
From ETHArauca Workshops 2023, hosted by Ethereum Arauca.
Transcript
Ok Ok Bueno buenas tardes para todos para las personas que están ingresando vamos a esperar un poco más que se terminen de conectar el equipo de estudiantes del sena faltante un gusto saludar a todas las personas que ya se encuentran aquí presentes en este super workshop virtual en este taller virtual donde vamos a trabajar un tema que es muy importante y a nivel de código es súper fascinante como son los Smart contracts Así que Bienvenidos a los que están presentes ya tenemos aquí nuestro speaker en sala en unos minutos iniciaremos esperemos la gente faltante por la conexión súper súper de una
cómo va acá quién está conectado con los que están presenciales en un lado o se conectan así cada uno por cada uno se va a conectar desde un equipo de la sala de informática dispuesta por sena entonces mientras van entrando permítanme presentarles al speaker que él también nos puede hablar un poco de él con todos nosotros tenemos acá Alejandro Soto quien ya es un ingeniero de sistemas desarrollador es ceo y como lo coloqué en la descripción seo y confunde de labs Y por supuesto miembro también de una de las comunidades que me parecen de las más
importantes en Colombia en cuanto a la referencia de ethereum como es it Medellín de hecho las personas que estén acá pues es un gusto poder tenerlas ya que estos eventos se realizan a fin de que tire un arauca pueda ser validado como un nodo activo en todo el país así que pues súper que se estén conectando para compartir y aprender así que pues Qué gusto aquí tenerte Alejandro en sala con el tiempo y con la disposición para enseñarnos sobre pues este mundo gigantesco de este ecosistema llamado ethereum el tema de los Smart contracts Gracias bueno para aclarar Soy ingeniero civil y especialista en ingeniería de
software Aquí hay una sala entonces no sé si vamos vamos nos va con el internet acá pues ayer estaba molestando el internet si nos podemos conectar o sino aquí conectamos un solo equipo y los demás están acá muchachos Felicidades chicos ahí súper ahorita llegan llegan los que faltan entonces un gusto bienvenidos entonces aquí estamos vale para que sepa que aquí estamos
y bueno Perfecto entonces yo creo que podemos empezar Ya un poco la la reunión por lo menos con algunos temas conceptuales podríamos empezar repasando solo rápidamente a Alejandro qué es esto de de tyrion de esta tecnología puedes contarnos un poco acerca de Qué es claro el tema de ethereum a mí me gusta hablar sobre la blockchain enfocándola como si fuera un país porque vamos a ver temas como el gas que toca pagarle a alguien para que se actualice información entonces me gusta relacionar mucho esto con el tema de la economía economía en el sentido de que si nosotros o la brocha funcionan en haciendo como el símil de un país en el caso de Colombia
Si uno quiere comprar por ejemplo café colombiano tiene que comprar pesos colombianos para hacer la compra del café si uno va por ejemplo a Estados Unidos y quiere comprar algún producto como una computadora Apple quiere comprar de pronto Microsoft un computador allá entonces cualquier cosa que uno quiera comprar de un país tiene que comprar la comunidad local para poder acceder a su a su producto o servicio ahora en el caso por ejemplo que pasó con Rusia ellos estaban aceptando Dólares pero al final le tocó decir sabe que vamos a como no está bloqueando todo tenemos que aceptar solamente rublos rusos es decir si tú quieres acceder a un producto o servicio de un país debes comprar su moneda local Así mismo también funciona ethereum o
funcionan todo el tema de las brochas en el sentido en el que tú tienes que comprar esa moneda local que te entrega ese país para poder acceder a sus productos o servicios ahora se preguntarán bueno y tirio no me dijeron que era una blockchain Cómo así que un producto un servicio eso qué es por qué porque se supone que mueven un sistema económico por debajo Ellos tienen un valor por detrás un valor intrínseco mucha gente tal vez empezó creyendo en mi caso también pensé creyendo que itinion era criptomonedas eso de iter que bitcoin y esas cosas pero luego se da cuenta de que tiene algo más allá no es solamente una criptomoneda y esa criptomoneda tiene que ser respaldada en algo ese algo es ese producto o servicio que puede ofrecer esa brocha en el caso de
ethereum ese producto que ofrece ese servicio en realidad es la creación de smart contracts y la seguridad de cumplir con un problema no se cuánto lo mencionó ya el tiremos entre seguridad escalabilidad y cuál es el otro lo han escuchado antes Entonces es alguien que creo ya una infraestructura que me sirve para poder desplegar contratos inteligentes y que las personas van a querer y necesitar usar ese contrato inteligente para poder acceder a ese contrato inteligente debe pagar con su moneda local por lo tanto esa moneda va a tener un valor en toda la economía mundial y las demás monedas del mundo de los demás
países como el peso colombiano el dólar estadounidense el euro para tener una tasa de conversión para poder acceder a esa moneda y una vez que tú accedas a moneda puedes pagar el gas para un contrato Entonces qué viene siendo ethereum viene siendo Esa computadora universal que se comporta como si fuera un estado como si fuera un país ya que puede proveer Servicios al mundo exterior servicio a cualquier persona como nosotros como usuarios o como compañía que quieren desplegar algo en un contrato inteligente y para poder acceder a esos servicios tienen que pagar en su moneda es decir tiene que comprar Peter entonces me gusta mucho como esa analogía en la que ya vemos Más allá de tyrion como no es qué es la
blockchain habló Quién es un estado o una organización en la cual puedo acceder a un servicio que son los smarts y los smarts tengo que comprar su moneda para poder acceder a sus servicios usted me gusta verlo como de esa manera y ya cuando entremos a mirar un Smart contra como Bueno y por qué la gente compraría ese producto o ese servicio que vamos a entender Qué hace ese producto o servicio y además y Por qué es tan valioso Y por qué la gente quiere comprar con peso colombiano o con dólares esa moneda para poder usar los de Marco a ti Ya lo vamos a ver en un momento Oye súper Alejandro Esa está súper introducción tengo entendido que para poder trabajar con los Smart contracts en el ecosistema de tyrium hay un lenguaje de programación exclusivo
llamado solidity yo creo que muchas personas también pueden estar pensando Bueno ese tema de seguro tengo que pasar tal vez 30 o 50 años para poder alcanzar a programar en web 3 o tal vez Necesito una década o mil años para programar en solita suena súper complejo Es verdad eso para nada de hecho solita fue un lenguaje que se creó para poder entender o poder estructurar esos contratos inteligentes porque en realidad lo que uno hace es o cómo funciona la programación normal uno no se va a poner escribir un computador uno sinceros a decirle vea este espacio de memoria le meto un uno y si tal cosa pasa haga tal cosa no uno lo que hace es que trata de escribirle un lenguaje con algo llamado un lenguaje natural igual con lo más
parecido a un lenguaje natural cómo lo hablo yo una persona el lenguaje natural ya sería hablar con un chat con otra persona o con el tema de que están haciendo conectividad artificial pero bajo un poquito empezamos mirémoslo así bajo nivel ella hablar con lenguaje ensamblador como decir al computador uno sinceros nadie habla así ya cuando miramos alto nivel lo más alto que se puede estar es decirle el lenguaje natural haga esto haga lo otro Pero obviamente los lenguajes no funcionan así entonces a medida que empezamos a bajar de lenguaje natural tratando de llegar a ese lenguaje ensamblador encontramos un montón de lenguajes de programación que lo que hacen es traducir mi habla o Traducir mis ideas en algo que el computador pueda entender Entonces cuando se creó este tema de
ethereum cuando llegó a vital y Potter y con sus amigos llegaron a la decisión de decir bacano bitcoin pero eso se puede aprovechar para algo más y quedaron todo el tema de la máquina virtual titirio esa máquina virtual de ethereum como vimos las dos escalas no está arriba porque no habla con humanos Habla con el computador estaba entonces se creó una un tema de un lenguaje de programación que pudiera compilar algo que pudiera llegar a esa máquina virtual ese lenguaje de programación con el que nosotros podemos interactuar para que pueda compilar y llegar abajo se llama solidity y solidity es muy parecido a otros lenguajes de pronto los muchachos ya han estudiado con javascript ya han tocado el tema javascript han tocado
tema de desarrollo web o python que de pronto como lo más fácil que uno dice no tengo que cerrar nada sino que le doy ciclos y cosas así comentar algo aquí javascript consumir una Api una Api confets [Música] es igual pobres Bueno ese javascript ah pero van bien ya han integrado un montón de cosas Ah ya literalmente saben todo el tema de web dos Cómo consumieron el pie y Cómo conectarme Cómo hacer integración entre Front con Front entonces creo que si ya
tienen bastante conocimiento eso me imagino que ya han pasado por todo el tema de que es un condicional que es un Ford y todo ese tipo de cosas lo que vamos a usar ahora para poder entender solicity es lo que ya sabe literalmente eso que ya sabían hacer lo que vamos a hacer es agregarle unas palabras nuevas porque la el computador de Haití y una máquina virtual el tiro un virtual Machine hace lo mismo que hace un lenguaje de programación común y corriente solamente que como les comentaba ahorita cuando hablamos sobre tirio y tirio te permite desplegar contratos inteligentes y los contratos inteligentes para poderlos usar tienes que hacer un pago de un gasto tienen que pagarle a ese país criterio exacto y tiene un virtual como tienes que pagarle
se crea un nuevo paradigma en el que los códigos de programación pueden recibir fondos y pueden tener dinero entonces hay que entender algo que son los tipos de los tipos de variables se agregan variables nuevas que son las address las address son unas variables que tienen un cifrado o sea son como un cero x y si un número cifrado que corresponde en una llave pública y esas direcciones van a poder almacenar fondos Entonces eso como lo que viene nuevo pero el resto es lo mismo ahorita cuando empecemos a ver temas de código van a poder entender que esos que eso es sobre una madre o que sean esas de descifrados que ese tipo de cosas eso es lo nuevo simplemente es eso un nuevo tipo de variable que va a ser
la llave pública como se conoce un address y que puede almacenar fondos de resto es lo mismo lo que ya conocemos simplemente considerando que el código vale plata porque vale tiempo de ejecución entonces hay que ser conscientes de que el código sea lo más limpio posible y qué tipo de variables voy a usar y el tema de almacenamiento Entonces es como programas de manera consciente ya eran como que Ah voy a hacer un foro ahí yo voy a colocar un código así aleatorio y lo que salga sino ser más consciente lo que estamos haciendo para que el código sea lo más optimizado posible requiere un tema de responsabilidad también al momento de programar que no es como que lo hago y luego lo cambio y mira a ver si funciona
si funciona todo bien si no lo hago que funcione y lo optimismo para que salga económico Porque al fin y al cabo entre más barato salga algo mejor cierto o sea si algo me va a consumir mucho dinero la empresa van a decir Uy Cómo así mejor no lo hago así pero si le muestro las empresas que van a ahorrar plata que van a decir Uy yo quiero Entonces es jugar con eso y es lógica si nosotros vamos a hacer algo Nos conviene que sea más barato a que sea más cortos Entonces ese lenguaje de programación es algo que ya han usado antes seguramente lo van a entender muy fácil pero aquí la regla pero no es una regla que esté implícita en el contrato sino ni en el código sino la regla como lógica es si van a cobrar por el código pues tengo que hacerlo más optimizado
entonces es como el punto a tener en cuenta pero es muy fácil lo que ya han hecho antes vamos a agregarle algo pequeño y ya y se fue es muy fácil suena espectacular Entonces yo creo que con esta introducción vamos súper no sé no sé si te parece ya lejos y empezamos a codear Qué dices de una todos listos todos tienen computadora la mano quieren ver ahí algo acá el teclado Perfecto entonces empezamos a las 2 y a las tres eso vamos aquí a compartir pantalla y les voy a empezar a compartir las herramientas muchos dirán Por ejemplo si Quiero programar con
javascript es lo que generalmente toca usar Ah que se iba a programar en llamas quiere el computador Tengo que abrir visual Studio code que este iconito que vemos por acá y después tengo que con el visual Studio code abrir una carpeta instalar y después decirle que tengo el crédito en el Yes y decirle que lo corra bla bla bla pero en solidity vamos a empezar con una máquina que está en el navegador Cuál es la otra forma de poder escribir javascript si el uno aquí control shift y al navegador me abre una consola yo aquí puedo programar con javascript Por ejemplo yo puedo decirle yo creo que mejor no lo hago acá que no se vaya a enseñar aquí la bloquea abrir
acá por ejemplo página y aquí puedo escribir cónsul log Hola Y él me va a entender ya puedo decirle que a va a ser igual a tres y le puedo decir con solo de tres es una manera de programar en javascript cierto computador simplemente me instalo no llegues y lo hago Pero nos da la posibilidad de poder programar usando una una página web una aplicación web esa aplicación web se la voy a compartir por acá remix remix punto lo que quieran seguirnos para estar como
la par porfa vayan abriendo esta página cuando lo abran de la cabina y me cojo un montón de cosas porque ahí actúan empieza como agregar el pero con escribir premios él por defecto ya creador qué vamos a encontrar acá acá vamos a encontrar un espacio de trabajo él nos va a decir vea acá workspace es un espacio de trabajo Yo tengo mi espacio de trabajo por defecto puedo agregar otros lo que yo quiera y dentro de ese espacio de trabajo es como si tuviera un proyecto así como cuando tengo un proyecto normal en visual Studio acá en qué frame cómo usan para programar cómo lo hacen usan visual
Studio de pronto usan este otro de qué otro uso que nosotros está este otro que es como cualquiera de nosotros cuál utilizan ustedes para programar dónde hay que ir eso qué interfaces de desarrollo están por ahí de pronto Néstor o Emerson cuál lo utilizan porque ellas también como está de Atom creo pero todas tienen en común que el lado de la izquierda se ve como la información la ruta de las carpetas en este caso tenemos las diferentes carpetas con sus scripts y acá otro objeto que estaba haciendo que se llama
dobles dentro de contratos Entonces Okay Disculpe Entonces en este caso estamos en remix punto org listo entonces Alejandro perfecto listo Entonces ustedes han trabajado en que en visual Studio code en Atom que interfaz de desarrollo utilizan para programar Generalmente desarrollo pero no tienen que descargar nada ni configurar nada ni instalar nada ya viene Lisa en el navegador lista para usar
mientras la van abriendo Entonces le voy comentando que tenemos acá la primera parte nos dice las carpetas todas las carpetas y los archivos que tenemos acá tenemos un icono para crear un nuevo archivo un icono para crear nueva carpeta para publicar los archivos en gith para Julio Sería para subir los archivos a algún lado y para subirlo a la carpeta También tenemos el tema de la lupa para buscar información dentro de algún archivo como que Ah yo por ahí publiqué un archivo y tiene tal nombre Entonces vamos a colocar aquí el nombre del archivo y lo buscamos por el tema de expresiones regulares Acá está el tema del compilador que no sé si de pronto recuerdan o sea el trabajo con
uno o cuando trabajo con ría que ellos eran algún fregón porque dice cómo les va como para mirar el nivel como que han hecho para ver cómo qué similado con algún framework como angular alguna frame vamos a hacer un poquito más Dinámico responden ahí de vez en cuando Bueno cuando trabajan con algún framework Generalmente hay un tema de un build que es un build es compilamos el código y creemos lo suficiente o lo necesario para poderlo desplegar y subir un servidor eso es un virus la carpeta llamada son como la carpeta que generalmente es las crea por defecto cuando uno compila
un proyecto que es compilar un proyecto Generalmente el proyecto cuando se programaba antes por allá en el pasado por allá cuando la gente quería piedra era hacer un archivo que la gente programaba y que ese cosa y que el bloc de notas era un archivo gigante gigante gigante con un montón de información del html que teníamos por acá que el header que otra cosa por acá y una sola un solo archivo con toda la información de todas las páginas o sea una cosa Absurda hoy en día lo que se hace es se tiene un framework bien bacanito bien organizado con diferentes carpetas de una carpeta que se llama páginas entre páginas tengo una carpeta por cada ruta de la página web Entonces siempre una página web y tengo un montón de rutas cada ruta una
carpeta Entonces qué pasa que esa organización de carpeta lógica que entiende el ser humano el computador no lo entiende entonces para poder convertir eso como les comentaba ahorita tengo el lenguaje conoce el ser humano que es lenguaje natural por acá arriba y tengo por acá abajo lenguaje que conoce la máquina entonces en la mitad están los lenguajes de programación y los frameworks lo que hace el compilar es convierte esa información que lee el ser humano y que puede entender para pasar el computador lo compré y lo manda para acá abajo para que el computador lo pueda entender esto no entiende el ser humano lo convierte y lo envía para que el computador lo entienda eso es compilar Entonces lo tenemos por acá vamos a comprar Ese código A qué a la y tiro un virtual Machine para que le tire
un virtual y lo pueda comprender entender y procesar y una vez que ya se complejizamos que la máquina virtual no puede entender que nos toca hacer desplegar el contrato entonces voy a ver un archivo un contrato inteligente vamos a mirar cómo volverlo de un lenguaje que entiende que tenemos nosotros como seres humanos a un lenguaje que tiene la máquina virtual Y cómo subirlo alguna extensión de remix en visuales un poco más complejo porque esta configuración toca setearla hay diferentes frameworks para hacerlo el más conocido y uno lo más usado es que funciona con javascript también hay
otros que están funcionando ya directamente con solid pero ya están como en esa fase de crecimiento Entonces no tienen todo el poder que tiene es el frame que tocado Generalmente pero ya perdió poder Al momento de usar Uy ya que ahí voy a una trufa pero ya fui yo como poder con el tema de Hardware se volvió como el más utilizado el que tiene más información Pero eso Podemos mirar en otra sesión Cómo hacer un contrato inteligente de manera local y no tener que usar este tipo de herramientas que en realidad como ese profesionalmente profesionalmente uno no tiene localmente y le pasa la llave Privada de la wallet para poder hacer el tema
pero eso lo miramos luego en visual Studio code no toca usar un framework como poder hacer el contrato y todo Entonces cómo van ya todos tienen rimas abierto quién falta por abrir remix todos Ok empezamos a hacer el contrato o qué empezamos a explicar cómo se hace el contrato no hubo ninguno por ahí entonces voy a seguir vamos a posición Exacto llamada silencio administrativo hay silencio entonces continuamos dentro de la carpeta de contratos vamos a hacer otra carpeta para llamarlo aquí Cómo hacer una carpeta acá a nivel Race
entonces aquí afuera para que no me seleccione ninguna carpeta leído que Quiero lograr una carpeta y voy a llamarla arauca dentro de Instagram que acabo de hacer voy a quedar un archivo normalmente puedo usar javascript porque es como el lenguaje más parecido o python por ejemplo que es como lo más parecido porque tiene lógica porque usar html o css son etiquetas o sea etiquetas para ubicar de manera bonita un objeto y definirle ciertas acciones pero en sí el corte la lógica del negocio y la lógica lo que se plantea hacer se hacen javascript se hace en python se hace en este otro de php cierto que pasaron ya va que son hay frenos populares y todo eso Entonces
ese tipo de cosas en este caso como que los contactos inteligentes vienen a hacer ese backen pero vamos a crear un archivo un archivo Aquí vamos a Hola mundo punto la extensión de javascribes js la extensión de python de y la intención de solidity Es que sos por defecto él me crea este conito este iconito de acá es el logo de es hipolito icónico entonces bonito que vamos a ver muchas veces de aquí en adelante se llama solilik con Este
lenguaje podemos compilar a la y tiene un virtual Machine y todas las blockchain que usan o que soportan ese esa máquina virtual Entonces qué es lo que primero que tenemos que hacer acá vamos a crear un contrato Yo quiero pasarles también esta documentación que me pareció muy poderosa hace una comparación entre dos lenguajes de programación uno llamado caído pero literalmente explica a detalle cada cosa me lo pasó su compañero de acá en eso me lo compartía me pareció muy bacano en ese momento ya está usando mucho porque acá literalmente ética desde cero cuando abrimos el enlace esto lo creó Arturo Vargas el 19 de febrero
que fue la autorización la de uno punto cero punto cero y literalmente se pone a comparar los lenguajes de programación entonces empieza primero explicando solidity y literalmente se pone a explicar cada línea de manera detallada vea esto es esto Esto es esto Esto es el tema me pareció muy poderoso para iniciar vamos aquí a copiar el código porque no va a poner a escribir todo esa mano o sea si tenemos la opción de copiar simplemente copiamos pegamos y lo editamos entonces aquí lo vamos a copiar acá esta primera línea que una línea en la que especificamos que vamos a usar la licencia de esto por qué Porque aquí todo software libre literalmente todo es código libre todos los contratos que se
desplieguen se desplegaron y se desplegarán van a ser públicos es decir cualquier persona puede tener acceso a esa información por lo tanto La idea es que se vuelva la licencia para referenciar como dar los créditos como que vea Gracias por hacer esto usted fue el que lo hizo entonces me voy a pegar de aquí para consumir esto por qué Porque todos estos software O sea si no vamos a decir No yo lo hice o Mi código privado como Ay Mi código lo tengo yo aquí quiere ver lo pague no todo el código tres va a ser completamente público Entonces esta primera línea siempre va eso que está acá un comentario para especificar esto acá pragma solid que este es el la versión del compilador acá
lo que dices que tiene que ser mayor a cero punto ocho diecisiete y menor que cero punto nueve por qué sugieren esto porque solicite o lenguaje de programación solicita y ha sufrido varias actualizaciones con el tiempo no si de pronto algunos sí curiosos le ha dado por estudiar términos como el overflow para escuchar el término de overflow seguramente después que haga esta página de pero Qué significa over Flow o sea está no es porque yo le quise colocar el nombre así porque sí se me ocurrió un día estaba dormido yo como que uy Quiero crear una página que se llama esta flor para poner respuesta de preguntas de programación Pero por qué ese término de over Flow en programación viene a un tema un
deportamiento de memoria un desbordamiento de memoria que sí Qué significa que yo le digo literalmente o cuando estamos programando le decimos literalmente qué vamos a reservar un espacio de memoria un espacio de memoria por ejemplo de 8 bits de 16 bits de 32 bits de 64 bits de 128 para hacer alguna actividad particular vamos a colocar aquí un ejemplo Por qué Porque cuando empecemos a ver el tema de variables vamos a ver que solita y nos dice que tenemos por ejemplo y enteros que es un entero positivo unit un entero que puede tener signo es decir positivo o negativo Pero cuando entramos a
detalle a mirar Qué tipos de interés tenemos tenemos un de ocho uno 16 32 y tal vez se pregunten yo estoy allá por allá javascript pero la lógica y un foro y ya ese ocho dieciséis no sé qué significa no sé qué tiene No importa acá vamos a aprender dijimos que hay de ocho y hoy de 16 por ejemplo nivel de 32 ni yo les dije que esto es número significan bits es decir este me reservo un espacio de memoria de 8 bits este merece un espacio de memoria de 16 bits y es un espacio de dos en dos por dos 16 por 232 luego 64 128 256 y ya ahora Qué significa ocho
aquí alguno ha escuchado ese término ocho Cómo así que 8 bits alguno quisiera agregar algo o le explico algunos Quiero escuchar quisiera punto compartir lo que escucho sobre eso alguno No entonces expliquémoslo pues ese es el tema de las variables no temas normales momento Qué significa que yo reservo una variable de 8 bits para un número qué implica eso dependiendo de la longitud no la longitud de los de los de los que se va a usar como usted decía enteros positivos y enteros positivos y negativos Pero eso hace parte también de
la capacidad de lo que va a almacenar sí cambia la la capacidad de almacenar lo que usted dice no hay un ovr Ok por desbordamiento al almacenar usar la variable Exacto es la capacidad que tiene esa variable entonces y un un de ocho me está indicando que tiene una capacidad de dos porque estamos tratando con binarios ceros o uno elevado a la ocho pero qué pasa si tomo este número solamente me va a dar los positivos el uno el dos el tres el cuatro el cinco hay que considerar que también existe el cero y como existe el cero Entonces qué pasa que esta variable y la capacidad de un elemento porque va a tener el cero hasta el 255 para poder almacenar los
156 números Entonces qué pasa si yo le digo a un entero de 8 bits a un ocho que me guarde el número 280 el que va a entender aquí va a ocurrir algo llamado un overflow se va a desbordar la memoria como se deporta la memoria el pasa de 255 otra vez a cero y luego a uno luego a dos luego a tres luego a cuatro por lo tanto el 280 viene siendo los 80 menos 255 menos el cero Entonces le resta uno yo le digo a una variable de tipo u ocho en una versión de compilador muy vieja es olímpique que me guardo el número 280
él me va a guardar 24 Por qué Porque se deportó la memoria porque él tiene una capacidad máxima de 255 de pronto lo que le guste abordar un poquito más en el tema de cómo de Por qué pasa eso es por un tema de binarios imaginemos que ocho bueno ocho bits indica que solamente tengo esa casilla cuatro cinco seis siete ocho tengo solamente esta cantidad de Casillas este Qué pasa si llegaron todas las casillas como si estuviera aquí un tacómetro y el tacómetro llegó al límite uno uno uno uno uno uno uno uno Qué pasa cuando llega al límite con el tacómetro ya una casilla que no existe y que no es visible para el apuntador de
memoria que busca en esta posición él va a buscar acá y esta casilla de acá no es visible para él esta cambia a uno porque esto se llenó que hubo guerra de cero cero cero cero cero cero cero cero cero cero y este número es el 256 el 256 él lo va a leer como un cero por qué lo va a leer como un cero porque él solamente tiene la visión para poder leer esto y la memoria Se desbordó ocurrió un over Flow y como la memoria se desbordó en solamente valer esto y qué Lee aquí un cero él no lee el 256 él está leyendo un cero si quieren lo que le quieren o que le
son como pelota cachiar tómenle captura pantalla a esta parte de acá y ahorita después del video van a buscar Cómo convertir un número binario con número decimal para que la capten y vean como que Ah Ya entendí que está haciendo acá sino en otro momento lo explicamos Porque no tenemos como tanto tiempo para hacer pero por ahora tómenle como captura eso si quieren investigar más sobre los binarios y van a entender que esto es lo que sí todo acá es un cero y este bloquecito acá si aumentamos los va a ser un 256 son lo mismo pero Depende como lo mire ahora una variable de 16 que se calcula de la misma manera dos elevado y le resto el uno por ciento tengo toda
la capacidad más en cero Entonces le presto uno un de 32 tendría 2 elevado a la 32 menos uno ahora me preguntarán Bueno yo para qué quiero saber ese tema las memorias o este tema del espacio eso para qué me sirve hagamos un ejemplo yo tengo un contrato inteligente en el que voy a guardar la edad de las personas de qué tipo va a ser la variable Edge yo voy a hacer una variable greent si no le pongo nada el por defecto me toma el 256 Entonces yo quiero hacer una variable llamada Qué propuestas me dan
o en ocho y un 16 por acá el micrófono quiere compartirnos que piense Y por qué qué se le ocurre vamos sin miedo con confianza son breve 8 esta área es la que vamos a porque esta variable para una edad que se le ocurre porque es vamos a cambiar eso aquí Blanco porque hay un ocho tiene una capacidad de 255 elementos de 0 hasta el 255 bueno tiene una capacidad de 256 pero con el cero
pierde uno Qué pasa aquí alguno conoce a alguien que tenga más de 255 años de pronto habrá escuchado el noticiero alguien que tiene más de 100 años o escuchó por ella en un libro O tendrá algún conocido en algún pueblo Pero qué pasa que ninguna persona en teoría más de 255 años por lo tanto una variable de tipo yo en ocho solo me reserva ocho bits de memoria por lo tanto está ocupando menos espacio y memoria y va a ser que el programa sea más rápido por qué va a ser más rápido porque estoy diciéndole que el programa Va a pesar menos si el programa pesa menos cuando está bien leyéndolo Bueno un conspirador leyéndolo lo va a leer
más rápido por lo tanto ese tipo de cosas o consideraciones son las que hay que tener en cuenta cuando uno programa uno Generalmente en este tipo de programa lo que dice es Ah vea eso es un entero que se llama atención a eso acá que podría ser así pero va a ser ineficiente y va a costar más plata y cada peso cuenta cada centavo con ahorre es plata que sirve por lo tanto la idea aquí es hacer esto lo más optimizado posible por lo tanto una variable de tipo Edge Debería ser definida como un entero de ocho para qué Para poder ahorrar otra cosa de solidity con respecto a otros lenguajes Porque también se pueden programar Smart contra gente todo tipo
de lenguaje de programación por ejemplo en Rosa solippi una cosa que tiene bacana que por defecto es decir escribir Esto es lo mismo que escribir esto es por defecto ya sabe que eso es así por defecto ya no va a ponerse a hacer otras cosas ni a ponerse a inventar ni a ponerse a tirar aquí entonces da igual inicializarla a dejarla allí ahora otra cosa dentro de eso también encontramos estas palabritas que se va acá verde hay cuatro tipos de esas palabras verdes está pública privada interna y externa matarlas por acá
pública así parece como comentario privada interna y externa Qué pasa pocas palabras la local y la global más o menos ese tipo de local y global hay dos tipos de locales y globales hay una local que sería como local dentro del contrato y otra global para cualquier otra persona que quiera Acceder al contrato por qué porque esto normalmente uno cuando trabaja con proyectos lo que hace es que los tiene como decía la variable local y global Aquí tengo una variable
global desde la cual puedo acceder desde diferentes servicios desde diferentes archivos pero qué pasa también dentro del mismo proyecto tengo por ejemplo un proyecto grande de Front tengo un apartado tengo una página en la página se llama Nata que no aparece esta parte de acá arriba que nunca se quita en una esto que estamos viendo acá arriba que se haga crol bueno no tiene esto que están viendo acá arriba que nunca se quita se llama Nampa y lo que generalmente están en la parte inferior como un como un texto acabado se llama footer este no tiene footer Entonces yo puedo decir tengo una variable global que me tiene el nombre de la persona para que siempre así yo haga lo que diga Alejandro tiro bajo dice Alejandro bajo y dice Alejandro pero Alejandro lo calculé en este componente pero también
lo puedo acceder este componente aquí el tema Es que además de poder compartir información entre archivos este archivo se va a desplegar en la blockchain por lo tanto otros contratos inteligentes como él van a poder hacer uso de sus funciones y de todas sus variables si nosotros lo definimos así entonces una función externa o la función interna lo que vienen a hacer referencia es Quiénes pueden llamar Quiénes pueden llamar sus funciones si lo pueden llamar dentro del contrato cuando lo hereden o lo pueden llamar a otras personas fuera del contrato o sea yo puedo decirle literalmente yo le defino una función a este contrato que no puedo usar es como esa maldición de teoría un camino o te
guió a como que yo soy la persona que no de pronto de las referencias de la película de Marvel es el que como lo pidió algo que yo no puedo lograr o sea esa ese contrato no puedo usar esa función Pero cualquiera que llame al contrato puede usar la función cualquiera que lo herede cualquiera que diga yo voy a tomar como base este contrato lo voy a heredar y voy a usar sus funciones ese tipo de función es una externa es decir cualquier contrato de afuera puede llamar una función pero cuando tú no puedes llamarlo también están las internas que son Solamente yo la puedo llamar si alguien tratase de heredar o heredar ese contrato no va a poder hacer uso de esas funciones están la públicas que la pública pero es muy bacano porque Generalmente aquí en
trabajo vaque algunos me contaron que si entraba temas de vaque cuando uno trabaja un vaque no le toca decir por acá le toca decir Bueno yo voy a usar una función por ejemplo de pronto va a salir por aquí y va a decir Api y va a decir user ya me va a volver la información del usuario Entonces le tocó uno crear todo micro servicio para el get y decir yo recibo tal cosa no sé tengo un response o recibo un evento y el evento hago lo otro bla bla bla aquí con definir una variable pública ya estás asumiendo Que o el compilador te va a convertir esta área pública en una función de lectura así
porque sí él te convierte es una función de lectura Entonces yo qué puedo colocar también public y veamos qué pasa famosa vamos a compilar El primer contrato solamente tenemos Cuántas líneas siete líneas Vamos a darle control S un control ese que es como guardar improvisores lo que hace que me compila mira que me crea una carpeta llamada antifaz y me creó un compilado si voy a la parte de compilado me compiló el contrato algo muy interesante que tiene esto es que yo pierdo el contrato muy bacano Sí pero cuando le llegue me va a quedar en una dirección una dirección como cuál como esta que vamos a hacer acá una dirección así como
esta una dirección vea cero x luego sigue un cifrado que tiene 40 letras tengo un cero x seguido por 40 letras si Yo leo esto yo sé que esta función tiene una variable llamada grita una función llamada Edge cierto que no Entonces como yo esto lo voy a usar en un Front como tiene que haber un Front que va a llamar este código ese tiene que saber qué tiene ese contrato o sea que tiene este código este esta función que acaba de desplegar que se desplegó aquí no tengo ni idea de qué hace y o sea esto que esto es un número raro que nadie entiende por lo tanto hay algo llamado un interfaz binario
es para preguntar sobre es que tuve fallos de internet y no pude ver bien cómo funciona pragma a la hora de escribir pragma solita y como sale en el código no me sale la versión Cómo diría para instalarla [Música] nuevamente y le paso el código que tenemos acá montado listo Gracias solamente escriba la dirección Y dónde lo hace no lo hagan en otra configuración que ya miraremos luego en otra ocasión por ahora hagámoslo en remix que ya viene todo
listo Entonces qué pasa que como yo me quiero conectar con esta función pero esa función o este contrato no sabemos qué hace cuando uno compila el contrato no genera algo llamado pero una idea y no es una agencia bolivariana de información tiene otra definición sería un tema de paico eso es una interfaz binaria vamos hacia acá especifica el término De Api está no no aparece la definición en Smart Contract habilita la
comunicación Bueno ahora mismo cuento Qué significa la eso es acá de pronto me recuerdo de pronto te acuerdas clínica La ahora mismo no me acuerdo el nombre buscando la definición eso es interfaz binaria Ah bueno la reaplication una interfaz de aplicación viral eso lo que hace es que me genera un código que ya es entendible y que se puede utilizar para saber qué hace esto acá cuando le pegó un código de afuera y me dice como Hey vea acabo de pegar un código de un en un editor de contrato
ojo con lo que acabo de pegar por qué porque hay muchos contratos que están en internet donde las internan las copias y pega y compila y ya dice que ese código es de él como le dije todo el público y bueno puede ser que ese código es tuyo la gente va a creer porque obviamente todo público porque acá como el código como de todos pero el problema más grande es que si el código tiene un error tú eres responsable el error entonces dice que estás corriendo bajo tu propio riesgo vas a conectar tu billetera y lo va a poner en riesgos porque tú no sabes dónde viene el código en este caso Yo sé que fue lo que pegue Entonces Okay pero es como una advertencia para que no estemos como pendiente y pegando sin pensar sino que seamos conscientes de que Estamos pegando Entonces eso es algo muy bonito
de también porque nos hace programar más conscientes ya cambia el paradigma de cristal versus lo que encontré lo copio y lo pego y ya hay mucha gente que es así copia y pega y ni siquiera mira que pegó ni que hizo solamente que funcione ya acá puede que te funcione Pero puede ser más costoso puede que deje abierto una puerta de seguridad una puerta de seguridad que haga que el contrato recibe a fondo que reciba plata y alguien pueda entrar y robar la plata Entonces no obliga a ser más consciente lo que estamos haciendo ahora esta dirección digamos que genera una interfaz binaria de aplicación es interfaz binaria de aplicación lo que hace es que me muestra las funciones que tiene esta este contrato como les
comentaba cada vez que defino la variable pública esa variable pública me genera por defecto una función acá tiene una función llamada Edge edad y acá tengo otra función llamada grid cierto qué va a hacer este texto ahora un Front le pasó esto y le paso esto ya él va a saber Cómo conectarse y Cómo llamar el contrato hay varias librerías para los que quieran cachar y mirando cómo funciona eso literalmente solamente requiere eso voy a colocar aquí un ejemplo para que bailando con un abrebocas ahí right right option
Ahora aquí Quiero leer más de uno oler varios para los que ya han trabajado con el tema de desarrollo web y han trabajado usando algún framework como reac acá es un ejemplo una implementación Obviamente si estará el tema de todo pero el uso es muy sencillo literalmente es me importo el contrato le doy la dirección del contrato que ya se las voy a mostrar como lo obtenemos y luego le doy el Lady que dónde salió cuando lo cumplé se me
generó acá que es que es este Jason que tenemos acá Bueno sería un arreglo de Jason que tiene la información de las funciones que hace qué tipo son Qué tipo de variable reciben sino de lectura si son de escritura y demás entonces Esas son las dos cosas que requiere un Front para poder interactuar la dirección la interfaz y obviamente si yo quiero leer y yo tengo diez funciones de altura tengo que decirle Hey cuál voy a llamar de una que se llama good name que una que se llama get neighborhood por ejemplo tener nombre obtener barrio obtener cédula entonces tengo que decirle que quiero llamar entonces
dirección del contrato cuando se suba la blockcha interfaz binaria para saber qué hace esa dirección que no sabe nadie y la función que yo quiero llamar ahora yo les comenté que allá en otro tipo de variables nuevas que íbamos a ver Acá hay una variable que son tipo address padres es una llave pública esto que tengo acá es una llave pública esa madre muy llamarla y voy a llamarla por ejemplo voy a dejarla por ahora así para que vean Cómo se queda esto en cero qué pasa una dirección que está asociada a un usuario un usuario tiene que tener una
dirección cuando queremos interactuar con un contrato inteligente ya imagino que habrán tenido sesiones sobre eso hay que tener una dirección una wallet para poder interactuar con ese contrato inteligente hay que tener una identifica como un usuario en la blockcha en la web tres como meta más por ejemplo en la cual introducimos una frase semilla y nos genera una cuenta de ethereum o en otras redes en este caso lo tengo estoy conectado en la red de coverly que es una red de prueba una red de prueba de la blockchain Entonces nosotros en internet tradicional estamos acostumbrados a inicio sesión con un correo y una contraseña en web 3 ese correo que es el
lugar al que nos mandan la información si alguien quiere decirnos algo Nos lo manda el correo Si queremos entrar a algún lado mostramos el correo y vamos a autorización en este caso ese correo y contraseña sería el tema de la llave pública la llave privado entonces podemos guardar ese tema ya de públicos acá en la en una variable como Alex por ejemplo ahora ya hemos visto mucho el compilar y compilar yo quiero ver eso en blockchain vamos al cuarto apartado Ya vimos el primer apartado que es la ubicación de las carpetas la Lupita por si quiero buscar algo el compilador y vemos cómo se compila acá le digo que quiero comprarlo En qué versión de solidity acá está por defecto una cero punto ocho punto dieciocho ya miramos
que si cojo una versión inferior a la 17 o alguna infección por acá puede que tenga el error del overflow como les comentaba acá esta última versión ya vienen blindadas sobre eso Si trato de guardar en la variable hecho número mayor a 255 y no me va a dejar en una tirar el error porque él ya viene habilitado para proteger contra un over Flow que son temas de de memoria entre Por qué usar la última versión es porque no sale tan por acá abajo y vamos entonces ahora sí vamos a explicar esto no cuando vamos a explicarlo y nos dice vea para desplegarlo vamos a hacer un ambiente un ambiente un ambiente puede ser vamos a colocarlo Acá tengo un ambiente local que es cuando estamos
haciendo el desarrollo web lo que ya hacían allá con html dice sí ese sellado Script lo vamos a hacer acá por ejemplo cuando estoy corriendo una aplicación que lo primero que yo hago yo no la pego para que todo el mundo la vea yo la tengo en el famoso local que por ahí salen muchos memes que ya mira hice una aplicación Quieres verla sí hágale no está en el local está en mi computador yo no puedo decir un amigo por Whatsapp abre los ocho mil Para que vean Mi aplicación no porque está en mi computador está un ambiente local luego el ambiente local hay un ambiente de desarrollo cierto es un lugar de desarrollo donde se sube una versión inestable entre comillas
porque es una versión para probar que le compartes al amigo y que Hey Mira Hey cómo lo ve Hey Mira tal cosa Hey Cómo está eso Y por último está el ambiente de producción y esto es un ambiente de producción realmente productivo que ya es donde sale el código estable también entre comillas porque fue que se pasó algo en la mente de desarrollo lo ideal es que todo salga muy estable el ambiente de producción entonces Contamos con tres ambientes para hacer desarrollo local de para que lo tengamos como en cuenta en la mente no sé si de pronto lo han llamado diferente o lo han escuchado diferente pero en este ejemplo que estamos hablando va a ser local de un ambiente local como estamos
trabajando aquí en internet no tenemos un localhost porque no hemos descargado todavía todavía vamos a usar un ambiente local acá lo admites locales son máquinas virtuales Entonces él nos provee por defecto máquina virtual tiene una llamada a Londres Berlín y acá Tiene otro montón de máquinas virtuales Entonces qué hacemos si queremos hacer una prueba y no quiero ponerme a sacarlo todavía internet se los hago internet me toca empezar a pagar algo llamado gas que vamos a mirar Entonces si no quiero hacer eso qué hago me vengo acá a los ambientes y selecciono una máquina virtual cuando selecciona una máquina virtual es por defecto vale me va a generar varias
billeteras tres cuatro cinco seis siete ocho nueve diez once doce Trece quince billeteras 15 billeteras cargadas con siete cada uno porque tienen que estar cargadas porque como les explicaba al principio esto vamos a interactuar con un servicio que nos provee un país por ejemplo en este caso el país se llama titirio y para poder interactuar con el servicio hay que pagar una comisión en su moneda local Entonces como si nos creara 15 personas diferentes con 100 inter cada uno 15 colombianos diferentes con 100 millones de pesos cada uno para poder interactuar y simular que vamos a comprar café que vamos a comprar papas aguacate un ejemplo una simulación Te estamos creando una simulación en el
cual yo genero alcohol y voy a interactuar con eso acá el valor es si yo quiero enviarle dinero a este contrato esta palabra way es necesario entender que dentro de solidity dentro de Este lenguaje de programación no existe las variables es una variable que tiene decimales en solidity no existen los decimales eso que es como él no sabe que es un decimal lo que se hace Es que se crea la moneda nativa
Y esa moneda nativa se le genera un fraccionamiento y el contrato por defecto va a poder entender esas monedas fraccionadas que se llaman welles y tú le defines una cantidad de monedas fraccionadas para poder fraccionar la moneda original por ejemplo Sí una pregunta bueno bueno decimal si yo dejo un código sucio ejemplo una variable sin usar sin usar cuando estoy en un ambiente producción eso me genera gas ignorante consumo
correcto depende de la década si la variable se deja afuera como aquí va a generar consumo de gas al momento de plegar el contrato Pero si por ejemplo vamos aquí un ejemplo de una función tengo esta función acá si tengo una función una variable de estado cierto una variable global Por decirlo así y Aquí vamos a quitar esta que lo quitamos Y eso aquí lo quitamos empieza a consumir eso la cama está diciendo que
función estados contable puede ser restringido a la función pura por qué porque me estoy retornando nada y cambiando nada de ningún lado pero yo puedo decirle que esta función vamos a cambiarla cambia la edad y cambiar la edad me va a retornar o va a recibir una variable entero ocho llamada guión bajo Edge para qué Para poder que tenga el mismo nombre pero con guión bajo para decir que va a ser local una función pública es decir que cualquiera la puede llamar de afuera y esa función que va a ser va a actualizar mi variable Edge va a ser igual a esa función que yo recibo Enrique tal cual
qué me tocó agregarle definir una visibilidad cómo va a ser que va a ser visible para quién para el público o hacer una función visible solamente para el mismo código acá la definir pública por lo tanto cualquier persona va a poder hacer uso de dicha función y acá muy bacano que esto salió hace muy poquito responsable y ya me gustaría hacer unos cuantos si fue un mes creo que fue mucho esto sería muy reciente hace casi nada donde especifico que estamos haciendo un código redundante o estamos de pronto usando variables de más
podemos mirar cómo podemos optimizar nuestro código una vez en un bloque de código que estemos trabajando No una función de de código que estamos usando o bueno téngale miedo a un ciclo Ford Dios mío Sí infinito por allá Ay Dios mío un bloque infinito por ejemplo en producción alto ese tipo de cosas Generalmente no te la va a dejar agregando alguna otra cosa como una variable aquí entonces usando una variable local que se está
usando la variable local Como así entonces el Antes siquiera de que haga la compilación y voy a mostrar unos controles vea tiene un guardia acá una variable local que está ahí que esa eso no está usando Entonces él me brinca antes de que siquiera haga el despliegue con Al momento de compilar de pasar el lenguaje en algo que puedo entender algo que entiende la máquina virtual él me brinca y me dice Hey eso qué y no me deja hacerlo lo guardo y me salió acá Todo está bien Entonces es muy bacano porque él va ayudando también a uno en ese tipo de
cosas ahora volvió a compilar ya lo actualizamos a esto dijimos que este valor de acá si quiero mandarle dinero al contrato que ya sería agregar una variable llamada para decir que va a recibir fondos en este caso no lo agregue Y esa variable va a permitir que reciba fondos como ya lo compilé voy a tener aquí los contratos compilados por Rex él me dice por ahora solamente cumple el concepto llamado Hello Word así se llama el contrato esto acá como si fuera una clase uno escribe clase pero en vez de escribir clase escribimos Contract y definimos el nombre del contrato entonces Acá tengo un Hello Word y le hundo diploy acá lo tengo que para que
compile con una máquina virtual Y no compilar y ya el compiló acá abajo en contratos desplegados él me muestra una pestañita con el nombre del contrato y la dirección recuerdan por acá decía Necesito una dirección y una interfaz binaria Ya vimos que la interfaz binaria se consigue Al momento de compilar acá abajo y la dirección del contrato se consigue acá Mi idea que se parece a la dirección de mi billetera la longitud no en caracteres en longitud que la misma longitud por la billetera entonces estas variables que son direcciones de usuario o direcciones de contrato solicite y las guarda en un
lugar llamado padres Entonces el espacio de memoria reservado para guardar la dirección de un contrato o la dirección de un usuario como el correo electrónico de un usuario o la función que sería como la dirección de un contrato se llama address Entonces esto es como lo nuevo que le agregamos a esto una de las cosas nuevas que le empezamos a agregar a esto todo esto que es público va a ser visible para el usuario Acá hay dos colores por ahora azul y naranjado hay un tercer color que es rojo rojo significa peligro peligro Por qué Porque cuando la llames tienes que enviarle fondos a un contrato de que enviarle dinero tienes que enviarle en este caso Qué vamos a hacer vamos a
acceder a la variable H yo les comentaba que las variables por defecto se inicializa cierto se inicializó en cero Entonces por defecto así no lo haya definido es ministerilizada variable inicializar en Hello work entonces y acá Owner como no define nada es por defecto le utiliza como cero x cero cero esta dirección que vemos acá es la dirección cero que es la dirección en la cual se banea todo literalmente si tú quieres banear algo o quemar algo que no tienes que tomar un contrato Omar un toque lo que hace Es que le mandas ese toque que quieres quemar a
esta dirección por defecto y con un estándar que todos los desarrolladores consideramos que es que la dirección cero no puede tener nada Por qué hay varias formas de generar esta dirección Bueno hay una forma con la que se puede generar esta dirección de acá esta dirección de acá genera llamado con una frase semilla Con 12 palabras que habrán visto que permite generar esta dirección si por algún motivo algún O sea la manera algo bien raro una persona en cualquier parte del mundo fuera de fuera capaz de encontrarla entonces palabras que pueden generar esa dirección entonces esta dirección tiene un boleo de plata y un boleto de cosas por lo tanto los
programadores consideramos que esta dirección no existe o esta mañana si esta dirección le llega con simplemente no la tomamos en cuenta entonces cuando no estás programando uno considera la persona tal cosa tiene que ser diferente la dirección y cómo se crea o cómo se define una madre cero si quiero hacer la comparación realmente escribo address y le pongo el cero esta dirección está baneada por todo el mundo en un estándar para que tengan en cuenta está bañado a ver por ejemplo si quiero ver cuántos fondos tiene esa dirección que será la dirección cero vamos a ver acá esta dirección bien lograda encontrar las frases semilla que tiene esa dirección Bueno
está como lento esta dirección tiene más de 99 mensajes tiene esa vuelta y tiene un balance de más de un 6.553 iter que equivale a más de 22 millones de dólares una cantidad Absurda pero todo el mundo lo tiene baneado y todo el mundo lo que hace es mandar las cosas Ares o sea literalmente esto no me sirve esto no va más lo mando el aderezero esto no me gusta lo manda a la cero este me lo paga y que vamos esa
plata lo mando a la dirección entonces siempre todo se manda al aire cero este es como la papelera de reciclaje del mundo todo el mundo tira todo aderezo entonces una función que se hace anaranjada implica un cambio una variable de estado por lo tanto hay que pagar gas y estas funciones que se ven azules son de lectura y son completamente gratuitas ahora si yo aquí vengo y cambio la edad por 23 él lo hace y no me cobra nada Por qué Porque estoy conectado con esta billetera aquí a la billetera se empieza a descontarla disculpe no es que no me quedó claro algo por ejemplo el tema de
la seguridad ahí por ejemplo hay billeteras que usted coloca las 12 palabras y le va diciendo que esa palabra le va quedando mal entonces empieza a inventar otras palabras hasta que usted puede entrar con las doce palabras y entro en la billetera no solo me la mostró un día esa por ejemplo las 12 palabras semilla y pum entró Sí este este experimental y nosotros adivinamos como en 15 minutos como como tres doce palabras pero están con fondo cero haciendo un testeo no entonces la seguridad acá de las 12 palabras sería
que la profesión me estaba comentando ahorita sería que casi que imposible encontrar doce palabras para esta billetera o sea uno lo encuentra pero pone billetera cualquiera Pero encuentra la pasta esa billetera como les mostré tiene millones de dólares en fondos Entonces suponiendo el peor de los casos que alguien fuera capaz y encontraran la frase semilla que tiene esta billetera un montón de contrato inteligente del mundo no permiten interacción con esta billetera entonces lo que le comentaba que obviamente sí se llama la posibilidad es muy muy muy muy muy muy muy muy muy baja de que encuentren exactamente la dirección para esta porque no he intentado yo estaba haciendo ahora mismo pero en el caso de que lo lograran esa
dirección está dañada cuando uno desarrolla Generalmente o sea lo que quieres decir Alejo es digamos que yo tengo la suerte y no sé escribir 12 palabras a lo loco y fui el tipo más afortunado del mundo y tengo 22.000 pinchester para mí pero voy a interactuar con uniswap no puedo no optimismo nada el mundo tiene valiosa dirección toda la humanidad tenga acceso a eso Entonces si por algún motivo cuando eres metamos así tenía una cuenta nueva te das cuenta Uy Me generó la dirección cero baila tienes que volver a crear otra cuenta porque Entonces es como eso listo claro
vamos a hacer entonces otra función que nos permita cambiar el nombre sino el grillo vamos a colocarle un saludo un saludo cambiar saludo para recibir que un String eh saludo con guión bajo saludo esta función vamos a hacerla vaya para que reciba fondos y de fondo al contrato de un error me está diciendo vea la Data ubicada en esta posición de memoria Debería ser de tipo Memory otak por qué porque esta variable es una variable
local y ya una variable entero ya el código sabe cuánto espacio me voy a tener que reservar y dentro de la reserva y ya simplemente guarda un espacio 8 bits y ya pero un String en teoría sería un tamaño Dinámico lo puedo colocar con un párrafo largo y abajo va más espacio de memoria Entonces me dice vea Ellos se van a controlar entonces Díganle que le reservo un espacio de memoria dentro de la memoria local esta Va a ser una variable local por lo tanto reserva una variable un espacio y memoria temporal que solamente va a existir cuando se ejecute esta función Entonces se llama esta función Se reserva un espacio de memoria temporal se usa la variable y luego se destruye
entonces memoria para decirle que la variable Temporal y va a reservar mi espacio temporal entonces hay que hacer la aclaración para que él sepa y querer la variable un espacio de memoria que tenga suficientemente bueno un lugar indican suficiente espacio para poder existir y que luego va a ser eliminado no tiene problema con esta porque ya sabe cuánto es la variable pero con esta no sabe con todo hacer entonces por eso que toca física la palabra memoria el tipo es porque yo quiero que esta función reciba fondos pero voy a hacer un barco sin una plata un contrato sin un Cole llamaría va a ser una caja sin fondo o sea un lugar un pozo sin fondo le metemos fondos y la pata se perdió O
sea no hay manera de sacar la plata voy a hacer esto sin una puerta para sacar los puntos de control ese ya compiló va como compila compilando ya con piloto y lo voy a desplegar Pero esta vez lo voy a desplegar con la dirección de meta más les dije que hay en varios ambientes está el ambiente de local lo voy a desplegar un ambiente de desarrollo Para que vean qué tan fácil es desplegarmente desarrollo literalmente le digo voy a usar como proveedor meta este puede inyectar el proveedor de meta más y cuando le inyector me dice Uy se quieren conectar conectando con meta más seleccione la cuenta que voy a usar voy a usar esta cuenta que mi cuenta personal conectar
qué tiene que hacer ver la dirección ver el balance y actividad como aprobar transacciones sí lo voy a conectar a esta aplicación para que pueda transacciones ya quedo conectada y me dijo que está en gobernarly 5 Network ese 5 indica el shaned el ID de la cadena todas estas cadenas que vemos acá y tirio un polígono y otras tiene un ID cuando estén programando con Front van a van a darse cuenta de que hay que colocar ese ID el ID de coverly el 5 como es el número que identifica la cadena está casi parado tienen que asegurarse que estén parados y se paran sobre la red principal les va a cobrar plata real es como se llama un
despliegue a producción si quiero hacer un despliega desarrollo tengo que estar parado en una red de prueba en la red de desarrollo ahora cómo hago para acceder a esto voy a pararme por ejemplo y dice que es la más fácil de obtener mi cambio automáticamente el ID uno uno cinco cinco uno uno [Música] Bueno muy bacano Pero es que yo cuando me conecto con la billetera y le hundo acá en esto bueno acá aparece una opción normalmente no les va a aparecer la red de prueba tienen que decirle Mostrar red de prueba sin Mostrar y cuando se conecta Aquí les va a aparecer en cerca para eso existe una aplicación y el nombre técnico para esto es de qué
la más utilizada es con alguien en este caso voy a entrar a Google pero como ya Quería llegar ese polia Este puede entrar a un fauce de cepolia que escribo fauces voy a compartir también eso por el grupo literalmente se pone a punto com Bueno pues bueno aprovechar se pone y cuando entro acá el preferiblemente conecten la billetera para bueno con la billetera no conéctese con una cuenta de Google para qué Para que les den más si le dan como medio se pone medio de terapias Entonces si quieren que se encuentran con la billetera y ya te pueden recibir más
acá me dice que introduzca mi wallet entonces copio mi wallet la pego acepto el captcha y le hundo envíameter Y acá hace una página así como tipo hacker como que uy saqueamos la NASA No simplemente es como la página que tienen ahí cuando algo ocurre y esto como que Listo ya te entregamos expolia Recuerden que tenía como cuatro y algo llego a tener como cinco y algo 5.01 ahí subió entonces así pueden tener token de la red en este caso voy a desplegar esto sobre una red de desarrollo llamado y vamos a darle diploin como Esto vale plata la billetera y me dice vea este es
el gas estimado que le cuesta desplegar ese contrato Vamos a darle confirmar y me hace una transacción y la puedo ver como Acá está pendiente está pendiente tome la transacción y la sube la brocha notificación nueva Porque ya duarcado vamos a recargar la página que es indexó la transacción ha sido incluido y se verá reflejado en un corto
tiempo o sea ya vino alguien la tomó ya un validador la tomó y la va a colocar en la noche exitosa la transacción ya quedó ya aquí puedo ver el estado dónde lo puedo ver acá explorador del archivo que me indica con ese bloque que me indica en que estaba todas las transacciones todo lo que se saca se llama transacción cada vez que modifico una variable estado A un llamado un contrato y una transacción como les comentaba los colores color naranjado significa que voy a sobreescribir una variable de estado por lo tanto tengo que pagar color azul voy a leer en términos que en ningún momento
me abrió la billetera no le interesa pero solamente me muestra información completamente gratuita los costes de lectura son gratis desde aquí ya me puedo comunicarme con un proveedor y ya toca pagar un proveedor pero eso ya es tema de integración si quieren seguir como más algo más profundo voy a cambiar la variable de la edad Recuerda que ya les dije que este era un entero de ocho Qué pasa si pongo una variable por allá toda grande una variable Como qué 256 que no se puede cierto dos cinco seis y la quiero cambiar él me tiró de una vez un error transacción Hello el contrato Hello Word se llama la función pero ocurrió un error los
argumentos se salen de los límites el valor está fuera de los límites el valor de 256 es un argumento inválido él me bloqueó Por qué Porque es una versión actualizada las versiones viejitas mejor van a hacer un over Flow esta versión no me deja ni siquiera en abrir la billetera él trató de comprar y uno sabe que eso no se puede no lo haga no lo haga y no me dejo hacer y así le pongo edad tiene y me acerque la transacción sin haber la billetera pago el gas el gas que por llamar esta transacción y le hundo confirmar ahora no va a dar tiempo pero una
próxima Podemos mirar o ya o sea ya tienen el tema de ahora miren que el balance del contrato pero yo le quiero pasar y tiro el contrato como les dije voy a cambiar acá saludo saludo Llamar saludo es hello voy a decirle Hello y arauca es rojo es decir tengo que mandarle fondos Entonces yo qué hago acá arriba le mando fotos voy a mandarle Waze te va a mandarle por ejemplo 50 o 500 voy a mandarle 500 güey en la transacción miren que acá aparece balance cero
transacción y él me dice vea eso le vale esa cantidad de gasto confirmo la transacción y el balance va a dejar de ser cero ítem y va a ser mandé West que es la unidad básica Ah bueno Yo creo que lo termine de explicar este tema del güey y es elevado a la 18 como si miramos el tema de un átomo equivale a un ítem por lo tanto si yo mandé 500 güey tengo que tener cinco por 10 a la menos 16 Ways
cero punto cero cero cero cero cero cero y por acá tengo un cinco por qué porque fue lo que yo mandé lo que manda acá en la transacción entre contrato tiene un balance tiene fondos como les dije esto es un pozo sin fondo lo que me decía es que no lo puedo sacar Por qué Porque no definí ninguna función que me deje transferir del contrato a una billetera Entonces esto acá se perdió esa plática se perdió Y qué pasó que esa función recibía fondos y me cambiaba una variable de estado entonces llamo saludo ya no va a decir ya va a decir Hello y así tenemos entonces una función que actualiza una variable estado una
variable estado y recibe fondos y una función de lectura que son estas variables de lectura y como lo vieron sí toqué en falso son como unos toques de prueba excelente excelente espectacular maravilloso una cosa que fue cuando empecé a interactuar con metamask me pareció interesante te puede esperar sobre la billetera lejos no puedes explicar solo Por qué las direcciones son iguales O sea tú cambias a ejemplos de poliaco Every o por ejemplo de la red de ethereum de polígono de vainas porque Siempre es la misma dirección por la misma Sí cuando creo una fase semilla lo que hace es que Minerva una llave
privada y una llave pública una llave privada y una llave pública y lo que hacen es una interacción es como si fuera mi contraseña mi contraseña y mi correo eso por allá Si uno se pone a mirar más a fondo eso es matemáticas y una función de una curva elíptica por allá en tecunaima llave privada puedo generar varias llaves públicas lo que es una una billetera lo que es una custodia de tu llave privada la llave privada está por acá en algún lado como configuración y me la muestra pero eso es una cosa larguísima casos como un cifrado un número no sé cómo caracteres entonces esa cosa larga que tiene un ser humano y que tampoco le va a notar en un papel es lo que guarda la billetera y cuando yo firmo una
transacción lo que hago es que envío esa llave privada Y esa llave privada al firmar una transacción se me convierte en esta pública Entonces qué pasa que una billetera hacer el Custodio de tu llave privada y como la llave privada puede generar varias llaves públicas caída de pública sería una cuenta de entonces la billetera de meta más lo que hace es que con una llave pública me crea una cuenta en todas las redes Por qué Porque con la llave Privada de la llave pública puede interactuar en una blockcha entonces lo que hace esto es simplemente entro con esa llave privada Y esa pública las diferentes bloques encuentro la blockchain Entro la blockchain de polígono entrar al blockchain de cualquiera que
esté dentro de y tiene un virtual Machine porque todo funciona vamos a la misma lógica entonces con la frase semillas de privada y una llave pública por defecto la principal y ya con esa llave pública puede interactuar en cualquiera de las brocha Porque todos tienen mismo corazón de un virtual funcionan bajo la y bien ya que tienen virtual Machine entonces todas van a usar la misma manera de autenticación entonces la autenticación de mi correo y contraseña que acá sería ya de privada y pública funciona con este tema la llave pública que está acá esta dirección por lo tanto yo puedo como toda función en igual pero cada vez que genera un par de privada y pública y ya interactúa con la red que necesite porque todas van a
tener la misma manera autenticación entonces por eso que puedo hacerlo con varias porque yo todas comparten ese corazón de autenticación la verdad Leandro yo creo que todos podemos decir lo mismo esta ha sido una una super sesión no sé si de pronto alguien más Tenga una una pregunta una duda para que podamos despejarla y la sesión no que muchas gracias Alejo por articular esos espacios para mirar los otros escenarios que hay ahí en programación aquí los muchachos html css javascript real estamos en móviles también
proceso bastante largo entre froben y Baker Entonces cuando ven este mundo también de la web tres saben que hay otra otro espacio donde pueden incursionar donde pueden abordar Y obtener otras habilidades en temas de de programación Aunque el círculo ahorita el web tres está un poco entre comillas cerrado Pero ha ido creciendo en temas de cada vez más desarrolladores y es una ventaja y una desventaja porque es una ventaja para el que está programando entrar rápidamente al mercado como desarrollador es una ventaja de seguir creciendo el verso del señor en temas también de de remuneración o también temas sociales de hacer comunidad y
compartir el conocimiento Qué es lo que está haciendo hoy Gracias Alejo por por su tiempo valoramos mucho su espacio su tiempo y todo el conocimiento y experiencia en temas de de esta introducción absoluta con mucho gusto Silvia es seguir aportando con más temas y que pueden aprender todos que entre todos podamos aprender y y así como aprendemos también podemos compartir el conocimiento es el conocimiento no sea privado sino que sea público que todos podamos tener acceso de tipo de información ese tipo de conocimientos para crecer juntos acá en la filosofía es lo que yo sé Lo comparto Por qué Porque como todos están tan nuevo
entonces y hay trabajo para todos literalmente falta gente que se puede desarrollar Entonces no hay competencia entreanos yo sé y le platico al amigo entonces mi amigo va a conseguir trabajo que yo tengo no O sea que trabajo para todo el mundo Entonces La idea es que todo el mundo aprenda Porque si yo aprendo y yo sé que mi amigo También aprendió muy posiblemente tenga otros gustos y este otros gustos él va a aprender otra cosa diferente y cuando yo necesite algo yo puedo adquirir por un grupo Hey no sé cómo hacer esto y muy posible al bus posiblemente alguien de la comunidad alguien de los grupos ahí lo había hecho antes y puedas ir yo lo hice Así así así entonces es muy bacano crecer en comunidad porque literalmente no tengo que aprender todo yo y tiene que aprender todo tú simplemente todos
aprendemos algo diferente y si necesitamos algo preguntamos y muy seguramente alguien no habrá hecho o estará muy cerca de lograrlo y nos podrá compartir entonces esa es nuestra filosofía de aprender en comunidad y crecer juntos y muy invitados todos a unas a cantón que haremos con Medellín en Medellín siempre bueno acá en Medellín estamos bastante activos Y tenemos diferentes eventos este año tener diferencia bienvenida para ir Medellín pero cuando lo vaya muy posiblemente tendremos unas acatón Entonces todos invitados a practicar bastante el lenguaje para que cuando llegue el momento la verdad allá un grupo de arauca por allá por acá por Medellín y podamos tenerlos por acá y
vernos en persona no súper súper espectacular Esa es la meta tener un equipo acá en arauca y no solo para Medellín creo que también se acerca una una jacatone en Bogotá creo que ahorita también va a tener como su espacio de hacking Entonces el futuro acá en la tierra arauca con desarrolladores web 2 web 3 entonces Gracias a todos los chicos que se pudieron conectar la verdad es fascinante que puedan apoyar este este tipo de temas y puedan Pues ojalá valorar esta información ya que como Comenta leco a veces este tema de difícil de conseguir y pues que maravilloso Twitter podemos tener aquí al eco enseñándole a la comunidad y algo que me llamó mucho la atención de cuando
conocí todo este mundo de blockchain es ver cómo alguien como tú comparte tan fácilmente la información con las otras personas y lo que hice algo es completamente cierto No no he visto como la envidia en el web3 no es si sabes esto Oye que que no entiendes que quieres que te ayude que te puedo explicar o sea es maravillosa la energía de tres eso es verdad alguien que sepa programar y no no dispone ese tiempo para enseñar Y acá es una comunidad que compartimos el el conocimiento y eso es muy muy muy muy importante y acá Bueno desde tdh arauca También estamos formando desarrolladores Muchas gracias por por eso alejo y en todo lo
que es la cultura de tres aquí estamos trabajando fuertemente de una súper Qué bueno no entonces seguimos en contacto y Podemos mirar otros eventos en conjunto así como hicimos ahora para dar espacios y compartir conocimiento y muy valioso que se puede hacer Okay sí sería muy genial cualquier cosa programar otra sesión y que todas las personas que estén aquí podamos continuar con otra sesión para poco a poco ir tomando fuerza en la programación de solidity quisiera pues Alejo que nos pudieras compartir tengo una pregunta [Música] es que digamos
yo me he puesto a ver mucho Sobre solita porque la verdad me tramo a eso de tener todo lo que he entendido tener todo en uno que no tener que recurrir a tantas tecnologías como lo es en la hora del backen Ahora hay una habrá alguna herramienta para hacer lejos deploides digamos dos proyectos la digamos un para uno digamos en el en el portafolio subir esos proyectos que uno haga en solita cómo sería cómo sería un Nelly fire si se puede usar normalmente [Música] vea que hiciste A qué te refieres con
eso o sea digamos hacer un proyecto que tenga incluido un Smart hay alguna plataforma que que me deje subir eso para mostrar esos proyectos así como hicimos te paras en la red de en la red de prueba que werly o en la red de sephoria y lo puedes desplegar sobre la brocha interior sobre la red de prueba para obtener el costo va a tener el costo real y para hacer esas integraciones me gustó mucho usar estas librerías me gusta trabajar con aquí la documentación tiene bueno la página oficial Esta es la
página oficial es con lo que me gustó a poder usar esos contratos inteligentes escala página de Rainbow Kids que lo que hace que nos deja integrar una billetera adelante pero si quieren adelantarte adelante acá te paso toda la información necesaria con Rebook conectamos la billetera y ella por debajo [Música] entonces con un ex creamos el Front con rainbook tenemos la billetera y Rain nos pide que instale podemos hacer la integral la interacción entre el Smart entonces simplemente definimos
a las funciones del contrato es por ejemplo Necesito saber el balance una cuenta o mandarle fotos a alguien entonces simplemente ponemos un input en el Front y cuando el botoncito llamamos una función de White Contract y escribimos el contrato se nos abre la billetera de meta más y le vamos a firmar la transacción y ya les llaman dapps aplicaciones descentralizadas listo Muchas gracias con mucho gusto Bueno pues la verdad lo vuelvo a repetir fue una súper clase de pronto sé que vamos a tener la oportunidad para seguir avanzando en este tema porque faltan muchas cosas me parece un mundo
gigante no sé Alejo si nos puedes Compartir por favor tus redes sociales como Twitter como Instagram de pronto para que los chicos se vayan a seguir quien quiera y así pues dar por finalizada la sesión Y la verdad agradecer mucho mucho tu tiempo de hecho más tardaré el post en Twitter etiquetar para dar el reconocimiento de tuyo y pues ahí Medellín de una acá por ejemplo etiquete la croquela mía con la que estoy en Twitter en instagram en linkedin y la de que es como una comunidad que soy liderando en la cual tenemos clases semanales hasta varias por semanas explicando y tocando diferentes temas es una comunidad agnóstica pero también tenemos temas enfocados
espectacular de hecho tenemos un día de solidity para aprender sobre eso vamos a empezar Entonces si quieren unirse también pueden entrar al disco y buscando en instagram es el enlace del disco para que se unan también y quien quita participen algunos espacios que tenemos de solita y empiezan a nivel ahí dándole con otras personas y tengan comunidades virtuales también virtuales y digan vamos a hacer tal cosa con otros proyectos quien quita que tenga otros amigos entonces creo que no es más era todas las personas participantes agradecer a nuestros piques a los chicos que están allá presenciales a la vera pues gracias por tomarte su tiempo y
participar Entonces esto sería todo por ahora y pues Les informo que se viene una sesión virtual no va a ser código pero vamos a tocar un tema súper espectacular que va a ser el roadmade o la hoja de ruta que tiene planeado el ecosistema de tyrion de aquí a los años que vienen que sé que les va a encantar y les va a complementar para seguir entendiendo acerca de este mundo Ok entonces chao chao para todos nos veremos pronto Hasta luego